Skip to content
  • Richard Smith's avatar
    Ugly ugly hack for libstdc++-4.6 and libstdc++-4.7 compatibility. These · 2ddcbab8
    Richard Smith authored
    libraries have an incorrect definition of std::common_type (inherited from a
    bug in the standard -- see LWG issue 2141), whereby they produce reference
    types when they should not.
    
    If we instantiate a typedef named std::common_type<...>::type, which is defined
    in a system header as decltype(... ? ... : ...), and the decltype produces a
    reference type, convert it to the non-reference type. (This doesn't affect any
    LWG2141-conforming implementation of common_type, such as libc++'s, because the
    default implementation of common_type<...>::type isn't supposed to produce a
    reference type.)
    
    This is horrible. I'm really sorry. :( Better ideas appreciated!
    
    llvm-svn: 166455
    2ddcbab8
Loading