gpt4 book ai didi

c++ - 我不能使用运算符 ""sv 作为 fstream() 的参数吗?

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

#include<iostream>
#include<fstream>

using namespace std::literals;
int main()
{

auto a = "st"sv;
std::ifstream in("test.txt"sv, std::ios::in); //error C2664
std::ifstream in("test.txt"s, std::ios::in);
}
我正在使用视觉工作室。我不能使用 string-view literal ""sv在 fstream 上?还是我必须设置一些东西?

最佳答案

不,你不能。
您不能使用它,因为 std::ifstream 没有 ctor接受 std::string_view ref
并且 std::string_view 之间没有隐式转换s 和类型 if_stream接受,因此您必须使用 staic_cast 进行转换或 std::string 的构造函数

如果您有 std::string_view (lvalue),可以如下使用

#include<iostream>
#include<fstream>

using namespace std::literals;
int main()
{

auto a = "st"sv;
auto file_location = "test.txt"sv;
std::ifstream in(std::string(file_location), std::ios::in);
}
Demo

关于c++ - 我不能使用运算符 ""sv 作为 fstream() 的参数吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66543163/

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