2013-11-26 57 views
1

我看起来有点成埃里克Nieblers范围库https://github.com/ericniebler/range-v3/和有(/include/range/v3/utility/concepts.hpp,线36),我发现的形式第二范围

constexpr struct valid_expr_t 
{ 
    template<typename ...T> 
    true_ operator()(T &&...) const; 
} valid_expr {}; 

的代码我对valid_expr后的第二个作用域/大括号感到困惑。整个结构的意义是什么?这甚至是一个结构定义?在C++ 98中语法似乎不允许。什么可以进入这些第二对大括号?

回答

4

这是C++ 11 uniform initialization syntax,它只是初始化valid_expr对象。

这就像做

struct valid_expr_t 
{ 
    template<typename ...T> 
    true_ operator()(T &&...) const; 
}; 

constexpr valid_expr_t valid_expr {}; 
相关问题