modify README.md

This commit is contained in:
bolero-MURAKAMI 2012-11-26 11:39:09 +09:00
parent 3b658ea53e
commit 5b21d5c2ea
2 changed files with 152 additions and 147 deletions

274
README
View file

@ -1,188 +1,190 @@
Sprout C++ Library
# Sprout C++ Library
C++11 constexpr based Containers, Algorithms, Random numbers, Parsing, Ray tracing, and others.
このライブラリは、C++11 の constexpr に対応したコンテナ、アルゴリズム、乱数、構文解析、レイトレーシング、その他の機能を提供する。
*C++11 constexpr based Containers, Algorithms, Random numbers, Parsing, Ray tracing, Synthesizer, and others.*
このライブラリは、C++11 の constexpr に対応したコンテナ、アルゴリズム、乱数、構文解析、レイトレーシング、シンセサイザー、その他の機能を提供する。
* ドキュメント (Document)
## ドキュメント *(Document)*
Sprout C++ Library Wiki: http://www.boleros.x0.com/doc/sproutwiki/
Sprout C++ Library Wiki: http://www.boleros.x0.com/doc/sproutwiki/
* インストール (Install)
## インストール *(Install)*
ディレクトリ /path/to/sprout にパスを通す。
このライブラリはヘッダオンリーで使える。
(Through the path to the directory. /path/to/sprout
This library can be used in the header only.)
ディレクトリ `/path/to/sprout` にパスを通す。
このライブラリはヘッダオンリーで使える。
*(Through the path to the directory. `/path/to/sprout`*
*This library can be used in the header only.)*
* コンテンツ (contents)
## コンテンツ *(Contents)*
- コンテナとデータ構造 (Containers and Data structures)
-- sprout/array.hpp - std::array 互換の固定長コンテナ
-- sprout/string.hpp - 固定長バッファの文字列クラス
-- sprout/tuple.hpp - std::tuple 互換のタプル
-- sprout/optional.hpp - 無効値の表現
-- sprout/variant.hpp - バリアント
-- sprout/bitset.hpp - std::bitset 互換のビットセット
### コンテナとデータ構造 *(Containers and Data structures)*
* `sprout/array.hpp` - std::array 互換の固定長コンテナ
* `sprout/string.hpp` - 固定長バッファの文字列クラス
* `sprout/tuple.hpp` - std::tuple 互換のタプル
* `sprout/optional.hpp` - 無効値の表現
* `sprout/variant.hpp` - バリアント
* `sprout/bitset.hpp` - std::bitset 互換のビットセット
- アルゴリズム (Algorithms)
-- sprout/algorithm.hpp - STL 互換のアルゴリズム
-- sprout/algorithm/string.hpp - 文字列用アルゴリズム
-- sprout/numeric.hpp - STL 互換の数値シーケンスアルゴリズム
-- sprout/range/algorithm.hpp - Rangeベースのアルゴリズム
-- sprout/range/numeric.hpp - Rangeベースの数値シーケンスアルゴリズム
-- sprout/range/adaptor.hpp - Rangeアダプタ
-- sprout/numeric/dft.hpp - 離散フーリエ変換
-- sprout/range/numeric/dft.hpp - Rangeベースの離散フーリエ変換
### アルゴリズム *(Algorithms)*
* `sprout/algorithm.hpp` - STL 互換のアルゴリズム
* `sprout/algorithm/string.hpp` - 文字列用アルゴリズム
* `sprout/numeric.hpp` - STL 互換の数値シーケンスアルゴリズム
* `sprout/range/algorithm.hpp` - Rangeベースのアルゴリズム
* `sprout/range/numeric.hpp` - Rangeベースの数値シーケンスアルゴリズム
* `sprout/range/adaptor.hpp` - Rangeアダプタ
* `sprout/numeric/dft.hpp` - 離散フーリエ変換
* `sprout/range/numeric/dft.hpp` - Rangeベースの離散フーリエ変換
- コンテナサポート (Container supports)
-- sprout/sub_array.hpp - コンテナから一部の範囲を切り出す部分コンテナ
-- sprout/pit.hpp - 処理結果のコンテナを返す関数に与えるダミーコンテナ
-- sprout/operation.hpp - コンテナを変更する操作
-- sprout/container.hpp - コンテナ特性を定義するトレイトと関数
### コンテナサポート *(Container supports)*
* `sprout/sub_array.hpp` - コンテナから一部の範囲を切り出す部分コンテナ
* `sprout/pit.hpp` - 処理結果のコンテナを返す関数に与えるダミーコンテナ
* `sprout/operation.hpp` - コンテナを変更する操作
* `sprout/container.hpp` - コンテナ特性を定義するトレイトと関数
- 関数オブジェクト (Function Objects)
-- sprout/functional.hpp - STL 互換の関数オブジェクトとハッシュ関数
### 関数オブジェクト *(Function Objects)*
* `sprout/functional.hpp` - STL 互換の関数オブジェクトとハッシュ関数
- イテレータ (Iterators)
-- sprout/iterator.hpp - STL 互換のイテレータと、いくつかの定義済みイテレータ
### イテレータ *(Iterators)*
* `sprout/iterator.hpp` - STL 互換のイテレータと、いくつかの定義済みイテレータ
- 数学 (Mathematics)
-- sprout/math/functions.hpp - 数学関数
-- sprout/random.hpp - 乱数
-- sprout/complex.hpp - 複素数
-- sprout/rational.hpp - 有理数
### 数学 *(Mathematics)*
* `sprout/math/functions.hpp` - 数学関数
* `sprout/random.hpp` - 乱数
* `sprout/complex.hpp` - 複素数
* `sprout/rational.hpp` - 有理数
- テンプレートメタプログラミング (Template Metaprogramming)
-- sprout/index_tuple.hpp - IndexTuple イディオム
-- sprout/type_traits.hpp - 型特性
-- sprout/type.hpp - 型リスト
### テンプレートメタプログラミング *(Template Metaprogramming)*
* `sprout/index_tuple.hpp` - IndexTuple イディオム
* `sprout/type_traits.hpp` - 型特性
* `sprout/type.hpp` - 型リスト
- プリプロセッサメタプログラミング (Preprocessor Metaprogramming)
-- sprout/preprocessor.hpp - プリプロセッサメタプログラミングツール
### プリプロセッサメタプログラミング *(Preprocessor Metaprogramming)*
* `sprout/preprocessor.hpp` - プリプロセッサメタプログラミングツール
- ドメイン固有 (Domain specific)
-- sprout/uuid.hpp - UUID
-- sprout/checksum.hpp - チェックサム (SHA-1, MD5, etc)
### ドメイン固有 *(Domain specific)*
* `sprout/uuid.hpp` - UUID
* `sprout/checksum.hpp` - チェックサム (SHA-1, MD5, etc)
- 構文解析 (Parsing)
-- sprout/weed.hpp - Boost.Spirit.Qi ライクなコンパイル時パーサコンビネータ
### 構文解析 *(Parsing)*
* `sprout/weed.hpp` - Boost.Spirit.Qi ライクなコンパイル時パーサコンビネータ
- レイトレーシング (Ray tracing)
-- sprout/darkroom.hpp - コンパイル時レイトレーサ
### レイトレーシング *(Ray tracing)*
* `sprout/darkroom.hpp` - コンパイル時レイトレーサ
- その他 (Miscellaneous)
-- sprout/utility.hpp - <utility> 互換の機能と、雑多なユーティリティ
-- sprout/bit/operation.hpp - ビット操作
### シンセサイザー *(Synthesizer)*
* `sprout/compost.hpp` - コンパイル時シンセサイザー
- C互換 (C-compatible)
-- sprout/cstdlib.hpp - <cstdlib> 互換の機能
-- sprout/cstring.hpp - <cstring> 互換の機能
-- sprout/cwchar.hpp - <cwchar> 互換の機能
-- sprout/cctype.hpp - <cctype> 互換の機能
-- sprout/cinttypes.hpp - <cinttypes> 互換の機能
### その他 *(Miscellaneous)*
* `sprout/utility.hpp` - 標準ヘッダ utility 互換の機能と、雑多なユーティリティ
* `sprout/bit/operation.hpp` - ビット操作
### C互換 *(C-compatible)*
* `sprout/cstdlib.hpp` - 標準ヘッダ cstdlib 互換の機能
* `sprout/cstring.hpp` - 標準ヘッダ cstring 互換の機能
* `sprout/cwchar.hpp` - 標準ヘッダ cwchar 互換の機能
* `sprout/cctype.hpp` - 標準ヘッダ cctype 互換の機能
* `sprout/cinttypes.hpp` - 標準ヘッダ cinttypes 互換の機能
* ユーザコンフィグ (User configuration)
## ユーザコンフィグ *(User configuration)*
これらのマクロを定義するのは、このライブラリのどのヘッダをインクルードするよりも以前でなければならない。
(To define these macros must be earlier than any of this library to include the header.)
これらのマクロを定義するのは、このライブラリのどのヘッダをインクルードするよりも以前でなければならない。
*(To define these macros must be earlier than any of this library to include the header.)*
** 言語機能のワークアラウンド (Workaround for incomplete language features)
### 言語機能のワークアラウンド *(Workaround for incomplete language features)*
-- constexpr
#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.)
* constexpr
`#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.)*
-- noexcept
#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.)
* noexcept
`#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.)*
-- Template aliases
#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.)
* Template aliases
`#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.)*
-- Delegating constructors
#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.)
* Delegating constructors
`#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.)*
-- 自動無効化の抑制 (Not automatically disable)
#define SPROUT_CONFIG_DISABLE_AUTO_CONFIG
このマクロが定義されているとき、自動的な言語機能の無効化は行われない。
(When this macro is defined, not automatically disable language features.)
* 自動無効化の抑制 *(Not automatically disable)*
`#define SPROUT_CONFIG_DISABLE_AUTO_CONFIG`
このマクロが定義されているとき、自動的な言語機能の無効化は行われない。
*(When this macro is defined, not automatically disable language features.)*
** 実装の切り替え (Switching implementation)
### 実装の切り替え *(Switching implementation)*
-- CEL - ConstExpr Library
#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
* CEL - ConstExpr Library
`#define SPROUT_CONFIG_USE_SSCRISK_CEL`
このマクロが定義されているとき、実装の詳細として CEL - ConstExpr Library を使用する。
*(When this macro is defined, you use the CEL - ConstExpr Library as an implementation detail.)*
See: https://github.com/sscrisk/CEL---ConstExpr-Library
-- ビルトイン数学関数 (Built-in mathematical functions)
#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.)
* ビルトイン数学関数 *(Built-in mathematical functions)*
`#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.)*
-- ビルトインビット処理 (Built-in bit operations)
#define SPROUT_CONFIG_DISABLE_BUILTIN_BIT_OPERATION
このマクロが定義されているとき、ビット処理の実装にビルトイン関数を使用しない。
(When this macro is defined, does not use the built-in function to the implementation of bit operations.)
* ビルトインビット処理 *(Built-in bit operations)*
`#define SPROUT_CONFIG_DISABLE_BUILTIN_BIT_OPERATION`
このマクロが定義されているとき、ビット処理の実装にビルトイン関数を使用しない。
*(When this macro is defined, does not use the built-in function to the implementation of bit operations.)*
-- 一時オブジェクト渡しのサポート (Support passing a temporary object)
#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.)
* 一時オブジェクト渡しのサポート *(Support passing a temporary object)*
`#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.)*
* 作者 (Author)
## 作者 *(Author)*
Bolero MURAKAMI
Bolero MURAKAMI
Website: http://www.boleros.x0.com/
Twitter: https://twitter.com/bolero_murakami
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
Mail: contact-lib@boleros.x0.com
Website: http://www.boleros.x0.com/
Twitter: https://twitter.com/bolero_murakami
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
Mail: contact-lib@boleros.x0.com
* 著作権等 (Copyrights)
## 著作権等 *(Copyrights)*
このライブラリは Boost Software License の元で公開されています。
このライブラリは 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)
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)

View file

@ -1,7 +1,7 @@
# Sprout C++ Library
*C++11 constexpr based Containers, Algorithms, Random numbers, Parsing, Ray tracing, and others.*
このライブラリは、C++11 の constexpr に対応したコンテナ、アルゴリズム、乱数、構文解析、レイトレーシング、その他の機能を提供する。
*C++11 constexpr based Containers, Algorithms, Random numbers, Parsing, Ray tracing, Synthesizer, and others.*
このライブラリは、C++11 の constexpr に対応したコンテナ、アルゴリズム、乱数、構文解析、レイトレーシング、シンセサイザー、その他の機能を提供する。
@ -20,7 +20,7 @@ Sprout C++ Library Wiki: http://www.boleros.x0.com/doc/sproutwiki/
## コンテンツ *(contents)*
## コンテンツ *(Contents)*
### コンテナとデータ構造 *(Containers and Data structures)*
* `sprout/array.hpp` - std::array 互換の固定長コンテナ
@ -76,16 +76,19 @@ Sprout C++ Library Wiki: http://www.boleros.x0.com/doc/sproutwiki/
### レイトレーシング *(Ray tracing)*
* `sprout/darkroom.hpp` - コンパイル時レイトレーサ
### シンセサイザー *(Synthesizer)*
* `sprout/compost.hpp` - コンパイル時シンセサイザー
### その他 *(Miscellaneous)*
* `sprout/utility.hpp` - &lt;utility&gt; 互換の機能と、雑多なユーティリティ
* `sprout/utility.hpp` - 標準ヘッダ utility 互換の機能と、雑多なユーティリティ
* `sprout/bit/operation.hpp` - ビット操作
### C互換 *(C-compatible)*
* `sprout/cstdlib.hpp` - &lt;cstdlib&gt; 互換の機能
* `sprout/cstring.hpp` - &lt;cstring&gt; 互換の機能
* `sprout/cwchar.hpp` - &lt;cwchar&gt; 互換の機能
* `sprout/cctype.hpp` - &lt;cctype&gt; 互換の機能
* `sprout/cinttypes.hpp` - &lt;cinttypes&gt; 互換の機能
* `sprout/cstdlib.hpp` - 標準ヘッダ cstdlib 互換の機能
* `sprout/cstring.hpp` - 標準ヘッダ cstring 互換の機能
* `sprout/cwchar.hpp` - 標準ヘッダ cwchar 互換の機能
* `sprout/cctype.hpp` - 標準ヘッダ cctype 互換の機能
* `sprout/cinttypes.hpp` - 標準ヘッダ cinttypes 互換の機能
@ -128,7 +131,7 @@ Sprout C++ Library Wiki: http://www.boleros.x0.com/doc/sproutwiki/
`#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.)*
@ -145,7 +148,7 @@ Sprout C++ Library Wiki: http://www.boleros.x0.com/doc/sproutwiki/
`#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
See: https://github.com/sscrisk/CEL---ConstExpr-Library
* ビルトイン数学関数 *(Built-in mathematical functions)*
`#define SPROUT_CONFIG_DISABLE_BUILTIN_CMATH_FUNCTION`