gpt4 book ai didi

c++ - 如何编写代码在 C++ 中进行条件模板实例化

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:58:01 25 4
gpt4 key购买 nike

我正在编写一个在 size_t 上参数化的类模板,

template<size_t k>
class MyClass {...}

在这种情况下,参数 k 确实应该小于 10,如果超出该值,我希望编译失败。我如何在 C++11 及更高版本中做到这一点?

MyClass<1> instance1; // ok
MyClass<2> instance2; // ok
MyClass<100> instance100; // fail to compile

最佳答案

使用static_assert

template<size_t k>
class MyClass {
static_assert(k < 10, "Illegal k");
};

int main() {
MyClass<50> t; //< Compile time failure
}

关于c++ - 如何编写代码在 C++ 中进行条件模板实例化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52105822/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com