2009-08-30 16:31:54 +04:00
|
|
|
/*
|
|
|
|
* Copyright 2007, Haiku, Inc. All Rights Reserved.
|
|
|
|
* Distributed under the terms of the MIT License.
|
|
|
|
*/
|
2005-10-29 20:27:43 +04:00
|
|
|
#ifndef _CLASS_INFO_H
|
|
|
|
#define _CLASS_INFO_H
|
|
|
|
|
|
|
|
|
2009-08-30 16:31:54 +04:00
|
|
|
#include <typeinfo>
|
2005-10-29 20:27:43 +04:00
|
|
|
|
|
|
|
|
2009-08-30 16:31:54 +04:00
|
|
|
// deprecated, use standard RTTI calls instead
|
|
|
|
// TODO: maybe get rid of this header completely?
|
|
|
|
|
|
|
|
#define class_name(object) \
|
|
|
|
((typeid(*(object))).name())
|
|
|
|
#define cast_as(object, class) \
|
|
|
|
(dynamic_cast<class*>(object))
|
|
|
|
#define is_kind_of(object, class) \
|
|
|
|
(dynamic_cast<class*>(object) != NULL)
|
|
|
|
#define is_instance_of(object, class) \
|
|
|
|
(typeid(*(object)) == typeid(class))
|
2005-10-29 20:27:43 +04:00
|
|
|
|
2009-08-30 16:31:54 +04:00
|
|
|
#endif // _CLASS_INFO_H
|