作者热门文章
- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我有一个带有显式(即非推导)模板参数的函数对象,定义如下:
struct foo
{
template<class T>
T operator()() const
{
return 5;
}
};
foo bar = {};
当我尝试这样调用它时:
int main()
{
int i = bar<int>();
return 0;
}
我遇到编译错误。有没有办法像普通函数一样调用带有模板参数的函数对象?我真的需要把它作为一个函数对象。制作免费功能对我来说并不是一个真正的选择(或者至少,这是一个非常困惑的选择)。
最佳答案
不幸的是,你不能那样调用它。您需要使用 operator()
语法:
int i = bar.operator()<int>();
关于具有显式模板参数的 C++ 函数对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15013419/
我是一名优秀的程序员,十分优秀!