c++ - "const char(&a)[N]"是什么意思?

标签 c++ c++11

我正在检查 C++11 功能并看到以下代码:

class conststr {
    const char* p;
    std::size_t sz;
public:
    template<std::size_t N>
    constexpr conststr(const char(&a)[N]): p(a), sz(N - 1) {}
};

我知道 const char a[],但我对 const char(&a)[N] 很困惑,有人知道如何使用它吗?

最佳答案

它是对大小为 Nconst char 数组的引用。这可能用于接受字符串文字作为参数。

conststr("whatever"); // ok
char const * psz_whatever("whatever");
conststr(psz_whatever); // error

关于c++ - "const char(&a)[N]"是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43435279/

相关文章:

c++ - 模板函数作为模板参数

c++ - 整数常量太大以至于在将最大类型值分配给枚举时它是无符号的

c++ - 为什么 std::condition_variable 不是按锁类型模板化的?

c++ - 为什么标准不允许定义下面的两个函数 `f`?

java - 使用 std::map<std::string, std::string> 从 c++ 调用带有参数 Map<String, String> 的 Java 函数

c++ - "error: no matching function for call to"构造函数错误

c++ - 系统调用成本

c++ - 我可以为我自己的可变参数函数启用有关错误使用说明符的警告吗?

c++ - std::stable_sort 根本不稳定?

c++ - 在模板参数中引用模板类型