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

 
 
 
Reply to this topicStart new topic
> C++ и incomplete type, возможно ли?
Sagittarius
сообщение Mar 17 2012, 05:14
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 207
Регистрация: 26-01-06
Из: СПб
Пользователь №: 13 659



Здравствуйте.

В простом C можно было написать конструкцию типа такой:

Код
typedef struct{
  unsigned char len;// количество данных
  unsigned char data[0];// сами данные
}Pack;


где был массив с нулевым количеством элементов, C++ на это ругается. Возможно ли в плюсах разрешить применение incomplete type?

Спасибо.

Сообщение отредактировал IgorKossak - Mar 17 2012, 09:53
Причина редактирования: [code]
Go to the top of the page
 
+Quote Post
Непомнящий Евген...
сообщение Mar 17 2012, 08:20
Сообщение #2


Знающий
****

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



Код
struct Pack {
  unsigned char len;// количество данных
  unsigned char data[1];// сами данные
};

template<int SZ>
struct RealPack : Pack
{
  RealPack () { len = SZ; }
  unsigned char data[SZ-1];
};

void func(Pack *p)
{
  int s;
  for (int i = 0; i < p->len; ++i)
    s += p->data[i];
}

void topFunc()
{
  RealPack<100> p;
  func(&p);  
};


Это конечно не по стандарту, но на иаре вполне работает
Go to the top of the page
 
+Quote Post
dxp
сообщение Mar 17 2012, 08:23
Сообщение #3


Adept
******

Группа: Свой
Сообщений: 3 469
Регистрация: 6-12-04
Из: Novosibirsk
Пользователь №: 1 343



QUOTE (Sagittarius @ Mar 17 2012, 12:14) *
Возможно ли в плюсах разрешить применение incomplete type?

Нет.


--------------------
«Отыщи всему начало, и ты многое поймёшь» К. Прутков
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 14:48
Рейтинг@Mail.ru


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