gpt4 book ai didi

c++ - 为什么可以在std::array中将char初始化为nullptr,而不是单独将其初始化?

转载 作者:行者123 更新时间:2023-12-01 15:12:59 25 4
gpt4 key购买 nike

这段代码无法编译(使用gcc 9.3)...

int main() {
char bar = nullptr; //error: cannot convert ‘std::nullptr_t’ to ‘char’ in initialization
}

但是这段代码 会编译 ...
#include <array>
int main() {
std::array<char, 1> foo = {nullptr}; // foo[0] == char(0), why?
}

为什么有区别?

最佳答案

Why can char be initialized to nullptr in a std::array



不可以所示程序是C++格式的。

格式错误的程序编译时,通常有两种可能性:
  • 这是语言扩展。
  • 这是一个编译器错误。

  • 在这种情况下,我认为是后者。该错误在GCC 9中重现,但似乎已在GCC 10中修复。

    关于c++ - 为什么可以在std::array中将char初始化为nullptr,而不是单独将其初始化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62013280/

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