0
このような動作を実装することは可能ですか?継承を使用する必要はありません。私は、(C++テンプレートを使用して)汎用引数を渡してテンプレートメソッド設計パターンを実装したいだけです。後で実装される関数を使用するクラスメソッドテンプレートを作成する
class A {
public:
template<typename ...tArgs>
void call(tArgs ...vArgs) {
for (int i = 0; i < 5; ++i)
impl(vArgs...);
}
};
class B : public A {
public:
void impl() {}
void impl(int) {}
};
int main() {
B b;
b.call(); // ok
b.call(1); // ok
b.call(""); // compile error, no method to call inside 'call'
return 0;
}
非常に明確ではありません。あなたの例では、コンパイル時に 'const char *'のオーバーロードがないので、そのコンパイルエラーが発生します。 –
[そのコードの唯一の誤りではありません](http://coliru.stacked-crooked.com/a/6dc7e20197d5f898) 'impl'が解決できないため、' call'を呼び出す人はいません。 – WhozCraig
この例は、前回の呼び出しなしのイベントでは機能しません。私は希望の行動だけを説明しました。 – omicronns