复合文字是标准C ++吗?

劳拉·阿特金斯(Lorah Attkins)

复合文字是C99构建体。即使我可以在C ++中做到这一点:

#include <iostream>
using namespace std;

int main() {
    for (auto i : (float[2]) {2.7, 3.1}) cout << i << endl;
}

例如,似乎MSVC支持它作为扩展但是,我可以投入使用的所有编译器都可以编译上述代码。

那么,此功能在C ++ 14中可用吗?是否有一个不同的标准术语(在我看来,这就像使用支撑初始化创建一个临时目录一样)?


旁注:“复合文字”(或上面我所说的任何东西)是包扩展上下文(仅提及功能)

沙菲克·雅格慕(Shafik Yaghmour)

这是gccclang支持的扩展gcc文件说:

作为扩展,GCC在C90模式和C ++中支持复合文字,尽管C ++中的语义有些不同。

如果使用-pedantic进行构建,则应收到警告,例如clang说(实时查看):

警告:复合文字是C99特定的功能[-Wc99-extensions]

请注意,C ++中的语义差异不是很小,并且在C99中具有良好定义的代码在具有以下扩展名的C ++中可能具有未定义的行为:

在C ++中,复合文字指定了一个临时对象,该对象仅生存到其完整表达式的结尾。结果,定义良好的C语言代码(使用复合文字的子对象的地址)可能无法在C ++中定义。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

文字是标准术语的对象吗?

来自分类Dev

C ++ / CLI是标准ISO C ++的扩展吗?

来自分类Dev

复合文字会删除以前的任何字段吗?

来自分类Dev

复合文字会删除以前的任何字段吗?

来自分类Dev

C ++标准定义了术语“方法”吗?

来自分类Dev

视觉c ++ std :: isfinite()标准符合吗?

来自分类Dev

可以在标准C中处理中断吗?

来自分类Dev

标准C中的“ asm宏”部分吗?

来自分类Dev

Xcode 6.1.1是C ++的ISO标准吗?

来自分类Dev

结构复制是标准的吗?

来自分类Dev

git 消息是标准的吗?

来自分类Dev

在C#名称中使用非标准英文字符是一种不好的做法吗?

来自分类Dev

Elasticsearch有复合索引吗?

来自分类Dev

可以从C例程调用随机C ++ 2011标准函数吗?

来自分类Dev

C标准库中的函数可以在C ++中使用吗?

来自分类Dev

对象可以从标准C ++容器中擦除自身吗?

来自分类Dev

以后可以在C ++中更改地图的排序标准吗?

来自分类Dev

C ++标准库必须支持对朋友是谁的挑剔类吗?

来自分类Dev

是在构造函数C ++标准中修改const吗?

来自分类Dev

C ++ 21是下一个标准吗?

来自分类Dev

MSVC13RC仍然不遵守C标准吗?

来自分类Dev

根据C标准,Windows上的fprintf,fputs ...函数合法吗?

来自分类Dev

C标准库线程中的函数安全吗?

来自分类Dev

在C ++中是int [pointer-to-array]-标准吗?

来自分类Dev

C ++ #include查找有任何标准要求吗?

来自分类Dev

可以轮询标准C ++ iostream操纵器的状态吗?

来自分类Dev

MSVC13RC仍然不遵守C标准吗?

来自分类Dev

C标准库线程中的函数安全吗?

来自分类Dev

在c ++ 11标准下,“ array”是关键字吗?

Related 相关文章

热门标签

归档