C++11 通用引用和接口之间的关系 我正在阅读scott meyers关于第27项中的有效现代C++的书,下面是TEX/P>
在使用通用参考参数时,在复杂系统中通用 引用在之前通过多层函数调用转发 最终到达一个确定参数 类型是可接受的。通用参考的次数越多 转发错误消息时,mor可能会在 出了问题。许多开发人员发现,这一问题本身就是解决问题的理由 为接口保留通用参考参数,其中 性能是最重要的问题 林克的一些背景 我下面是上面课文中的问题C++11 通用引用和接口之间的关系 我正在阅读scott meyers关于第27项中的有效现代C++的书,下面是TEX/P>,c++11,C++11,在使用通用参考参数时,在复杂系统中通用 引用在之前通过多层函数调用转发 最终到达一个确定参数 类型是可接受的。通用参考的次数越多 转发错误消息时,mor可能会在 出了问题。许多开发人员发现,这一问题本身就是解决问题的理由 为接口保留通用参考参数,其中 性能是最重要的问题 林克的一些背景 我下面是上面课文中的问题 作者所说的“为接口保留通用参考参数”是什么意思 C中的通用引用和接口之间有什么关系吗++ 你似乎把普通英语理解为专业术语。这句话是这样的: 许多开发人员发现,这个问题本身就是为性能最重
你似乎把普通英语理解为专业术语。这句话是这样的: 许多开发人员发现,这个问题本身就是为性能最重要的接口保留通用参考参数的理由 “通用引用”(现在称为“转发引用”)是一个技术术语,但其他词在其正常的英语意思中使用。这句话可以用以下更简单的词来表达: 许多开发人员发现,由于这个问题,如果函数的性能至关重要,他们只在函数的参数中使用通用引用 要回答您的确切问题:
接口
。C++甚至没有这样的概念:“<代码>接口<代码> > template <typename T>
void Foo(T&&);
第一种选择更加简洁。第二种方法在出现编译错误时生成更清晰的消息
您还可以选择不使用某些重载。但这可能是一个效率较低(就性能而言)的解决方案。不要忘记,通用引用也捕获了
volatile
。
void Foo(Foo&&);
void Foo(const Foo&)
void Foo(Bar&&);
void Foo(const Bar&);
// overloads with volatile are less commonly used, but possible