关于g++的##

C++语言 码拜 5年前 (2016-05-08) 479次浏览
#define _STATIC_ASSERT_IMPL_(arg) static_assert ((arg) ,"static_assert failed : " ## #arg)
#define _STATIC_ASSERT_(...) _STATIC_ASSERT_IMPL_ (__VA_ARGS__)

本人定义了一个宏,这个在VS上是没有问题的
而g++上报error: pasting “”static_assert failed : “” and “”(CSC::LENGTH (sizeof (TYPE))) == (CSC::LENGTH (sizeof (_ARG)))”” does not give a valid preprocessing token
怎么让g++对这方面能像VS一样,或C++对字符串常量拼接的标准语法是什么

解决方案

10

不需要用 ##

"a" "b" // 等同于 "ab"

10

多加一层括号

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明关于g++的##
喜欢 (0)
[1034331897@qq.com]
分享 (0)