std::list、ReleaseBuildしたexeで不具合

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
GON

std::list、ReleaseBuildしたexeで不具合

#1

投稿記事 by GON » 8年前

コード:

void Manager::Update()
{
	RemoveCheck();
	for(std::list<Base*>::iterator it = list.begin() ; it != list.end(); it++)
	{
		((Base*)(*it))->Update();
	}
	CreateUpdate();
	//!更新回数更新
	time++;
}
void Manager::CreateUpdate()
{
	for(int i = 0 ; i < EnemyMax ;  i++)
	{
		if( info[i].time == time)
			EnemyCreate(Vector(static_cast<float>(info[i].posx), static_cast<float>(info[i].posy)), Vector(static_cast<float>(info[i].sizex), static_cast<float>(info[i].sizey)), Color::Red() );
	}
}
void Manager::PlayerCreate(Vector pos, Vector size, Color col)
{
	Player* pl = new Player(pos, size, col);
	list.push_back(pl);
}
void Manager::EnemyCreate(Vector pos, Vector size, Color col)
{
	Enemy* en = new Enemy(pos, size, col);
	list.push_back(en);
}
VS2012よりビルド実行でRelease、debugともに正常に動くのですが、Releaseビルドしたexeで起動したときのみ、listに値が登録されません。
Releaseの最適化あたりで処理ずれてるのかなと思い、逆アセンブルして処理を追ってもやはりわからずでした。
Player,EnemyはともにBaseを継承しており、リストの宣言はlist<Base*> listとしています。どなたか知恵をお貸しいただけないでしょうか。


閉鎖

“C言語何でも質問掲示板” へ戻る