何时类型与C ++中的其他类型兼容?我查看了标准,找不到类型兼容性的定义。
标准(n3690)中的使用示例:第18.10节运行时支持:
如果参数parmN是引用类型,或者是类型 与传递参数时产生的类型不兼容 没有参数,行为未定义。
类型是否简单"兼容"如果它们可以隐含地相互转换,那么它们会相互对立吗?
答案 0 :(得分:1)
C ++没有"兼容类型"的概念。而C呢。
在C中,同一实体的两个声明必须声明兼容类型,而在C ++中,此约束由[basic.link]/10替换:
在对类型进行所有调整(其中typedef被其定义替换)之后,引用给定变量或函数的所有声明指定的类型应该是相同的,除了数组对象的声明可以指定不同的数组类型是否存在主要数组([dcl.array])。违反此规则的类型标识不需要诊断。
您引用的措辞是<cstdarg>
标头的说明,它来自相应的C标头。所以你可以考虑&#34;兼容&#34;这里是C中的相同概念。
答案 1 :(得分:-1)
当RHS变量可以分配给LHS变量时,RHS变量的类型与类型对话相当。 您可以详细了解类型对话 here