gpt4 book ai didi

c++ - 我怎样才能让我的模板类推断出函数指针模板参数的返回值和参数类型

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:58:39 24 4
gpt4 key购买 nike

我正在使用一个小助手模板来包装不同的 Windows 函数来释放资源,例如:

template <typename Resource, typename ReturnType, ReturnType (WINAPI *GlobalFn)( Resource )>
struct GlobalWINAPIFn {
inline void release( Resource r ) { (void)GlobalFn( r ); }
};

这个模板的实例实际上作为参数传递给另一个模板(它期望给定类型公开一个release 函数,该函数采用Resource 类型)。此助手用于轻松包装全局方法。

我是这样用的

// wraps BOOL WINAPI CloseHandle( HANDLE );
typedef GlobalWINAPIFn<HANDLE, BOOL, ::CloseHandle> HANDLEDestructor;

// wraps LONG WINAPI RegCloseKey( HKEY );
typedef GlobalWINAPIFn<HKEY, LONG, ::RegCloseKey> HKEYDestructor;

它有效,但我想知道 - 是否有任何方法可以重写模板以便我可以编写

typedef GlobalWINAPIFn<::CloseHandle> HANDLEDestructor;
typedef GlobalWINAPIFn<::RegCloseKey> HKEYDestructor;

返回类型是自动推导的吗?某种类型的工厂函数?

最佳答案

关于c++ - 我怎样才能让我的模板类推断出函数指针模板参数的返回值和参数类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5900388/

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