Name
TAU_TYPE_STRING — Creates a type string
Synopsis
C++:
TAU_TYPE_STRING( |
variable, | |
type_string) ;
|
string & | variable; |
string & | type_string; |
Description
This macro assigns the string constructed in type_string to the variable. The + operator and the CT macro can be used to construct the type string of an object. This is useful in identifying templates uniquely, as shown below.
Example
C++ :
template<class PLayout> ostream& operator<<(ostream& out, const ParticleBase<PLayout>& P) { TAU_TYPE_STRING(taustr, "ostream (ostream, " + CT(P) + " )"); TAU_PROFILE("operator<<()"taustr, TAU_PARTICLE | TAU_IO); ... }
When PLayout is instantiated with
" UniformCartesian<3U, double>
",this generates the
unique template name:
operator<<() ostream const ParticleBase<UniformCartesian<3U, double> > )
The following example illustrates the usage of the CT macro to extract the name of the class associated with the given object using CT(*this);
template<class PLayout> unsigned ParticleBase<PLayout7>::GetMessage(Message& msg, int node) { TAU_TYPE_STRING(taustr, CT(*this) + "unsigned (Message, int)"); TAU_PROFILE("ParticleBase::GetMessage()", taustr, TAU_PARTICLE); ... }
When PLayout is instantiated with " UniformCartesian<3U,
double>
",this generates the unique template name:
ParticleBase::GetMessage() ParticleBase<UniformCartesian<3U, double> > unsigned (Message, int)