10 #ifndef stk_mesh_Property_hpp
11 #define stk_mesh_Property_hpp
18 #include <stk_util/environment/ReportHandler.hpp>
20 #include <stk_mesh/base/Types.hpp>
21 #include <stk_mesh/base/MetaData.hpp>
22 #include <stk_mesh/base/PropertyBase.hpp>
34 std::ostream & operator << ( std::ostream & ,
const PropertyBase & );
37 std::ostream &
print( std::ostream & ,
38 const char *
const ,
const PropertyBase & );
41 template<
typename property_type >
43 const typename property_type::data_type *
46 const PropertyBase & prop_base = dynamic_cast< const PropertyBase & > (prop);
47 const MetaData * prop_meta_data = & MetaData::get(prop_base);
48 const MetaData * part_meta_data = & MetaData::get(part);
49 ThrowRequireMsg( prop_meta_data == part_meta_data,
50 "MetaData mismatch between property and part" );
55 template<
typename property_type >
57 typename property_type::data_type *
60 const PropertyBase & prop_base = dynamic_cast< const PropertyBase & > (prop);
61 const MetaData * prop_meta_data = & MetaData::get(prop_base);
62 const MetaData * part_meta_data = & MetaData::get(part);
63 ThrowRequireMsg( prop_meta_data == part_meta_data,
64 "MetaData mismatch between property and part" );