constexpr int aaa{20}; constexpr int bbb{256}; char aa[aaa][bbb]; char bb[512]; int len{static_cast<int>(strlen("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"))}; len = static_cast<int>(len + strlen(bb) + strlen(aa[0]) + strlen("%%' ")); 这段代码报以下这个错误"len" is implicitly
时间: 2024-03-27 21:36:38 浏览: 139
C++中的const和constexpr详解
defined as "int" in this context, which is not allowed in C++11
这个错误是因为在 C++11 标准中,使用 "int" 进行隐式定义是不被允许的。你需要显式地定义 "len" 的类型,例如:
```cpp
constexpr int aaa{20};
constexpr int bbb{256};
char aa[aaa][bbb];
char bb[512];
size_t len{strlen("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa")};
len = len + strlen(bb) + strlen(aa[0]) + strlen("%%' ");
```
这里我将 "len" 的类型改为了 "size_t",因为在计算字符串长度时,返回的类型是 "size_t",因此将 "len" 定义为 "size_t" 更加合适。
阅读全文