LINUX.ORG.RU

История изменений

Исправление fsb4000, (текущая версия) :

Я бы сделал так.

template <typename t, size_t dim>
struct carray_base{
/*...*/
        template <typename num>
	inline t& operator[](num i){
                if constexpr (dim == 1) {
		    return data[(size_t)i];
                } else {
                   /* реализация dim != 1 */
                }               
	}
/*...*/
};

Исправление fsb4000, :

Я бы сделал так.

template <typename t, size_t dim>
struct carray_base{
/*...*/
        template <typename num>
	inline t& operator[](num i){
                if constexpr (dim == 1) {
		    return data[(size_t)i];
                } else {
                   /* реализация dim > 1 */
                }               
	}
/*...*/
};

Исходная версия fsb4000, :

Я бы сделал так.

template <typename t, size_t dim>
struct carray_base{
/*...*/
template <typename num>
	inline t& operator[](num i){
                if constexpr (dim == 1) {
		    return data[(size_t)i];
                } else {
                   /* реализация dim > 1 */
                }               
	}
/*...*/
};