为 integral_constant 添加特化的程序的 C++ 行为是未定义的

问题描述 投票:0回答:0

我不熟悉在 C++ 中使用模板元编程。

我希望能够将整数和类型名的混合传递给可变参数模板。我无法同时指定两者,所以我使用

typename... pack
。然后传递一个
int N
作为
integral_constant<int, N>
.

但是我在 https://en.cppreference.com/w/cpp/types/integral_constant 的文档中注意到它说

The behavior of a program that adds specializations for integral_constant is undefined.

但我也看到了执行此操作的代码,甚至同一文档中的示例代码也是如此。因此,如果我误解了未定义行为警告的含义,我会感到有些困惑。我可以使用上面的模式吗?谁能详细说明一下?

c++ templates metaprogramming template-meta-programming
© www.soinside.com 2019 - 2024. All rights reserved.