W dokumencie Propozycje zmiennych V ++ C++ 0x Link znajduje się przykład klasy, która obsługuje dowolną liczbę wymiarów. Skopiowałem to poniżej:Szablony wielowymiarowe Tablica wielowymiarowa
template<typename T, unsigned PrimaryDimension, unsigned... Dimensions>
class array { /* implementation */ };
array<double, 3, 3> rotation matrix; // 3x3 rotation matrix
Niestety nie ma wdrożenia. Ponieważ jestem stosunkowo nowy w szablonach variadic, chciałbym zobaczyć implementację tego kontenera.
Dziękuję każdemu, kto może zapewnić prostą implementację.
Dziękuję za odpowiedź, Faisal. To po prostu niesamowite. Bardzo elegancko. Pytałem głównie dlatego, że mam wielowymiarową bibliotekę rozmiarów o stałym rozmiarze (Link tutaj: http://code.google.com/p/fsma/), która zapewnia cienkie opakowania wokół wbudowanych macierzy 2d i 3d i jest analogiczna do std: :szyk. Zastanawiałem się, jak zaimplementować wersję, która pozwala na dowolną liczbę wymiarów przy użyciu szablonów variadic po przeczytaniu na nich standardowego dokumentu komisji. Nie wiedziałem o sile szablonów variadycznych, dopóki nie przeczytam twojej odpowiedzi! – Ricky65
W komentarzu @ faisal-vali z 2011 r. Do sierpnia 14 r. Nie jestem pewien, co próbujesz zbudować. Czy nie "szablon tablicaX " tłumaczyć na coś takiego jak 'tablicaX ' dany 'długi, 2, 3, 5 'jako parametry. Parametr variadic musi rozwinąć się do listy rozdzielanej przecinkami, której zagnieżdżone granice nie kwalifikują się jako. –
CTMacUser
@CTMacUser Tak, oczywiście, masz rację - mój komentarz jest pozbawiony sensu i powinien zostać dotknięty. –