1*99451b44SJordan Rupprecht #include <stdio.h> 2*99451b44SJordan Rupprecht 3*99451b44SJordan Rupprecht template <class T> class A 4*99451b44SJordan Rupprecht { 5*99451b44SJordan Rupprecht public: 6*99451b44SJordan Rupprecht void accessMember(T a); 7*99451b44SJordan Rupprecht T accessMemberConst() const; 8*99451b44SJordan Rupprecht static int accessStaticMember(); 9*99451b44SJordan Rupprecht accessMemberInline(T a)10*99451b44SJordan Rupprecht void accessMemberInline(T a) __attribute__ ((always_inline)) 11*99451b44SJordan Rupprecht { 12*99451b44SJordan Rupprecht m_a = a; // breakpoint 4 13*99451b44SJordan Rupprecht } 14*99451b44SJordan Rupprecht 15*99451b44SJordan Rupprecht T m_a; 16*99451b44SJordan Rupprecht static int s_a; 17*99451b44SJordan Rupprecht }; 18*99451b44SJordan Rupprecht 19*99451b44SJordan Rupprecht template <class T> int A<T>::s_a = 5; 20*99451b44SJordan Rupprecht accessMember(T a)21*99451b44SJordan Rupprechttemplate <class T> void A<T>::accessMember(T a) 22*99451b44SJordan Rupprecht { 23*99451b44SJordan Rupprecht m_a = a; // breakpoint 1 24*99451b44SJordan Rupprecht } 25*99451b44SJordan Rupprecht accessMemberConst() const26*99451b44SJordan Rupprechttemplate <class T> T A<T>::accessMemberConst() const 27*99451b44SJordan Rupprecht { 28*99451b44SJordan Rupprecht return m_a; // breakpoint 2 29*99451b44SJordan Rupprecht } 30*99451b44SJordan Rupprecht accessStaticMember()31*99451b44SJordan Rupprechttemplate <class T> int A<T>::accessStaticMember() 32*99451b44SJordan Rupprecht { 33*99451b44SJordan Rupprecht return s_a; // breakpoint 3 34*99451b44SJordan Rupprecht } 35*99451b44SJordan Rupprecht main()36*99451b44SJordan Rupprechtint main() 37*99451b44SJordan Rupprecht { 38*99451b44SJordan Rupprecht A<int> my_a; 39*99451b44SJordan Rupprecht 40*99451b44SJordan Rupprecht my_a.accessMember(3); 41*99451b44SJordan Rupprecht my_a.accessMemberConst(); 42*99451b44SJordan Rupprecht A<int>::accessStaticMember(); 43*99451b44SJordan Rupprecht my_a.accessMemberInline(5); 44*99451b44SJordan Rupprecht } 45