Подтвердить что ты не робот

Как насчет типов int2, int3, float2, float3 и т.д.

Я видел разные фрагменты кода, используя эти типы, но я не видел, если они определены в некотором < стандартном файле заголовка > или просто определяется в "локальном файле заголовка" или даже на уровне файла.

Итак, что мне интересно: есть ли стандартный файл заголовка, который определяет эти типы? Или есть некоторые стандартные определения, которые каждый использует, что я должен скопировать?

Я предполагаю, что возможное и общее использование этих типов представляет координаты, я не прав?

Есть ли что-нибудь еще, о чем я должен думать, если я хочу использовать их для представления позиций в сетке? Любые причины, по которым или почему их не использовать?

EDIT:

Разъяснение: int2 означает пару ints, float3 означает триплет поплавков.

Если эти типы были предопределены где-то, было бы неплохо использовать их вместо необходимости писать с нуля, включая стандартные алгебраические функции (operator +, operator- и т.д.).

4b9b3361

Ответ 1

Эти типы не являются частью стандартного С++. Они могут быть определены в какой-либо сторонней библиотеке, или вы смотрите на какой-либо другой диалект или язык.

Код графического интерфейса (шейдерные языки, такие как GLSL, Cg или HLSL, или объекты GPGPU, такие как CUDA или OpenCL) обычно определяют такие типы, как эти, но как имена соответствующих типов данных SIMD.

Ответ 2

Они используются в CUDA (и openCL?), где у вас есть особые поплавки и использование памяти, а выравнивание - большое дело.

Ответ 3

AFAIK нет стандартного файла заголовка, который определяет эти типы. Согласно вашему описанию int2 означает пару из двух int, которые могут быть представлены в С++ как std::pair<int, int>.

Ответ 4

Я остаюсь с типами POSIX, определенными в < stdint.h > . Кажется, что каждый определяет свои имена для вещей, и у меня есть проект, где имена сталкиваются. Это станет новой парадигмой для меня НЕ определять собственные имена "домашних животных" для типов.

Ответ 5

Эти типы не являются стандартными, и я их никогда не видел. Вы уверены, что они не были использованы как (ужасные варианты) идентификаторов вместо типов?

Некоторые нестандартные типы, которые, скорее всего, доступны в любом случае: int32_t, uint64_t и т.д. (они заданы C99, поэтому большинство современных компиляторов С++ также позволяют использовать их в С++.)