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, 9 months ago) by sf-pippijn
Content type: text/plain
Branch: MAIN
CVS Tags: HEAD
Log Message:
initial import

File Contents

# User Rev Content
1 sf-pippijn 1.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); }