Учитывая этот фрагмент
MOCK_METHOD1(foo, int(volatile int*));
Этот фрагмент кода прекрасно компилировался с GMock 1.7.0, но при обновлении до GMock 1.8.0 выдает ошибку
../gmock/fused-src/gtest/include/gtest/gtest-printers.h:467:6: error: reinterpret_cast from type 'volatile int*' to type 'const void*' casts away qualifiers
*os << reinterpret_cast<const void*>(p);
^
Этоочевидно, что он не компилируется, потому что reinterpret_cast
по определению не может удалить cv-квалификаторы.
Я должен также упомянуть, что я использую c ++ 98, поэтому remove_volatile
, к сожалению, может
Кроме того, некоторые аргументы функций по умолчанию имеют переменный спецификатор из-за их прямого взаимодействия с памятью во встроенном устройстве.
Есть ли способ избавитьсяэтой проблемы?
это действительно отсутствующая функция в Gmock?