Files
geant4/source/analysis/g4tools/include/tools/safe_cast
T
2016-06-10 11:51:14 +02:00

34 lines
655 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* safe_cast(FROM& a_o) {
return (TO*)a_o.cast(TO::s_class());
}
template <class FROM,class TO>
inline const TO* safe_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