У меня есть много классов с различными реализациями их частного члена 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());
}
Есть несколько вещей, которые я должен знать, прежде чем я смогу продолжить:
Как отслеживать членов кортежа, чтобы я мог выделить место для message
в соответствии с их типами данных (статический член, может быть?)
Как различить в шаблоне типы данных, которые соответствуют ntohl
требования и те, которые требуют различного обращения, т.е. std::string
Задача ещё не решена.
Других решений пока нет …