繁体   English   中英

没有构造函数 std::istream_iterator 的实例

[英]No instance of constructor std::istream_iterator

我有以下问题。 我想为我的班级创建一个文件构造函数。 我正在使用std::copy算法,但出现这种错误:

No instance of constructor std::istream_iterator ... matches the argument list
error C2440: <function-style-cast> cannot convert from std::ifsteam to std::istream_operator

这是我的构造函数:

CAirport(const char* FileName, const string& name, const int& num)
{
    m_strName = name;
    m_uNum = num;
    ifstream iStream(FileName);

    if(iStream.good())
    {
        copy(istream_iterator<CAirtravel, unsigned>(iStream),
             istream_iterator<CAirtravel, unsigned>(),
             back_inserter(m_mAirtr));
    }
}

的构造std::istream_iterator预计istream_type ,这是一个typedefstd::basic_istream<CharT, Traits>

您正在使用CharT = unsigned int实例化std::istream_iterator ,这不是std::ifstreamchar 为什么要这么做? 完全省略第二个参数,让它默认为char

std::copy(std::istream_iterator<CAirtravel>(iStream),
          std::istream_iterator<CAirtravel>(),
          std::back_inserter(m_mAirtr));

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM