提问人:user1244932 提问时间:5/4/2023 更新时间:5/4/2023 访问量:121
Cpp 核心指南:“const char *”到“const uint8_t *”没有reinterpret_cast和 C 样式转换?
Cpp Core Guidelines: "const char *" to "const uint8_t *" without reinterpret_cast and C-style cast?
问:
对于这样的代码:
#include <cstdint>
extern const char *f();
extern void g(const uint8_t *);
int main()
{
const char *p = f();
g(reinterpret_cast<const uint8_t *>(p));
}
clang-tidy -checks='cppcoreguidelines-*'
生成警告:
do not use reinterpret_cast [cppcoreguidelines-pro-type-reinterpret-cast]
CppCoreGuidelines中确实有这样的段落。
但是,对于像 -> 这样的情况,如何避免或 C 型投射呢?reinterpret_cast
const char *
const uint8_t *
这是 CppCoreGuidelines 中的错误吗?
答: 暂无答案
评论
g( static_cast<const uint8_t*>( static_cast<const void*>( p ) ) );
?char
std::memcpy(f_ui8, f, size);
std::memcpy
char