Boost logo

Boost :

Subject: Re: [boost] [Filesystem] error including filesystem v3 with icpc -std=c++0x
From: Beman Dawes (bdawes_at_[hidden])
Date: 2011-04-18 22:01:27


On Mon, Apr 18, 2011 at 8:13 PM, Galen Andrew <pupochik_at_[hidden]> wrote:
> Hello,
>
> Including boost/filesystem.hpp is giving me errors using Intel
> compiler in Linux with -std=c++0x that look like
>
> boost/filesystem/v3/operations.hpp(303): error: name followed by "::"
> must be a class or namespace name
>                                          {detail::copy_file(from, to,
> copy_option::fail_if_exists);}
>                                                                       ^
> It compiles fine under g++ icpc.

What happens with the Intel compiler if you don't specify -std=c++0x?
The regression tests are passing for Intel on Linux, but it doesn't
look like any of them specify -std=c++0x

What version of the Intel compiler are you using?

What version of Boost are you using?

>
> There are also a plethora of warnings like
>
> boost/filesystem/v3/operations.hpp(626): warning #279: controlling
> expression is constant
>        BOOST_ASSERT(m_imp.get() && "attempt to dereference end iterator");
>        ^

That one of the problems of the && assert idiom. Now that we've got
BOOST_ASSERT_MSG, it can be used to quiet those warnings. I'll take
care of that.

--Beman


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk