我最近了解到在C++中使用size_t
而不是std::size_t
是非标准的,因此必须更改我的代码。我在其他答案中读到char16_t
和char32_t
也作为typedef引入,但是intellisense只识别不带std::
的它们,而且我不知道它们来自哪个 header ,除了C header <uchar.h>
外,根据cppreference.com。
我应该为这些类型添加std::
前缀吗?如果是这样,它们定义在哪个C++ header 中?
最佳答案
这些答案有误,或者您误解了所读的内容(或者他们在谈论C)。char16_t
和char32_t
是keywords in C++(与size_t
不同)。它们是基本类型,就像int
和float
一样。它们是不同于所有其他类型的类型,但它们确实具有基础类型(分别为std::uint_least16_t
和std::uint_least32_t
)。
在C11中,char16_t
和char32_t
是在头<uchar.h>
中定义的typedef。也许答案在谈论C。
关于c++ - char16_t和char32_t是std namespace 的一部分吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/61240943/