Boost logo

Boost :

Subject: Re: [boost] [typeof][scope_exit] VS2017 and option /permissive-
From: Peter Dimov (lists_at_[hidden])
Date: 2017-04-15 13:05:30

Daniela Engert wrote:
> I've implemented a possible solution and created two pull-requests:
> -

I think that a more principled solution here would be to check
!defined(BOOST_NO_CXX11_DECLTYPE) at the very start of typeof.hpp (if
BOOST_TYPEOF_EMULATION is not defined) and then use a generic decltype-based
implementation. Something like

-#if defined(__COMO__)

+# endif
+#elif defined(__COMO__)

(which would also require the inclusion of <boost/config.hpp>)

and then

#elif defined(BOOST_TYPEOF_NATIVE)
# define BOOST_TYPEOF_TEXT "using native typeof"
# include <boost/typeof/message.hpp>

-# include <boost/typeof/native.hpp>

+# if !defined(BOOST_NO_CXX11_DECLTYPE)
+# include <boost/typeof/decltype.hpp>
+# else
+# include <boost/typeof/native.hpp>
+# endif

where decltype.hpp is more or less the same as the suggested
msvc/typeof_impl_decltype.hpp, but without ensure_obj (shouldn't be needed
with decltype) and with remove_cv_ref instead of remove_reference.

Except that we don't have remove_cv_ref in TypeTraits, so

Boost list run by bdawes at, gregod at, cpdaniel at, john at