C++相談室 part81
■ このスレッドは過去ログ倉庫に格納されています
0153デフォルトの名無しさん
2010/05/14(金) 14:35:08strict_aliasing.cpp:12: warning: dereferencing pointer ‘<anonymous>’ does break strict-aliasing rules
/usr/include/c++/4.4/bits/stl_tree.h:175: note: initialized from here
というwarningが出ます。
Hogeの別名Fugaを使っていることが原因のようですが、これは良くないプログラムなのでしょうか?
また、解決方法はオプション変更以外にあるのでしょうか?
#include <iostream>
#include <map>
using namespace std;
class Hoge
{
__public:
____double val;
____Hoge( double d ) : val(d) { }
____bool operator<( const Hoge& rhs ) const{
______return (val < rhs.val);
____}
};
typedef Hoge Fuga; // これが悪いらしい
int main(int argc, char* argv[])
{
__map<Fuga,int> fuga2int;
__fuga2int[ Fuga(100) ] = 1;
__return 0;
}
■ このスレッドは過去ログ倉庫に格納されています