[Development] Proposal: adding Q_DECL_NOEXCEPT to many methods

marius.storm-olsen at nokia.com marius.storm-olsen at nokia.com
Thu Aug 2 19:15:26 CEST 2012


On 02/08/2012 07:50, ext Thiago Macieira wrote:
> The macro expands to nothing in C++98 mode. That means code using the
> API so marked and compiling in C++98 mode will simply not gain the
> benefits of the keyword, but should see no side effects.
>
> The presence of the keyword does not affect binary compatibility.
> With the Itanium C++ ABI, it's not present in the mangling. MSVC2010
> does not supoprt it yet, so I cannot verify what it does. However,
> since C++11 support cannot be turned on or off on it, the keyword
> will be enabled or it won't depending on the compiler version, which
> means that binary compatibility is irrelevant. But if it does encode
> it in the mangling, we will not be able to add the keyword to methods
> in 5.1 or later.

MSVC2012 doesn't support it (yet) either. However, MSVC compilers since 
2003 support the almost equivalent throw()/throw(...)/throw(<type>) 
exception specification.

So, perhaps we can identify the cases where they are similar and use 
that with MSVC until proper noexcept()/noexcept(<type>) support is provided?

See http://msdn.microsoft.com/en-us/library/wfa0edys(v=vs.100).aspx for 
more details.

-- 
.marius


More information about the Development mailing list