Войти
ФлеймФорумОбщее

Вопросы (758 стр)

Страницы: 1757 758 759 7601004 Следующая »
#11355
9:17, 23 окт. 2019

Panzerschrek[CN]
А если полей 100500?


#11356
10:31, 23 окт. 2019

nes
> А если полей 100500?
А зачем тебе 100500 полей? Вангую, что их можно чем-то заменить более подобающим.
И вообще, код в студию!

#11357
11:05, 23 окт. 2019

Panzerschrek[CN]
> А зачем тебе 100500 полей? Вангую, что их можно чем-то заменить более
> подобающим.
в класс завернуть, пусть в нем будет 100500 полей?

#11358
11:16, 23 окт. 2019

Panzerschrek[CN]
Вот пишешь ты рендер враппер для какого-нибудь D3D11,
для минимального уровня аля 90-х,
тебе понадобится 100500 полей в классе девайса под одни только стейты.

#11359
11:18, 23 окт. 2019

Panzerschrek[CN]
Например вот:

+ Показать
#11360
11:27, 23 окт. 2019

nes
> Например вот:
Ну да, по сути говнокод, но необходимый.
Тут или руками каждому полю прописать =nullptr и =0, или memset звать.

#11361
11:30, 23 окт. 2019

nes

Да пропиши явно -

class private_graphics_t
{
public:

  HWND window = 0;
  size2_t frame_size = 0;
  ID3D10Device* device = nullptr;
  IDXGISwapChain* swap_ch = nullptr;
...
Давно уже есть такой синтаксис эквивалентный спискам инициализации, но более удобный. Сразу зато видно что к чему и есть возможность не занулять то что не нужно занулять.

#11362
11:37, 23 окт. 2019

=A=L=X=
У меня такой синтаксис вызывает дикие ассоциации с объявлением констант.

#11363
(Правка: 11:41) 11:41, 23 окт. 2019

nes
> У меня такой синтаксис вызывает дикие ассоциации с объявлением констант.

Это работает по внутренней логике точно так же как и неявное добавление поля в списки инициализации во все доступные конструкторы (но можно перебить явным заданием).

#11364
11:52, 23 окт. 2019

Еще вопрос - почему этот кривой Цэ++ умеет так:

byte keys[256] = {}; // Ok, I know how to zero all of them
Но не умеет так:
keys = {}; // Fuuuu!! I forgot how to zero all of them

В то же время, умеет так:

struct keys_t
{
   byte keys[256];
};

keys_t keys = {}; // Ok, I know how to zero all of them
keys = {}; // Mother of God! It's kind of magick!

#11365
11:55, 23 окт. 2019

nes
> keys = {};
Тут произошёо неявный каст массива к константному указателю

#11366
11:56, 23 окт. 2019

1 frag / 2 deaths
И как тогда в крестах обнуляют массив, без явных мемсетов?

#11367
11:58, 23 окт. 2019

nes

for (auto& it: massiv) { it.obnulit(); }
#11368
12:37, 24 окт. 2019

Помню в детстве такая картина: 5-этажные дома. Между ними провода вроде электрические кабели. Высоко очень. Но посреди провода висит всякая ерунда. Типа коньки или огнетушитель. Это кто-то специально подвешивал? Каким образом? Дл чего?

#11369
14:08, 24 окт. 2019

Freakazoitt
> Это кто-то специально подвешивал?
Как ты себе представляешь нечаянное подвешивание коньков или огнетушителя на проводах?
Чувак разогнался на катке, споткнулся, по дуге пролетел мимо 5-го этажа и зацепился коньками?
Мужик с первого этажа загорелся, и его сосед с пятого этажа, чтобы не терять драгоценное время, выпрыгнул прямо в окно и зацепился огнетушителем? Или пилот самолета, груженного партией китайских огнетушителей и зимбабвийских коньков, нечаяно открыл грузовой люк?

Страницы: 1757 758 759 7601004 Следующая »
ФлеймФорумОбщее