1234567891011121314151617181920212223242526272829303132333435363738 |
- #pragma once
- #include "../Global.h"
- #include <boost/crc.hpp>
- #include <boost/date_time/posix_time/posix_time_types.hpp> //no i/o just types
- #include <boost/random/linear_congruential.hpp>
- #include <boost/random/mersenne_twister.hpp>
- #include <boost/random/variate_generator.hpp>
- #include <boost/system/system_error.hpp>
- template<class T, class F>
- inline const T * dynamic_ptr_cast(const F * ptr)
- {
- #ifndef __APPLE__
- return dynamic_cast<const T*>(ptr);
- #else
- if (!strcmp(typeid(*ptr).name(), typeid(T).name()))
- {
- return static_cast<const T*>(ptr);
- }
- return nullptr;
- #endif
- }
- template<class T, class F>
- inline T * dynamic_ptr_cast(F * ptr)
- {
- #ifndef __APPLE__
- return dynamic_cast<T*>(ptr);
- #else
- if (!strcmp(typeid(*ptr).name(), typeid(T).name()))
- {
- return static_cast<T*>(ptr);
- }
- return nullptr;
- #endif
- }
|