ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/deliantra/dclient/include/adt/rtti_util.h
Revision: 1.1
Committed: Sun Oct 17 08:14:45 2010 UTC (13 years, 8 months ago) by sf-pippijn
Content type: text/plain
Branch: MAIN
CVS Tags: HEAD
Log Message:
initial import

File Contents

# Content
1 #pragma once
2
3 #include <typeinfo>
4
5 bool is_integral (std::type_info const &ti);
6 bool is_signed (std::type_info const &ti);
7 bool is_floating_point (std::type_info const &ti);
8
9 template<typename T>
10 T runtime_cast (void const *ptr, std::type_info const &ti);
11
12 template<> inline char runtime_cast (void const *ptr, std::type_info const &ti) { return runtime_cast< signed long> (ptr, ti); }
13 template<> inline signed char runtime_cast (void const *ptr, std::type_info const &ti) { return runtime_cast< signed long> (ptr, ti); }
14 template<> inline unsigned char runtime_cast (void const *ptr, std::type_info const &ti) { return runtime_cast<unsigned long> (ptr, ti); }
15 template<> inline signed short runtime_cast (void const *ptr, std::type_info const &ti) { return runtime_cast< signed long> (ptr, ti); }
16 template<> inline unsigned short runtime_cast (void const *ptr, std::type_info const &ti) { return runtime_cast<unsigned long> (ptr, ti); }
17 template<> inline signed int runtime_cast (void const *ptr, std::type_info const &ti) { return runtime_cast< signed long> (ptr, ti); }
18 template<> inline unsigned int runtime_cast (void const *ptr, std::type_info const &ti) { return runtime_cast<unsigned long> (ptr, ti); }