J'utilise un code similaire basé sur l'exemple suivant:Google Mock - opérateur conversion privé int
class FOO
{
private:
operator int() const;
};
class BARMOCK
{
public:
MOCK_METHOD1(Bar, void(const FOO& foo));
};
Malheureusement, le message d'erreur suivant est généré par le compilateur:
gtest/internal/gtest-internal.h(892): error C2248: 'FOO::operator int': cannot access private member declared in class 'FOO'
qui vient de gtest-internal lui-même:
static const bool value = sizeof(Helper(ImplicitlyConvertible::MakeFrom())) == 1;
Y at-il un moyen possible de le faire rk, ou est-ce une limitation connue du cadre de google maquette?
Bien sûr, il existe des moyens de contourner le problème, comme:
class BARMOCK
{
public:
MOCK_METHOD1(BarMock, void());
void Bar(const FOO& foo) { BarMock(); }
};
Mais ceci est juste une solution, pas une vraie solution. Est-ce que quelqu'un sait quelque chose à ce sujet? Merci.