http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58910

            Bug ID: 58910
           Summary: std::Tuple_impl is non constexpr when using identical
                    userdefined structs as type
           Product: gcc
           Version: 4.9.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: Gaetano.Checinski at googlemail dot com

Following code does not compile with gcc-snapshot(2013-10-21) :

#include <tuple>
using namespace std;
struct t1{ constexpr t1(){} };
struct t2{ constexpr t2(){} };


int main()
{
 constexpr t1 T1;
 constexpr t2 T2;
 constexpr tuple<t1,t2> Tup1(T1,T2);
 constexpr tuple<t1,t1> Tup2(T1,T1);
 constexpr auto a=get<0>(Tup1 ); //works fine
 constexpr auto b=get<0>(Tup2 ); // error: 
//'(const std::_Head_base<0ul, t1, true>*)(& Tup2)' 
//is not a constant expression constexpr auto b=get<0>(Tup2 );

return 0;
}

Reply via email to