![]() |
Home | Libraries | People | FAQ | More |
Type | Contents | Description |
---|---|---|
関数や関数オブジェクト自身の型 (例えば T)。 | ||
関数や関数オブジェクトをパラメータとして渡すために 使われるべき型。 | ||
関数や関数オブジェクトの返り値の型。 | ||
関数や関数オブジェクトの引数の型。 | ||
関数や関数オブジェクト自身の型 (例えば T)。 | ||
関数や関数オブジェクトをパラメータとして渡すために 使われるべき型。 | ||
関数や関数オブジェクトの返り値の型。 | ||
関数や関数オブジェクトの第一引数の型。 | ||
関数や関数オブジェクトの第二引数の型。 |
これらのテンプレートのもっとも一般的な使い方は、関数オブジェクトアダ プタ内で、関数オブジェクトと同様に普通の関数を適合させることである。普段 例えば、
typename Operation::argument_type
と書く所ならどこでも、代わりに
typename boost::unary_traits<Operation>::argument_type
と書くだけで良い。
標準の返り値と引数の typedef に加えて、これらの特性テンプレートは 二つの型を定義する。
これは関数や関数オブジェクトの型である。そして、宣言の中で以下のよう に使われる。
template <class Predicate> class unary_negate : // ... { // ... private: typename unary_traits<Predicate>::function_type pred; };
もしこの typedef が無ければ、
これは関数や関数オブジェクトを他の関数に引数として渡すのに最適な型で ある。
template <class Predicate> class unary_negate : // ... { public: explicit unary_negate(typename unary_traits<Predicate>::param_type x) : pred(x) {} // ... };
関数オブジェクトは定数参照で渡され、関数ポインタは値渡しされる。
このライブラリは全てのアダプタ関数オブジェクトでこれらの特性を利
用していて、理論的には、
これらの特性テンプレートも、テンプレートの部分特殊化版を提供できないコ
ンパイラでは動かないだろう。これらのコンパイラでは、特性テンプレートは適
合関数オブジェクトでのみ実体化され、このライブラリの関数オブジェクトとも
もに用いる場合でさえ、
Copyright © 2000 Cadenza New Zealand Ltd. Permission to copy, use, modify, sell and distribute this document is granted provided this copyright notice appears in all copies. This document is provided "as is" without express or implied warranty, and with no claim as to its suitability for any purpose.
Revised 28 June 2000
Japanese Translation Copyright (C) 2003 shinichiro.h <g940455@mail.ecc.u-tokyo.ac.jp>.
オリジナルの、及びこの著作権表示が全ての複製の中に現れる限り、この文書の 複製、利用、変更、販売そして配布を認める。このドキュメントは「あるがまま」 に提供されており、いかなる明示的、暗黙的保証も行わない。また、 いかなる目的に対しても、その利用が適していることを関知しない。