|
Boost : |
From: Joshua Peterson (petersonjm1_at_[hidden])
Date: 2008-08-25 10:12:20
> It seems that Boost.FileSystem does not implement some methods accepting
>> wpath arguments when compiled with GCC 3.4.3 on Linux. This occurs
>> because
>> BOOST_FILESYSTEM_NARROW_ONLY is defined, which according to the comment in
>> the code occurs for "badly broken compilers or libraries".
>>
>
> Something is amiss. IIRC, BOOST_FILESYSTEM_NARROW_ONLY should only be
> defined for GCC on Windows/Cygwin, which doesn't have wide character
> support. Don't all modern versions of GCC on Linux support wide characters?
>
> Could you please check to see if BOOST_FILESYSTEM_NARROW_ONLY really is
> being defined?
>
>
Well, after a bit more investigation, it seems that the
boost::filesystem::detail::copy_file_api(const std::wstring & from, const
std::wstring & to) is not only behind BOOST_FILESYSTEM_NARROW_ONLY, but is
also behind BOOST_WINDOWS_API, so it is explicitly only available on
Windows.
So I was incorrect, BOOST_FILESYSTEM_NARROW_ONLY is not defined for GCC
3.4.3, as I do get the wide character path manipulation methods. However,
it is that Windows API define that prevents the above copy_file_api
definition from being used.
Josh
-- Rejoice always. Pray without ceasing. In all circumstances give thanks, for this is the will of God for you in Christ Jesus. -- 1 Thes. 5:16-18 NAB -- I am the living bread that came down from heaven; whoever eats this bread will live forever; and the bread that I will give is my flesh for the life of the world. -- John 6:51 NAB
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk