这是传入lambda函数并返回包含n个对lambda函数调用的std::C++14的正确的样式吗?
// gen is a lambda function
auto returnN(auto gen, auto n){
std::vector< decltype(gen()) > vec;
for(auto i=0; i<n; i++){
vec.push_back( gen() );
}
return vec;
}发布于 2015-01-29 17:36:56
不是的。
template,除非编译器允许它作为扩展。它可能会出现在C++17。
Is auto as a parameter in a regular function a GCC 4.9 extension?vector的元素类型。int类型的循环变量。这是否足够..。template<class F>
auto returnN(F&& gen, size_t n) {
std::vector<std::decay_t<decltype(gen())>> vec; // Needs to decay
while(n--)
vec.push_back(gen());
return vec;
}https://stackoverflow.com/questions/28220916
复制相似问题