icon.seekg(0, icon.end); // 1
buffer_size = (size_t)icon.tellg(); // 2
buffer = new wchar_t[buffer_size];
icon.read(buffer, buffer_size); // 3
eof()
/good()
/fail()
.buffer_size
после (2)? Что именно отражает функция tellg()
?eof()
/good()
/fail()
стрима после (2)?buffer
в результате выполнения (3)?buffer
до выполнения (3) и что содержится после выполнения? std::unordered_map
с этим аллокатором. if (std::is_same<T, std::string>::value)
будет всегда приводить к ошибкам, кроме случая когда T
это std::string
или какой-нибудь тип с неявным преобразованием к std::string
.std::string str = x;
.if (std::is_same<T, std::string>::value)
?Так есть ли смысл рыпаться в геймдев разработку изучая кучу новых компетенций
И в случае если я таки решусь, на какие зп тут и на западе может примерно рассчитывать разработчик С++ со знанием того же UE4 + Vulkan?
разработчик С++ со знанием того же UE4 + Vulkan
system
выполняет системную команду в окружении текущего процесса. Если окружением является cmd, команда будет выполнена в cmd, если bash - то в bash. Строка команды будет передана в подключенный командный процессор, если таковой подключен. И даже в подсистеме оконных приложений Windows, system
позволит тебе запустить другую программу с передачей в нее параметров запуска.system("C:/Windows/System32/cmd mkdir directory")
, а чего просто не вписал и не попробовал? Можно даже так попробовать: system( "mkdir c:\\my-test-dir" )
.system
? При создании cars стоит указать тип vector, иначе это будет initializer_list, который несколько раз (!) будет копироваться в нормальный контейнер.
cars
будет иметь тип std::initializer_list<Car>
, но его копирование - это не проблема. std::initializer_list
является легковесной надстройкой над статическим массивом на стеке. Внутренняя реализация этого типа не стандартизирована, но практически всегда его размер не превышает двух регистров процессора.
Keyboard::isKeyPressed
у тебя, вероятно, вызывается на каждом кадре. Эта функция будет возвращать истину пока клавиша нажата. Тебе стоит самостоятельно реализовать двойную буферизацию состояния клавиш чтобы иметь возможность менять значение только один раз за нажатие клавиши.Обычная подсистема ввода в играх имеет два (или более) буфера состояния устройства ввода. В этих буферах лежит история состояния устройства. Через анализ этих буферов выполняются все операции ввода, от простых и однократных нажатий, до сложных жестов и проверок на тайминги для комбо.
Тебе нужен буфер прошлого состояния клавиш, а в дополнение к текущей проверке нажатия клавиши нужно еще проверить что на прошлом кадре клавиша не была нажата.