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);
}