0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

カテゴリカッター@バケツコレクション

Posted at

#これは何か
現実を触っていると非常にめんどくさい表現をしてきた歴史があります。
過去、現実ARを書いてきた数多の歴戦達はいろんなこと現代の知見から見ると知りません。
現代に至って、ITの隆興によっていろんな知見は集約されて集められました。

#難点
昔からの人々は癒着を好みます。
単純に速いからですが、癒着によって色々な境界はゆがめられ領域が立たなくなっていきます。
これを切る方法を探すための人生がある人もいますが、単純にナンセンスなのです。
この癒着を切る一つの方法を描いておきます。

#code

code.cpp
#include <iostream>
#include <memory>
#include <map>
#include <vector>
#include <cstdint>

#define interface struct

interface IUnknown
{
public:
	virtual bool Say() = 0;
	typedef std::shared_ptr<IUnknown> spUnknown;
};

class IOne :public IUnknown {
public: bool Say() { std::cout << "One" << std::endl; return true; }
};
class ITow :public IUnknown {
public: bool Say() { std::cout << "Tow" << std::endl;  return true;}
};
class IThree :public IUnknown {
public: bool Say() { std::cout << "Three" << std::endl; return true; }
};
class IFour :public IUnknown {
public: bool Say() { std::cout << "Four" << std::endl;  return true;}
};

typedef std::vector<IUnknown::spUnknown> Unknowns;
typedef std::map<std::uint16_t, Unknowns> M;

int main() {
	M M = { {1,{std::make_shared<IOne>()}} };

	M[2].push_back(std::make_shared<ITow>());

	M[1].push_back(std::make_shared<IThree>());

	M[1].push_back(std::make_shared<IFour>());

	for (auto& oo: M) {
		for (auto& o: oo.second) {
			o->Say();
		}
		std::cout << std::endl;
	}

}

#終わりに
世界にたゆたう数多のモノが狂っています。誰かこれを止めてくれ。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?