gpt4 book ai didi

c++ - 错误 :template declaration of auto function

转载 作者:行者123 更新时间:2023-11-30 03:03:49 27 4
gpt4 key购买 nike

在定义以下 lambda 函数时

// file prog.hpp
template<typename T>
auto function = [](T& v){ return (v+= 2); }

我得到错误:错误:自动函数的模板声明

请告诉我应该做的更正

我正在使用 g++-4.6.1 -std=c++0x -c prog.hpp

最佳答案

你不能有模板化的 lamdba 表达式或闭包。您可以制作模板化的传统函数或 lambda 工厂(但后者更昂贵):

template <typename T> T & TheFunction(T & v) { return v += 2; }

或者:

template <typename T> std::function<T&(T&)> MakeLambda() 
{
return [](T & v) { return v+= 2; }
}

关于c++ - 错误 :template declaration of auto function,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9154039/

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