【发布时间】:2010-11-10 03:22:23
【问题描述】:
在 C++ 中,您可以在类上使用模板化运算符吗?像这样:
class MyClass {
public:
template<class T>
T operator()() { /* return some T */ };
}
这实际上似乎编译得很好,但令人困惑的是如何使用它:
MyClass c;
int i = c<int>(); // This doesn't work
int i = (int)c(); // Neither does this*
它完全编译的事实向我表明它是可行的,我只是不知道如何使用它!有什么建议吗,或者这种使用方法不适合?
【问题讨论】:
-
“这不起作用/这也不行”是什么意思?会发生什么?
-
编译器对你有问题,这就是发生的事情:)
-
我发誓我以前在 SO 上看到过这个问题...虽然我找不到它,所以显然不能怪你。
-
谢谢。我猜我在尝试搜索时只是输入了错误的关键字。 (没想到要尝试函子。回想起来应该很明显)
标签: c++ templates operator-overloading