C ++ перегруженный оператор внутри шаблона (метапрограммирование) - PullRequest
0 голосов
/ 05 апреля 2020

У меня есть следующая простая программа, и я пытаюсь получить доступ к значениям из массива данных класса NVector из шаблона суммы. Как я могу это сделать? В настоящее время я получаю сообщение об ошибке ниже ...

template<class T, int N> class NVector {
    public: T operator [] (int i) const {
        return data[i];
    }

    private: T data[N];
 };

template <class NVector> struct sum {
    enum {RET = NVector[0]};
};

ошибка:

||=== Build: Debug in ACG_11_12 (compiler: GNU GCC Compiler) ===|
expected primary-expression before '[' token|

РЕДАКТИРОВАТЬ:

Я хочу в конечном итоге быть в состоянии сделать: cout << sum< NVector<int,2> >::RET << endl; и получить сумму элементов в данных, но я буду обрабатывать суммирующую часть самостоятельно. Я хочу выяснить, как заставить sum< NVector<int,2> >::RET вернуть элемент из data на данный момент ...

...