共用体
id:malibu-bulldogさんに共用体を使うことを薦められたので、行列の要素として使うサンプルを作ったら良い感じだ。
こういう感じになるのでしょうか。
#include <iostream> using namespace std; union Elements { float m[4][4]; struct { float m00, m01, m02, m03, m10, m11, m12, m13, m20, m21, m22, m23, m30, m31, m32, m33; }; }; class Matrix { public: Elements m_elements; }; int main() { Matrix m; for( int i = 0; i < 4; ++i ) { for( int j = 0; j < 4; ++j ) { if( i != j ) m.m_elements.m[i][j] = 0.0f; else m.m_elements.m[i][j] = 1.0f; } } cout << m.m_elements.m00 << " " << m.m_elements.m01 << " " << m.m_elements.m02 << " " << m.m_elements.m03 << endl; cout << m.m_elements.m10 << " " << m.m_elements.m11 << " " << m.m_elements.m12 << " " << m.m_elements.m13 << endl; cout << m.m_elements.m20 << " " << m.m_elements.m21 << " " << m.m_elements.m22 << " " << m.m_elements.m23 << endl; cout << m.m_elements.m30 << " " << m.m_elements.m31 << " " << m.m_elements.m32 << " " << m.m_elements.m33 << endl; cout << endl; for( int i = 0; i < 4; ++i ) { for( int j = 0; j < 4; ++j ) cout << m.m_elements.m[i][j] << " "; cout << endl; } }