Я работаю над проектом, который объединяет оба класса C++ с использованием классов Boost и Object C. Я могу создать его, когда я пишу обертку для использования классов Objective C в C++, но когда я пишу оболочку для класса C++ в объекте C, проект не может построить с помощью семантической ошибки в boost/thread.hpp. Более конкретно в повышающем/type_traits/подробно/mp_defer.hppСвязывание Boost в Objective C и C++ объединенный проект xcode
Я использую LLVM C++ с поддержкой C++ 11
Я по следующей ссылке, чтобы обернуть классы перекрестного языка. http://philjordan.eu/article/mixing-objective-c-c++-and-objective-c++
Я ссылался на нижеследующий пост, но не разрешил свою проблему. Use boost library in cocoa project
Ниже приведен список ошибок:
struct mp_valid_impl
{
template<template<class...> class G, class = G<T...>>
static boost::true_type check(int); //use of undeclared identifier check
template<template<class...> class>
static boost::false_type check(...);
using type = decltype(check<F>(0));//Cannot refer to class template F without template argument list
};
template<template<class...> class F, class... T>
using mp_valid = typename mp_valid_impl<F, T...>::type; //No type named boost in 'boost::type_traits_detail::m_valid_impl<......>
дополнительные журналы отказов:
/usr/local/boost/include/boost/type_traits/detail/mp_defer.hpp: 37: 1: Нет типа с именем 'type' in 'boost :: type_traits_detail :: mp_valid_impl'
/usr/local/boost/include/boost/type_traits/detail/mp_de fer.hpp: 37: 1: Отсутствует тип с именем 'типа' в 'повышение :: type_traits_detail :: mp_valid_impl'
/usr/local/boost/include/boost/thread/pthread/timespec.hpp:52: 42: Недопустимые операнды для двоичного выражения ('const chrono :: nanoseconds' (aka 'const duration>') и 'typename boost :: enable_if>>, duration>> :: type' (aka 'boost :: chrono :: duration > '))
/usr/local/boost/include/boost/chrono/duration.hpp:405:62: Отсутствует тип с именем 'типа' в 'повышение :: common_type'
/USR /local/boost/include/boost/thread/pthread/condition_variable_fwd.hpp:239:38: Недопустимые операнды для двоичного выражения ('time_point' (aka 't ime_point ') и' stable_clock :: time_point '(aka' time_point '))
/usr/local/boost/include/boost/chrono/duration.hpp:559:17: Невозможно преобразовать' const duration> ' на «CD» (aka «int») без оператора преобразования
/usr/local/boost/include/boost/type_traits/detail/mp_defer.hpp:37:1: Тип типа 'type' в ' повышение :: type_traits_detail :: mp_valid_impl»
Я читал в Интернете, и пытаюсь в течение нескольких часов, пожалуйста, помогите. Благодаря
Я ответил на ваш вопрос, но вы должны опубликовать полный журнал ошибок здесь, чтобы этот ответ был правильным. – PnotNP
@NulledPointer Мое расширение файла .mm, я также указал типы файлов как Objective C++ Scource – stack