ФлеймФорумПрограммирование

Общие вопросы по программированию (701 стр)

Страницы: 1700 701 702 7031190 Следующая »
#10500
16:49, 14 ноя 2023

JordanCpp
> Не думал об этом. Есть мысли как улучшить?
Сделать данные используемые в функции доступными извне:

int a;
int b;
int c;
int s;

void draw ()
{
    s = a + b + c;
}
#10501
16:53, 14 ноя 2023

iw4nna.rock
Глобальные переменные? Может лучше тогда передавать struct, типа как в directx. Хотя визуально порнухой выглядит.

#10502
(Правка: 17:17) 17:10, 14 ноя 2023

Думаю разумней заменить на типы меньшего размера. Сейчас юзаю size_t 4 и 8 байт на x64.

//Добавлено
int32_t 4 байта на всех платформах. 2 байта, думаю маловато будет.

#10503
17:13, 14 ноя 2023

iw4nna.rock
> Сделать данные используемые в функции доступными извне
Чуть не поперхнулся. Лол

#10504
17:21, 14 ноя 2023

JordanCpp
> Глобальные переменные?
Не обязательно. Они могут быть частью пространства или структуры.

struct AB
{
  int a;
  int b;
};

AB ab;

namespace CC
{
  int c;
}

int s;

void draw ()
{
    s = ab.a + ab.b + CC.c;
}
#10505
17:26, 14 ноя 2023

iw4nna.rock
> Не обязательно. Они могут быть частью пространства или структуры.
Совсем не нравится. Такие изменения очень сильно влияют на подход к API.

#10506
17:39, 14 ноя 2023

JordanCpp
> Совсем не нравится. Такие изменения очень сильно влияют на подход к API
Иногда лучше сделать сразу правильно, чем долго и мучительно отвыкать от неправильного подхода.

#10507
17:47, 14 ноя 2023

iw4nna.rock
> Не обязательно. Они могут быть частью пространства или структуры.
Глобальная переменная, завёрнутая в namespace или структуру, не перестаёт от этого быть глобальной.

JordanCpp
Не слушай вредные советы. Оставляй как есть или передавай структурой, как в DirectX.

#10508
18:05, 14 ноя 2023

iw4nna.rock
> Иногда лучше сделать сразу правильно, чем долго и мучительно отвыкать от
> неправильного подхода.
Не уверен, что это правильный подход. Нигде не видел, что бы так писали. Это не совет от embedded?

Alprog
> Оставляй как есть или передавай структурой, как в DirectX.
Оставлю как есть. Только тип поменяю на uint32_t.

#10509
(Правка: 18:18) 18:15, 14 ноя 2023

JordanCpp
> Не уверен, что это правильный подход
Я и не настаиваю. Тормоза в программе - личный выбор каждого разработчика.
> Нигде не видел, что бы так писали
99% разработчиков не умеют писать программы.
Alprog
> Глобальная переменная, завёрнутая в namespace или структуру, не перестаёт от
> этого быть глобальной
Что?

#10510
18:36, 14 ноя 2023

Мисс_Самец
> что функа делает?
Рисует на экране surface
Позиция куда x, y
Размер какой на экране w, h
Позиция откуда x, y
Размер какой w, h

Vec2u это size_t x, y

Пример

render.Draw(&image, Vec2u(start.x + pt.x + dx, start.y + pt.y + dy), Vec2u(tx, ty), tileSize);
#10511
18:37, 14 ноя 2023

Мисс_Самец
> апи конечно адовый
Как улучшить?

#10512
18:46, 14 ноя 2023

Почему срабатывает ассерт?

struct B {
  template <typename T>
  void operator () () noexcept {}
};
static_assert( std::is_nothrow_invocable_v< decltype(&B::template operator()<int>) >);

typeid().name() возвращает имя функции с noexcept.

#10513
19:10, 14 ноя 2023

iw4nna.rock
> Сделать данные используемые в функции доступными извне:
>
> int a;
> int b;
> int c;
> int s;
>
> void draw ()
> {
> s = a + b + c;
> }
Лол. Покажи теперь пример с использованием draw, где рисуется несколько спрайтов вызовом этого самого draw().

#10514
19:38, 14 ноя 2023

MrShoor
> Лол. Покажи теперь пример с использованием draw, где рисуется несколько
> спрайтов вызовом этого самого draw().

for (auto & a : sprites) a.draw();
Страницы: 1700 701 702 7031190 Следующая »
ФлеймФорумПрограммирование