[過去ログ]
Boostを語れゴラァ part3 (1001レス)
Boostを語れゴラァ part3 http://echo.5ch.net/test/read.cgi/tech/1158991211/
上
下
前次
1-
新
通常表示
512バイト分割
レス栞
抽出解除
レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
リロード規制
です。10分ほどで解除するので、
他のブラウザ
へ避難してください。
485: デフォルトの名無しさん [sage] 2006/12/19(火) 20:11:15 >>483 enable_if<is_pod<T> > には、TがPODならtypeメンバがあり、そうでなければtypeメンバがない。 したがって、TがPODでないとき、typename enable_if<is_pod<T> >::typeは 不正な型であり、SFINAE規則によってこの定義が多重定義の考慮から外される。 結果として、TがPODであるときのみ考慮される定義ができたわけだ。 typename enable_if<is_pod<T> >::typeは、このコンパイル時選択の機構のためだけに 使われているので、インタフェースに影響を与えないようにデフォルト値付きの引数になっている。 ポインタを取っているのは簡潔に0で初期化できるようにだろう。 http://echo.5ch.net/test/read.cgi/tech/1158991211/485
486: 483 [sage] 2006/12/19(火) 21:31:23 >>484,485 レス感謝です おかげさまで理解できました >>484 こういう風にすればenable_ifなしでいけるんですね なんとかそのプログラム理解はできても 自分で書けるようになるまでが大変だ・・ とりあえずこれを参考に頑張ってみます >>485 enable_if< is_pod<T> >::type* =0 ええと、この式の場合だと 組み込み型の場合はtypeメンバが存在するわけですよね そして組み込み型でない場合はtypeがないから定義自体されない それだと* =0はなくても大丈夫なんじゃ?と思ったけど この引数はコンパイル時にifの役割を果たせばよいから省略可能にしたい 省略可能にするには=とデフォルト引数が必要で typeをtype*にすればどんな場合でも0が代入できる うーむ、よく考えられてますね http://echo.5ch.net/test/read.cgi/tech/1158991211/486
メモ帳
(0/65535文字)
上
下
前次
1-
新
書
関
写
板
覧
索
設
栞
歴
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.041s