C++0x name clash: invalid_argument

Benjamin Kosnik benjamin.kosnik@gmail.com
Mon Sep 24 16:11: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&) {
>   }
> }


Bummer. You should try to get Beeman to add this as a new issue to the
list of mess-ups in <system_error>. 

-benjamin



More information about the Libstdc++ mailing list