Зачем использовать mock_non_const_method_ext для оператора float () в Boost Turtle?C++

Программы на C++. Форум разработчиков
Anonymous
Зачем использовать mock_non_const_method_ext для оператора float () в Boost Turtle?

Сообщение Anonymous »

Я использую Boost 1.46 с Turtle Lib 1.2.4 и компилятором от Visual Studio Express 2013. У меня есть следующее класс, чтобы вытереть: < /p>

struct IPredicate
{
virtual ~IPredicate() {}

virtual bool operator()(float value) = 0;
};
< /code>

Когда I Mock Operator () с MOCK_NON_CONST_METHOD: < /p>

MOCK_BASE_CLASS(MockPredicate, IPredicate)
{
MOCK_NON_CONST_METHOD(operator(), 1, bool(float), id)
};
< /code>

Я получил кучу ошибок компилятора, например, Синтаксическая ошибка «оператор» и так далее. Но когда я издевается над этим с помощью mock_non_const_method_ext: < /p>

MOCK_BASE_CLASS(MockPredicate, IPredicate)
{
MOCK_NON_CONST_METHOD_EXT(operator(), 1, bool(float), id)
};
< /code>

Все в порядке и работает отлично! Согласно http://turtle.sourceforge.net/turtle/reference.html Mocks с суффиксом EXT для «Компиляторы без поддержки варидовых макросов», но тот, который я использую, имеет поддержку (проверьте его с этими примерами: http://// /msdn.microsoft.com/en-us/library/ms177415.aspx). Остальная часть документации не совсем ясна в этом случае. Почему у меня ошибки, когда я не использую максимальную версию EXT?

Подробнее здесь: https://stackoverflow.com/questions/214 ... ost-turtle

Вернуться в «C++»