std ライブラリには、特定の演算子をオーバーライドする型を必要とするクラス テンプレートの型があります。たとえば、std::map で使用する型は、< 演算子をサポートする型を必要とします。
しかし、特定の FUNCTION を要求するのは良いことでしょうか? このばかげた例を考えてみましょう
template <typename T> struct Foo {
T t;
Foo() {
t.push_back(0);
}
};
int main() {
Foo<std::vector<int>> foo;
return 0;
}
クラス テンプレート Foo を作成しました。その型には、push_back メンバー func が必要です。この設計は c++ コーダーに受け入れられる/一般的ですか?