在编译时检测字符串文字

时间:2016-08-04 08:38:55

标签: c++ string c++11 optimization

我在C ++ 11中想到了一个不可变的字符串类。

我希望拥有的功能之一是能够使用借来的内存,用户在初始化期间承诺包含数据的缓冲区不会改变,并且比字符串对象的寿命更长。这种类型的初始化在实践中可能非常罕见,因此它主要可以通过静态方法访问。

为方便起见,我希望像ImmutableString("abc")这样的结构最终使用借用的内存,因为使用字符串文字我实际上可以确定值的生命周期和常量。

有没有办法确定参数是否是字符串文字? const char[]的重载是不够的,因为它可以从普通char[]自动转换,并且无法以任何方式保证生命周期。

0 个答案:

没有答案