Sprout C++ Library C++11 constexpr based Mutating-Algorithms and Container-Operations このライブラリは、C++11 の constexpr に対応した、固定長コンテナに対する STL ライクな変更のアルゴリズムやコンテナ操作を提供する。 *インストール を参照できるようライブラリのディレクトリにパスを通す。 このライブラリはヘッダオンリーで使える。 *主なコンテンツ constexpr コンテナ sprout/array.hpp sprout/string.hpp constexpr アルゴリズム sprout/algorithm.hpp sprout/numeric.hpp constexpr 範囲アルゴリズム sprout/range/algorithm.hpp sprout/range/numeric.hpp constexpr コンテナ操作 sprout/operation.hpp constexpr 乱数 sprout/random.hpp constexpr ハッシュ関数 sprout/functional/hash.hpp コンテナアダプタ sprout/sub_array.hpp sprout/null_array.hpp コンテナ特性 sprout/fixed_container.hpp *コンフィグ用ユーザマクロ #define SPROUT_CONFIG_DISABLE_CONSTEXPR このマクロが定義されているとき、関数は constexpr として宣言されない。 コンパイラが constexpr に対応していない場合。 #define SPROUT_CONFIG_DISABLE_NOEXCEPT このマクロが定義されているとき、関数は noexcept 修飾されない。 コンパイラが noexcept に対応していない場合。 #define SPROUT_CONFIG_USE_SSCRISK_CEL このマクロが定義されているとき、実装の詳細として CEL - ConstExpr Library を使用する。 https://github.com/sscrisk/CEL---ConstExpr-Library #define SPROUT_CONFIG_SUPPORT_TEMPORARY_CONTAINER_ITERATION このマクロが定義されているとき、GCC4.7 において、アルゴリズムにコンテナの一時オブジェクトを渡せない問題を回避する。 なおその場合、Sprout のコンテナのイテレータはポインタではなくなる。 これらのマクロをユーザ定義する場合、このライブラリのどのヘッダがインクルードされるよりも先に定義されなければならない。 *作者 Bolero MURAKAMI Blog: http://d.hatena.ne.jp/boleros/ Twitter: http://twitter.com/#!/bolero_MURAKAMI Mail: contact-lib@boleros.x0.com *著作権等 このライブラリは Boost Software License の元で公開されています。 Copyright (C) 2011 Bolero MURAKAMI. Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)