Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Zagnieżdżone mapy

Ostatnio zmodyfikowano 2020-01-23 18:28
Autor Wiadomość
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ć:
C/C++
template < typename CurrentType, typename...Types >
using nested_maps = std::map < CurrentType, nested_maps < Types >>;

template < typename CurrentType > //specjalizacja przypadku, gdy zostaje jeden typ
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ąć?
P-176115
pekfos
» 2020-01-23 17:49:27
Możesz zrobić pomocniczą częściową specjalizację struktury:
C/C++
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;
P-176116
Kinexity
Temat założony przez niniejszego użytkownika
» 2020-01-23 18:28:18
Dzięki za pomoc, działa.
P-176119
« 1 »
  Strona 1 z 1