Boost C++ Libraries: Ticket #3681: Comeau throws "no operator==" and "no suitable conversion" errors https://svn.boost.org/trac10/ticket/3681 <p> Building Boost.Filesystem library using Comeau C/C++ frontend with GCC 4.3.3 on Linux 32-bit (Ubuntu 9.03) compilation of <em>filesystem/src/operations.cpp</em> reports missing equal-to operators for some POSIX-related types: </p> <pre class="wiki">como-linux.compile.c++ ../../../bin.v2/libs/filesystem/build/como-linux/debug/link-static/operations.o Comeau C/C++ 4.3.10.1 (May 7 2008 12:23:21) for LINUX_INTEL_ELF_Beta Copyright 1988-2008 Comeau Computing. All rights reserved. MODE:non-strict warnings C++ noC++0x_extensions "../../../libs/filesystem/src/operations.cpp", line 1027: error: no operator "==" matches these operands operand types are: __off64_t == int : path_stat.st_size == 0 ); ^ "../../../libs/filesystem/src/operations.cpp", line 1041: error: no operator "==" matches these operands operand types are: __dev_t == __dev_t s1.st_dev == s2.st_dev ^ "../../../libs/filesystem/src/operations.cpp", line 1042: error: no operator "==" matches these operands operand types are: __ino64_t == __ino64_t &amp;&amp; s1.st_ino == s2.st_ino ^ "../../../libs/filesystem/src/operations.cpp", line 1046: error: no operator "==" matches these operands operand types are: __off64_t == __off64_t &amp;&amp; s1.st_size == s2.st_size ^ </pre><p> Also, <em>no suitable conversion</em> errors are thrown for the same source code: </p> <pre class="wiki">"../../../libs/filesystem/src/operations.cpp", line 1059: error: no suitable conversion function from "__off64_t" to "boost::uintmax_t" exists static_cast&lt;boost::uintmax_t&gt;(path_stat.st_size) ); ^ "../../../libs/filesystem/src/operations.cpp", line 1077: error: no suitable conversion function from "__fsblkcnt64_t" to "boost::uintmax_t" exists = static_cast&lt;boost::uintmax_t&gt;(vfs.f_blocks) * BOOST_STATVFS_F_FRSIZE; ^ "../../../libs/filesystem/src/operations.cpp", line 1079: error: no suitable conversion function from "__fsblkcnt64_t" to "boost::uintmax_t" exists = static_cast&lt;boost::uintmax_t&gt;(vfs.f_bfree) * BOOST_STATVFS_F_FRSIZE; ^ "../../../libs/filesystem/src/operations.cpp", line 1081: error: no suitable conversion function from "__fsblkcnt64_t" to "boost::uintmax_t" exists = static_cast&lt;boost::uintmax_t&gt;(vfs.f_bavail) * BOOST_STATVFS_F_FRSIZE; ^ "../../../libs/filesystem/src/operations.cpp", line 1317: error: argument of type "dirent *" is incompatible with parameter of type "dirent64 *" { return ::readdir_r( dirp, entry, result ); } ^ "../../../libs/filesystem/src/operations.cpp", line 1317: error: argument of type "dirent **" is incompatible with parameter of type "dirent64 **" { return ::readdir_r( dirp, entry, result ); } ^ "../../../libs/filesystem/src/operations.cpp", line 1322: error: a value of type "dirent64 *" cannot be assigned to an entity of type "dirent *" if ( (p = ::readdir( dirp )) == 0 ) ^ </pre><p> Here is complete <em>como</em> command: </p> <pre class="wiki">como -tused -c --long_long -DBOOST_ALL_NO_LIB=1 -DBOOST_All_STATIC_LINK=1 -DBOOST_SYSTEM_STATIC_LINK=1 -D_GNU_SOURCE=1 --no_inlining -O0 -g --exceptions -I"../../.." -o "../../../bin.v2/libs/filesystem/build/como-linux/debug/link-static/operations.o" "../../../libs/filesystem/src/operations.cpp" </pre> en-us Boost C++ Libraries /htdocs/site/boost.png https://svn.boost.org/trac10/ticket/3681 Trac 1.4.3 Beman Dawes Mon, 06 Dec 2010 21:16:21 GMT status changed; resolution set https://svn.boost.org/trac10/ticket/3681#comment:1 https://svn.boost.org/trac10/ticket/3681#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">wontfix</span> </li> </ul> <p> I'm closing this as "wontfix" since the Comeau compiler is not one compilers being regression tested regularly. Much filesystem code is platform dependent, so if an error is platform specific, it is just too difficult to trouble shoot unless that platform is being tested regularly. </p> <p> Sorry, </p> <p> --Beman </p> Ticket