我看了一下Eric 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中似乎不允许使用语法。什么可以进入这些第二对括号?
答案 0 :(得分: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 {};