Публикации по теме 'cpp'


Обзор систем сборки (в основном для проектов C ++)
Поговорим о системах сборки. Примечание: это в основном перевод моей публикации на LinuxFR.org . Если ваш родной язык французский или аналогичный, вы можете прочитать его там. Моя работа - программировать видеоигры, ориентированные на устройства iOS и Android. Специфичные для платформы разделы написаны на Objective-C или Java соответственно, а части, общие для обеих платформ, то есть 99% приложения, написаны на C ++. Основной интерес в том, чтобы делать все на C ++, заключается в..

Как извлечь имя каталога файлов из пути к файлу в C++
Как извлечь имя каталога файлов из пути к файлу в C++ В C++ Builder есть специальные процедуры управления путями , которые позволяют пользователям редактировать, извлекать, получать и устанавливать имя диска, имя каталога, имя файла и расширения файлов. Эти методы объединены в библиотеках Vcl.FileCtrl , System.IOUtils , System.SysUtils . Методы управления путями просты в использовании и упрощают процесс получения или установки строк пути к файлу. Их можно использовать с другими..

Знайте, когда использовать delete и когда использовать delete[] в C++
Я хочу поделиться с вами небольшим советом от Скотта Мейерса, автора книги Effective C++ . Позвольте мне спросить вас: Знаете ли вы, когда использовать delete и когда использовать delete[] ? Например, правильный ли следующий пример? std::string *myStrings=new std::string[10]; //... delete myString; Вы можете предположить, что поскольку мы вызываем delete , все объекты, созданные с помощью new , будут освобождены. На самом деле будет освобожден только один из 10 объектов...

Без формы и пустоты
В C ++ void - довольно странная вещь. Мы можем преобразовывать выражения в void , throw-expression иметь void тип, void* может указывать на что угодно, а void функции могут фактически возвращаться обратно вызывающей стороне. Но у нас не может быть объектов типа void или даже написать такой тип, как void& . Объявление функции типа void f(void) на самом деле является нулевой функцией. Это немного странно, но это не то, из-за чего многие люди теряют сон. Пока он не..

LeetCode — Игра с прыжками
Постановка задачи Вам дан целочисленный массив nums . Изначально вы находитесь в первом индексе массива, и каждый элемент массива представляет вашу максимальную длину прыжка в этой позиции. Верните true , если вы можете добраться до последнего индекса, или false в противном случае. Постановка задачи взята с: https://leetcode.com/problems/jump-game Пример 1: Input: nums = [2, 3, 1, 1, 4] Output: true Explanation: Jump 1 step from index 0 to 1, then 3 steps to the last..

Исключения времени компиляции C ++
Отладка шаблонов C ++ должна быть менее сюрреалистичной и ужасной Ошибка шаблона C ++ может быть длинной, очень плотной и ужасной. Часто они совершенно бесполезны для пользователей библиотеки, и вам приходится обращаться за помощью к разработчикам. Разработчики часто могут фильтровать или изменять сообщение об ошибке, чтобы сделать его более продуктивным для своих пользователей. В этом посте я предлагаю добавить в C ++ исключения времени компиляции , которые позволят разработчику..

Семантика перемещения в C ++ и Rust: случай деструктивных ходов
Для языков программирования, ориентированных на значения, семантика перемещения представляет собой большой шаг вперед как в оптимизации, так и в представлении инвариантов уникальности. C ++ выбрал путь неразрушающих перемещений, при котором переменные перемещения по-прежнему можно использовать (хотя обычно в неопределенном состоянии). Rust, с другой стороны, использует деструктивные ходы, при которых переменная перемещенного объекта больше не может использоваться. Я расскажу об обоих..