Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/138.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 错误:声明‘;数据’;作为引用数组_C++_Arrays_Gcc_Reference_Most Vexing Parse - Fatal编程技术网

C++ 错误:声明‘;数据’;作为引用数组

C++ 错误:声明‘;数据’;作为引用数组,c++,arrays,gcc,reference,most-vexing-parse,C++,Arrays,Gcc,Reference,Most Vexing Parse,C++应用程序代码使用GCC4.1编译良好。现在我将GCC版本升级到了4.4X,我得到了一个错误 error: declaration of ‘data’ as array of references 代码: 编译器不应将此行视为函数声明。在这种情况下,如何应用正确的语法?一个选项是将std::string result(更改为std::string result=std::string((保持行的其余部分不变) 我认为这是一个编译器错误,因为&data[0]+data.size()不能出现在

C++应用程序代码使用GCC4.1编译良好。现在我将GCC版本升级到了4.4X,我得到了一个错误

error: declaration of ‘data’ as array of references
代码:


编译器不应将此行视为函数声明。在这种情况下,如何应用正确的语法?

一个选项是将
std::string result(
更改为
std::string result=std::string(
(保持行的其余部分不变)

我认为这是一个编译器错误,因为
&data[0]+data.size()
不能出现在声明中,但我以前见过(它在解析时过早地错误地将行标记为声明)

这个版本还解决了gcc 8.3中的错误,添加了一组额外的括号:

std::string result ( (base64_enc(&data[0])), base64_enc(&data[0] + data.size()) );
//                   ^                    ^  

您想实现什么?是否通过引用传递数组?它只是将给定的字节序列编码为base64字符串
std::string result(base64_enc(&data[0]),
      base64_enc(&data[0] + data.size()));
std::string result ( (base64_enc(&data[0])), base64_enc(&data[0] + data.size()) );
//                   ^                    ^