Boost C++ Libraries: Ticket #3008: Patch for Filesystem / gcc-4.4.0 https://svn.boost.org/trac10/ticket/3008 <p> The Filesystem library fails to compile with gcc-4.4.0: </p> <p> gcc.compile.c++ ../../../bin.v2/libs/filesystem/build/gcc-4.4.0/debug/operations.o In file included from ../../../libs/filesystem/src/operations.cpp:46: /usr/lib/gcc/i686-pc-linux-gnu/4.4.0/../../../../include/c++/4.4.0/tr1_impl/type_traits: In function ‘bool boost::filesystem::is_empty(const boost::filesystem::path&amp;)’: /usr/lib/gcc/i686-pc-linux-gnu/4.4.0/../../../../include/c++/4.4.0/tr1_impl/type_traits:326: error: ‘template&lt;class _Tp&gt; struct std::is_empty’ is not a function, ../../../boost/filesystem/operations.hpp:363: error: conflict with ‘template&lt;class Path&gt; typename boost::enable_if&lt;boost::filesystem::is_basic_path&lt;Path&gt;, bool&gt;::type boost::filesystem::is_empty(const Path&amp;)’ ../../../boost/filesystem/operations.hpp:662: error: in call to ‘is_empty’ /usr/lib/gcc/i686-pc-linux-gnu/4.4.0/../../../../include/c++/4.4.0/tr1_impl/type_traits: In function ‘bool boost::filesystem::is_empty(const boost::filesystem::wpath&amp;)’: /usr/lib/gcc/i686-pc-linux-gnu/4.4.0/../../../../include/c++/4.4.0/tr1_impl/type_traits:326: error: ‘template&lt;class _Tp&gt; struct std::is_empty’ is not a function, ../../../boost/filesystem/operations.hpp:363: error: conflict with ‘template&lt;class Path&gt; typename boost::enable_if&lt;boost::filesystem::is_basic_path&lt;Path&gt;, bool&gt;::type boost::filesystem::is_empty(const Path&amp;)’ ../../../boost/filesystem/operations.hpp:664: error: in call to ‘is_empty’ </p> <p> An easy solution is to fully qualify the function name as this patch does. </p> <p> It might be necessary to fully qualify other similar function calls as well (is_other, is_symlink, ...), as they might conflict in the same way with user defined class templates, I haven't investigated that though. </p> <p> I also had to modify test/path_test.cpp, the calls to next/prior were ambiguous with the new std::next/std::prior. </p> <p> Tests now pass successfully using gcc-4.4.0 in c++0x mode. </p> en-us Boost C++ Libraries /htdocs/site/boost.png https://svn.boost.org/trac10/ticket/3008 Trac 1.4.3 anonymous Sat, 09 May 2009 10:40:51 GMT attachment set https://svn.boost.org/trac10/ticket/3008 https://svn.boost.org/trac10/ticket/3008 <ul> <li><strong>attachment</strong> → <span class="trac-field-new">fs_gcc44.patch</span> </li> </ul> Ticket Beman Dawes Mon, 11 May 2009 19:51:47 GMT status changed; resolution set https://svn.boost.org/trac10/ticket/3008#comment:1 https://svn.boost.org/trac10/ticket/3008#comment:1 <ul> <li><strong>status</strong> <span class="trac-field-old">new</span> → <span class="trac-field-new">closed</span> </li> <li><strong>resolution</strong> → <span class="trac-field-new">fixed</span> </li> </ul> <p> (In <a class="changeset" href="https://svn.boost.org/trac10/changeset/52922" title="Filesystem: fix #3008, improving namespace discipline to avoid naming ...">[52922]</a>) Filesystem: fix <a class="closed ticket" href="https://svn.boost.org/trac10/ticket/3008" title="#3008: Patches: Patch for Filesystem / gcc-4.4.0 (closed: fixed)">#3008</a>, improving namespace discipline to avoid naming conflicts with the C++0x std library. </p> Ticket anonymous Mon, 11 May 2009 19:53:50 GMT <link>https://svn.boost.org/trac10/ticket/3008#comment:2 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/3008#comment:2</guid> <description> <p> Many thanks! Supplying a patch file really helps! </p> <p> --Beman </p> </description> <category>Ticket</category> </item> </channel> </rss>