Boost logo

Boost Users :

Subject: Re: [Boost-users] [TypeErasure] Reference of forward declared type requires complete type
From: Steven Watanabe (watanabesj_at_[hidden])
Date: 2015-09-03 23:36:03


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


Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net