The following code compiles with G++ 4.6.1, but not with Visual Studio 2008
return (m_something == 0) ? throw std::logic_error(\"Something wrong happene
It is standard C++. Either (or both) of the then/else expressions in a conditional expression is allowed to be a throw-expression instead (C++98 5.16/2).
If Visual Studio crashes when compiling it... that would seem to be unfortunate!