我在C ++ 11中想到了一个不可变的字符串类。
我希望拥有的功能之一是能够使用借来的内存,用户在初始化期间承诺包含数据的缓冲区不会改变,并且比字符串对象的寿命更长。这种类型的初始化在实践中可能非常罕见,因此它主要可以通过静态方法访问。
为方便起见,我希望像ImmutableString("abc")
这样的结构最终使用借用的内存,因为使用字符串文字我实际上可以确定值的生命周期和常量。
有没有办法确定参数是否是字符串文字?
const char[]
的重载是不够的,因为它可以从普通char[]
自动转换,并且无法以任何方式保证生命周期。