' char()'有什么区别?和' char'在c ++中

时间:2016-01-19 14:32:03

标签: c++

我在撰写boost::spirit::qi规则时偶然发现了这一点。我写了一个不正确的规则声明,我通过添加括号来修复。在我看来,我不知道为什么会有所作为。

charchar()之间的区别是什么?

这是一个最小的例子,显示了它的相关性。

测试AB是等效的。测试C编译但测试失败。 测试D已注释掉,不会使用以下消息进行编译:{{1​​}}。 (类型稍微复杂一点,错误是C2440: 'static_cast' : cannot convert from 'skipper_type' to 'char'

测试示例仅用于说明C2664char的使用有何区别。我的问题是两者之间的区别是什么。

char()

1 个答案:

答案 0 :(得分:5)

char()是一个没有参数的函数类型,返回char

char是表示字符的默认类型。

当然,这只是在预期类型的​​情况下。其他情况不同,例如char a = char();值初始化a