Opened 9 years ago

#9538 new Bugs

BOOST_PROTO_USE_NORMAL_RESULT_OF incorrectly defined

Reported by: Hui Li <Hui.Li@…> Owned by: Eric Niebler
Milestone: To Be Determined Component: proto
Version: Boost 1.55.0 Severity: Problem
Keywords: Cc:

Description

In proto/proto_fwd.hpp, based on how the macro BOOST_PROTO_USE_NORMAL_RESULT_OF is used, it's meant to be defined when the compiler supports c++11 decltype and implements N3276, for example, BOOST_PROTO_RESULT_OF is boost::result_of when BOOST_PROTO_USE_NORMAL_RESULT_OF is defined.

However, its definition seems incorrect, and is inconsistent with the comments next to it.

#ifdef BOOST_NO_CXX11_DECLTYPE_N3276
^^^^^^ this should be #ifndef 

# // Proto can only use the decltype-based result_of if N3276 has been
# // implemented by the compiler.
# // See http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2011/n3276.pdf
# ifndef BOOST_PROTO_USE_NORMAL_RESULT_OF
#  define BOOST_PROTO_USE_NORMAL_RESULT_OF
# endif
#endif

Change History (0)

Note: See TracTickets for help on using tickets.