gpt4 book ai didi

c++ - 无法访问私有(private)成员:std::copy

转载 作者:太空宇宙 更新时间:2023-11-04 16:23:53 26 4
gpt4 key购买 nike

我正在尝试使用 std::copy 将 vector 的内容复制到输出文件中。我正在使用以下代码:

void save()
{
std::basic_ofstream<TChar> fo(mFilename.c_str());
std::copy(mContent.begin(), mContent.end(), fo);
}

问题是,我得到这个错误:

错误 2 错误 C2248:“std::basic_ios<_Elem,_Traits>::basic_ios”:无法访问类“std::basic_ios<_Elem,_Traits>”中声明的私有(private)成员 c:\program files (x86)\微软 Visual Studio 8\vc\include\fstream 802

我在 SO 上搜索过这个,每个人似乎在传递参数时不小心使用了复制构造函数。因为我没有传递参数,所以我不确定复制构造函数是如何被触发的(或者它是否被触发)。

附加信息:

TChar 是一个模板字符,通常是 char、int、wchar_t 等类型。在这个调用上下文中,我使用的是 char。

mContent 是一个 TChar 类型的 vector 。

最佳答案

您需要使用 std::ostream_iterator :

void save()
{
std::basic_ofstream<TChar> fo(mFilename.c_str());
std::copy(
mContent.begin(), mContent.end(),
std::ostream_iterator<mContent::value_type>(fo, " "));
}

关于c++ - 无法访问私有(private)成员:std::copy,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14026834/

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