水木社区手机版
首页
|版面-C++程序设计语言(CPlusPlus)|
新版wap站已上线
返回
1/1
|
转到
主题:有没有人实现过这样的assert
楼主
|
allegro
|
2022-02-09 17:14:42
|
只看此ID
int a = 1; int b = 2; my_assert(a + b == 5, a, b, a + b);
输出:
assertion failed: a + b == 5, a: 1, b: 2, a + b: 3
我看了一圈,能做到的最多是:
assertion failed: a + b == 5, [0]: 1, [1]: 2, [2]: 3
--
FROM 158.140.1.*
1楼
|
allegro
|
2022-02-09 17:22:09
|
只看此ID
参数不一定都是整数,但也只限常见的int float string等即足够用了。
--
FROM 73.162.73.*
2楼
|
GoGoRoger
|
2022-02-10 09:47:20
|
只看此ID
自己设计个宏试试呗
【 在 allegro 的大作中提到: 】
: 参数不一定都是整数,但也只限常见的int float string等即足够用了。
: --
发自「今日水木 on M2007J17C」
--
FROM 36.112.184.*
3楼
|
foliver
|
2022-02-10 10:13:46
|
只看此ID
利用宏#
见图片。
【 在 allegro 的大作中提到: 】
: [code=c]
: int a = 1;
: int b = 2;
: ...................
--
FROM 140.206.195.*
4楼
|
allegro
|
2022-02-11 00:35:36
|
只看此ID
麻烦的就是这个,多参数自行扩展怎么弄。
你的意思大概是把1~N个参数都提前定义出来,多于N的不支持?
【 在 foliver 的大作中提到: 】
: 利用宏#
: 见图片。
: [upload=1][/upload]
--
FROM 158.140.1.*
5楼
|
KillnCov
|
2022-02-11 05:50:25
|
只看此ID
自己定义1到16还不够用?linux内核大量类似的代码。
【 在 allegro 的大作中提到: 】
: 麻烦的就是这个,多参数自行扩展怎么弄。
: 你的意思大概是把1~N个参数都提前定义出来,多于N的不支持?
:
: ...................
--来自微水木3.5.11
--
FROM 140.206.195.*
6楼
|
GoGoRoger
|
2022-02-11 08:44:25
|
只看此ID
惨惨惨,学习了
【 在 KillnCov 的大作中提到: 】
: 自己定义1到16还不够用?linux内核大量类似的代码。
: 【 在 allegro 的大作中提到: 】
: : 麻烦的就是这个,多参数自行扩展怎么弄。
: ...................
--
FROM 36.112.184.*
7楼
|
z16166
|
2022-02-11 08:51:05
|
只看此ID
C++的变参宏和变参模板,就是搞这种的
--
FROM 114.245.195.*
8楼
|
leslin
|
2022-02-11 09:56:27
|
只看此ID
【 在 z16166 的大作中提到: 】
: C++的变参宏和变参模板,就是搞这种的
把每个参数的值都打印出来可以,楼主给了个例子。
但把可变参数部分每个参数都字符串化,怎么有什么办法吗?
一个变通的方式可以是 my_assert(a+b==5)(a)(b)(c),这个折腾一下可以
--
FROM 103.3.120.*
9楼
|
z16166
|
2022-02-11 11:59:20
|
只看此ID
试试这个答案里的BOOST_PP_SEQ_FOR_EACH()的那个(有几个,其中一个干净点)
这个链接直接指向的那个答案也可以试试
https://stackoverflow.com/a/13459454/2806862
https://blog.csdn.net/hyh19962008/article/details/121885988
【 在 leslin 的大作中提到: 】
:
: 把每个参数的值都打印出来可以,楼主给了个例子。
: 但把可变参数部分每个参数都字符串化,怎么有什么办法吗?
: ...................
--
修改:z16166 FROM 114.245.195.*
FROM 114.245.195.*
1/1
|
转到
选择讨论区
首页
|
分区
|
热推
BYR-Team
©
2010.
KBS Dev-Team
©
2011
登录完整版