gpt4 book ai didi

具有显式模板参数的 C++ 函数对象

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:05:00 24 4
gpt4 key购买 nike

我有一个带有显式(即非推导)模板参数的函数对象,定义如下:

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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com