Я вижу, как можно использовать карму для создания контейнера, управляющего памятью, например std::string. Но как насчет случая, когда буфер (char[N]) был предварительно выделен?
{
using namespace boost::spirit::karma;
{
std::string buffer;
generate(std::inserter(buffer, buffer.begin()), double_, 3.13);
std::cout << ':' << buffer << ':' << std::endl;
}
{
//////////////////////////////////////////////////////////////////////
// How to make the following work? Is there a builtin output
// iterator that just works?
#if defined(MAJIC)
char buffer[1024];
generate(buffer, double_, 3.13);
std::cout << ':' << buffer << ':' << std::endl;
#endif
}
}
Я хотел бы найти способ разобрать двойник на адрес существующего буфера. Можно предположить, что буфер достаточно велик для этого случая. Может быть, основной вопрос действительно заключается в том, есть ли уже адаптер выходного итератора или что-то в карме для собственных массивов, которые можно было бы использовать?