#include <iostream>
#include <boost/shared_ptr.hpp>
using namespace std;
class A
{
public:
const shared_ptr<const int> getField() const
{
return field_;
}
private:
shared_ptr<int> field_;
};
void f(const A& a)
{
auto v = a.getField(); //why auto doesn't a const shared_ptr<const int> here ?
v.reset(); //OK: no compile error
}
int main()
{
A a;
f(a);
std::cin.ignore();
}
在上面的代碼,爲什麼編譯器推斷v
的類型shared_ptr<int>
而不是由const shared_ptr<const int>
返回getfield命令的類型?汽車和const對象
編輯: MSVC2010
您使用的編譯器是什麼? –
相關:http://stackoverflow.com/questions/7138588/c0x-auto-what-if-it-gets-a-constant-reference –