是否可以将字符串存储在constexpr
结构中:
到目前为止,我只能想出:
struct A
{
constexpr A(std::string_view n): m_name(n) {}
constexpr auto name(){ return m_name; }
std::string_view m_name; // This might become dangling!!
}
如果仅像这样使用此类,这显然是一个好主意
A a = {"Hello"};
constexpr A b = {"World"};
而不是这样
auto makeA(std::string n) { return A{n}; }
A a = makeA("Hello"); // Dangling internal std::string_view
我需要constexpr
在编译时构造结构。是否有可能在运行时使其更安全,因为std::string_view
它不是。