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

From: Dimitry Andric <dim_at_FreeBSD.org>
Date: Tue, 12 Nov 2013 18:37:39 +0100
On 12 Nov 2013, at 17:54, Steve Kargl <sgk_at_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


Received on Tue Nov 12 2013 - 16:38:00 UTC

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