[PATCH] [libc++] In C++11 GNU extension mode,	start emulating libstdc++'s use of constexpr.
    Richard Smith 
    richard at metafoo.co.uk
       
    Tue Nov 26 15:22:59 PST 2013
    
    
  
  I've done no detailed review of the guts of the patch, but I have one high-level question: do we actually want to support a GNU-compatibility mode here, or do we instead want to provide our own extra-`constexpr` extension (in which we intend to mark at least the same set of functions as libstdc++ does)?
  I think the latter makes a lot more sense. I also see no reason to restrict this to things that are already `constexpr` in c++14. So I'm thinking of something like:
    #if defined(_LIBCPP_CONSTEXPR_EXTENSIONS) && __cplusplus >= 201103L
    #define _LIBCPP_CONSTEXPR_AS_EXTENSION constexpr
    #else
    #define _LIBCPP_CONSTEXPR_AS_EXTENSION
    #endif
  ... then ...
    _LIBCPP_CONSTEXPR_AFTER_CXX11
    void f() {...} // constexpr in c++14 mode only
    _LIBCPP_CONSTEXPR_AS_EXTENSION
    int g(); // constexpr in c++11 and c++14 in extensions mode, otherwise not
    _LIBCPP_CONSTEXPR_AFTER_CXX11
    _LIBCPP_CONSTEXPR_AS_EXTENSION
    int h(); // constexpr in c++14, constexpr in c++11 in extensions mode
http://llvm-reviews.chandlerc.com/D2276
    
    
More information about the cfe-commits
mailing list