Ошибка C2665 std::vector<std::tuple<std::wstring,void *,std::string>,std::allocator<std::tuple<std::wstring,void *,std::string>>>::push_back: ни одна из 2 перегрузок не может преобразовать все типы аргументов МашинныйВыполнение G:\Workspace\cpp.machinarium.gui\Исходники\Машинный\База\Поток.cpp
Возникла ошибка этого кода.
МашинныйОпределениеПсевдоСамоанализаКлассаРеализация(ПотокВыполнения, {
std::wcout << L"Регистрация мтодов класса ПотокВыполнения\n";
ЗарегистрироватьНеСтатическийМетодКласса(ПотокВыполнения, запустить, "void()");
ЗарегистрироватьНеСтатическийМетодКласса(ПотокВыполнения, остановить, "void(bool)");
ЗарегистрироватьНеСтатическийМетодКласса(ПотокВыполнения, запущен, "bool()");
ЗарегистрироватьНеСтатическийМетодКласса(ПотокВыполнения, приостановить, "bool()");
ЗарегистрироватьНеСтатическийМетодКласса(ПотокВыполнения, перезапустить, "bool()");
ЗарегистрироватьНеСтатическийМетодКласса(ПотокВыполнения, ждатьЗавершения, "void()");
} );
#include <list>
#include <tuple>
/**
* объявление рефлексии класса
*/
#define МашинныйОпределениеПсевдоСамоанализаКласса(NAME) \
public: \
virtual \
inline const std::wstring названиеКласса() { return НазваниеКласса(); } \
static \
inline const std::wstring НазваниеКласса() { return L ## #NAME; } \
public: \
МашинныйОбъявлениеСтатическогоБлокаКласса(NAME); \
public: \
static std::vector<std::tuple<std::wstring, void*, std::string>> __Список_Методов_Класса; \
static \
inline Машинный::Types::ullong СамоанализПолучитьКоличествоДоступныхМетодов() { return __Список_Методов_Класса.size(); }
/**
* Определить в листинке заголовочного файла вызовы регистрации параметров методов и их названий.
*/
#define МашинныйОпределениеПсевдоСамоанализаКлассаРеализация(НАЗВАНИЕ_КЛАССА, БЛОК_КОДА) \
std::vector< std::tuple<std::wstring, void*, std::string> > НАЗВАНИЕ_КЛАССА ## :: ## __Список_Методов_Класса; \
МашинныйРеализацияСтатическогоБлокаИнициализацииКласса(НАЗВАНИЕ_КЛАССА, БЛОК_КОДА);
/**
* Макроопределение для регистрации методов класса для перебора и анализа.
*/
#define ЗарегистрироватьНеСтатическийМетодКласса(НАЗВАНИЕ_КЛАССА, НАЗВАНИЕ_МЕТОДА, ПАРАМЕТРЫ_МЕТОДА) \
__Список_Методов_Класса.push_back(std::make_tuple( std::wstring(L ## #НАЗВАНИЕ_МЕТОДА), &НАЗВАНИЕ_КЛАССА##::##НАЗВАНИЕ_МЕТОДА, std::string(ПАРАМЕТРЫ_МЕТОДА) ));