スレを勃てるまでもないC/C++の質問はここで 14
■ このスレッドは過去ログ倉庫に格納されています
0331デフォルトの名無しさん
2010/04/09(金) 09:12:42test3.cpp:17: warning: dereferencing pointer ‘<anonymous>’ does break strict-aliasing rules
test3.cpp:17: warning: dereferencing pointer ‘<anonymous>’ does break strict-aliasing rules
/usr/include/c++/4.4/bits/stl_tree.h:175: note: initialized from here
のようなwarningが出ます。
「-Wall」「-O2」どちらかだけでは出ません。
また、「-Wall -O1」では出ず、「-Wall -O3」では出ます。
これはどういう意味のwarningなのでしょうか?
================================================
// a、bは0~9の値をとるとする
class Hoge
{
public:
double a, b;
Hoge( double a, double b ) : a(a), b(b) { }
bool operator<( const Hoge& rhs ) const{
const double l_val = a*10 + b;
const double r_val = rhs.a*10 + rhs.b; // <- 17行目
return ( l_val < r_val );
}
};
int main(int argc, char* argv[])
{
map<Hoge,int> mmm;
mmm[ Hoge(0,0) ] = 0;
}
■ このスレッドは過去ログ倉庫に格納されています