Почему бы просто не использовать строковую константу, когда она вам нужна?
SomeClass::function1(...)
{
/* ... */
throw std::runtime_error("The foo blortched the baz!");
/* ... */
}
Также вы можете использовать static const std::string
с. Это уместно, если вы ожидаете скопировать их во многие другие std::string
s, а ваша реализация C ++ выполняет копирование при записи:
SomeClass::function1(...)
{
static const std::string str_quux("quux"); // initialized once, at program start
xyz.someMember = str_quux; // might not require an allocation+copy
}
Если вы ожидаете сделать много копий этих string
с, и у вас нет копирования при записи (или вы не можете полагаться на его наличие), вы можете захотеть разобраться с использованием boost :: flyweight .