#include <iostream>
// inline member function defined inside the class
template <class T>
struct Queue1 {
Queue1(T m) : _m(m){}
T _m;
};
// inline member function defined outside the class
template <class T>
struct Queue2 {
Queue2(T);
T _m;
};
template <class T>
inline Queue2<T>::
Queue2(T m) : _m(m){}
int main() {
Queue1<double> q1(1.2);
std::cout << q1._m << "\n";
Queue2<int> q2(1);
std::cout << q2._m << "\n";
return 0;
}