Я не думаю, что as_array и / или as_literal будут делать то, что вы хотите.Хотя написать не так уж сложно, я не знаю ни одного существующего класса, предназначенного для того, чтобы делать то, что вы хотите (или, по крайней мере, то, что я думаю, что вы хотите).
Редактировать: я, вероятно, не должен говорить, что я неЯ не знаю каких-либо таких классов - я просто не знаю ни одного, который особенно хорошо известен, широко используется или тщательно проверен.Если вы будете искать в архивах comp.lang.c ++ и / или comp.lang.c ++., Модерируемых, скажем, 12–15 лет назад или около того, вы, вероятно, найдете не менее дюжины (по крайней мере, при условии, что поиск в группе новостей Google работаетв данный момент).Пока память не подведет меня особенно сильно, я отправил один сам где-то вдоль линии (хотя я не могу найти это прямо сейчас ...) Как вы можете догадаться с их возраста, вы, вероятно, не захотите использовать большинство(любой?) из них как есть - их использование C ++ часто довольно примитивно.