C++11/14 constexpr based Containers, Algorithms, Random numbers, Parsing, Ray tracing, Synthesizer, and others.
Find a file
2012-06-23 13:22:50 +09:00
example/fizzbuzz add adaptors::counting 2012-05-22 21:16:16 +09:00
libs fix bitset hash support 2012-06-19 13:18:49 +09:00
sprout fix math implementation. 2012-06-23 13:22:50 +09:00
testspr add libs/bitset/test/bitset.cpp 2012-06-18 16:43:48 +09:00
LICENSE_1_0.txt README 追加 2011-09-01 03:35:15 +00:00
README update README 2012-05-25 22:37:40 +09:00

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

Sprout C++ Library

C++11 constexpr based Containers, Algorithms, Random numbers, Parsing, Ray tracing, and others.

このライブラリは、C++11 の constexpr に対応したコンテナ、アルゴリズム、乱数、構文解析、レイトレーシング、その他の機能を提供する。



*インストール (Install)

<sprout/*> にライブラリのディレクトリにパスを通す。
このライブラリはヘッダオンリーで使える。
 (Trough the path to the directory of the library to <sprout/*>.
  This library can be used in the header only.)



*主なコンテンツ (Main contents)

constexpr コンテナ (Containers)
    sprout/array.hpp
    sprout/string.hpp

constexpr タプル (Tuples)
    sprout/tuple.hpp

constexpr バリアント (Variants)
    sprout/variant.hpp

constexpr アルゴリズム (Algorithms)
    sprout/algorithm.hpp
    sprout/numeric.hpp

constexpr 範囲アルゴリズム (Range algorithms)
    sprout/range/algorithm.hpp
    sprout/range/numeric.hpp

constexpr Rangeアダプタ (Range adaptors)
    sprout/range/adaptor.hpp

constexpr コンテナ操作 (Container operations)
    sprout/operation.hpp

constexpr 乱数 (Random numbers)
    sprout/random.hpp
    sprout/random/unique_seed.hpp

constexpr 数学関数 (Mathematical functions)
    sprout/math/functions.hpp
    sprout/math/common_factor.hpp

constexpr 複素数/有理数 (Complex numbers, Rational numbers)
    sprout/complex.hpp
    sprout/rational.hpp

constexpr 関数オブジェクト (Functors)
    sprout/functional.hpp

constexpr ハッシュ関数 (Hash functions)
    sprout/checksum/sha1.hpp
    sprout/functional/hash.hpp

constexpr UUID (UUID)
    sprout/uuid.hpp

型リスト (Type lists)
    sprout/type.hpp

コンテナアダプタ (Container adopters)
    sprout/sub_array.hpp
    sprout/pit.hpp

コンテナ特性 (Container traits)
    sprout/container.hpp

constexpr 離散フーリエ変換 (Discrete Fourier transforms)
    sprout/numeric/dft.hpp
    sprout/range/numeric/dft.hpp

constexpr 構文解析 (Parsing)
    sprout/weed.hpp

constexpr レイトレーシング (Ray tracing)
    sprout/darkroom.hpp



*コンフィグ用ユーザマクロ (User macros for configuration)

#define SPROUT_CONFIG_DISABLE_CONSTEXPR
このマクロが定義されているとき、関数は constexpr 指定されない。
コンパイラが constexpr に対応していない場合、これを定義すべき。
通常、これはコンパイラに応じて自動的に定義される。
 (When this macro is defined, the functions are not specified constexpr.
  If the compiler does not support constexpr, should define it.
  Usually, it defined automatically depending to the compiler.)

#define SPROUT_CONFIG_DISABLE_NOEXCEPT
このマクロが定義されているとき、関数は noexcept 修飾されない。
コンパイラが noexcept に対応していない場合、これを定義すべき。
通常、これはコンパイラに応じて自動的に定義される。
 (When this macro is defined, the functions are not qualified noexcept.
  If the compiler does not support noexcept, should define it.
  Usually, it defined automatically depending to the compiler.)

#define SPROUT_CONFIG_DISABLE_TEMPLATE_ALIASES
このマクロが定義されているとき、Template aliases によるエイリアスは定義されない。
コンパイラが Template aliases に対応していない場合、これを定義すべき。
通常、これはコンパイラに応じて自動的に定義される。
 (When this macro is defined, the aliases are not defined by the Template aliases.
  If the compiler does not support Template aliases, should define it.
  Usually, it defined automatically depending to the compiler.)

#define SPROUT_CONFIG_DISABLE_DELEGATING_CONSTRUCTORS
このマクロが定義されているとき、Delegating constructors による実装は行われない。
コンパイラが Delegating constructors に対応していない場合、これを定義すべき。
通常、これはコンパイラに応じて自動的に定義される。
 (When this macro is defined, the implementation is not done by Delegating constructors.
  If the compiler does not support Delegating constructors, should define it.
  Usually, it defined automatically depending to the compiler.)

#define SPROUT_CONFIG_DISABLE_AUTO_CONFIG
このマクロが定義されているとき、自動的な言語機能の無効化は行われない。
 (When this macro is defined, not automatically disable language features.)

#define SPROUT_CONFIG_USE_SSCRISK_CEL
このマクロが定義されているとき、実装の詳細として CEL - ConstExpr Library を使用する。
 (When this macro is defined, you use the CEL - ConstExpr Library as an implementation detail.)
https://github.com/sscrisk/CEL---ConstExpr-Library

#define SPROUT_CONFIG_DISABLE_BUILTIN_CMATH_FUNCTION
このマクロが定義されているとき、数学関数の実装にビルトイン関数を使用しない。
 (When this macro is defined, does not use the built-in function to the implementation of mathematical functions.)

#define SPROUT_CONFIG_DISABLE_SUPPORT_TEMPORARY_CONTAINER_ITERATION
このマクロが定義されているとき、アルゴリズムへのコンテナの一時オブジェクト渡しをサポートしない。
 (When this macro is defined, does not support passing a temporary object of the container to the algorithm.)

#define SPROUT_CONFIG_SUPPORT_TEMPORARY_CONTAINER_ITERATION
このマクロは非推奨です。
 (This macro is deprecated.)

これらのマクロを定義するのは、このライブラリのどのヘッダをインクルードするよりも以前でなければならない。
 (To define these macros must be earlier than any of this library to include the header.)



*作者 (Author)

Bolero MURAKAMI
Blog: http://d.hatena.ne.jp/boleros/
Twitter: https://twitter.com/#!/bolero_MURAKAMI
Mail: contact-lib@boleros.x0.com



*著作権等 (Copyrights)

このライブラリは Boost Software License の元で公開されています。

Copyright (C) 2011-2012 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)