可能的编译器优化通过const引用和仅通过引用来捕获异常?

时间:2016-03-28 19:51:52

标签: c++

我意识到为什么(通常)最好通过引用而不是通过指针或值来捕获异常,并且我知道如果程序员使用const变量,编译器通常可以进行一些优化与非const变量相比。 This Stack Overflow question阐明了这个问题。

但是,这个问题没有提到的是,是否有任何可能的性能优化可以通过const引用而不仅仅通过引用来捕获异常,例如,使用

try
{
    ...
}
catch (const std::exception& e)
{
    ...
}

相对
try
{
    ...
}
catch (std::exception& e)
{
    ...
}

我知道如果你通过非const引用捕获异常,你可以做一些事情,例如修改它并重新抛出它,或者将它传递给一个非{{{的函数。 1}}引用作为参数。我也理解在适当的情况下使用const变量通常会使代码更具可读性。但是,编译器可以执行的任何可能的优化会使使用const引用异常本身“更好”或更快吗?或者如果我通过非const引用捕获了所有异常,代码通常会完全相同吗?

0 个答案:

没有答案