C++0x name clash: invalid_argument

Douglas Gregor doug.gregor@gmail.com
Sun Sep 23 07:17:00 GMT 2007


When we're in C++0x mode, there are now two different definitions of the
name "invalid_argument" in namespace std. The first one is the exception
class, which comes from <stdexcept>. The second is an enumerator that
comes from <system_error> (for EINVAL). This causes compilation failures
in the following program to fail under C++0x mode (and is killing my
nightly regression testing of Boost):

#include <stdexcept>
#include <system_error>

int main()
{
  try {
  } catch(std::invalid_argument const&) {
  }
}
	

	- Doug



More information about the Libstdc++ mailing list