【发布时间】:2018-02-16 10:13:09
【问题描述】:
我想我很了解如何将关键字 constexpr 用于简单的变量类型,但是当涉及到指向值的指针时我感到困惑。
我想声明一个 constexpr C 字符串文字,其行为类似于
#define my_str "hello"
这意味着编译器将 C 字符串文字插入到我输入此符号的每个位置,并且我将能够在编译时使用 sizeof 获取它的长度。
是constexpr char * const my_str = "hello";
或const char * constexpr my_str = "hello";
或constexpr char my_str [] = "hello";
还是有所不同?
【问题讨论】:
-
好吧,你真的想要一个数组还是一个指向常量字面量的指针?
-
要在编译时使用 sizeof 获得 "长度,重要的不是值,而是类型。
-
@NathanOliver:我想要一个可以放入 sizeof(my_str) 的东西,它会给我该字符串的字节数,而不是指针的大小。
-
在这种情况下“等”是什么?
-
那么
const char my_str[] = "hello";就够了。
标签: c++ constexpr c-strings string-literals