Вы должны указать, в чем заключается проблема, а не проблема с вашим предполагаемым решением. Что вам действительно нужно?
Ответ на ваш вопрос на самом деле довольно прост, но я боюсь, что проблема кроется глубже в вашем дизайне ...
struct raw {
const char * const data;
};
raw r = { "hi there" };
Или вы можете (должны) предоставить конструктор. Теперь, если вы хотите инициализировать это результатом вызова c_str()
для строки, то вы наверняка столкнетесь с проблемами, так как возвращаемый указатель действителен только до следующей операции, которая модифицирует строку. Вы можете strdup
строку c, но тогда вам придется управлять дублированной строкой ...