Files
geant4/source/analysis/include/tools/safe_cast
T
2016-06-09 17:01:34 +02:00

34 lines
645 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
#include "cid"
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());
}
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