Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 12 Nov 2013 18:37:39 +0100
From:      Dimitry Andric <dim@FreeBSD.org>
To:        Steve Kargl <sgk@troutmask.apl.washington.edu>
Cc:        freebsd-current@FreeBSD.org, David Chisnall <theraven@FreeBSD.org>
Subject:   Re: Are clang++ and libc++ compatible?
Message-ID:  <E0FE40D9-726C-4501-B31A-3622510C1C68@FreeBSD.org>
In-Reply-To: <20131112165422.GA2939@troutmask.apl.washington.edu>
References:  <20131112163219.GA2834@troutmask.apl.washington.edu> <77CB2B92-216A-4C80-B033-7E582B5F0DFC@FreeBSD.org> <20131112165422.GA2939@troutmask.apl.washington.edu>

index | next in thread | previous in thread | raw e-mail

[-- Attachment #1 --]
On 12 Nov 2013, at 17:54, Steve Kargl <sgk@troutmask.apl.washington.edu> wrote:
...
> namespace pan
> {
>  class Log
>  {
>    public:
>      enum Severity {
>        PAN_SEVERITY_INFO = 1,
>        PAN_SEVERITY_ERROR = 2,
>        PAN_SEVERITY_URGENT = (1<<10)
>      };
> 
>      struct Entry {
>        time_t date;
>        Severity severity;
>        std::deque<Entry> messages;
>        std::string message;
>        bool is_child;
>        Entry() : is_child(false) { }
>      };

I think the problem is that the code tries to use std::deque<Entry> as a
member of struct Entry, before it is completely defined.  This is not
allowed by the standard, although some libraries (e.g. GNU libstdc++)
apparently permit it for some container types.

You could try to work around it with -fdelayed-template-parsing, but I
am not sure if it will help.  Alternatively, compile the code with
libstdc++, or rewrite it to conform. :-)

-Dimitry


[-- Attachment #2 --]
-----BEGIN PGP SIGNATURE-----
Version: GnuPG/MacGPG2 v2.0.22 (Darwin)

iEYEARECAAYFAlKCZ2oACgkQsF6jCi4glqOBiQCg/HJ9zP7erIqE0yLAZ1N6UR7j
ZNoAn0mG05UT9+8uKBZJBljupGe25Grm
=ZDEJ
-----END PGP SIGNATURE-----
help

Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?E0FE40D9-726C-4501-B31A-3622510C1C68>