std lib 在类模板中有类型,这些类型需要覆盖某些 OPERATORS 的类型,例如,我们在 std::map 中使用的类型需要该类型支持 < 运算符。
但是要求某些功能是好事吗?考虑这个愚蠢的例子
template <typename T> struct Foo {
T t;
Foo() {
t.push_back(0);
}
};
int main() {
Foo<std::vector<int>> foo;
return 0;
}
在那里我创建了一个类模板 Foo,它的类型需要有一个 push_back 成员函数。这种设计对于 c++ 编码人员来说是否可以接受/通用?