繁体   English   中英

C ++:从wchar_t *转换为unsigned short *是否安全?

[英]C++: Is it safe to cast from wchar_t* to unsigned short*?

C ++:从wchar_t *强制转换为unsigned short *是否安全?

因为我正在使用MSXML2的SAXReader,所以我需要传递unsigned short *的某些方法。 我需要传递的值是wchar_t,因此执行此强制转换安全吗?

通常,强制转换是不安全的,因为严格的别名规则禁止它。

但是,如果wchar_tunsigned shorttypedef ,则wchar_t使用。 如果是这样,您可以在编译时使用static_assert ,基于的值来强制执行该操作。

std::is_same<whar_t, unsigned short>::value

还要注意,尽管这样的实现依赖于编译器没有正确地实现标准:形式上wchar_t具有与整数类型之一相同的大小,有符号性和对齐方式,但是是不同的类型。”因此, typedef不兼容并且值声明应始终失败。

参考: http//en.cppreference.com/w/cpp/language/types

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM