-
-
Notifications
You must be signed in to change notification settings - Fork 262
Closed
Labels
bugSomething isn't workingSomething isn't working
Description
struct S;
struct T
{
int S::* s_mptr;
int T::* t_mptr;
static int T::* static_mptr;
template<int S::*> void f();
template<int T::*> void f();
template<int (S::*)()> void f();
template<int (T::*)()> void f();
struct N
{
int S::* s_mptr;
int T::* t_mptr;
int N::* n_mptr;
};
int N::* n_mptr;
};
int T::* T::static_mptr = 0;
template<int T::*> void T::f() {}
template<int (T::*)()> void T::f() {}is transformed into
struct S;
struct T
{
int S::* s_mptr;
int * t_mptr;
static using MemberVarPtr_7 = int *;
MemberVarPtr_7 static_mptr;
template<int S::* >
void f();
template<int * >
void f();
template<int (S::*)() >
void f();
template<int (*)() >
void f();
struct N
{
int S::* s_mptr;
int * t_mptr;
int * n_mptr;
};
int N::* n_mptr;
};
using MemberVarPtr_23 = int T::*;
MemberVarPtr_23 static_mptr = 0;
template<int T::*> void T::f() {}
template<int (T::*)()> void T::f() {}All pointers to members of T (T::N) inside T (T::N) body became ordinary pointers to objects or functions. Out-of-line definitions are OK.
Metadata
Metadata
Assignees
Labels
bugSomething isn't workingSomething isn't working