Re: Are clang++ and libc++ compatible?

From: David Chisnall <theraven_at_FreeBSD.org>
Date: Tue, 12 Nov 2013 16:38:17 +0000
On 12 Nov 2013, at 16:32, Steve Kargl <sgk_at_troutmask.apl.washington.edu> wrote:

> Trying to build news/pan with clang++ dies with
> 
> 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 = sizeof(value_type) < 256 ? 4...
> 
> 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
Received on Tue Nov 12 2013 - 15:38:28 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:40:44 UTC