// 복사 와 이동을 모두 삭제한 간단한 구조체. (호출 여부를 체크하는 역할)
std::once_flag init_flag;

void init(int a, double d)
{
	std::cout << "init" << std::endl;
}

void foo()
{
	// call_once 실행중에 다른 쓰레드가 들어온다면 끝날때까지 기다린다.
	std::call_once(init_flag, init, 10, 3.4);
}