【初心者歓迎】C/C++室 Ver.72【環境依存OK】at TECH【初心者歓迎】C/C++室 Ver.72【環境依存OK】 - 暇つぶし2ch■コピペモード□スレを通常表示□オプションモード□このスレッドのURL■項目テキスト492:デフォルトの名無しさん 10/04/23 22:40:51 template<class T> struct identity { typedef T type; }; このメタ関数は何のために存在するんですか? 493:デフォルトの名無しさん 10/04/23 23:26:15 >>492 template<class T>cast(typename identity<T>::type v){ return v; } とか typedef boost::mpl::eval_if<is_const<T>, identity<const int>, identity<int> > iint; とか 494:デフォルトの名無しさん 10/04/23 23:31:17 横槍レスだが >>493 相変わらずC++ TMPは難しすぎだろ 495:デフォルトの名無しさん 10/04/23 23:35:48 ・eval_ifに渡すラッパー ・変数宣言 ○int *p1, *p2; ×int* p1, p2; ○boost::mpl::identity<int*>::type p1, p2; ・メタ関数をつくるヘルパ(例:osteram等から同じ文字型とTraitsのbasic_stringをつくる、strメタ関数 template<typename Stream> struct str : public boost::mpl::identity< std::basic_string<typename Stream::char_type, typename Stream::traits_type> > { }; 次ページ最新レス表示レスジャンプ類似スレ一覧スレッドの検索話題のニュースおまかせリストオプションしおりを挟むスレッドに書込スレッドの一覧暇つぶし2ch