小编jtl*_*313的帖子

std::integer_sequence 中是否允许枚举值?

此代码使用 GCC 13 和 Clang 17 可以正常编译和执行,但无法在 MSVC 上编译。我想知道代码是否需要按照标准工作,或者这是否是 MSVC 的问题。 演示

#include <utility>
#include <iostream>

enum e : int { A=5, B, C, D };

auto x = std::integer_sequence<e, A, B, C, D>{};
auto y = std::integer_sequence<unsigned, 9, 4, 3, 8>{};
auto z = std::integer_sequence<int, 0, 1, 2, 3>{};

template<typename T, T... ints>
void print_sequence(std::integer_sequence<T, ints...> int_seq)
{
    std::cout << "The sequence of size " << int_seq.size() << ": ";
    ((std::cout << ints << ' '), ...);
    std::cout << …
Run Code Online (Sandbox Code Playgroud)

c++ language-lawyer c++14

22
推荐指数
2
解决办法
1413
查看次数

标签 统计

c++ ×1

c++14 ×1

language-lawyer ×1