gpt4 book ai didi

c++ - 我应该总是使用 noexcept 作为 setter/getter 吗?

转载 作者:IT老高 更新时间:2023-10-28 12:41:46 26 4
gpt4 key购买 nike

我应该在 C++11 中始终对 getter 使用 noexcept 方法修饰符吗?

我的意思是简单的 getter,只返回成员。至少在我所有的 setter/getter 中,我这里不可能有一个异常(exception)被抛出。一个缺点是 getter 过于冗长:

const std::string& getName() const noexcept{ return name; }

Stroustrup 书中指出的好处是编译器可能会在这里和那里做一些优化。

最佳答案

noexcept 是一个很难收回的 promise 。例如,您可以稍后做一些简单的事情,例如将返回类型更改为 std::string (无论出于何种原因),但因为这需要分配字符串的拷贝,所以它可以抛出。

因此标准采用了“仅在必要或非常有益时添加 noexcept”的方式,我认为这是一个很好的规则。你需要问自己的问题是,这个方法的调用者是否需要它不抛出?

关于c++ - 我应该总是使用 noexcept 作为 setter/getter 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21330807/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com