ページ 11

共用体の使い道【雑談】

Posted: 2017年3月24日(金) 20:37
by やってやるぞー
 こんばんは~ やってやるぞーです。

 件名のとおり今回は共用体の使い道について質問です。

 こんな風に使ってる!
 こんな風に使ったらいいんじゃないか?

 などなど雑談交じりでよいので思い当たる事があれば、
 どんどんコメントください!

 それではまた~

Re: 共用体の使い道【雑談】

Posted: 2017年3月24日(金) 22:46
by inemaru
ありきたりな用途であれば、
同じ型が連続している構造体を、配列でアクセスしたり とか?
C++だとテンプレートも使えるので、下記のようにできる。

コード:

#include <iostream>

template<class Type>
union Vector3
{
	struct {
		Type x;
		Type y;
		Type z;
	};
	Type data[3];
};

int main()
{
	using namespace std;

	Vector3<int> vec = {1, 2, 3};

	for (auto v : vec.data){
		cout << v << endl;
	}

	cout << vec.x << endl;
	cout << vec.y << endl;
	cout << vec.z << endl;

	return 0;
}

Re: 共用体の使い道【雑談】

Posted: 2017年3月24日(金) 22:56
by やってやるぞー
 inemaruさん コメントありがとうございます!

 アクセスを簡単にした上で、メモリの節約という事でしょうか?
 貴重なご意見ありがとうございます。

 この際に、とことん追求してみたいので、
 他に何かあれば、どんどんコメントよろしくです。

 それではまた~