gpt4 book ai didi

c++ - 施工中的 self 引用

转载 作者:IT老高 更新时间:2023-10-28 22:14:47 26 4
gpt4 key购买 nike

我刚刚发现以下代码可以使用 gcc 5.4 和 Intel 编译器 18.0.2 进行编译。 Clang 6.0.0 只是给出一个警告。

#include <vector>

int main() {
std::vector<double> v = v;

return 0;
}

我的代码中有一个非常相似的错误,我担心这种代码可以编译。我的问题是:

  • 它是合法的 C++ 吗?如果是,它应该做什么?
  • 如何在编译时捕捉那些“错误”?

最佳答案

Is it legal C++? If yes, what is it supposed to do?

这是一个格式良好的程序,但它表现出未定义的行为,因为它读取了一个未初始化的变量。这意味着它的行为没有任何限制(它可以合法地做任何事情)。

How to catch those "bugs" at compile time?

启用足够的警告并使用“将警告视为错误”进行构建。有足够的警告,gcc 5.4 catches it correctly .请注意,对于 gcc,这也需要打开优化,因为 gcc 仅在优化时才进行一些分析(例如未使用的变量)。

关于c++ - 施工中的 self 引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50169232/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com