C++ 返回范围的函数的返回类型是什么?
此函数可以按原样编译<代码>自动在这里运行良好。但是这样一个函数的显式返回类型是什么呢C++ 返回范围的函数的返回类型是什么?,c++,range-v3,return-type-deduction,C++,Range V3,Return Type Deduction,此函数可以按原样编译自动在这里运行良好。但是这样一个函数的显式返回类型是什么呢 auto rangeTest() { static const std::vector<int> vi{1,2,3,4,5,6,7,8,9,10}; auto rng = vi | ranges::view::remove_if([](int i){return i % 2 == 1;}) | ranges::view::transf
auto rangeTest()
{
static const std::vector<int> vi{1,2,3,4,5,6,7,8,9,10};
auto rng = vi | ranges::view::remove_if([](int i){return i % 2 == 1;})
| ranges::view::transform([](int i){return std::to_string(i);});
return rng;
}
自动范围测试()
{
静态常数std::向量vi{1,2,3,4,5,6,7,8,9,10};
auto rng=vi | ranges::view::remove_if([](int i){return i%2==1;})
|ranges::view::transform([](int i){return std::to_string(i);});
返回rng;
}
“此类功能”是一个通用概念。范围库有自己的类。在这种情况下,我希望return std::to_string(I)
预测返回类型。为什么要进行向下投票?我认为这是一个公平的问题。如果我使用gdb来观察rng
的类型,那么行比注释长(而且肯定不是字符串
)。如果我需要给这个函数指定一个显式类型,这将非常“不方便”;模板结构调试;/*没有定义的类的显式实例化*/代码>。一个不可理解的问题是一个糟糕的问题。坏问题=>投票否决(如果懒惰)或编辑。Pro-Tip:只需将返回值指定给不兼容的内容,并解密No从${your type}转换为${…}
编译器错误。