Парсинг Boost: кортеж в символ * (с порядком байтов)

У меня есть много классов с различными реализациями их частного члена boost::tuple<> structures то есть. <std::string, int> или же <short, short, float>,
Теперь мне нужно разобрать этот кортеж в частном const char* message (так как я хочу отправить его через tcp), но не без изменения порядка байтов для тех типов данных, которым нужно изменить их порядок байтов.

Это то, что я имею до сих пор:

struct parseTuple{
template<typename T>
void operator()(T& t) const{
std::cout << ntohl(t) << "\n";
}
};

void Base::createMessageFromTuple(){
boost::fusion::for_each(this->structure, parseTuple());
}

Есть несколько вещей, которые я должен знать, прежде чем я смогу продолжить:

  1. Как отслеживать членов кортежа, чтобы я мог выделить место для message в соответствии с их типами данных (статический член, может быть?)

  2. Как различить в шаблоне типы данных, которые соответствуют ntohl требования и те, которые требуют различного обращения, т.е. std::string

  3. Это даже правильный подход?

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector