On Tue, Apr 18, 2017 at 08:24:55PM +0200, Christian Weisgerber wrote:
> I tried to get boost to build with clang, but failed pretty miserably
> because I don't know what I'm doing.
> 
> If anybody wants to look into this, here's what I got:
> * Configure with --with-toolset=clang
> * Fix boost_has_nl_types_h.ipp, from upstream.
> * Some haphazard changes to clang-linux.jam, patterned after those
>   to gcc.jam.  Likely incomplete.
> 
> I got stumped at the first non-trivial problem:
> 
> ./boost/type_traits/is_convertible.hpp:86:63: error: too many arguments 
> provided to function-like macro invocation
>       static decltype(test_aux<To1>(boost::declval<From1>()), one()) 
> test(int);
>                                                               ^
> /usr/include/c++/v1/__config:673:11: note: macro 'decltype' defined here
> #  define decltype(__x) __decltype(__x)
>           ^
> 
> As far as I can google, decltype(a, b) is valid, but it fails due
> to our macro.  FreeBSD somehow doesn't run into this, but I don't
> know why.

decltype is a built-in starting in C++11.

What you have here is compatibility glue happening before C++11.

Reply via email to