http://llvm.org/bugs/show_bug.cgi?id=11067

           Summary: constexpr and initialization of static data members in
                    templates
           Product: clang
           Version: trunk
          Platform: PC
        OS/Version: Linux
            Status: NEW
          Severity: normal
          Priority: P
         Component: C++0x
        AssignedTo: [email protected]
        ReportedBy: [email protected]
                CC: [email protected], [email protected]


This may relate this bug report http://llvm.org/bugs/show_bug.cgi?id=4503

The C++11 standard seems to have had a few modification late in the process
related to the initialization of static data members of template classes. Some
discussion of this topic
http://stackoverflow.com/questions/4999241/mixing-use-of-constexpr-and-const,
http://patchwork.ozlabs.org/patch/113305/,
http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2011/n3308.pdf

Anyway I was trying to build using a clang++ built from the trunk as of 140970
on a Linux box "2.6.31-23-server #75-Ubuntu SMP Fri Mar 18 19:23:09 UTC 2011
x86_64 GNU/Linux" in conjunction with trunk GCC 4.7.0 ( although the same issue
appears with 4.6.0 ). This led to errors from the GCC header files because of
constructs like this

template<typename T, T v> struct bar
{
    static constexpr T value = v;
};

template<typename T, T v> constexpr T bar<T,v>::value;

which compiles fine with GCC itself but clang gives 

constexpr.cpp:6:49: error: definition of initialized static data member 'value'
cannot be marked constexpr
template<typename T, T v> constexpr T bar<T,v>::value;

After reading about this for a while I still can't tell if this should be an
error or not. Anyway I believe someone out there is working on constexpr
related stuff and I wanted to make sure this issue was captured. It may be
clang is correct but that makes using clang with a recent GCC standard C++
library pretty impossible.

-- 
Configure bugmail: http://llvm.org/bugs/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.
_______________________________________________
LLVMbugs mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/llvmbugs

Reply via email to