gpt4 book ai didi

c++ - 在 C++ 标准库中采用右值引用的构造函数

转载 作者:搜寻专家 更新时间:2023-10-31 02:20:29 26 4
gpt4 key购买 nike

虽然我认为 C++ 标准库中的某些类应该有一个构造函数重载以接收非常量右值引用,但实际上它们并没有。示例包括 stringstream 类系列和标准异常类。为什么他们没有接受 std::string&& 的构造函数?这些类应该能够将 string 参数移动到它们的内部存储中。我哪里错了?我只是对类的底层实现有一个错误的假设吗?

我想异常类确实应该提供一个构造函数重载,它接受 std::string&&,用于通过异常为内部存储分配一个新的 std::string类很可能导致抛出另一个异常。

最佳答案

我在猜测,但我想它没有包括在内,因为它对典型的实现没有用。将流的内容保存在一个连续的数组中没有任何优势,而将其排列得更像缓冲区的单链表是没有优势的,这样在写入流时就不必进行复制,所以我想预期的实现不会能够利用构造函数。

关于c++ - 在 C++ 标准库中采用右值引用的构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32663198/

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