#include <iostream>
#include <string>
#include <initializer_list>
using namespace std;
template<typename T>
class TestClass
{
private:
struct element
{
T data;
element* ptr;
explicit element(T val) : data(val), ptr (nullptr) {}
};
element entity;
public:
T foo(int);
void fee(const TestClass&);
element* faa(T, bool order = true);
explicit TestClass(T p1);
~TestClass() {}
};
template<typename T>
TestClass<T>::TestClass(T val)
{
// code
}
template<typename T>
TestClass<T>::element* TestClass<T>::faa(T val, bool order)
{
//blah blah blah
}
template<typename T>
T TestClass<T>::foo(int val)
{
// code
}
template<typename T>
void TestClass<T>::fee(const TestClass& rhs)
{
//code
}
int main()
{
return 0;
}