Сообщение эмм... variadic-pack в нешаблонную функцию от 12.10.2016 14:41
Изменено 12.10.2016 14:48 niXman
привет!
снова хочу странного =)
т.е. хочется каким-то образом(возможно даже используя tuple<>), передать args в send2(), которая реализована в cpp`шке.
для фундаментальных типов все просто — преобразуем args в массив указателей на void, и добавляем какие-то ID`ы, идентифицирующие типы.
но со всеми остальными(в том числе и юзерскими типами) типами все как-то не перспективно...
кто-то задавался похожим вопросом?
спасибо.
снова хочу странного =)
struct somestruct {
template<typename... Args>
shared_buffer pack(const Args&... args) {
return pack2(args...);
}
private:
shared_buffer pack2(???);
}; // somestruct
т.е. хочется каким-то образом(возможно даже используя tuple<>), передать args в send2(), которая реализована в cpp`шке.
для фундаментальных типов все просто — преобразуем args в массив указателей на void, и добавляем какие-то ID`ы, идентифицирующие типы.
но со всеми остальными(в том числе и юзерскими типами) типами все как-то не перспективно...
кто-то задавался похожим вопросом?
спасибо.
эмм... variadic-pack в нешаблонную функцию
привет!
снова хочу странного =)
т.е. хочется каким-то образом(возможно даже используя tuple<>), передать args в send2(), которая реализована в cpp`шке.
для фундаментальных типов все просто — преобразуем args в массив указателей на void, и добавляем какие-то ID`ы, идентифицирующие типы.
но со всеми остальными(в том числе и юзерскими типами) типами все как-то не перспективно...
кто-то задавался похожим вопросом?
спасибо.
UP.
ну, наверное, можно что-то зарукоблудить используя std::type_index и карту(которую нужно инициализировать вручную) соответствующих обработчиков...
снова хочу странного =)
struct somestruct {
template<typename... Args>
shared_buffer pack(const Args&... args) {
return pack2(args...);
}
private:
shared_buffer pack2(???);
}; // somestruct
т.е. хочется каким-то образом(возможно даже используя tuple<>), передать args в send2(), которая реализована в cpp`шке.
для фундаментальных типов все просто — преобразуем args в массив указателей на void, и добавляем какие-то ID`ы, идентифицирующие типы.
но со всеми остальными(в том числе и юзерскими типами) типами все как-то не перспективно...
кто-то задавался похожим вопросом?
спасибо.
UP.
ну, наверное, можно что-то зарукоблудить используя std::type_index и карту(которую нужно инициализировать вручную) соответствующих обработчиков...