Ложные ошибки в Eclipse CDT: boost :: iostreams

У меня есть следующий код в Eclipse CDT (Juno SR1):

#include <fstream>
#include <iostream>

#include <boost/iostreams/filter/gzip.hpp>
#include <boost/iostreams/filtering_streambuf.hpp>
#include <boost/iostreams/copy.hpp>

int main()
{
using namespace std;
namespace io = boost::iostreams;

ifstream file("data.gz", ios_base::in | ios_base::binary);
io::filtering_streambuf<io::input> in;
in.push(io::gzip_decompressor());       // error here
in.push(file);                          // and here
}

g++ 4.7.2 не имеет проблем с кодом. Затмение, однако, жалуется на два in.push() линий. Сообщение об ошибке одинаково в обоих случаях:

Invalid arguments '
Candidates are:
void push(std::basic_streambuf<#10000,#10001> &, ?, ?)
void push(std::basic_istream<#10000,#10001> &, ?, ?)
void push(std::basic_ostream<#10000,#10001> &, ?, ?)
void push(std::basic_iostream<#10000,#10001> &, ?, ?)
void push(const boost::iterator_range<#10000> &, ?, ?)
void push(const boost::iostreams::pipeline<#10000,#10001> &)
void push(const #10000 &, ?, ?, boost::disable_if<boost::iostreams::is_std_io<#10000>,void>::type *)
'

Как я могу исправить или обойти это, чтобы перестать жаловаться CDT?

5

Решение

Я не вижу этой проблемы в Juno SR2, поэтому, возможно, самым простым решением было бы обновить вашу установку Eclipse, предполагая, что все используемые вами плагины совместимы с последней SR.

0

Другие решения

Других решений пока нет …