2011-09-01 03:35:15 +00:00
|
|
|
Sprout C++ Library
|
|
|
|
|
2012-02-26 02:07:31 +00:00
|
|
|
C++11 constexpr based Containers, Algorithms, Random numbers, Parsing, Ray tracing, and others.
|
2011-09-01 03:35:15 +00:00
|
|
|
|
2012-02-22 13:39:22 +00:00
|
|
|
このライブラリは、C++11 の constexpr に対応したコンテナ、アルゴリズム、乱数、構文解析、レイトレーシング、その他の機能を提供する。
|
2011-09-01 03:35:15 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
2012-07-21 03:12:11 +00:00
|
|
|
* ドキュメント (Document)
|
2012-07-18 12:46:40 +00:00
|
|
|
|
|
|
|
Sprout C++ Library Wiki: http://www.boleros.x0.com/doc/sproutwiki/
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-07-21 03:12:11 +00:00
|
|
|
* インストール (Install)
|
2011-09-01 03:35:15 +00:00
|
|
|
|
2012-07-21 03:12:11 +00:00
|
|
|
ディレクトリ /path/to/sprout にパスを通す。
|
2011-09-01 03:35:15 +00:00
|
|
|
このライブラリはヘッダオンリーで使える。
|
2012-07-21 03:12:11 +00:00
|
|
|
(Through the path to the directory. /path/to/sprout
|
2012-02-26 02:07:31 +00:00
|
|
|
This library can be used in the header only.)
|
2011-09-01 03:35:15 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
2012-07-21 03:12:11 +00:00
|
|
|
* コンテンツ (contents)
|
2011-10-12 21:36:03 +00:00
|
|
|
|
2012-07-21 03:12:11 +00:00
|
|
|
- コンテナとデータ構造 (Containers and Data structures)
|
|
|
|
-- sprout/array.hpp - std::array 互換の固定長コンテナ
|
|
|
|
-- sprout/string.hpp - 固定長バッファの文字列クラス
|
|
|
|
-- sprout/tuple.hpp - std::tuple 互換のタプル
|
|
|
|
-- sprout/variant.hpp - バリアント
|
2012-07-22 09:43:11 +00:00
|
|
|
-- sprout/bitset.hpp - std::bitset 互換のビットセット
|
2011-10-12 21:36:03 +00:00
|
|
|
|
2012-07-21 03:12:11 +00:00
|
|
|
- アルゴリズム (Algorithms)
|
2012-07-23 11:39:03 +00:00
|
|
|
-- sprout/algorithm.hpp - STL 互換のアルゴリズム
|
2012-07-21 03:12:11 +00:00
|
|
|
-- sprout/algorithm/string.hpp - 文字列用アルゴリズム
|
2012-07-23 11:39:03 +00:00
|
|
|
-- sprout/numeric.hpp - STL 互換の数値シーケンスアルゴリズム
|
2012-07-21 03:12:11 +00:00
|
|
|
-- sprout/range/algorithm.hpp - Rangeベースのアルゴリズム
|
2012-07-23 11:39:03 +00:00
|
|
|
-- sprout/range/numeric.hpp - Rangeベースの数値シーケンスアルゴリズム
|
2012-07-21 03:12:11 +00:00
|
|
|
-- sprout/range/adaptor.hpp - Rangeアダプタ
|
|
|
|
-- sprout/numeric/dft.hpp - 離散フーリエ変換
|
|
|
|
-- sprout/range/numeric/dft.hpp - Rangeベースの離散フーリエ変換
|
2011-10-30 14:16:20 +00:00
|
|
|
|
2012-07-21 03:12:11 +00:00
|
|
|
- コンテナサポート (Container supports)
|
2012-07-27 04:49:47 +00:00
|
|
|
-- sprout/sub_array.hpp - コンテナから一部の範囲を切り出す部分コンテナ
|
2012-07-22 09:44:46 +00:00
|
|
|
-- sprout/pit.hpp - 処理結果のコンテナを返す関数に与えるダミーコンテナ
|
2012-07-21 03:12:11 +00:00
|
|
|
-- sprout/operation.hpp - コンテナを変更する操作
|
|
|
|
-- sprout/container.hpp - コンテナ特性を定義するトレイトと関数
|
2011-11-06 02:07:04 +00:00
|
|
|
|
2012-07-21 03:12:11 +00:00
|
|
|
- 関数オブジェクト (Function Objects)
|
|
|
|
-- sprout/functional.hpp - STL 互換の関数オブジェクトとハッシュ関数
|
2011-10-12 21:36:03 +00:00
|
|
|
|
2012-07-21 03:12:11 +00:00
|
|
|
- イテレータ (Iterators)
|
|
|
|
-- sprout/iterator.hpp - STL 互換のイテレータと、いくつかの定義済みイテレータ
|
2011-10-12 21:36:03 +00:00
|
|
|
|
2012-07-21 03:12:11 +00:00
|
|
|
- 数学 (Mathematics)
|
|
|
|
-- sprout/math/functions.hpp - 数学関数
|
|
|
|
-- sprout/random.hpp - 乱数
|
|
|
|
-- sprout/complex.hpp - 複素数
|
|
|
|
-- sprout/rational.hpp - 有理数
|
2012-05-01 05:34:48 +00:00
|
|
|
|
2012-07-21 03:12:11 +00:00
|
|
|
- テンプレートメタプログラミング (Template Metaprogramming)
|
|
|
|
-- sprout/index_tuple.hpp - IndexTuple イディオム
|
|
|
|
-- sprout/type_traits.hpp - 型特性
|
|
|
|
-- sprout/type.hpp - 型リスト
|
2011-10-12 21:36:03 +00:00
|
|
|
|
2012-07-21 03:12:11 +00:00
|
|
|
- プリプロセッサメタプログラミング (Preprocessor Metaprogramming)
|
2012-08-08 13:36:07 +00:00
|
|
|
-- sprout/preprocessor.hpp - プリプロセッサメタプログラミングツール
|
2011-10-12 21:36:03 +00:00
|
|
|
|
2012-07-21 03:12:11 +00:00
|
|
|
- ドメイン固有 (Domain specific)
|
|
|
|
-- sprout/uuid.hpp - UUID
|
2012-08-08 13:34:56 +00:00
|
|
|
-- sprout/checksum.hpp - チェックサム (SHA-1, MD5, etc)
|
2012-05-25 13:37:40 +00:00
|
|
|
|
2012-07-21 03:12:11 +00:00
|
|
|
- 構文解析 (Parsing)
|
|
|
|
-- sprout/weed.hpp - Boost.Spirit.Qi ライクなコンパイル時パーサコンビネータ
|
2012-05-25 13:37:40 +00:00
|
|
|
|
2012-07-21 03:12:11 +00:00
|
|
|
- レイトレーシング (Ray tracing)
|
|
|
|
-- sprout/darkroom.hpp - コンパイル時レイトレーサ
|
2012-04-13 07:00:30 +00:00
|
|
|
|
2012-07-21 03:12:11 +00:00
|
|
|
- その他 (Miscellaneous)
|
|
|
|
-- sprout/utility.hpp - <utility> 互換の機能と、雑多なユーティリティ
|
2012-07-22 09:43:11 +00:00
|
|
|
-- sprout/bit/operation.hpp - ビット操作
|
2011-10-25 09:23:07 +00:00
|
|
|
|
2012-07-21 03:12:11 +00:00
|
|
|
- C互換 (C-compatible)
|
|
|
|
-- sprout/cstdlib.hpp - <cstdlib> 互換の機能
|
|
|
|
-- sprout/cstring.hpp - <cstring> 互換の機能
|
|
|
|
-- sprout/cwchar.hpp - <cwchar> 互換の機能
|
|
|
|
-- sprout/cctype.hpp - <cctype> 互換の機能
|
|
|
|
-- sprout/cinttypes.hpp - <cinttypes> 互換の機能
|
2011-10-12 21:36:03 +00:00
|
|
|
|
2011-11-06 02:07:04 +00:00
|
|
|
|
2011-10-12 21:36:03 +00:00
|
|
|
|
2012-10-09 08:27:12 +00:00
|
|
|
* ユーザコンフィグ (User configuration)
|
2011-09-01 03:35:15 +00:00
|
|
|
|
2012-10-09 08:27:12 +00:00
|
|
|
これらのマクロを定義するのは、このライブラリのどのヘッダをインクルードするよりも以前でなければならない。
|
|
|
|
(To define these macros must be earlier than any of this library to include the header.)
|
|
|
|
|
|
|
|
|
|
|
|
** 言語機能のワークアラウンド (Workaround for incomplete language features)
|
|
|
|
|
|
|
|
-- constexpr
|
|
|
|
#define SPROUT_CONFIG_DISABLE_CONSTEXPR
|
2012-02-26 02:07:31 +00:00
|
|
|
このマクロが定義されているとき、関数は constexpr 指定されない。
|
2012-04-13 07:00:30 +00:00
|
|
|
コンパイラが constexpr に対応していない場合、これを定義すべき。
|
|
|
|
通常、これはコンパイラに応じて自動的に定義される。
|
2012-02-26 02:07:31 +00:00
|
|
|
(When this macro is defined, the functions are not specified constexpr.
|
2012-04-13 07:00:30 +00:00
|
|
|
If the compiler does not support constexpr, should define it.
|
|
|
|
Usually, it defined automatically depending to the compiler.)
|
2011-09-01 03:35:15 +00:00
|
|
|
|
2012-10-09 08:27:12 +00:00
|
|
|
-- noexcept
|
|
|
|
#define SPROUT_CONFIG_DISABLE_NOEXCEPT
|
2011-09-01 03:35:15 +00:00
|
|
|
このマクロが定義されているとき、関数は noexcept 修飾されない。
|
2012-04-13 07:00:30 +00:00
|
|
|
コンパイラが noexcept に対応していない場合、これを定義すべき。
|
|
|
|
通常、これはコンパイラに応じて自動的に定義される。
|
2012-02-26 02:07:31 +00:00
|
|
|
(When this macro is defined, the functions are not qualified noexcept.
|
2012-04-13 07:00:30 +00:00
|
|
|
If the compiler does not support noexcept, should define it.
|
|
|
|
Usually, it defined automatically depending to the compiler.)
|
2011-09-01 03:35:15 +00:00
|
|
|
|
2012-10-09 08:27:12 +00:00
|
|
|
-- Template aliases
|
|
|
|
#define SPROUT_CONFIG_DISABLE_TEMPLATE_ALIASES
|
2012-02-26 02:07:31 +00:00
|
|
|
このマクロが定義されているとき、Template aliases によるエイリアスは定義されない。
|
2012-04-13 07:00:30 +00:00
|
|
|
コンパイラが Template aliases に対応していない場合、これを定義すべき。
|
|
|
|
通常、これはコンパイラに応じて自動的に定義される。
|
2012-02-26 02:07:31 +00:00
|
|
|
(When this macro is defined, the aliases are not defined by the Template aliases.
|
2012-04-13 07:00:30 +00:00
|
|
|
If the compiler does not support Template aliases, should define it.
|
|
|
|
Usually, it defined automatically depending to the compiler.)
|
|
|
|
|
2012-10-09 08:27:12 +00:00
|
|
|
-- Delegating constructors
|
|
|
|
#define SPROUT_CONFIG_DISABLE_DELEGATING_CONSTRUCTORS
|
2012-04-13 07:00:30 +00:00
|
|
|
このマクロが定義されているとき、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.)
|
|
|
|
|
2012-10-09 08:27:12 +00:00
|
|
|
-- 自動無効化の抑制 (Not automatically disable)
|
|
|
|
#define SPROUT_CONFIG_DISABLE_AUTO_CONFIG
|
2012-04-13 07:00:30 +00:00
|
|
|
このマクロが定義されているとき、自動的な言語機能の無効化は行われない。
|
|
|
|
(When this macro is defined, not automatically disable language features.)
|
2012-02-08 14:39:36 +00:00
|
|
|
|
2012-10-09 08:27:12 +00:00
|
|
|
|
|
|
|
** 実装の切り替え (Switching implementation)
|
|
|
|
|
|
|
|
-- CEL - ConstExpr Library
|
|
|
|
#define SPROUT_CONFIG_USE_SSCRISK_CEL
|
2011-09-01 03:35:15 +00:00
|
|
|
このマクロが定義されているとき、実装の詳細として CEL - ConstExpr Library を使用する。
|
2012-02-26 02:07:31 +00:00
|
|
|
(When this macro is defined, you use the CEL - ConstExpr Library as an implementation detail.)
|
2011-09-01 03:35:15 +00:00
|
|
|
https://github.com/sscrisk/CEL---ConstExpr-Library
|
|
|
|
|
2012-10-09 08:27:12 +00:00
|
|
|
-- ビルトイン数学関数 (Built-in mathematical functions)
|
|
|
|
#define SPROUT_CONFIG_DISABLE_BUILTIN_CMATH_FUNCTION
|
2012-05-25 13:37:40 +00:00
|
|
|
このマクロが定義されているとき、数学関数の実装にビルトイン関数を使用しない。
|
2012-07-22 09:43:11 +00:00
|
|
|
(When this macro is defined, does not use the built-in function to the implementation of mathematical functions.)
|
2012-05-25 13:37:40 +00:00
|
|
|
|
2012-10-09 08:27:12 +00:00
|
|
|
-- ビルトインビット処理 (Built-in bit operations)
|
|
|
|
#define SPROUT_CONFIG_DISABLE_BUILTIN_BIT_OPERATION
|
2012-07-05 13:05:50 +00:00
|
|
|
このマクロが定義されているとき、ビット処理の実装にビルトイン関数を使用しない。
|
2012-07-22 09:43:11 +00:00
|
|
|
(When this macro is defined, does not use the built-in function to the implementation of bit operations.)
|
2012-07-05 13:05:50 +00:00
|
|
|
|
2012-10-09 08:27:12 +00:00
|
|
|
-- 一時オブジェクト渡しのサポート (Support passing a temporary object)
|
|
|
|
#define SPROUT_CONFIG_DISABLE_SUPPORT_TEMPORARY_CONTAINER_ITERATION
|
2012-02-26 02:07:31 +00:00
|
|
|
このマクロが定義されているとき、アルゴリズムへのコンテナの一時オブジェクト渡しをサポートしない。
|
2012-07-22 09:43:11 +00:00
|
|
|
(When this macro is defined, does not support passing a temporary object of the container to the algorithm.)
|
2012-02-08 14:39:36 +00:00
|
|
|
|
2011-09-01 03:35:15 +00:00
|
|
|
|
|
|
|
|
2012-07-21 03:12:11 +00:00
|
|
|
* 作者 (Author)
|
2011-09-01 03:35:15 +00:00
|
|
|
|
|
|
|
Bolero MURAKAMI
|
2012-10-10 15:15:34 +00:00
|
|
|
|
|
|
|
Website: http://www.boleros.x0.com/
|
2012-07-18 12:46:40 +00:00
|
|
|
Twitter: https://twitter.com/bolero_murakami
|
2012-10-09 08:27:12 +00:00
|
|
|
Facebook: http://www.facebook.com/genya.murakami
|
|
|
|
Blog: http://d.hatena.ne.jp/boleros/
|
|
|
|
Github: https://github.com/bolero-MURAKAMI
|
|
|
|
SlideShare: http://www.slideshare.net/GenyaMurakami
|
2011-09-01 03:35:15 +00:00
|
|
|
Mail: contact-lib@boleros.x0.com
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-07-21 03:12:11 +00:00
|
|
|
* 著作権等 (Copyrights)
|
2011-09-01 03:35:15 +00:00
|
|
|
|
|
|
|
このライブラリは Boost Software License の元で公開されています。
|
|
|
|
|
2012-02-26 02:07:31 +00:00
|
|
|
Copyright (C) 2011-2012 Bolero MURAKAMI.
|
2012-05-01 05:34:48 +00:00
|
|
|
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)
|