2012-08-17

std::queue::cではなく、std::queue::_Get_containerを使う

Visual Studio2005で動かしているC++のプログラムを2010に移植した時に問題発生。std::queueクラスでコンテナーを返す処理をする時、2005のプログラムでは
std::queue::c[0]
みたいな呼び方でよかったのだが、2010ではprotectedなメンバーにはアクセスできないとかいうエラーが発生。言語仕様の変更か?そんなことってありうる?と疑問に思いつつも、今は2012年。もう7年も前の仕様だし、、ということで、代替方法を探す。結局、代替のメソッドがあったのでそれを利用。
std::queue::_Get_container()[0]
という記述でとりあえず動いている模様。このやり方がベターなのかは不明。

0 件のコメント:

コメントを投稿