Модульное тестирование XCode с C ++: кандидат найден поиском имени и ссылка неоднозначна - PullRequest
0 голосов
/ 25 сентября 2019

Я пытаюсь перенести несколько тестов в цель XCTest моего приложения в Xcode.Библиотека, для которой я тестирую функциональные возможности, большая, и я включаю ее заголовочные файлы в мой файл tests.mm (мой файл тестирования Obj-C ++, где находятся все примеры модульных тестов).

Для одного конкретного типа «Размер» компилятор сообщает о серии неоднозначных столкновений с типом «Размер», уже определенным как часть SDK для MacOS10.13 (в / usr / include).Вот как выглядит #include для моего тестового файла:

#import <XCTest/XCTest.h>

#include <ql/quantlib.hpp>.   <---- defines Size, which clashes with MacTypes.h definition
#include <Analytics/all.hpp>
#include <boost/timer.hpp>
#include <utility>
#include <typeinfo>
#include <thread>
#include <atomic>
#include <mutex>
#include <random>
#include <condition_variable>
#include <future>

using namespace src::Utilities;
using namespace src::Simulation;
using namespace src::MarketData;
using namespace src::detail;
using namespace std::placeholders;

//...More code down here, but not problematic

- это файл, который содержит определение для Size.Может кто-нибудь, пожалуйста, помогите определить, где я мог ошибиться, особенно когда я запускаю тесты как часть гигантской функции Main (), все работает нормально.

Спасибо, Амин

1 Ответ

0 голосов
/ 26 сентября 2019

Обновление: после некоторого исследования, я думаю, я нашел то, что происходило с этой проблемой: «использование пространства имен xxxx» внутри среды тестирования Objective-C ++ вместо полной квалификации типов данных с помощью xxxx :: clashs с собственными типами API Apple (Размер, ручка, ptr и т. Д.).В этом случае требуется полная квалификация пространства имен типов данных C ++, чтобы избежать двусмысленности.

...