C++ 是C++;_每个(v,[](字符串x)的表达式是否语法正确?
下面的表达式是否对每个()的C++ 是C++;_每个(v,[](字符串x)的表达式是否语法正确?,c++,lambda,cpp-core-guidelines,C++,Lambda,Cpp Core Guidelines,下面的表达式是否对每个()的有效 每个(v,[](字符串x)的{ 好吧,核心指南提到了每个,而不是每个的std::for。所以很难回答你的问题 如果他们实际上指的是std::for_each,那么这将是一个打字错误,因为它需要两个迭代器——除非他们指的是未来版本的 如果他们为每个引用了一个通用的,那么它可以是: template <typename TContainer, typename TF> void for_each(TContainer&& c, TF&a
有效
每个(v,[](字符串x)的{
好吧,核心指南提到了每个
,而不是每个
的std::for。所以很难回答你的问题
- 如果他们实际上指的是
,那么这将是一个打字错误,因为它需要两个迭代器——除非他们指的是未来版本的std::for_each
- 如果他们为每个引用了一个通用的
,那么它可以是:
template <typename TContainer, typename TF> void for_each(TContainer&& c, TF&& f) { for(auto&& x : c) f(x); }
模板 每个容器(容器和c、TF和f)无效 { 对于(自动和&x:c)f(x); }
,而不是每个
的std::for
。所以很难回答您的问题
- 如果他们实际上指的是
,那么这将是一个打字错误,因为它需要两个迭代器——除非他们指的是未来版本的std::for_each
- 如果他们为每个引用了一个通用的
,那么它可以是:
template <typename TContainer, typename TF> void for_each(TContainer&& c, TF&& f) { for(auto&& x : c) f(x); }
模板 每个容器(容器和c、TF和f)无效 { 对于(自动和&x:c)f(x); }
。你能详细说明一下你的代码吗?我删除了[c++11]中的标记,因为指南引用了标准的当前版本,并且清楚地表明此示例基于范围TS。不,不是。他们可能对每个
都使用了。您能详细说明您的代码吗?对于每个_,您所指的都不清楚我删除了[c++11]标记,因为指导方针引用了标准的当前版本,并且明确指出此示例基于范围TS。指导方针说“此示例使用范围TS中的for_,因为它直接表达了意图:”。指导方针通常不写“std::”(在std命名空间中搜索cin或其他标识符)指南中说:“本例使用范围TS中的for_,因为它直接表达了意图:”。指南通常不写“std::”(在std名称空间中搜索cin或其他标识符)。
template <typename TContainer, typename TF>
void for_each(TContainer&& c, TF&& f)
{
for(auto&& x : c) f(x);
}