gcc / g ++中的错误?使用成员初始化列表初始化尚不存在的对象

时间:2018-03-27 14:51:45

标签: c++ gcc g++

在没注意到我的发现后,今天偶然发现了这个。替换vim中的命令...

#include "iostream"

int main()
{    
    int number{number}; // wtf ?
    std::cout << "number=" << number << std::endl;    
}

使用g++ -Wall进行编译会产生警告

main.cpp: In function ‘int main()’:
main.cpp:5:22: warning: ‘number’ is used uninitialized in this function [-Wuninitialized]
     int number{number};

希望如此。

运行程序会产生输出

number=0

这到底是怎么回事?

  • 如何创建变量number并将其初始化为&#34; number&#34; - 一个尚不存在的变量?
  • 这是否会产生未定义的行为?
  • 这是gcc中的错误吗?
  • 这不是因某些技术原因导致的错误*,但也许它应该被认为是你不应该被允许做的事情? (如果语法规则允许这行代码有效,那么可能这应该被视为异常,因此是非法代码?)
  • *如果技术原因:技术原因是什么? gcc如何解释代码行int number{number}

0 个答案:

没有答案