Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 12 Nov 2013 16:38:17 +0000
From:      David Chisnall <theraven@FreeBSD.org>
To:        Steve Kargl <sgk@troutmask.apl.washington.edu>
Cc:        freebsd-current@FreeBSD.org
Subject:   Re: Are clang++ and libc++ compatible?
Message-ID:  <77CB2B92-216A-4C80-B033-7E582B5F0DFC@FreeBSD.org>
In-Reply-To: <20131112163219.GA2834@troutmask.apl.washington.edu>
References:  <20131112163219.GA2834@troutmask.apl.washington.edu>

next in thread | previous in thread | raw e-mail | index | archive | help
On 12 Nov 2013, at 16:32, Steve Kargl <sgk@troutmask.apl.washington.edu> =
wrote:

> Trying to build news/pan with clang++ dies with
>=20
> gmake[3]: Entering directory =
`/usr/ports/news/pan/work/pan-0.139/pan/general'
>  CXX    file-util.o
> In file included from file-util.cc:38:
> In file included from ./log.h:26:
> /usr/include/c++/v1/deque:907:49: error: invalid application of =
'sizeof' to an
>      incomplete type 'value_type' (aka 'pan::Log::Entry')
>    static const difference_type __block_size =3D sizeof(value_type) < =
256 ? 4...
>=20
> Anyone know how to fix either clang++ or libc++?

The error here does not appear to be in clang or libc++, but in the use =
by the thing that you are compiling.
This is saying that you have tried to create a =
std::dequeu<pan::Log::Entry>, but pan::Log::Entry is a forward =
declaration and so the template instantiation fails.
The fix is to move the definition of pan::Log::Entry such that it is =
visible at the time of its use.

David




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?77CB2B92-216A-4C80-B033-7E582B5F0DFC>