Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/124.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++ std::string::data()不会返回字符*_C++_Stl_C++17 - Fatal编程技术网

C++ std::string::data()不会返回字符*

C++ std::string::data()不会返回字符*,c++,stl,c++17,C++,Stl,C++17,由于我未能编译以下程序,我想知道: GCC 6.3.0尚未实现C++17功能图*std::string::data; 我的代码不符合C++17。 根据,由于C++17,此函数可以返回指向用作字符存储的底层数组的非常量指针 密码 输出 演示 根据,您正在寻找的功能是在libstdc++版本7中实现的。它被列为给定“std::string”一个非常量“data”成员函数,建议 类似地,列出了在libc++版本3.9中实现的相同方案。根据,您正在寻找的功能在libstdc++版本7中实现。它被列为给定

由于我未能编译以下程序,我想知道:

GCC 6.3.0尚未实现C++17功能图*std::string::data; 我的代码不符合C++17。 根据,由于C++17,此函数可以返回指向用作字符存储的底层数组的非常量指针

密码 输出 演示 根据,您正在寻找的功能是在libstdc++版本7中实现的。它被列为给定“std::string”一个非常量“data”成员函数,建议

类似地,列出了在libc++版本3.9中实现的相同方案。

根据,您正在寻找的功能在libstdc++版本7中实现。它被列为给定“std::string”一个非常量“data”成员函数,建议



同样,列出了与LBC+++版本3.9中实现的相同的建议。

对于精通C++语言、标准和GCC的人来说,找到GCC C++支持矩阵不应该太大的问题,在我投票支持关闭这个问题的时候,因为这个帖子的原因还不清楚,当然OP可以找到支持矩阵本身吗?我很好奇,不是想成为一个混蛋,这和String *操作符不同吗?@谢尔盖亚,我不太精通C++语言。我不知道GCC C++支持矩阵。但是无论如何,谢谢。“JonathanWakely Grady MeTun-i使用Stand(0)而不是Stru.DATA。对于精通C++方言、标准和GCC的人来说,找到GCC C++支持矩阵不应该太大的问题。在我投票支持关闭这个问题的时候,因为这个帖子的原因还不清楚,当然OP可以找到支持矩阵本身吗?我很好奇,不是想成为一个混蛋,这和String *操作符不同吗?@谢尔盖亚,我不太精通C++语言。我不知道GCC C++支持矩阵。不过还是要谢谢你。@JonathanWakely Grady的意思是——我想应该用&str[0]而不是str.data。@SergeyA:如果你认为这个问题不好,就否决这个问题。我同意了。但糟糕的答案为糟糕的问题提供了支持性的反馈回路,因此为了摆脱第一个问题,还必须惩罚第二个问题。@SergeyA我做了,但问题仍然是正面排名的-仅仅因为你没有发现它是一个好问题并不意味着其他人没有。仅仅因为你觉得这个问题没有用并不意味着你应该投赞成票answers@GillBates等等,是的,这是填鸭式的,是的,答案是可以在几秒钟内通过“gcc C++17支持状态”查询得到的。是的,我希望堆栈溢出不会变成LMGFY服务,是的,我会行使我的选项,允许我向下投票/VTC问题,这是谷歌查询,是的,我会对这些问题的答案投反对票,因为这些问题似乎只是因为他们得到了答案才被听到。@GillBates我必须同意SergeyA,至少在这个问题上是这样。这个问题不好。OP并没有亲自去寻找答案,尽管他自己说答案是GCC6.3.0,因为还没有实现C++17特性图*std::string::data;他甚至没有去寻找它。我仍然不同意否决一个完美的答案。IMHO:这个问题应该以非主题的形式结束:为什么这不是代码working@SergeyA当前位置如果你认为这个问题不好,就投票否决这个问题。是的。但糟糕的答案为糟糕的问题提供了支持性的反馈回路,因此为了摆脱第一个问题,还必须惩罚第二个问题。@SergeyA我做了,但问题仍然是正面排名的-仅仅因为你没有发现它是一个好问题并不意味着其他人没有。仅仅因为你觉得这个问题没有用并不意味着你应该投赞成票answers@GillBates等等,是的,这是填鸭式的,是的,答案是可以在几秒钟内通过“gcc C++17支持状态”查询得到的。是的,我希望堆栈溢出不会变成LMGFY服务,是的,我会行使我的选项,允许我向下投票/VTC问题,这是谷歌查询,是的,我会对这些问题的答案投反对票,因为这些问题似乎只是因为他们得到了答案才被听到。@GillBates我必须同意SergeyA,至少在这个问题上是这样。这个问题不好。OP并没有亲自去寻找答案,尽管他自己说答案是GCC6.3.0,因为还没有实现C++17特性图*std::string::data;他甚至没有去寻找它。我仍然不同意否决一个完美的答案。IMHO:这个问题应该以Offtopic结束:为什么这个代码不起作用
#include <string>

int main() {
    std::string hello("world");
    char* data = hello.data();
    (void) data;
}
g++ --version ; g++ -std=c++17 -O2 -Wall -Werror main.cpp
g++ (GCC) 6.3.0
Copyright (C) 2016 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.

main.cpp: In function 'int main()':
main.cpp:6:28: error: invalid conversion from 'const char*' to 'char*' [-fpermissive]
     char* data = hello.data();
                  ~~~~~~~~~~^~