我在撰写boost::spirit::qi
规则时偶然发现了这一点。我写了一个不正确的规则声明,我通过添加括号来修复。在我看来,我不知道为什么会有所作为。
char
和char()
之间的区别是什么?
这是一个最小的例子,显示了它的相关性。
测试A
和B
是等效的。测试C
编译但测试失败。
测试D
已注释掉,不会使用以下消息进行编译:{{1}}。 (类型稍微复杂一点,错误是C2440: 'static_cast' : cannot convert from 'skipper_type' to 'char'
)
测试示例仅用于说明C2664
与char
的使用有何区别。我的问题是两者之间的区别是什么。
char()
答案 0 :(得分:5)
char()
是一个没有参数的函数类型,返回char
。
char
是表示字符的默认类型。
当然,这只是在预期类型的情况下。其他情况不同,例如char a = char();
值初始化a
。