保存一个 char* 参数引入一个字符串

Save a char* parameter intro a string

请帮我解决这个问题。我是 gtest 的初学者。 我有一个模拟函数

DoSomething(const char* par0, const char* par2)

我想将它的第二个参数保存到

    std::string `savedPar_`;

EXPECT_CALL(mockd_, DoSomething(_, _,))
        .WillOnce(DoAll(SaveArg<1>(savedPar_), (Return(Ok))));

并收到此错误:

error: no match for ‘operator*’ (operand type is ‘const std::__cxx11::basic_string<char>’)
   *pointer = ::testing::get<k>(args);

比你提前那么多!

根据doc

SaveArg<N>(pointer) Save the N-th (0-based) argument to *pointer.

应该是:

std::string savedPar_;

EXPECT_CALL(mockd_, DoSomething(_, _,))
        .WillOnce(DoAll(SaveArg<1>(&savedPar_), (Return(Ok))));
//                                 ^