= default;
можно писать, если у вас нет никакого списка инициализации. И константную ссылку нельзя использовать для инициализации неконстантной.template<typename T>
struct Test
{
T& ref; // нужно присвоить null
Test(T& _ref) : ref(_ref) {};
};
std::vector<std::array>
.operator[]
на классе возвращает int*
на первый элемент в строке. То же, что у вас, только не надо никакого вспомогательного класса. Таким образом двойная индексация будет работать как надо. Но, как и во втором упомянутом вами примере, тут не будет проверки выхода за границы массива. то в первом пункте мне не понятно как связаны индексы i и 2*i
int data[] = {90, 90};
Array<int, 3> arr (data);
Array<int, 3> arr { 90,90 };
догадаться, что {90, 90} - это числа в массиве, адресс которого надо передать.( x == z) || (!x || (y && z)) == 0
означает ( x == z) || ( (!x || (y && z)) == 0 )
.{
thread gameThread(game_loop, ref(star_pleced), ref(staircase_placed), ref(c), ref(t_placed), ref(r_placed), ref(p_placed), rows, cols, ref(map));
thread monsterThread(monster_move, ref(map));
gameThread.join();
monsterThread.join();
refresh();
} while ((c = getch()) != '0');
ssize_t numBytes = sendto
Это связано с тем, что сокеты работают на низком уровне и не гарантируют сохранение порядка отправленных данных. Когда два приложения отправляют данные одновременно, они могут перемешиваться в процессе передачи по сети и приходить в произвольном порядке.
while (collision && try_counter <= 100);
вставьте:if (try_counter > 100) break;
while (map[py][px] != ' ')
).do
{
center_y = ry + (r_size_y / 2);
center_x = rx + (r_size_x / 2);
} while (map[center_y][center_x] != ' ');