C++11 结构定义后的第二个作用域

C++11 结构定义后的第二个作用域,c++11,syntax,C++11,Syntax,我查看了Eric Nieblers range库,在那个里(/include/range/v3/utility/concepts.hpp,第36行)我找到了表单代码 constexpr struct valid_expr_t { template<typename ...T> true_ operator()(T &&...) const; } valid_expr {}; constexpr结构有效\u expr\t { 样板 真运算符()(T&…

我查看了Eric Nieblers range库,在那个里(/include/range/v3/utility/concepts.hpp,第36行)我找到了表单代码

constexpr struct valid_expr_t
{
    template<typename ...T>
    true_ operator()(T &&...) const;
} valid_expr {};
constexpr结构有效\u expr\t
{
样板
真运算符()(T&…)常量;
}有效的表达式{};
我对valid_expr之后的第二个作用域/大括号感到困惑。整个结构的意义是什么。这是结构定义吗?这种语法在C++98中似乎是不允许的。第二对大括号中可以包含什么?

是C++11,它只是初始化
有效的expr
对象

就像做

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

constexpr valid_expr_t valid_expr {};
struct-valid\u-expr\t
{
样板
真运算符()(T&…)常量;
};
constexpr valid\u expr\t valid\u expr{};
这是C++11,它只是初始化
有效的expr
对象

就像做

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

constexpr valid_expr_t valid_expr {};
struct-valid\u-expr\t
{
样板
真运算符()(T&…)常量;
};
constexpr valid\u expr\t valid\u expr{};