Pull to refresh
4
0
Владимир Елисеев @TheDestr

Программист видеоигр

Send message

Zero-cost Property в С++

Level of difficultyMedium
Reading time7 min
Views2.1K

Расскажу об одном решении которое имеет больше смысла в качестве упражнения а не практической пользы. Постановка задачи звучит так: Хочу получить в C++ семантику property как в C# и без накладных расходов.

В начале будет результат к которому я пришел, затем пояснения и выводы.

К слову, компиляторы Microsoft имеют способ описать property но это не является частью стандарта C++.

Сразу отмечу что property получились с значительными ограничениями и больше подходят для имитации Swizzling из GLSL. По этому буду воспроизводить маленький кусочек vec2 а именно property yx которое должно возвращать исходный вектор с свапнутыми полями. Далее vec2 буду иногда называть контейнером, как более общий случай. Когда упоминаю property, буду подразумевать поле внутри контейнера, то есть yx в конкретном примере. Использую стандарт С++11

Желаемое поведение:

Далее примеры кода и все остальное
Total votes 10: ↑7 and ↓3+8
Comments7

Information

Rating
Does not participate
Location
Россия
Registered
Activity

Specialization

Game Developer, Game Designer
Middle
From 190,000 ₽
C++
C#
OpenGL
Java
JavaScript
Cmake
Multiple thread
Git
Python
Lua