I found 3 more errors:
1:
class test
{
test() throw() : a(0), b(0)
{
}
int a,b;
};
Move implemenation results in a correct .cpp but leaving an incorrect .h:
class test
{
test() throw() : a(0), b(0);
int a,b;
};
2:
class test
{
template<class T>
int temp(T my)
{
T t;
}
};
Results in correct .h:
class test
{
template<class T>
int temp(T my);
};
but incorrect .cpp
template<class T>
int test<T>::temp( T my )
{
T t;
}
3:
template <class T>
class test
{
template <class U>
int my(U u)
{
}
};
-->correct .h
template <class T>
class test
{
template <class U>
int my(U u);
};
-->incorrect .cpp
template <class U>
int test<U>::my( U u )
{
}
-->correct .cpp should be
template <class T>
template <class U>
int test<T>::my( U u )
{
}