-
为什么C11全局和局部静态断言的行为不同?
考虑以下代码: <pre><code>const int g_foo = 1; // (1): _Static_assert(g_foo > 0, "g_foo > 0"); // error: expr -
在类中使用static_assert-怎么样?
我试图简化在编译时检查将一个值转换为新类型是否保留该值的过程。 STL中可能有一些可以帮我实现的 -
为什么在类型转换的nullptr
当我遇到意外情况时,我试图找到一种方法来静态断言派生类指针可以安全地重新解释为指向基类的指 -
如何确保位域的成员在基础类型的相同位置或位域的成员在精确位置
我想知道是否有可能进行编译时检查来验证两个不同位域中的成员是否处于同一位置。确切位置无关紧 -
如何使“ static_assert”打印失败时得到的值?
运行此: <pre class="lang-cpp prettyprint-override"><code>#define STATIC_ASSERT(...) static_assert(__VA_ARGS__, #__VA_ARGS__) t -
如果constexpr在lambda中带有static_assert,哪个编译器正确?
当我们想在<code>static_assert</code>中使用<code>if constexpr</code>时,必须使条件取决于某些模板参数。有趣的 -
如果在constexpr上下文中,如何在assert()和static_assert()之间进行分派?
在C ++ 11 constexpr函数中,不可能使用第二条语句,例如<code>assert()</code>。 <code>static_assert()</code>很好,但 -
函数中std :: initializer_list <T> :: size`上的static_assert
在单元测试中,我想要一种快速(干净的)肮脏的方式从<code>initializer_list</code>向静态大小的C数组分配 -
评估类是否从CRTP-Base派生了模板成员函数
以下情况: <pre><code>PRAGMA EXCEPTION_INIT</code></pre> <a href="https://onlinegdb.com/BkU4IrTBL" rel="nofollow noreferre -
使用C ++ 20概念的static_assert编译时参数检查
我正在编码一个评估二项式系数的函数:<code>binom(N, K)</code> 我想在编译时检查N和K是否均为N> = K -
如何在(* this)
对于某些任务,我没有没有宏就无法摆脱。现在,我想至少添加一些防止滥用的保护措施。 我想< -
C ++名称空间断言
我写了一个模板包装器类,该包装器类只能在某个命名空间中的<em>类型</em>上进行模板化。 在C ++ -
带有模板函数和类的静态断言用法是否专门化?
我一直在使用<code>static_assert</code>和模板类(functor)来实现一些元编程功能。例如 <pre><code>struct trian -
我如何静态断言static_cast也不例外?
我有一个函子来执行从任何类型到特定类型的静态强制转换,这种方式是这样定义的: <pre><code>templa -
是否可以在GCC / GNU C中编写_Static_assert来在编译时验证内存中位字段的布局?
假设我具有以下定义: <pre><code>#include <stdbool.h> #include <stdint.h> #define ASSERT(cond) _Static_assert(c -
如果constexpr格式正确,是否在内部使用了static_assert?
我昨天在<code>static_assert(false, "Some message")</code>的{{1}}子句中使用<code>else</code>时读了几本<a href -
如果定义了枚举常量,如何静态断言?
我有以下C ++ 14代码: <pre><code> let clinics= await clinicRepo.find({ where : [ {status: 1, last_sync_ -
静态区分C ++中的枚举和枚举类?
我有一个事件处理程序类,该类使用模板参数来设置事件类型。我想将这些事件类型强制为一个字节大 -
GCC和Clang在与__builtin_constant_p
我偶然发现GCC和Clang在以下代码的编译方面有所不同: <pre class="lang-cpp prettyprint-override"><code>struct Foo { -
对std :: array的引用大小在编译时不可用
我想知道为什么下面我的代码中的第二个<code>static_assert</code>不起作用。似乎即使数组<code>c</code>是对<cod -
在C ++函数中计算斐波那契并抛出编译时错误
我需要写这个函数fibo。 如果数字太大,则应显示为编译错误(主函数的最后一行) 主要功能应保持原 -
如何static_assert检查功能签名是否正确
<h2>代码</h2> 我有一个<a href="https://en.wikipedia.org/wiki/Observer_pattern" rel="nofollow noreferrer">Observer Pattern</a>之后 -
对于类模板,std :: enable_if优于static_assert有什么优势?
我想知道<a href="https://en.cppreference.com/w/cpp/types/enable_if" rel="nofollow noreferrer"><code>std::enable_if</code></a>与<a hr -
在简单的算术完整性检查中强制C编译错误(加法和减法必须匹配)
<h2>上下文</h2> 想象一下代码的正确性取决于某个值的相加或相减,以便在编译时就可以知道是否应中止 -
伪造constexpr里面的static_assert的最佳方法?
您可能知道static_assert并不关心它是否在constexpr的“活动”分支内(始终“运行”)。 我有一个hack -
C ++:静态断言参数包与函数类型匹配
考虑到函数类型<code>void()</code>,<code>void(int)</code>等...,我们可以<code>static_assert()</code>认为<code>Args&&a -
无法在constexpr对象内的constexpr函数内使用static_assert
我想在编译时检查某些字符串是否在字符串列表中。因此,如果我在主体中使用static_assert,则可以使用 -
C++ 编译时检查一个函数是否在另一个函数之前调用
假设我有一个包含两个成员函数的类。 <pre><code>class Dummy { public: void procedure_1(); void procedure_2(); }; -
缩短重复使用 static_assert 的宏或模板
这个问题对于 <a href="https://stackoverflow.com/questions/1055452/c-get-name-of-type-in-template">C++ Get name of type in template< -
确保 std::map 在编译时具有具体大小的优雅方法
我试图确保 <code>std::map</code> 在编译时与 <code>enum</code> 类具有相同的大小。尽可能避免使用宏。 我