Используя BOOST, я пытаюсь получить соглашение о вызове функции, и для этого я использую тот же подход, что и тот, кто написал тот же вопрос - однако их решение не решило мою проблему.
Вот ссылка на их проблему: Соглашение о вызове функции с boost :: function_types
Я попытался получить соглашение о вызовах, используя подобный подход, но получаю ошибки компилятора, жалующиеся на то, что "cdecl_cc" не определен. Вот небольшой фрагмент моего кода:
#define BOOST_FT_COMMON_X86_CCs 1
#include <boost/function_types/config/config.hpp>
#include <boost/function_types/is_function.hpp>
static bool isCdecl()
{
if(boost::function_types::is_function<T, cdecl_cc>::value == true)
return true;
return false;
}
Другой пользователь утверждает, что, добавив include для boost / function_types / config / config.hpp и определив BOOST_FT_COMMON_X86_CCs, проблема была решена - однако она не решила мою.
Я также попытался поместить включения и определение в предварительно скомпилированный заголовок.
Глядя на config.hpp, я вижу включение в cc_names.hpp, в котором приведено следующее определение:
#define BOOST_FT_BUILTIN_CC_NAMES \
(( IMPLICIT , implicit_cc , BOOST_PP_EMPTY ))\
(( CDECL , cdecl_cc , BOOST_PP_IDENTITY(__cdecl ) ))\
(( STDCALL , stdcall_cc , BOOST_PP_IDENTITY(__stdcall ) ))\
(( PASCAL , pascal_cc , BOOST_PP_IDENTITY(pascal ) ))\
(( FASTCALL , fastcall_cc , BOOST_PP_IDENTITY(__fastcall) ))\
(( CLRCALL , clrcall_cc , BOOST_PP_IDENTITY(__clrcall ) ))\
(( THISCALL , thiscall_cc , BOOST_PP_IDENTITY(__thiscall) ))\
(( IMPLICIT_THISCALL , thiscall_cc , BOOST_PP_EMPTY ))
Я не уверен, как следует толковать такое определение, если бы кто-то мог мне его объяснить, я мог бы выяснить, как решить мою проблему.
Извините за все мои вопросы, связанные с BOOST, я довольно новичок в этом, и сначала я погружаюсь в одну из самых сложных библиотек.
Спасибо.