Zagnieżdżone mapy
Ostatnio zmodyfikowano 2020-01-23 18:28
Kinexity Temat założony przez niniejszego użytkownika |
Zagnieżdżone mapy » 2020-01-23 16:25:03 Lepszy od słów będzie fragment kodu, pokazującego ideę tego, co próbuję zrobić: template < typename CurrentType, typename...Types > using nested_maps = std::map < CurrentType, nested_maps < Types >>;
template < typename CurrentType > using nested_maps = CurrentType;
Próbuję osiągnąć mniej więcej to co widać powyżej - szablon, który będzie się rozwijał do serii zagnieżdżonych map wraz z ostatnim typem, który będzie brany jako typ wartości najgłębszej najgłębszej mapy. Jak to prawidłowo osiągnąć? |
|
pekfos |
» 2020-01-23 17:49:27 Możesz zrobić pomocniczą częściową specjalizację struktury: template < typename CurrentType, typename...Types > struct _nested_maps { typedef std::map < CurrentType, typename _nested_maps < Types...>::type > type; };
template < typename CurrentType > struct _nested_maps < CurrentType > { typedef CurrentType type; };
template < typename...Args > using nested_maps = typename _nested_maps < Args...>::type; |
|
Kinexity Temat założony przez niniejszego użytkownika |
» 2020-01-23 18:28:18 Dzięki za pomoc, działa. |
|
« 1 » |