我可以::std::any保留一个无符号整数吗?就像是:
::std::any a = 4;
unsigned int x = ::std::any_cast<unsigned int>(a);
Run Code Online (Sandbox Code Playgroud)
导致::std::bad_any_cast异常,因为a实际上保存的是有符号整数。
bol*_*lov 12
是的,只需在其中放入一个无符号整数即可:
::std::any a = 4u;
// or
::std::any a = static_cast<unsigned>(4);
Run Code Online (Sandbox Code Playgroud)
https://godbolt.org/z/vzrYnKKe9
我必须警告你。std::any并不是将 C++ 转换为 python 或 javascript 等动态类型语言的神奇工具。它的用例非常狭窄和具体。它并不真正意味着在用户代码中用作“包罗万象”类型。它是void *低级库代码的类型安全替代方案。
| 归档时间: |
|
| 查看次数: |
275 次 |
| 最近记录: |