匿名枚举来存储常量表达式?

时间:2019-10-04 09:27:47

标签: c++ syntax enums constexpr

我最近在阅读有关模板元编程的文章时遇到了一个陌生的语法。您可以在下面的第一个/其余成语中看到它:

template <typename... Ts>
struct Count;

template <typename First, typename... Rest>
struct Count<First, Rest...> {
    enum: size_t { value = 1 + Count<Rest...>::value };
};

template <>
struct Count<> {
    enum: size_t { value = 0 };
};

作者似乎正在使用某种匿名枚举来存储其常量表达式。为什么要这样做?从技术上讲这是有效的(enum name : type { enumerator = constexpr , enumerator = constexpr , ... }),但是比简单的static constexpr size_t value = ...;有什么优势?

0 个答案:

没有答案
相关问题