ошибка "недопустимое использование неполного типа" с частичной специализацией шаблона
Хотя coppro уже упомянул template два решения, а Anonymous partial-specialization объяснил второе, мне потребовалось c++ некоторое время, чтобы понять template первое. Возможно, следующий partial-specialization код будет полезен тем, кто partial-specialization наткнется на этот сайт, который, как templates и я, по-прежнему занимает cxx высокие позиции в Google. Пример template (передача вектора / массива cpp / отдельного элемента числового c++ T как dataT и последующий cpp доступ к нему через [] или cxx напрямую), конечно, несколько c++ надуманный, но он должен c++ проиллюстрировать, как вы gcc на самом деле можете очень cpp близко подойти к частичной c++ специализации функции-члена, обернув cpp ее. в частично специализированном gcc классе.
/* The following circumvents the impossible partial specialization of
a member function
actualClass::access
as well as the non-nonsensical full specialisation of the possibly
very big actualClass. */
//helper:
template
class specialised{
public:
numericalT& access(dataT& x, const unsigned int index){return x[index];}
};
//partial specialisation:
template
class specialised{
public:
numericalT& access(dataT& x, const unsigned int index){return x;}
};
//your actual class:
template
class actualClass{
private:
dataT x;
specialised accessor;
public:
//... for(int i=0;i
c++
gcc
templates
partial-specialization
ошибка "недопустимое использование неполного типа" с частичной специализацией шаблона
Мы используем файлы cookies для улучшения работы сайта. Оставаясь на нашем сайте, вы соглашаетесь с условиями использования файлов cookies. Чтобы ознакомиться с нашими Положениями о конфиденциальности и об использовании файлов cookie, нажмите здесь.