如何解决C++/WinRT:在运行时类实现上放置关键字是否有意义?
我正在尝试最大限度地提高我的 UWP 客户端应用程序的性能,以弥补后端缓慢的问题,这不是我的作者。
在一些 Microsoft 的视频中,我看到将 [noexcept]
放在 IDL 类中可以使方法调用更高效,但是它们的 C++ 实现呢?像 inline
、noexcept
或 const
这样的关键字是否会改变任何东西,因为整个事物都是基于 COM 的,并且这些方法的调用方式与原始 C++ 中的调用方式不同?
// MyViewModel.idl
namespace MyApp
{
[bindable]
[default_interface]
runtimeclass MyViewModel
{
MyViewModel();
[noexcept] Int32 MyProperty;
}
}
// MyViewModel.h
namespace winrt::MyApp::implementation
{
struct MyViewModel : MyViewModelT<MyViewModel>
{
MyViewModel() = default;
inline int32_t MyProperty() const noexcept;
inline void MyProperty(int32_t) noexcept;
private:
int32_t m_myProperty;
};
}
// MyViewModel.cpp
namespace winrt::MyApp::implementation
{
inline int32_t MyViewModel::MyProperty() const noexcept
{
return m_myProperty;
}
inline void MyViewModel::MyProperty(int32_t value) noexcept
{
m_myProperty = value;
}
}
此问题仅针对上述关键字,请勿发布其他无关的优化提示。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。