реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> Cpp Шаблонный класс без конструктора
Andreyy
сообщение Dec 18 2012, 13:46
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 40
Регистрация: 29-05-08
Пользователь №: 37 929



имеется шаблонный класс находящийся в одном из хедеров большой библиотеки, Isoaglib, однако в IAR"е(v6.4) он не хочет компилится и требует конструктора по умолчанию, можно ли его откомпилить, без данного требования компилятора? Данная библиотека спокойно компилится на MS VisualStudio 2008.
Код
  template < typename OWNER_T > class SchedulerTaskProxy_c : public SchedulerTask_c
  { public:
      typedef OWNER_T Owner_t;
      SchedulerTaskProxy_c( Owner_t &art_owner ) : mrt_owner( art_owner ) {}   <<Error[Pe291]: no default constructor exists for class
      virtual ~SchedulerTaskProxy_c() {}
    private:
      virtual void timeEvent() { mrt_owner.timeEvent(); }
      // SchedulerTaskProxy_c shall not be copyable. Otherwise the
      // reference to the containing object would become invalid.
      SchedulerTaskProxy_c( SchedulerTaskProxy_c const & );
      SchedulerTaskProxy_c &operator=( SchedulerTaskProxy_c const & );
      Owner_t &mrt_owner;
  };


Сообщение отредактировал IgorKossak - Dec 18 2012, 15:40
Причина редактирования: [codebox] для длинного кода, [code] - для короткого!!!
Go to the top of the page
 
+Quote Post
neiver
сообщение Dec 18 2012, 19:13
Сообщение #2


Местный
***

Группа: Участник
Сообщений: 214
Регистрация: 22-03-10
Из: Саратов
Пользователь №: 56 123



В каком контектсте используется данный шаблон?
Go to the top of the page
 
+Quote Post
Andreyy
сообщение Dec 19 2012, 05:55
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 40
Регистрация: 29-05-08
Пользователь №: 37 929



Цитата(neiver @ Dec 18 2012, 23:13) *
В каком контектсте используется данный шаблон?

Диаграмма наследования
http://isoaglib.org/2.5.2/all/d9/dfd/class...skProxy__c.html
Вот кусок одного из двух хеадеров, где используется тот шаблон
Код
class BaseCommon_c : public CanCustomer_c
  {public:
    ...
   private:
    ...
    class SchedulerTaskProxy_c : public SchedulerTask_c
    { public:
       typedef BaseCommon_c Owner_t;
       SchedulerTaskProxy_c(Owner_t &art_owner) : SchedulerTask_c( 100, true ), mrt_owner(art_owner) {}
       virtual ~SchedulerTaskProxy_c() {}
       private:
       virtual void timeEvent() { return mrt_owner.timeEvent(); }
       // SchedulerTaskProxy_c shall not be copyable. Otherwise the reference to the containing object would become invalid.
      SchedulerTaskProxy_c(SchedulerTaskProxy_c const &);
      SchedulerTaskProxy_c &operator=(SchedulerTaskProxy_c const &);
      Owner_t &mrt_owner;
    };
    typedef SchedulerTaskProxy_c Task_t;
    ....
   }

На прямую данный хеадер не подключен, даже если в начале конкретно его объявить, все равно та же ошибка будет.
Go to the top of the page
 
+Quote Post
Непомнящий Евген...
сообщение Dec 19 2012, 06:40
Сообщение #4


Знающий
****

Группа: Свой
Сообщений: 771
Регистрация: 16-07-07
Из: Волгодонск
Пользователь №: 29 153



Ты б минимальный неработающий пример привел...

В твоем втором сообщении шаблона SchedulerTaskProxy_c нет, зато есть одноименный класс
Go to the top of the page
 
+Quote Post
Andreyy
сообщение Dec 19 2012, 10:37
Сообщение #5


Участник
*

Группа: Участник
Сообщений: 40
Регистрация: 29-05-08
Пользователь №: 37 929



Цитата(Непомнящий Евгений @ Dec 19 2012, 10:40) *
Ты б минимальный неработающий пример привел...

В твоем втором сообщении шаблона SchedulerTaskProxy_c нет, зато есть одноименный класс

http://rghost.ru/42355176
Go to the top of the page
 
+Quote Post
Непомнящий Евген...
сообщение Dec 19 2012, 11:53
Сообщение #6


Знающий
****

Группа: Свой
Сообщений: 771
Регистрация: 16-07-07
Из: Волгодонск
Пользователь №: 29 153



*Минимальный* неработающий пример - выдели проблемный код, выкини все ненужное и оставшиеся 10-20 строк вставь сюда.

Ковырять твой проект лениво...
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 30th August 2025 - 00:19
Рейтинг@Mail.ru


Страница сгенерированна за 0.01325 секунд с 7
ELECTRONIX ©2004-2016