gpt4 book ai didi

c++ - static_assert 如果声明了类型

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:15:32 28 4
gpt4 key购买 nike

在 c++11 中,如果声明了类型,是否有可能导致 static_assert 失败。声明是指前向声明还是完全定义。

目的是在已经声明或尚未声明的情况下通过指示性消息使编译失败。

除了一个聪明的技巧,我完全希望涉及到一些中间的类似 type_traits 的模板,这还不是标准的一部分。

最佳答案

如果代码中的给定点不存在某个类型,则您无法在那里引用它。为了引用它,你必须声明它。但是你不知道它的任何使用都指的是哪个声明。有效断言它不存在的唯一可能性就是以与先前声明冲突的方式声明或定义它,例如像这样:

struct Type;    // Earlier declaration.

// Whatever, then:
using Type = struct Unique_temporary_name*; // "Type" must not exist.

关于c++ - static_assert 如果声明了类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34170047/

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