Превратить постоянное выражение в типC++

Программы на C++. Форум разработчиков
Anonymous
Превратить постоянное выражение в тип

Сообщение Anonymous »

Для декларативной части системы некоторые обработчики* должны быть переданы в виде типов: < /p>

int read_handler();
class handler {...};

typedef bluetoe::service<
bluetoe::service_uuid< 0x8C8B4094, 0x0DE2, 0x499F, 0xA28A, 0x4EED5BC73CA9 >,
bluetoe::characteristic<
bluetoe::free_read_handler< read_handler >, // *
bluetoe::member_read_handler< handler, &handler::read, &handler_instance > // *
>
> service;
< /code>

Особенно для версии функции члена это значение «значение для типа» должно быть определено для каждой комбинации квалификатора CV. И для каждого преобразования я должен представить новое имя. То, что я пробовал, заключалась в том, чтобы вывести тип и захватить значение обработчика функцией ContexPR. Что -то по линии: < /p>

typedef bluetoe::service<
bluetoe::service_uuid< 0x8C8B4094, 0x0DE2, 0x499F, 0xA28A, 0x4EED5BC73CA9 >,
bluetoe::characteristic<
decltype( bluetoe::bind( read_handler ) ),
decltype( bluetoe::bind( handler, &handler::read, &handler_instance ) )
>
> service;
< /code>

с bind < /code> wee: < /p>

auto constexpr bind( void(*f)() ) -> bluetoe::free_read_handler< f >
{
return bluetoe::free_read_handler< f >();
}
< /code>

Может ли кто -то из вас подумать о решении, чтобы сделать эту работу. Предпочтительнее C ++ 11, но любое решение, которое, по крайней мере, упрощает задачу, также приветствуется.

Подробнее здесь: https://stackoverflow.com/questions/341 ... nto-a-type

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