私はクラスの各インスタンスの関数テンプレートを特化しようとする次のコード(それが誘導されていてもよい)を有する:テンプレートパラメータとして基本クラスへの参照を渡す
class Base {
};
class Derived:public Base {
};
template<Base& b>
void myfunction() {
//use b somehow
}
Derived myobject;
int main() {
myfunction<myobject>(); //this does not work
}
コード結果を私は、静的与えられ、タイプBase
の静的インスタンスへの参照を渡すにはどうすればよい
candidate template ignored: invalid explicitly-specified argument for template parameter 'b'
:エラーメッセージでオブジェクトmyobject
?
'void main()' ?? – WhiZTiM
これで解決したい*実際の問題は何ですか?なぜあなたはこれをやっている? [XY問題](http://xyproblem.info/)を読んで、あなたの質問にどのように当てはまるか(未知の問題の解決策を尋ねる)を反映してください。 –
あなたのテンプレートはです - あなたの関数の引数はT & b;であり、あなたの呼び出しはmyFunc(myobj) です。それは基本的にテンプレートの誤解があるようですので、あなたの本を再訪するべきだと思いますその上に –
UKMonkey