我试图理解的语法boost::scoped_ptr
.让我们定义并向标准输出写入scoped_ptr
指针及其指向的值:
#include <boost/scoped_ptr.hpp>
#include <iostream>
int main()
{
boost::scoped_ptr<int> p{new int{1}};
std::cout << p.get() << '\n'; // ok
std::cout << p << '\n'; // error
std::cout << *p.get() << '\n'; // ok
std::cout << *p << '\n'; // ok. *p==*p.get()
}
Run Code Online (Sandbox Code Playgroud)
题.为什么现在*p.get()==*p
却std::cout << p << '\n';
不会编译?
我的工作on g++ -std=c++11 -O2 -Wall -pedantic
.