Всем привет.
Возможен ли такой статический assert, который внутри шаблонного класса будет проверять, наследуется ли класс, передаваемый параметром T от SomeBaseClass?
template <class T>
class MyClass
{
BOOST_STATIC_ASSERT(some_expr_here) // какое выражение здесь?
};
[/code]
И следующий вопрос:
есть метод этого шаблонного класса
[ccode]
template <class T>
void MyClass<T>::someMethod(T* ptr)
{
BOOST_STATIC_ASSERT(убедиться_в_том_что_ptr_указатель_на_объект_а_не_указатель_на_указатель_etc)
}
Вообще буду благодарен за линк на сэмплы по static assertions
И практикует ли вообще all данные проверки?
Здравствуйте, be_cool, Вы писали:
_>Всем привет.
_>Возможен ли такой статический assert, который внутри шаблонного класса будет проверять, наследуется ли класс, передаваемый параметром T от SomeBaseClass?
здесь
Смотри is_base_of и is_pointer
Здравствуйте, be_cool, Вы писали:
_>Всем привет.
_>Возможен ли такой статический assert, который внутри шаблонного класса будет проверять, наследуется ли класс, передаваемый параметром T от SomeBaseClass?
_>_>template <class T>
_>class MyClass
_>{
_> BOOST_STATIC_ASSERT(some_expr_here) // какое выражение здесь?
_>};
_>
boost::is_base_of<SomeBaseClass, T>
_>И следующий вопрос:
_>есть метод этого шаблонного класса
_>_>template <class T>
_>void MyClass<T>::someMethod(T* ptr)
_>{
_> BOOST_STATIC_ASSERT(убедиться_в_том_что_ptr_указатель_на_объект_а_не_указатель_на_указатель_etc)
_>}
_>
boost::is_pointer<T>
все в boost/type_traits
http://www.boost.org/doc/html/boost_typetraits/reference.html
_>И практикует ли вообще all данные проверки?
Насчет all не уверен, но я точно использую