【问题标题】:Why does g++ accept a reference type with missing underlying type?为什么 g++ 接受缺少基础类型的引用类型?
【发布时间】:2017-09-06 16:51:51
【问题描述】:

我的意思是向一个类添加一个复制构造函数,但忘记添加类型。 g++ 5.4.0 编译成功。

这是一个 g++ 5.4.0 成功编译和构建的最小程序。

struct Foo
{ 
   Foo(const&) {}
   Foo() {}
};

int main()
{
   Foo f1;
   Foo f2 = f1;
}

为什么 g++ 不将Foo(const&) {} 报告为错误?

【问题讨论】:

  • 我在想可能是隐式 int 但I can't reproduce on Wandbox 请提供一个活生生的例子。
  • @ShafikYaghmour,ideone.com 不允许我选择编译器版本。允许您这样做的网站上的任何指针?
  • 是的,我评论中的链接转到了 Wandbox。
  • @ShafikYaghmour 这确实很奇怪。我的安装中一定还有其他东西。这是显示我发布的终端的图像。 imgur.com/5BIGluy.

标签: c++ c++11 g++


【解决方案1】:

这似乎是我安装 g++ 5.4.0 的缺陷。

https://ideone.com/D0vGrw 使用 g++ 6.3 编译失败。

我使用了相同的代码块。

struct Foo
{ 
   Foo(const&) {}
   Foo() {}
};

int main()
{
   Foo f1;
   Foo f2 = f1;
}

它也无法在Wandbox 使用 g++ 5.4.0 进行编译。

【讨论】:

    猜你喜欢
    • 2014-10-01
    • 2012-06-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-27
    • 2012-05-31
    • 1970-01-01
    相关资源
    最近更新 更多