5
は説明するために:オブジェクト型がテンプレート引数である場合、テンプレート引数をオブジェクト上の関数に渡す方法はありますか?
struct MyFunc {
template <size_t N>
void doIt() {
cout << N << endl;
}
};
template <typename Func>
struct Pass123ToTemplateFunc {
static void pass(Func f) {
f.doIt<123>(); // <-- Error on compile; is there a way to express this?
}
};
int main() {
Pass123ToTemplateFunc<MyFunc>::pass(MyFunc());
return 0;
}
これはかなり純粋な構文の好奇心です。引数をdoIt
関数自体に渡すことなくこれを表現する方法がありますか?そうでなければ、それほど大きな問題ではなく、私はすでに優雅に回避できる方法をよく知っているので、代替ソリューションを提供する必要はありません。 (それが真実だ場合、私は、他の言葉で、答えとして「ノー」受け入れるだろう:-P。)
それは信じられないですそのキーワードの使い方が何回か私の上に潜んでいます。ありがとう! – nonoitall
@nonoitall:詳細については、このFAQを参照してください。[についての ' - >テンプレート'、 '.template'と' :: template'の構文は?](http://www.comeaucomputing.com/techtalk/templates /#templateprefix) – ildjarn