CRTP + класс признаков :«тип не назван…»

Я пытаюсь реализовать CRTP с шаблонным классом, и у меня возникает ошибка со следующим примером кода:

#include <iostream>

template<class T> class Traits
{
    public:
        typedef typename T::type type; // <- Error
                                       // : "no type named 'type' in 'class MyClass<double, 3u, 3u>'
        static const unsigned int m_const = T::m_const;
        static const unsigned int n_const = T::n_const;
        static const unsigned int size_const = T::m_const*T::n_const;
};

template<class T0> class Crtp
{
    public:
        typedef typename Traits<T0>::type crtp_type;
        static const unsigned int size = Traits<T0>::size_const; // <- This is OK
};

template<typename TYPE, unsigned int M, unsigned int N>
class MyClass : public Crtp< MyClass<TYPE, M, N> >
{
    public:
        typedef TYPE type;
        static const unsigned int m_const = M;
        static const unsigned int n_const = N;
};

int main()
{
    MyClass<double, 3, 3> x;
    std::cout<<x.size<<std::endl;
    return 0;
}

Я не понимаю, что вызывает эту проблему и как ее исправить.

На самом деле моя цель состоит в том, чтобы класс CRTP знал аргументы шаблона производного класса БЕЗ передачи их в качестве аргумента шаблона класса CRTP.

У вас есть идеи, как это реализовать?

РЕДАКТИРОВАТЬ (, относящуюся к первому первому):Мой класс CRTP должен иметь возможность обрабатывать производные классы с разным количеством параметров шаблона

-. 121 ---1631615- Не удалось загрузить состояние просмотра. Дерево управления, в которое загружается состояние просмотра Я получаю следующее сообщение об ошибке после HTTP POST в форме ASP.NET, размещенной внутри UserControl :Не удалось загрузить состояние представления. Дерево управления, в которое загружается состояние представления, должно...

Я получаю следующее сообщение об ошибке после HTTP POST в форме ASP.NET, размещенной внутри UserControl:

Failed to load viewstate. The control tree into which viewstate is being loaded must match the control tree that was used to save viewstate during the previous request. For example, when adding controls dynamically, the controls added during a post-back must match the type and position of the controls added during the initial request.

Вот дополнительная информация:

  • Я использую.NET 4.5 RC
  • Это веб-сайт на основе Umbraco 4.7 -
  • . На моем локальном компьютере форма работает отлично
  • Эта ошибка возникает только на промежуточном сервере с.NET 4.5 (только ), MSSQL 2012 Express, IIS 7.5, Windows 7 (. Я знаю, что это еще не настоящий сервер, может быть, однажды...)
  • Сервер не является частью веб-фермы (или сада, хотя это не имеет значения )
  • . Пользовательский элемент управления выполняет динамическую визуализацию элементов управления

. Я применил все последние пакеты обновлений. У меня уже закончились идеи! Я даже перезапустил его, а также исполнил ричуал над сервером с песней и специальным танцем, но безрезультатно.

13
задан A-Sharabiani 25 April 2018 в 17:43
поделиться