我尝试使用相同的简单代码,其中一个在Android(4.2.2)中,另一个在Ubuntu(15.04)中,但是使用类似的代码我在Ubuntu中出错。另外在Android上运行得很好,但在Ubuntu中甚至不编译。
在没有/ = /语法的情况下初始化并使用/()/ syntax
代码:
int i(1); /// ok
char c('a'); /// ok
float f(4.444); /// ok
double d(4.34343433434); /// ok
char* cs("stack over flow"); /// ok
char I[]("stack over flow"); /// can not initialize by g++ in Ubuntu
Android中的(c4droid):
在Ubuntu中(代码块):
他们都使用g ++编译器
g++ (Ubuntu 4.9.2-10ubuntu13) 4.9.2
Copyright (C) 2014 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
答案 0 :(得分:1)
在标准c ++中,内置数组不能用类似构造函数的调用构造。您应该使用{}
括号。它与模板非常相似。非类型模板参数不能从构造函数推导出来(就像任何模板参数一样)