//file name: NoInherit.h
template <class T> class NoInherit_;
template <class T,template<class T> class A >
class NoInherit_< A<T> >
{
private:
friend A<T>;
friend T;
NoInherit_(){}
};
template <class T>
class NoInherit:virtual public NoInherit_< NoInherit< T> >
{
public:
typedef T type;
private:
friend T;
NoInherit():NoInherit_< NoInherit< T> >()
{}
};