问题标签 [static-assert]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
6581 浏览

java - 如何使用 Junit4 获取故障跟踪

在我的 Junit 测试中,我通常使用“AssertEquals”,当测试失败时,跟踪会正确显示在 JUnit/eclipse 的失败跟踪中我想知道如何让这些跟踪显示在文件中?

我如何打印/重定向文件中的断言失败跟踪?谢谢

0 投票
5 回答
29035 浏览

c++ - 使用 static_assert 检查传递给宏的类型

不幸的是,我的库的原始版本遗留了几个宏,这些宏使用了一些非常疯狂的 C。特别是,我有一系列宏,它们期望将某些类型传递给它们。是否可以按照以下方式做一些事情:

如何?有没有聪明的选择?

是的,我知道宏很糟糕。我知道 C++ 不是 C 等等。

更新0

这里是一些相关的代码和源文件。欢迎提出建议。原来的问题保持不变。

0 投票
1 回答
2524 浏览

c++ - static_assert 中的 decltype

为什么类定义中的 this (static_assert) 不起作用?

0 投票
3 回答
507 浏览

c++ - decltype 的另一个问题

使用VS2010。
请参阅上面代码中的 3 条注释。

0 投票
2 回答
1820 浏览

c++ - 如何做一个静态断言指针转换是微不足道的?

假设我有这些类型:

C*可以将指针强制转换为指针A*,而无需调整实际地址。但是当C*被转换为时B*,值必须改变。我想确保我拥有的两种相关类型可以相互转换而不改变地址(即没有多重继承,或者基类是派生类的第一个基类)。这可以在运行时检查,例如像这样

这样可行。但是这些信息在编译时是已知的,所以我正在寻找一种方法来对其进行编译时断言。将上述转换为静态断言的明显方法(例如,用 g++ 4.2 替换assertBOOST_STATIC_ASSERT错误“转换为整数或枚举类型以外的类型不能出现在常量表达式中”。

便携性不是很重要。使用 gcc 扩展或 hacky 模板技巧都可以。

更新:发现之前也问过几乎一样的问题:C++,静态检测不同地址的基类?. 使用offsetof()也是那里唯一有用的建议。

0 投票
1 回答
2781 浏览

c++ - 将字符串文字添加到 static_assert

有没有办法组合 static_assert 将输出的内容?我的意思是:

0 投票
4 回答
804 浏览

c - 如何添加静态断言来检查变量是否为静态?

我有一个宏,它只适用于静态局部变量(因为它使用内联汇编符号来提取有关变量的数据)。我需要一种方法来强制宏的输入确实是静态局部变量:

正确的:

不正确:

我使用 GCC for C(没有 C++)。

0 投票
2 回答
1594 浏览

c++ - 如何测试表达式是否是临时的?

使用以下宏:

问号应该填什么?

0 投票
3 回答
900 浏览

c++ - 在 C++0x 中是否有类似 static_assert 的东西给出警告而不是错误?

对于可能效率低下但不一定不正确的用法,我想这样做。

0 投票
2 回答
472 浏览

c++ - 如何静态检查两个比率是否相等?

我有 4 个 int 常量:

我想静态检查它们是否具有相同的比率。要静态检查,我使用的是BOOST_STATIC_ASSERT,但它不支持表达式。

我试过这个:

但这会产生下一个编译错误:

如何修复上述行以使编译通过?

PS 我无法访问 c++0x 功能和 std::static_assert,这就是我使用 boost 的静态断言的原因。