![]() |
От: | Аноним | |
Дата: | 18.02.08 09:31 | ||
Оценка: |
template <typename T>
class base
{
T m_tData;
public:
void BaseFoo(void) const { }
};
template <typename FinalClass>
class impl
{
typedef FinalClass final_class;
public:
void Foo(void) const
{ static_cast<const final_class*>(this)->BaseFoo(); }
void Foo(void)
{ static_cast<final_class*>(this)->BaseFoo(); }
};
template <typename T>
class final
: public base<T>
, public impl< final<T> >
{
};
Чем порочна такая практика разработки дизайна? Говорит ли стандарт об этом что-нибудь?