std::shared_ptr转std::unique_ptr

阅读量: searchstar 2022-10-03 20:10:36
Categories: Tags:

不能直接转,只能将其移动到另一个用std::unique_ptr管理的对象里。

#include <iostream>
#include <memory>
int main() {
	std::shared_ptr<std::string> a = std::make_shared<std::string>(std::string("test"));
	std::cout << *a << std::endl;
	std::unique_ptr<std::string> b = std::make_unique<std::string>(std::move(*a.get()));
	std::cout << *b << std::endl;
	return 0;
}

感谢#cpplang:matrix.org群聊里的@deepbluev7:neko.dev@nenomius:matrix.org的指导。