Składnia dla specjalizacji zagnieżdżonej klasy szablonów

Próbuję znaleźć poprawną składnię dla jawnej specjalizacji zagnieżdżonej klasy szablonu. Poniższy kod lepiej ilustruje:

struct Column_Major;
struct Row_Major;

template<size_t rows, size_t cols, typename T, typename Allocator>
class Matrix
{

    /* bunch of members */
    template <typename storage = Column_Major>
    class Iterator
    {
        /* bunch of members */
    };
};

Chciałbym napisać specjalizację dlatemplate <> class Matrix<...>::Iterator<Row_Major, ale składnia mi umyka. Podejrzewam, że nie jest możliwe wyraźne wyspecjalizowanie klasy Iteratora bez wyraźnej specjalizacji klasy zawierającej Matrix. Ale byłbym bardzo szczęśliwy, gdyby był na to sposób.

ja wiem jamógłby uczynić klasę Iterator oddzielną klasą, a nie członkiem klasy Matrix, ale posiadanie klas zagnieżdżonych jako takich pozwala mi na pełny dostęp do parametrów szablonu i elementów danych klasy Matrix, co upraszcza rzeczy. Wiem, że mogę to obejść, jeśli będę potrzebować, ale najpierw chciałbym zbadać i zrozumieć możliwości zagnieżdżonego podejścia.

Dzięki, Shmuel

questionAnswers(3)

yourAnswerToTheQuestion