我在存储 std::cout
时遇到问题在std::shared_ptr<std::ostream>
.
因为这显然不应该这样做:
std::shared_ptr<std::ostream> p_cout(&std::cout);
这甚至是不可能的,因为不可能复制 std::ostream:
std::shared_ptr<std::ostream> p_cout = std::make_shared<std::ostream>(std::cout);
有人知道合法的解决方法吗?
最佳答案
您的要求很奇怪,但您当然可以存储指向 std::ostream
的指针在shared_ptr<std::ostream>
如果您采取适当的处置措施:例如:std::shared_ptr<std::ostream>(&std::cout, [](void*) {});
关于来自 std::cout 的 C++11 std::shared_ptr<std::ostream>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17220154/