トップページ > プログラム > 2014年05月14日 > FGHJ28Gs

書き込み順位&時間帯一覧

48 位/250 ID中時間01234567891011121314151617181920212223Total
書き込み数0000000000002000000000002



使用した名前一覧書き込んだスレッド一覧
デフォルトの名無しさん
C++相談室 part112

書き込みレス一覧

C++相談室 part112
501 :デフォルトの名無しさん[sage]:2014/05/14(水) 12:35:55.00 ID:FGHJ28Gs
>>499
そのルールがない場合例えば

template<class T>
void f(T t) {
t.x<1>(100);
}


struct hoge {
template<int N> void x(int n) { return n * N; }
};
を渡すと t.x<1>(100); はメンバ関数テンプレートをインスタンス化しての呼び出しになるけど

struct piyo {
int x;
};
を渡すと t.x<1>(100); は ( piyo.x < 1 ) > 100; という計算になるというさま

テンプレートにおいては<や>というトークンの構文上の解釈がテンプレートパラメータによって
テンプレートパラメータの囲みになったり演算子になったりするのは許さないという仕様
C++相談室 part112
502 :デフォルトの名無しさん[sage]:2014/05/14(水) 12:40:02.26 ID:FGHJ28Gs
typedef typenameのtypenameが必要になる場合も
T::x * y;
みたいなときに*が演算子になったり変数宣言のポインタ指定子になったりするのは許さないということで
同じ仕様が関係してる


※このページは、『2ちゃんねる』の書き込みを基に自動生成したものです。オリジナルはリンク先の2ちゃんねるの書き込みです。
※このサイトでオリジナルの書き込みについては対応できません。
※何か問題のある場合はメールをしてください。対応します。