相关疑难解决方法(0)

可以将变量重新声明为推导为相同类型的auto吗?

标准是否允许以下​​内容?

#include <iostream>

extern int a;
auto a = 3;

int main(int, char**)
{
    std::cout << a << std::endl;
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

clang接受代码. g ++抱怨声明冲突.

c++ extern language-lawyer auto c++11

16
推荐指数
1
解决办法
424
查看次数

11
推荐指数
2
解决办法
305
查看次数

c ++:extern with auto无法编译

请考虑以下代码:

#include <vector>
extern std::vector<int> const my_vector;
auto const my_vector = std::vector<int>{};
Run Code Online (Sandbox Code Playgroud)

它无法在gcc上编译,但它自6.0.0起就适用于clang:

[x86-64 gcc 8.1 #1] error: conflicting declaration 'const auto my_vector'
Run Code Online (Sandbox Code Playgroud)

这是gcc错误还是违反了规范?

c++ gcc language-lawyer

8
推荐指数
0
解决办法
66
查看次数

标签 统计

c++ ×3

language-lawyer ×3

auto ×2

c++11 ×1

extern ×1

gcc ×1

variable-declaration ×1