C++11/14 constexpr based Containers, Algorithms, Random numbers, Parsing, Ray tracing, Synthesizer, and others.
Find a file
2011-10-28 21:45:00 +09:00
sprout algorithm/* 実装変更 2011-10-28 21:45:00 +09:00
LICENSE_1_0.txt README 追加 2011-09-01 03:35:15 +00:00
README README 更新 2011-10-25 18:23:07 +09:00
sprout_user_config.hpp README 更新 2011-10-08 15:26:46 +09:00

Sprout C++ Library

C++11 constexpr based Mutating-Algorithms and Container-Operations

このライブラリは、C++11 の constexpr に対応した、固定長コンテナに対する STL ライクな変更のアルゴリズムやコンテナ操作を提供する。



*インストール

<sprout/*> を参照できるようライブラリのディレクトリにパスを通す。
このライブラリはヘッダオンリーで使える。



*主なコンテンツ

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
    sprout/random/unique_seed.hpp

constexpr ハッシュ関数
    sprout/functional/hash.hpp
    sprout/checksum/sha1.hpp

constexpr UUID
    sprout/uuid.hpp

コンテナアダプタ
    sprout/sub_array.hpp
    sprout/pit.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)