問題が発生しました。基本的には、以下のコードで説明できます。
void (*fn_ptr)();
template<typename T> void Second(){
//do something
}
template<typename T> void First() {
//do init
fn_ptr = Second<T>;
}
関数First
と関数Second
の両方が必要でありtemplate function
、関数ポインタを介してのみ呼び出されますfn_ptr
。関数First
は、関数が呼び出される前に一度呼び出される必要がありますSecond
。関数 Second を手動で呼び出す必要はありません。fun_ptr
したがって、どこかで使用する前に行うべき唯一のことは次のとおりです。
fn_ptr = First<SomeType>;
質問があります:どうすれば人々がこれをしないようにすることができますか:
fn_ptr = Second<SomeType>;
First
ps:関数と関数Second
がそうでない場合の方法を知っていますtemplate function