7 #ifndef TRIGNAVSTRUCTURE_TRIGHOLDERSTRUCTURE
8 #define TRIGNAVSTRUCTURE_TRIGHOLDERSTRUCTURE
29 template<
typename HolderType = BaseHolder>
34 template<
typename HolderType = BaseHolder>
39 template<
typename HolderType = BaseHolder>
41 std::vector<HolderType*>
result;
43 for(
auto& index_holder : clid_indexmap.second){
44 result.push_back(getCastHolder<HolderType>(index_holder.second.get()));
50 template<
typename HolderType = BaseHolder>
52 std::vector<HolderType*>
result;
56 for(
auto& index_holder : lookup_it->second){
57 result.push_back(getCastHolder<HolderType>(index_holder.second.get()));
65 if (stiOrLabel.index() == 0){
66 return std::get<sub_index_type>(stiOrLabel);
72 auto it = lookup_it->second.find(std::get<std::string>(stiOrLabel));
73 if(
it==lookup_it->second.end())
return invalid_sub_index;
80 if (stiOrLabel.index() == 1){
81 return std::get<std::string>(stiOrLabel);
84 std::string invalid_label =
"inavalid_label";
89 auto it = lookup_it->second.find(std::get<sub_index_type>(stiOrLabel));
90 if(
it==lookup_it->second.end())
return invalid_label;
105 auto cast_holder =
dynamic_cast<T*
>(holder);