O Google Mock pode um método com um tipo de retorno de ponteiro inteligente?

Tenho uma fábrica que retorna um ponteiro inteligente. Independentemente de qual ponteiro inteligente eu uso, não consigo fazer com que o Google Mock zombe do método de fábric

O objeto simulado é a implementação de uma interface abstrata pura, onde todos os métodos são virtuais. Eu tenho um protótipo:

MOCK_METHOD0(Create, std::unique_ptr<IMyObjectThing>());

E eu recebo:

"...gmock/gmock-spec-builders.h(1314): error C2248: 'std::unique_ptr<_Ty>::unique_ptr' : cannot access private member declared in class 'std::unique_ptr<_Ty>'"

O tipo apontado no ponteiro inteligente é definid

E entendo que está tentando acessar um dos construtores declarados privados, mas não entendo o porquê. Quando este era um std :: auto_ptr, o erro dizia que não havia construtor de cópias, o que me confund

De qualquer forma, existe uma maneira de zombar de um método que retorna um ponteiro inteligente? Ou existe uma maneira melhor de construir uma fábrica? Minha única decisão é retornar um ponteiro bruto (blech ...)?

Meu ambiente é o Visual Studio 2010 Ultimate e o Windows 7. Não estou usando a CL

questionAnswers(3)

yourAnswerToTheQuestion