代码之家  ›  专栏  ›  技术社区  ›  Moberg

类型int2、int3、float2、float3等呢

c++
  •  12
  • Moberg  · 技术社区  · 15 年前

    我见过使用这些类型的不同代码片段,但我没有看到它们是在某些标准头文件中定义的,还是只是在“本地头文件”中定义的,甚至是在文件级别定义的。

    我想这些类型的一个可能和常见的用法是表示坐标,我错了吗?

    如果我想用这些来表示网格中的位置,还有什么需要考虑的吗?为什么或者为什么不使用它们?

    编辑:

    说明:int2表示一对int,float3表示三个float。

    如果这些类型是在某个地方预定义的,那么最好使用它们,而不是从头开始编写,包括标准代数函数(运算符+,运算符-,等等)。

    5 回复  |  直到 15 年前
        1
  •  20
  •   Stack Overflow is garbage    15 年前

    这些类型不是标准C++的一部分。它们可能是在某个第三方库中定义的,或者您正在查看其他方言或语言。

    GPU代码(GLSL、Cg或HLSL等着色器语言,或CUDA或OpenCL等GPGPU内容)通常将此类类型定义为相应SIMD数据类型的名称。

        2
  •  8
  •   Martin Beckett    15 年前

    它们用于CUDA(和openCL?)有特定大小的浮动、内存使用和对齐是一件大事。

        3
  •  1
  •   vitaut    15 年前

    AFAIK没有定义这些类型的标准头文件。 int2 意思是两个 int std::pair<int, int> .

        4
  •  1
  •   Jay    15 年前

    我继续使用<stdint.h>中定义的POSIX类型;。似乎每个人都为事物定义了自己的名字,我有一个项目,名字相互冲突。对我来说,不为类型定义自己的“宠物”名称已经成为一种新的范例。

        5
  •  0
  •   aschepler    15 年前

    这些类型不是标准的,我从未见过。你确定它们不是作为(糟糕的)标识符而不是类型使用的吗?

    一些非标准类型很可能是可用的 int32_t , uint64_t