跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • error: invalid conversion from ‘const char*’ to ‘char’ [-fpermissive]
未分類
7 6 月 2020

error: invalid conversion from ‘const char*’ to ‘char’ [-fpermissive]

error: invalid conversion from ‘const char*’ to ‘char’ [-fpermissive]

資深大佬 : XIVN1987 6

《 C++ Crash Course 》上有个例程如下:
“` c++
struct JohanVanDerSmut
{
bool gold = true;
int year_of_smelting_accident{1970};
char key_location[8] = {“x-rated”};
};
“`

我编译后程序报错:
error: invalid conversion from ‘const char*’ to ‘char’ [-fpermissive]
char key_location[8] = {“x-rated”};
^

是编译器版本的问题吗??我用的是 gcc 5.4

大佬有話說 (8)

  • 資深大佬 : wssy

    这段代码应该是没有问题的,得参考下 cppreference 中的 copy-initialization 。
    我看下资料才行。

    你开启 c++11 了吗?

  • 資深大佬 : Chihaya0824

    char key_location[8] = {‘x-rated’};试试?

  • 資深大佬 : Chihaya0824

    @Chihaya0824 RE #2 我傻了()肯定不对的

  • 資深大佬 : wssy

    刚刚看了,这个是 aggregate-initialization 的一种特例,就算 11 以前也是支持的。
    你看看是不是前面某些地方出了些错误,导致后面连着错。。。

  • 資深大佬 : msg7086

    int main() { std::cout << __cplusplus << std::endl; }

    GCC 5.4 = 199711 = C++98

    可以看这里 https://gist.github.com/ax3l/53db9fa8a4f4c21ecc5c4100c0d93c94

  • 主 資深大佬 : XIVN1987

    @msg7086

    我加了 -std=c++14 选项的,,不加这个选项会报下面的警告

    warning: non-static data member initializers only available with -std=c++11 or -std=gnu++11

  • 資深大佬 : msg7086

    @XIVN1987 我用 G++尝试编译了,C++11/14/17/2x 都能过。

    你可以把比较完整的源码贴到 gist,连带你编译的命令一起贴出来看看。

  • 主 資深大佬 : XIVN1987

    @msg7086

    感谢,,用新版编译器编译确实没问题了

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具