gpt4 book ai didi

c++-winrt - C++/WinRT 是否提供辅助函数来从字符串文字构造 GUID?

转载 作者:行者123 更新时间:2023-12-01 12:11:45 30 4
gpt4 key购买 nike

与 C++/CX 不同,C++/WinRT 中似乎没有 GUID 的包装器类型。它只使用普通的 C GUID struct原样。因此构造初始化 GUID 的唯一方法是使用 aggregate initialization语法,例如

GUID const guid{ 0x00000000, 0x0000, 0x0000,{ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 } };

虽然这可行(而且 Visual Studio 中的 Create GUID 工具甚至可以设置为为您生成初始化程序代码),但它很乏味,远非可读性,而且总是让我挠头是否我介绍了任何字节顺序问题。

我更愿意编写(使用假设的 make_guid 函数)

auto const guid{ make_guid("00000000-0000-0000-0000-000000000000") };

我知道 C++/WinRT 做了很多 constexpr 魔术来从完全限定的类型名称计算 GUID,所以大概可以实现零开销编译时间 make_guid功能。浏览 documentationwinrt/base.h,我没有发现任何立即适用的内容。

C++/WinRT 是否提供辅助函数以在编译时从字符串文字构造 GUID?如果没有,我们/我可以拥有一个吗?

最佳答案

不,C++/WinRT 目前不提供这样的帮助程序。最初编写 constexpr GUID 代码时,C++ 编译器对 constexpr 的支持相当脆弱且缓慢。因此,我避免了任何不必要的计算。然而,constexpr 支持有了很大改进。无论如何,constexpr make_guid 函数对于足够高级的编译器是可行的。这是一个例子:

https://gist.github.com/kennykerr/6c948882de395c25b3218ad8d4daf362

关于c++-winrt - C++/WinRT 是否提供辅助函数来从字符串文字构造 GUID?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51319872/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com