Files
geant4/source/analysis/include/tools/safe_cast
T
2016-06-09 16:46:55 +02:00

34 lines
674 B
Plaintext

// Copyright (C) 2010, Guy Barrand. All rights reserved.
// See the file tools.license for terms.
#ifndef tools_safe_cast
#define tools_safe_cast
namespace tools {
template <class FROM,class TO>
inline TO* cast(FROM& a_o) {
return (TO*)a_o.cast(TO::s_class());
}
template <class FROM,class TO>
inline const TO* cast(const FROM& a_o) {
return (const TO*)a_o.cast(TO::s_class());
}
typedef unsigned short cid; //in typedefs ?
template <class FROM,class TO>
inline TO* id_cast(FROM& a_o) {
return (TO*)a_o.cast(TO::id_class());
}
template <class FROM,class TO>
inline const TO* id_cast(const FROM& a_o) {
return (const TO*)a_o.cast(TO::id_class());
}
}
#endif