// the below is a standard template for any of my writings about c++
cpp_is_a_shitty_language_as {
this morning, sinsce the shitty project i'm working on has shitty code that redefines false and true, when i used hash_set, I got the below shit
C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\utility() : see reference to function template instantiation 'std::_Pair_base<_Ty1,_Ty2>::_Pair_base<std::_List_const_iterator<_Mylist>&,_Ty>(_Other1,_Other2 &&)' being compiled
> with
> [
> _Ty1=std::_List_const_iterator<std::_List_val<MyEdge,std::allocator<MyEdge>>>,
> _Ty2=bool,
> _Mylist=std::_List_val<MyEdge,std::allocator<MyEdge>>,
> _Ty=int,
> _Other1=std::_List_const_iterator<std::_List_val<MyEdge,std::allocator<MyEdge>>> &,
> _Other2=int
> ]
It was a warning, but since we enforce a build policy that treats all warnings as errors (not shitty at all by itself) that shittily is unable to detect the shitty redifinition but stops my stl depending code from compiling, I had to spend almost two hours figuring out the cause, which is the shitty redefinition. And after I added this before the stl inclusion the warnings and errors disappeared.
#ifdef false
# undef false
#endif
#ifdef true
# undef true
#endif
} so_cpp_is_a_shitty_language