オプションで C++ クラスのメンバーを含めて POD 構造体を生成する方法を探しています。これはかなりうまく機能することがわかりましたが、非標準です。
#include <iostream>
template <int v, int n, int t>
struct Point
{
int vertex[v];
float normal[n];
double texcoord[t];
};
int main()
{
std::cout << (sizeof (Point<0,0,1>)) << std::endl;
std::cout << (sizeof (Point<1,0,1>)) << std::endl;
std::cout << (sizeof (Point<1,1,2>)) << std::endl;
std::cout << (sizeof (Point<0,0,0>)) << std::endl;
return 0;
}
したがって、 Point<1,0,0> には頂点のみが含まれます (int 型は実際には vector3 型になります)、などです。これの主な理由は、OpenGL のインターリーブ配列を簡単にサポートするためです。