gpt4 book ai didi

c++ - 人工模板

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:54:56 27 4
gpt4 key购买 nike

所以,我有以下问题已经困扰我一段时间了。

Shader 绘制多组顶点。因为它是从文本文件加载到 GPU 中的,所以 OpenGL 根本不需要输入它

struct Shader
{
// Load that shader from filename
Shader( string filename ... ) ;
} ;

在我的代码中键入一组顶点

VertexArray<VertexPTC> ptcVerts ; // PTC is position, texcoord, color.

ptcVerts 的数组应该只ptcShader 绘制.尝试绘制一个 pcVerts 的数组用ptShader是一个错误(因为颜色值将被解释为纹理坐标)。

所以我希望编译器能够标记出这种错误。方法如下:

template<typename T> struct Shader

现在是着色器,虽然它从不使用 T at all 是在编译时键入的。编译器现在强制执行 VertexArray<VertexPTC> 的限制由 Shader<VertexPTC> 绘制.

这是好还是坏?着色器不需要或不使用T ,所以我担心我对模板的使用在某种程度上是一种误用。

最佳答案

您在代码中表达了现实世界的约束。你在这里的例子实际上并没有表明在这里给你买任何东西,所以继续证据我想知道表达它是否多余,或者与实际出现的任何情况无关。但是,如果您要为不同类型的顶点数据集使用不同类型的着色器,我想说您已经找到了正确的表达方式。

关于c++ - 人工模板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16199918/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com