-
Автор темы
- #1
здравствуй житель форум красный. я груг
груг пытаться обьяснить как пользоваться си плюс плюс
груг не самый лучший кодер на земной диск но груг считал себя неплох. груг учить.
груг не любить волшебные макро. макро-шаман может тебя заинтересовать меньше писать но груг осторожен. груг не использовать советы макро-шамана (особенно в header файле) потому что они вносят ненужные символы при сборе чит. не груг разработчики считают что макро-шаман прав. макро-шаман неправ. код который видит груг и который видит компилер-демон разный. ОПАСНО!
правила груга по работе с макро-шаман для других гругов:
груг не любить нестандартный си ++. код не работать на все компилятор. добавляет сложность к код. часто не понимать.
груг использовать стандартные атрибуты язык. груг поможет компилятор-демон!
груг НЕ использовать `__asm__` вставки для делания вид что груг умнее компилятор-демон. груг не умнее компилятор демон. груг использовать обычный функции язык. компилятор-демон доволен!
груг грусть
груг доволен
в новый язык си плюс плюс добавили `std::move` и `std::forward`. груг умоляет их использовать. не копируйте значения.
вы можете заметить что в проекте нет места под зависимости других гругов.. груг использует CMake-шаман для установки зависимостей в проект! CMake-шаман спасает груг от плохих решений Microsoft разработчик дьявол.
груг осуждает использование xml-шаман формата в .sln файлах! друг visual studio уже давно знает CMAKE.. груг счастлив..
clang-tidy настроенный с современным и строгим настройкой. он помогать избежать плохой код.
clang-format помогает держать один и тот же стиль кода во всем проекте. груг считает полезно.
время сборки переменные
compiletime = хорошо. старайтесь делать как можно больше compiletime. compiletime шаман вас наградит очень быстрыми рутинами.
ОЧЕНЬ ПЛОХО! груг не понимать как переводит данные компилятор-шаман. груг любит `static_cast`. Быстро.
надеюсь я помог гругам форума спасибо
персонаж придуман
груг пытаться обьяснить как пользоваться си плюс плюс
груг не самый лучший кодер на земной диск но груг считал себя неплох. груг учить.
чего груг не любить
макро
макро
груг не любить волшебные макро. макро-шаман может тебя заинтересовать меньше писать но груг осторожен. груг не использовать советы макро-шамана (особенно в header файле) потому что они вносят ненужные символы при сборе чит. не груг разработчики считают что макро-шаман прав. макро-шаман неправ. код который видит груг и который видит компилер-демон разный. ОПАСНО!
C++:
struct CHEAT_INTERFACE(engine) {}
enum ECheatFlags : std::uint16_t {
kA = 1
kB = 2
kMax
}
CHEAT_FLAGS_ADD(ECheatFlags)
правила груга по работе с макро-шаман для других гругов:
- не используйте макро в .h файлах
- #define макро перед использованием и сразу их #undef. иначе компилер-демон страдать. lsp страдать. не хорошо!
- не использовать ## для генерации названий структур и названий атрибутов. ведёт к запутанный груг.
нестандартный си ++
груг не любить нестандартный си ++. код не работать на все компилятор. добавляет сложность к код. часто не понимать.
C++:
__forceinline void panic() {
a = a?:b;
return;
}
C++:
[[noreturn("grug crashed here")]] inline auto panic() -> void {
while (true) {}
}
груг грусть
C++:
auto __forceinline __declspec(naked) __fastcall sin(double x) -> double {
__asm {
fld qword ptr [esp+4]
fsin
ret 8
}
}
C++:
auto sin(double&& x) -> double {
return std::sin(x);
}
передача значения
передача через значение обычно плохо. груг не менять прототип функции игры но груг грусть от копирования (не груг думают что это чистый код)
в новый язык си плюс плюс добавили `std::move` и `std::forward`. груг умоляет их использовать. не копируйте значения.
структура проекта
груг использует
Код:
src/
my_project/
*.cpp
include/
my_project/
*.hpp
CMakeLists.txt
груг осуждает использование xml-шаман формата в .sln файлах! друг visual studio уже давно знает CMAKE.. груг счастлив..
инструменты
груг умоляет использовать clang-tools в свой проектclang-tidy настроенный с современным и строгим настройкой. он помогать избежать плохой код.
YAML:
---
Checks: >
bugprone-*,
misc-*,
modernize-*,
performance-*,
portability-*,
readability-*,
WarningsAsErrors: "*"
clang-format помогает держать один и тот же стиль кода во всем проекте. груг считает полезно.
время сборки переменные
compiletime = хорошо. старайтесь делать как можно больше compiletime. compiletime шаман вас наградит очень быстрыми рутинами.
C++:
constexpr const int k_max_grugs = 16;
си стиль перевод
C++:
int b = *(int*)memory;
надеюсь я помог гругам форума спасибо
персонаж придуман
Пожалуйста, авторизуйтесь для просмотра ссылки.
Последнее редактирование: