
AMDG On 09/03/2015 09:20 PM, Yuan Yao wrote:
<snip>
struct Type;
BOOST_TYPE_ERASURE_MEMBER((HasTest), Test, 1)
<snip> HasTest<void(Type&)>, <snip> ================================================
However, the compiler (e.g. clang) complains about incomplete type:
================================================ /usr/local/include/boost/type_traits/is_base_and_derived.hpp:228:42: error: incomplete type 'Type' used in type trait expression BOOST_STATIC_CONSTANT(bool, value = (BOOST_IS_BASE_OF(B,D) && ! ::boost::is_same<ncvB,ncvD>::value)); ================================================
Replacing Type& with Type* can fix the problem. Is this a bug?
Probably. Is boost::type_erasure::is_placeholder in the instantiation backtrace? In Christ, Steven Watanabe