
Hi Vicente, do you have an estimate for an update of Boost.Chrono which is compatible with the upcoming 1.44 version of boost? I just tried the daily snapshot provided by Beman with the current Chrono zip: * Compilation of Boost.Chrono fails * Boost.Chrono zip contains changes for parts of Boost.Thread Are these still needed/compatible? Also (not related to 1.44, but also 1.41, at least), there are many warnings issued by the compiler. It seems to me that they are somehow related to the constructors of duration, but I haven't been able to figure them out. These also occur when compiling client code. A log file is attached. Generated on Ubuntu-10.4, 64bit, gcc-4.4.3 Regards, Roland PS: Snapshot: http://boost.cowic.de/rc/ (boost-posix-2010-08-02.tar.bz2) Boost.Chrono: http://www.boostpro.com/vault/index.php?&direction=0&order=&directory=System http://svn.boost.org/svn/boost/sandbox/chrono/libs/chrono/doc/html/index.htm.... [...] common.mkdir build/boost/bin.v2/libs/chrono common.mkdir build/boost/bin.v2/libs/chrono/build common.mkdir build/boost/bin.v2/libs/chrono/build/gcc-4.4.3 common.mkdir build/boost/bin.v2/libs/chrono/build/gcc-4.4.3/release common.mkdir build/boost/bin.v2/libs/chrono/build/gcc-4.4.3/release/threading-multi gcc.compile.c++ build/boost/bin.v2/libs/chrono/build/gcc-4.4.3/release/threading-multi/chrono.o In file included from libs/chrono/src/chrono.cpp:40: libs/chrono/src/posix/chrono.cpp: In static member function ‘static boost::chrono::time_point<boost::chrono::system_clock, boost::chrono::duration<long int, boost::ratio<1l, 1000000000l> > > boost::chrono::system_clock::now()’: libs/chrono/src/posix/chrono.cpp:27: error: no matching function for call to ‘boost::system::system_error::system_error(int&, const boost::system::error_category& (&)(), const char [21])’ ./boost/system/system_error.hpp:43: note: candidates are: boost::system::system_error::system_error(int, const boost::system::error_category&, const char*) ./boost/system/system_error.hpp:39: note: boost::system::system_error::system_error(int, const boost::system::error_category&, const std::string&) ./boost/system/system_error.hpp:36: note: boost::system::system_error::system_error(int, const boost::system::error_category&) ./boost/system/system_error.hpp:33: note: boost::system::system_error::system_error(boost::system::error_code, const char*) ./boost/system/system_error.hpp:30: note: boost::system::system_error::system_error(boost::system::error_code, const std::string&) ./boost/system/system_error.hpp:27: note: boost::system::system_error::system_error(boost::system::error_code) ./boost/system/system_error.hpp:25: note: boost::system::system_error::system_error(const boost::system::system_error&) libs/chrono/src/posix/chrono.cpp:31: warning: suggest parentheses around ‘&&’ within ‘||’ In file included from ./boost/type_traits.hpp:42, from ./boost/ratio.hpp:38, from ./boost/chrono/chrono.hpp:73, from libs/chrono/src/chrono.cpp:14: ./boost/type_traits/is_convertible.hpp: At global scope: ./boost/type_traits/is_convertible.hpp: In instantiation of ‘const bool boost::detail::is_convertible_basic_impl<boost::chrono::duration<long int, boost::ratio<1l, 1000000000l> >&, boost::chrono::duration<long int, boost::ratio<1l, 1000000000l> > >::value’: ./boost/type_traits/is_convertible.hpp:295: instantiated from ‘const bool boost::detail::is_convertible_impl<boost::chrono::duration<long int, boost::ratio<1l, 1000000000l> >, boost::chrono::duration<long int, boost::ratio<1l, 1000000000l> > >::value’ ./boost/type_traits/is_convertible.hpp:418: instantiated from ‘boost::is_convertible<boost::chrono::duration<long int, boost::ratio<1l, 1000000000l> >, boost::chrono::duration<long int, boost::ratio<1l, 1000000000l> > >’ ./boost/utility/enable_if.hpp:36: instantiated from ‘boost::enable_if<boost::is_convertible<boost::chrono::duration<long int, boost::ratio<1l, 1000000000l> >, boost::chrono::duration<long int, boost::ratio<1l, 1000000000l> > >, void>’ libs/chrono/src/posix/chrono.cpp:31: instantiated from here ./boost/type_traits/is_convertible.hpp:136: warning: suggest parentheses around ‘&&’ within ‘||’ ./boost/type_traits/is_convertible.hpp: In instantiation of ‘const bool boost::detail::is_convertible_basic_impl<boost::chrono::duration<long int, boost::ratio<1l, 1000000000l> >&, boost::chrono::duration<long int, boost::ratio<1l, 1000000000l> > >::value’: ./boost/type_traits/is_convertible.hpp:295: instantiated from ‘const bool boost::detail::is_convertible_impl<boost::chrono::duration<long int, boost::ratio<1l, 1000000000l> >, boost::chrono::duration<long int, boost::ratio<1l, 1000000000l> > >::value’ ./boost/type_traits/is_convertible.hpp:418: instantiated from ‘boost::is_convertible<boost::chrono::duration<long int, boost::ratio<1l, 1000000000l> >, boost::chrono::duration<long int, boost::ratio<1l, 1000000000l> > >’ ./boost/utility/enable_if.hpp:36: instantiated from ‘boost::enable_if<boost::is_convertible<boost::chrono::duration<long int, boost::ratio<1l, 1000000000l> >, boost::chrono::duration<long int, boost::ratio<1l, 1000000000l> > >, void>’ libs/chrono/src/posix/chrono.cpp:31: instantiated from here ./boost/type_traits/is_convertible.hpp:136: warning: initializing argument 1 of ‘static boost::type_traits::yes_type boost::detail::checker<T>::_m_check(T, int) [with T = boost::chrono::duration<long int, boost::ratio<1l, 1000000000l> >]’ In file included from libs/chrono/src/chrono.cpp:14: ./boost/chrono/chrono.hpp: In copy constructor ‘boost::chrono::time_point<boost::chrono::system_clock, boost::chrono::duration<long int, boost::ratio<1l, 1000000000l> > >::time_point(const boost::chrono::time_point<boost::chrono::system_clock, boost::chrono::duration<long int, boost::ratio<1l, 1000000000l> > >&)’: ./boost/chrono/chrono.hpp:838: warning: suggest parentheses around ‘&&’ within ‘||’ ./boost/chrono/chrono.hpp:838: warning: suggest parentheses around ‘&&’ within ‘||’ In file included from libs/chrono/src/chrono.cpp:40: libs/chrono/src/posix/chrono.cpp: In static member function ‘static boost::chrono::time_point<boost::chrono::system_clock, boost::chrono::duration<long int, boost::ratio<1l, 1000000000l> > > boost::chrono::system_clock::now()’: libs/chrono/src/posix/chrono.cpp:31: note: synthesized method ‘boost::chrono::time_point<boost::chrono::system_clock, boost::chrono::duration<long int, boost::ratio<1l, 1000000000l> > >::time_point(const boost::chrono::time_point<boost::chrono::system_clock, boost::chrono::duration<long int, boost::ratio<1l, 1000000000l> > >&)’ first required here libs/chrono/src/posix/chrono.cpp: In static member function ‘static boost::chrono::time_point<boost::chrono::system_clock, boost::chrono::duration<long int, boost::ratio<1l, 1000000000l> > > boost::chrono::system_clock::now(boost::system::error_code&)’: libs/chrono/src/posix/chrono.cpp:39: error: no matching function for call to ‘boost::system::error_code::assign(int&, const boost::system::error_category& (&)())’ ./boost/system/error_code.hpp:326: note: candidates are: void boost::system::error_code::assign(int, const boost::system::error_category&) libs/chrono/src/posix/chrono.cpp:45: warning: suggest parentheses around ‘&&’ within ‘||’ libs/chrono/src/posix/chrono.cpp: In static member function ‘static boost::chrono::time_point<boost::chrono::system_clock, boost::chrono::duration<long int, boost::ratio<1l, 1000000000l> > > boost::chrono::system_clock::from_time_t(time_t)’: libs/chrono/src/posix/chrono.cpp:55: warning: suggest parentheses around ‘&&’ within ‘||’ libs/chrono/src/posix/chrono.cpp: In static member function ‘static boost::chrono::time_point<boost::chrono::monotonic_clock, boost::chrono::duration<long int, boost::ratio<1l, 1000000000l> > > boost::chrono::monotonic_clock::now()’: libs/chrono/src/posix/chrono.cpp:66: error: no matching function for call to ‘boost::system::system_error::system_error(int&, const boost::system::error_category& (&)(), const char [24])’ ./boost/system/system_error.hpp:43: note: candidates are: boost::system::system_error::system_error(int, const boost::system::error_category&, const char*) ./boost/system/system_error.hpp:39: note: boost::system::system_error::system_error(int, const boost::system::error_category&, const std::string&) ./boost/system/system_error.hpp:36: note: boost::system::system_error::system_error(int, const boost::system::error_category&) ./boost/system/system_error.hpp:33: note: boost::system::system_error::system_error(boost::system::error_code, const char*) ./boost/system/system_error.hpp:30: note: boost::system::system_error::system_error(boost::system::error_code, const std::string&) ./boost/system/system_error.hpp:27: note: boost::system::system_error::system_error(boost::system::error_code) ./boost/system/system_error.hpp:25: note: boost::system::system_error::system_error(const boost::system::system_error&) libs/chrono/src/posix/chrono.cpp:70: warning: suggest parentheses around ‘&&’ within ‘||’ In file included from libs/chrono/src/chrono.cpp:14: ./boost/chrono/chrono.hpp: In copy constructor ‘boost::chrono::time_point<boost::chrono::monotonic_clock, boost::chrono::duration<long int, boost::ratio<1l, 1000000000l> > >::time_point(const boost::chrono::time_point<boost::chrono::monotonic_clock, boost::chrono::duration<long int, boost::ratio<1l, 1000000000l> > >&)’: ./boost/chrono/chrono.hpp:838: warning: suggest parentheses around ‘&&’ within ‘||’ ./boost/chrono/chrono.hpp:838: warning: suggest parentheses around ‘&&’ within ‘||’ In file included from libs/chrono/src/chrono.cpp:40: libs/chrono/src/posix/chrono.cpp: In static member function ‘static boost::chrono::time_point<boost::chrono::monotonic_clock, boost::chrono::duration<long int, boost::ratio<1l, 1000000000l> > > boost::chrono::monotonic_clock::now()’: libs/chrono/src/posix/chrono.cpp:70: note: synthesized method ‘boost::chrono::time_point<boost::chrono::monotonic_clock, boost::chrono::duration<long int, boost::ratio<1l, 1000000000l> > >::time_point(const boost::chrono::time_point<boost::chrono::monotonic_clock, boost::chrono::duration<long int, boost::ratio<1l, 1000000000l> > >&)’ first required here libs/chrono/src/posix/chrono.cpp: In static member function ‘static boost::chrono::time_point<boost::chrono::monotonic_clock, boost::chrono::duration<long int, boost::ratio<1l, 1000000000l> > > boost::chrono::monotonic_clock::now(boost::system::error_code&)’: libs/chrono/src/posix/chrono.cpp:78: error: no matching function for call to ‘boost::system::error_code::assign(int&, const boost::system::error_category& (&)())’ ./boost/system/error_code.hpp:326: note: candidates are: void boost::system::error_code::assign(int, const boost::system::error_category&) libs/chrono/src/posix/chrono.cpp:84: warning: suggest parentheses around ‘&&’ within ‘||’ In file included from libs/chrono/src/chrono.cpp:14: ./boost/chrono/chrono.hpp: In constructor ‘boost::chrono::time_point<Clock, Duration>::time_point(const Duration&) [with Clock = boost::chrono::system_clock, Duration = boost::chrono::duration<long int, boost::ratio<1l, 1000000000l> >]’: libs/chrono/src/posix/chrono.cpp:31: instantiated from here ./boost/chrono/chrono.hpp:851: warning: suggest parentheses around ‘&&’ within ‘||’ libs/chrono/src/posix/chrono.cpp:31: instantiated from here ./boost/chrono/chrono.hpp:851: warning: suggest parentheses around ‘&&’ within ‘||’ ./boost/chrono/chrono.hpp: In constructor ‘boost::chrono::time_point<Clock, Duration>::time_point() [with Clock = boost::chrono::system_clock, Duration = boost::chrono::duration<long int, boost::ratio<1l, 1000000000l> >]’: libs/chrono/src/posix/chrono.cpp:40: instantiated from here ./boost/chrono/chrono.hpp:850: warning: suggest parentheses around ‘&&’ within ‘||’ libs/chrono/src/posix/chrono.cpp:40: instantiated from here ./boost/chrono/chrono.hpp:850: warning: suggest parentheses around ‘&&’ within ‘||’ ./boost/chrono/chrono.hpp: In member function ‘Duration boost::chrono::time_point<Clock, Duration>::time_since_epoch() const [with Clock = boost::chrono::system_clock, Duration = boost::chrono::duration<long int, boost::ratio<1l, 1000000000l> >]’: libs/chrono/src/posix/chrono.cpp:50: instantiated from here ./boost/chrono/chrono.hpp:864: warning: suggest parentheses around ‘&&’ within ‘||’ ./boost/chrono/chrono.hpp: In constructor ‘boost::chrono::time_point<Clock, Duration>::time_point(const Duration&) [with Clock = boost::chrono::monotonic_clock, Duration = boost::chrono::duration<long int, boost::ratio<1l, 1000000000l> >]’: libs/chrono/src/posix/chrono.cpp:70: instantiated from here ./boost/chrono/chrono.hpp:851: warning: suggest parentheses around ‘&&’ within ‘||’ libs/chrono/src/posix/chrono.cpp:70: instantiated from here ./boost/chrono/chrono.hpp:851: warning: suggest parentheses around ‘&&’ within ‘||’ ./boost/chrono/chrono.hpp: In constructor ‘boost::chrono::time_point<Clock, Duration>::time_point() [with Clock = boost::chrono::monotonic_clock, Duration = boost::chrono::duration<long int, boost::ratio<1l, 1000000000l> >]’: libs/chrono/src/posix/chrono.cpp:79: instantiated from here ./boost/chrono/chrono.hpp:850: warning: suggest parentheses around ‘&&’ within ‘||’ libs/chrono/src/posix/chrono.cpp:79: instantiated from here ./boost/chrono/chrono.hpp:850: warning: suggest parentheses around ‘&&’ within ‘||’ ./boost/chrono/chrono.hpp: In static member function ‘static boost::chrono::duration<Rep, Period> boost::chrono::duration<Rep, Period>::zero() [with Rep = long int, Period = boost::ratio<1l, 1000000000l>]’: ./boost/chrono/chrono.hpp:850: instantiated from ‘boost::chrono::time_point<Clock, Duration>::time_point() [with Clock = boost::chrono::system_clock, Duration = boost::chrono::duration<long int, boost::ratio<1l, 1000000000l> >]’ libs/chrono/src/posix/chrono.cpp:40: instantiated from here ./boost/chrono/chrono.hpp:585: warning: suggest parentheses around ‘&&’ within ‘||’ ./boost/chrono/chrono.hpp:850: instantiated from ‘boost::chrono::time_point<Clock, Duration>::time_point() [with Clock = boost::chrono::system_clock, Duration = boost::chrono::duration<long int, boost::ratio<1l, 1000000000l> >]’ libs/chrono/src/posix/chrono.cpp:40: instantiated from here ./boost/chrono/chrono.hpp:585: warning: suggest parentheses around ‘&&’ within ‘||’ In file included from libs/chrono/src/chrono.cpp:40: ./boost/system/error_code.hpp: At global scope: ./boost/system/error_code.hpp:214: warning: ‘boost::system::posix_category’ defined but not used ./boost/system/error_code.hpp:215: warning: ‘boost::system::errno_ecat’ defined but not used ./boost/system/error_code.hpp:216: warning: ‘boost::system::native_ecat’ defined but not used "g++" -ftemplate-depth-128 -O3 -finline-functions -Wno-inline -Wall -pthread -fPIC -DBOOST_ALL_DYN_LINK=1 -DBOOST_ALL_NO_LIB=1 -DBOOST_CHRONO_USES_STATIC_ASSERT -DBOOST_RATIO_USES_STATIC_ASSERT -DBOOST_SYSTEM_DYN_LINK=1 -DNDEBUG -I"." -c -o "build/boost/bin.v2/libs/chrono/build/gcc-4.4.3/release/threading-multi/chrono.o" "libs/chrono/src/chrono.cpp" ...failed gcc.compile.c++ build/boost/bin.v2/libs/chrono/build/gcc-4.4.3/release/threading-multi/chrono.o... ...failed updating 1 target... ...updated 328 targets...