gpt4 book ai didi

c++ - 在类型实例化期间强制触发 static_assert

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

如何在这个给定的类中强制使用 static_assert:

template < int I >
struct foo
{
static_assert( I < 5 ,"I must be smaller than 5!" );
};

当我实例化模板时触发 no 当我实例化结果类型时:

int main()
{
typedef foo< 5 > t; // compiles
t tt; // will not compile
}

最佳答案

一个建议

template <int I>
struct foo_guard {
static_assert(I < 5, "I must be smaller than 5!");
typedef void type;
};
template < int I, typename = typename foo_guard<I>::type>
struct foo
{
};

关于c++ - 在类型实例化期间强制触发 static_assert,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29521466/

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