C++相談室 part61
■ このスレッドは過去ログ倉庫に格納されています
0435デフォルトの名無しさん
2008/04/08(火) 17:57:59よく使われるようですが、なくても良いような気がします。例えば、
プログラミング言語C++のp.599にある bind2nd の定義のtypenameを取って
コンパイルしてみましたが、コンパイルが通って、テストコードがきちんと
動きました。typenameの存在意義を教えていただけないでしょうか。
こういう場合にtypenameがなければ困るという分かりやすい例が欲しいです。
// ----- プログラミング言語C++(p.599)より -----
template <class BinOp>
class my_binder2nd : public unary_function<BinOp::first_argument_type, BinOp::result_type> { // my_を付けて実験
protected:
BinOp op;
typename BinOp::second_argument_type arg2; // このtypenameを取ってみた。
public:
my_binder2nd(const BinOp& x, const typename BinOp::second_argument_type& v) // このtypenameも取った。
: op(x), arg2(v) {}
result_type operator()(const argument_type& x) const { return op(x, arg2); }
};
template<class BinOp, class T> my_binder2nd<BinOp> my_bind2nd(const BinOp& op, const T& v)
{
return my_binder2nd<BinOp>(op, v);
■ このスレッドは過去ログ倉庫に格納されています