Support for C++17
Signed-off-by: Simon Rozman <simon@rozman.si>
This commit is contained in:
parent
16df7b86a1
commit
512451ec0e
@ -81,7 +81,7 @@ namespace winstd
|
|||||||
template <class T>
|
template <class T>
|
||||||
class com_obj : public dplhandle<T*, NULL>
|
class com_obj : public dplhandle<T*, NULL>
|
||||||
{
|
{
|
||||||
WINSTD_DPLHANDLE_IMPL(com_obj, NULL)
|
WINSTD_DPLHANDLE_IMPL(com_obj, T*, NULL)
|
||||||
|
|
||||||
public:
|
public:
|
||||||
///
|
///
|
||||||
@ -196,7 +196,7 @@ namespace winstd
|
|||||||
///
|
///
|
||||||
class bstr : public dplhandle<BSTR, NULL>
|
class bstr : public dplhandle<BSTR, NULL>
|
||||||
{
|
{
|
||||||
WINSTD_DPLHANDLE_IMPL(bstr, NULL)
|
WINSTD_DPLHANDLE_IMPL(bstr, BSTR, NULL)
|
||||||
|
|
||||||
public:
|
public:
|
||||||
///
|
///
|
||||||
@ -1041,7 +1041,7 @@ namespace winstd
|
|||||||
///
|
///
|
||||||
class safearray : public dplhandle<SAFEARRAY*, NULL>
|
class safearray : public dplhandle<SAFEARRAY*, NULL>
|
||||||
{
|
{
|
||||||
WINSTD_DPLHANDLE_IMPL(safearray, NULL)
|
WINSTD_DPLHANDLE_IMPL(safearray, SAFEARRAY*, NULL)
|
||||||
|
|
||||||
public:
|
public:
|
||||||
///
|
///
|
||||||
|
@ -161,27 +161,27 @@ private: \
|
|||||||
///
|
///
|
||||||
/// Implements default constructors and operators to prevent their auto-generation by compiler.
|
/// Implements default constructors and operators to prevent their auto-generation by compiler.
|
||||||
///
|
///
|
||||||
#define WINSTD_HANDLE_IMPL(C, INVAL) \
|
#define WINSTD_HANDLE_IMPL(C, T, INVAL) \
|
||||||
public: \
|
public: \
|
||||||
C ( ) noexcept { } \
|
C ( ) noexcept {} \
|
||||||
C (_In_opt_ handle_type h) noexcept : handle<handle_type, INVAL>( h ) { } \
|
C (_In_opt_ T h) noexcept : handle<T, INVAL>( h ) {} \
|
||||||
C (_Inout_ C &&h) noexcept : handle<handle_type, INVAL>(std::move(h)) { } \
|
C (_Inout_ C &&h) noexcept : handle<T, INVAL>(std::move(h)) {} \
|
||||||
C& operator=(_In_opt_ handle_type h) noexcept { handle<handle_type, INVAL>::operator=( h ); return *this; } \
|
C& operator=(_In_opt_ T h) noexcept { handle<T, INVAL>::operator=( h ); return *this; } \
|
||||||
C& operator=(_Inout_ C &&h) noexcept { handle<handle_type, INVAL>::operator=(std::move(h)); return *this; } \
|
C& operator=(_Inout_ C &&h) noexcept { handle<T, INVAL>::operator=(std::move(h)); return *this; } \
|
||||||
WINSTD_NONCOPYABLE(C)
|
WINSTD_NONCOPYABLE(C)
|
||||||
|
|
||||||
///
|
///
|
||||||
/// Implements default constructors and operators to prevent their auto-generation by compiler.
|
/// Implements default constructors and operators to prevent their auto-generation by compiler.
|
||||||
///
|
///
|
||||||
#define WINSTD_DPLHANDLE_IMPL(C, INVAL) \
|
#define WINSTD_DPLHANDLE_IMPL(C, T, INVAL) \
|
||||||
public: \
|
public: \
|
||||||
C ( ) noexcept { } \
|
C ( ) noexcept {} \
|
||||||
C (_In_opt_ handle_type h) noexcept : dplhandle<handle_type, INVAL>( h ) { } \
|
C (_In_opt_ T h) noexcept : dplhandle<T, INVAL>( h ) {} \
|
||||||
C (_In_ const C &h) noexcept : dplhandle<handle_type, INVAL>(duplicate_internal(h.m_h)) { } \
|
C (_In_ const C &h) noexcept : dplhandle<T, INVAL>(duplicate_internal(h.m_h)) {} \
|
||||||
C (_Inout_ C &&h) noexcept : dplhandle<handle_type, INVAL>(std::move (h )) { } \
|
C (_Inout_ C &&h) noexcept : dplhandle<T, INVAL>(std::move (h )) {} \
|
||||||
C& operator=(_In_opt_ handle_type h) noexcept { dplhandle<handle_type, INVAL>::operator=( h ); return *this; } \
|
C& operator=(_In_opt_ T h) noexcept { dplhandle<T, INVAL>::operator=( h ); return *this; } \
|
||||||
C& operator=(_In_ const C &h) noexcept { dplhandle<handle_type, INVAL>::operator=( h ); return *this; } \
|
C& operator=(_In_ const C &h) noexcept { dplhandle<T, INVAL>::operator=( h ); return *this; } \
|
||||||
C& operator=(_Inout_ C &&h) noexcept { dplhandle<handle_type, INVAL>::operator=(std::move(h)); return *this; } \
|
C& operator=(_Inout_ C &&h) noexcept { dplhandle<T, INVAL>::operator=(std::move(h)); return *this; } \
|
||||||
private:
|
private:
|
||||||
|
|
||||||
/// @}
|
/// @}
|
||||||
@ -1951,7 +1951,7 @@ namespace winstd
|
|||||||
///
|
///
|
||||||
/// Deallocate object at _Ptr sanitizing its content first
|
/// Deallocate object at _Ptr sanitizing its content first
|
||||||
///
|
///
|
||||||
void deallocate(_In_ pointer _Ptr, _In_ size_type _Count)
|
void deallocate(_In_ _Ty* const _Ptr, _In_ const std::size_t _Count)
|
||||||
{
|
{
|
||||||
// Sanitize then free.
|
// Sanitize then free.
|
||||||
SecureZeroMemory(_Ptr, sizeof(_Ty) * _Count);
|
SecureZeroMemory(_Ptr, sizeof(_Ty) * _Count);
|
||||||
|
@ -259,7 +259,7 @@ namespace winstd
|
|||||||
///
|
///
|
||||||
class cert_context : public dplhandle<PCCERT_CONTEXT, NULL>
|
class cert_context : public dplhandle<PCCERT_CONTEXT, NULL>
|
||||||
{
|
{
|
||||||
WINSTD_DPLHANDLE_IMPL(cert_context, NULL)
|
WINSTD_DPLHANDLE_IMPL(cert_context, PCCERT_CONTEXT, NULL)
|
||||||
|
|
||||||
public:
|
public:
|
||||||
///
|
///
|
||||||
@ -392,7 +392,7 @@ namespace winstd
|
|||||||
///
|
///
|
||||||
class cert_chain_context : public dplhandle<PCCERT_CHAIN_CONTEXT, NULL>
|
class cert_chain_context : public dplhandle<PCCERT_CHAIN_CONTEXT, NULL>
|
||||||
{
|
{
|
||||||
WINSTD_DPLHANDLE_IMPL(cert_chain_context, NULL)
|
WINSTD_DPLHANDLE_IMPL(cert_chain_context, PCCERT_CHAIN_CONTEXT, NULL)
|
||||||
|
|
||||||
public:
|
public:
|
||||||
///
|
///
|
||||||
@ -441,7 +441,7 @@ namespace winstd
|
|||||||
///
|
///
|
||||||
class cert_store : public handle<HCERTSTORE, NULL>
|
class cert_store : public handle<HCERTSTORE, NULL>
|
||||||
{
|
{
|
||||||
WINSTD_HANDLE_IMPL(cert_store, NULL)
|
WINSTD_HANDLE_IMPL(cert_store, HCERTSTORE, NULL)
|
||||||
|
|
||||||
public:
|
public:
|
||||||
///
|
///
|
||||||
@ -474,7 +474,7 @@ namespace winstd
|
|||||||
///
|
///
|
||||||
class crypt_prov : public handle<HCRYPTPROV, NULL>
|
class crypt_prov : public handle<HCRYPTPROV, NULL>
|
||||||
{
|
{
|
||||||
WINSTD_HANDLE_IMPL(crypt_prov, NULL)
|
WINSTD_HANDLE_IMPL(crypt_prov, HCRYPTPROV, NULL)
|
||||||
|
|
||||||
public:
|
public:
|
||||||
///
|
///
|
||||||
@ -507,7 +507,7 @@ namespace winstd
|
|||||||
///
|
///
|
||||||
class crypt_hash : public dplhandle<HCRYPTHASH, NULL>
|
class crypt_hash : public dplhandle<HCRYPTHASH, NULL>
|
||||||
{
|
{
|
||||||
WINSTD_DPLHANDLE_IMPL(crypt_hash, NULL)
|
WINSTD_DPLHANDLE_IMPL(crypt_hash, HCRYPTHASH, NULL)
|
||||||
|
|
||||||
public:
|
public:
|
||||||
///
|
///
|
||||||
@ -560,7 +560,7 @@ namespace winstd
|
|||||||
///
|
///
|
||||||
class crypt_key : public dplhandle<HCRYPTKEY, NULL>
|
class crypt_key : public dplhandle<HCRYPTKEY, NULL>
|
||||||
{
|
{
|
||||||
WINSTD_DPLHANDLE_IMPL(crypt_key, NULL)
|
WINSTD_DPLHANDLE_IMPL(crypt_key, HCRYPTKEY, NULL)
|
||||||
|
|
||||||
public:
|
public:
|
||||||
///
|
///
|
||||||
|
@ -405,7 +405,7 @@ namespace winstd
|
|||||||
///
|
///
|
||||||
class eap_packet : public dplhandle<EapPacket*, NULL>
|
class eap_packet : public dplhandle<EapPacket*, NULL>
|
||||||
{
|
{
|
||||||
WINSTD_DPLHANDLE_IMPL(eap_packet, NULL)
|
WINSTD_DPLHANDLE_IMPL(eap_packet, EapPacket*, NULL)
|
||||||
|
|
||||||
public:
|
public:
|
||||||
///
|
///
|
||||||
|
@ -490,7 +490,7 @@ namespace winstd
|
|||||||
///
|
///
|
||||||
class event_provider : public handle<REGHANDLE, NULL>
|
class event_provider : public handle<REGHANDLE, NULL>
|
||||||
{
|
{
|
||||||
WINSTD_HANDLE_IMPL(event_provider, NULL)
|
WINSTD_HANDLE_IMPL(event_provider, REGHANDLE, NULL)
|
||||||
|
|
||||||
public:
|
public:
|
||||||
///
|
///
|
||||||
@ -904,7 +904,7 @@ namespace winstd
|
|||||||
///
|
///
|
||||||
class event_trace : public handle<TRACEHANDLE, INVALID_PROCESSTRACE_HANDLE>
|
class event_trace : public handle<TRACEHANDLE, INVALID_PROCESSTRACE_HANDLE>
|
||||||
{
|
{
|
||||||
WINSTD_HANDLE_IMPL(event_trace, INVALID_PROCESSTRACE_HANDLE)
|
WINSTD_HANDLE_IMPL(event_trace, TRACEHANDLE, INVALID_PROCESSTRACE_HANDLE)
|
||||||
|
|
||||||
public:
|
public:
|
||||||
///
|
///
|
||||||
|
@ -20,7 +20,7 @@ namespace winstd
|
|||||||
template<class T>
|
template<class T>
|
||||||
class gdi_handle : public handle<T, NULL>
|
class gdi_handle : public handle<T, NULL>
|
||||||
{
|
{
|
||||||
WINSTD_HANDLE_IMPL(gdi_handle, NULL)
|
WINSTD_HANDLE_IMPL(gdi_handle, T, NULL)
|
||||||
|
|
||||||
public:
|
public:
|
||||||
///
|
///
|
||||||
@ -51,7 +51,7 @@ namespace winstd
|
|||||||
///
|
///
|
||||||
class icon : public handle<HICON, NULL>
|
class icon : public handle<HICON, NULL>
|
||||||
{
|
{
|
||||||
WINSTD_HANDLE_IMPL(icon, NULL)
|
WINSTD_HANDLE_IMPL(icon, HICON, NULL)
|
||||||
|
|
||||||
public:
|
public:
|
||||||
///
|
///
|
||||||
@ -82,7 +82,7 @@ namespace winstd
|
|||||||
///
|
///
|
||||||
class dc : public handle<HDC, NULL>
|
class dc : public handle<HDC, NULL>
|
||||||
{
|
{
|
||||||
WINSTD_HANDLE_IMPL(dc, NULL)
|
WINSTD_HANDLE_IMPL(dc, HDC, NULL)
|
||||||
|
|
||||||
public:
|
public:
|
||||||
///
|
///
|
||||||
|
@ -24,7 +24,7 @@ namespace winstd
|
|||||||
///
|
///
|
||||||
class setup_device_info_list : public handle<HDEVINFO, INVALID_HANDLE_VALUE>
|
class setup_device_info_list : public handle<HDEVINFO, INVALID_HANDLE_VALUE>
|
||||||
{
|
{
|
||||||
WINSTD_HANDLE_IMPL(setup_device_info_list, INVALID_HANDLE_VALUE)
|
WINSTD_HANDLE_IMPL(setup_device_info_list, HDEVINFO, INVALID_HANDLE_VALUE)
|
||||||
|
|
||||||
public:
|
public:
|
||||||
///
|
///
|
||||||
|
@ -131,7 +131,7 @@ namespace winstd
|
|||||||
///
|
///
|
||||||
class wlan_handle : public handle<HANDLE, NULL>
|
class wlan_handle : public handle<HANDLE, NULL>
|
||||||
{
|
{
|
||||||
WINSTD_HANDLE_IMPL(wlan_handle, NULL)
|
WINSTD_HANDLE_IMPL(wlan_handle, HANDLE, NULL)
|
||||||
|
|
||||||
public:
|
public:
|
||||||
///
|
///
|
||||||
|
@ -1030,7 +1030,7 @@ namespace winstd
|
|||||||
template<HANDLE INVALID>
|
template<HANDLE INVALID>
|
||||||
class win_handle : public handle<HANDLE, INVALID>
|
class win_handle : public handle<HANDLE, INVALID>
|
||||||
{
|
{
|
||||||
WINSTD_HANDLE_IMPL(win_handle, INVALID)
|
WINSTD_HANDLE_IMPL(win_handle, HANDLE, INVALID)
|
||||||
|
|
||||||
public:
|
public:
|
||||||
///
|
///
|
||||||
@ -1063,7 +1063,7 @@ namespace winstd
|
|||||||
///
|
///
|
||||||
class library : public handle<HMODULE, NULL>
|
class library : public handle<HMODULE, NULL>
|
||||||
{
|
{
|
||||||
WINSTD_HANDLE_IMPL(library, NULL)
|
WINSTD_HANDLE_IMPL(library, HMODULE, NULL)
|
||||||
|
|
||||||
public:
|
public:
|
||||||
///
|
///
|
||||||
@ -1249,7 +1249,7 @@ namespace winstd
|
|||||||
///
|
///
|
||||||
class find_file : public handle<HANDLE, INVALID_HANDLE_VALUE>
|
class find_file : public handle<HANDLE, INVALID_HANDLE_VALUE>
|
||||||
{
|
{
|
||||||
WINSTD_HANDLE_IMPL(find_file, INVALID_HANDLE_VALUE)
|
WINSTD_HANDLE_IMPL(find_file, HANDLE, INVALID_HANDLE_VALUE)
|
||||||
|
|
||||||
public:
|
public:
|
||||||
///
|
///
|
||||||
@ -1282,7 +1282,7 @@ namespace winstd
|
|||||||
///
|
///
|
||||||
class heap : public handle<HANDLE, NULL>
|
class heap : public handle<HANDLE, NULL>
|
||||||
{
|
{
|
||||||
WINSTD_HANDLE_IMPL(heap, NULL)
|
WINSTD_HANDLE_IMPL(heap, HANDLE, NULL)
|
||||||
|
|
||||||
public:
|
public:
|
||||||
///
|
///
|
||||||
@ -1809,7 +1809,7 @@ namespace winstd
|
|||||||
///
|
///
|
||||||
class reg_key : public handle<HKEY, NULL>
|
class reg_key : public handle<HKEY, NULL>
|
||||||
{
|
{
|
||||||
WINSTD_HANDLE_IMPL(reg_key, NULL)
|
WINSTD_HANDLE_IMPL(reg_key, HKEY, NULL)
|
||||||
|
|
||||||
public:
|
public:
|
||||||
///
|
///
|
||||||
@ -1891,7 +1891,7 @@ namespace winstd
|
|||||||
///
|
///
|
||||||
class security_id : public handle<PSID, NULL>
|
class security_id : public handle<PSID, NULL>
|
||||||
{
|
{
|
||||||
WINSTD_HANDLE_IMPL(security_id, NULL)
|
WINSTD_HANDLE_IMPL(security_id, PSID, NULL)
|
||||||
|
|
||||||
public:
|
public:
|
||||||
///
|
///
|
||||||
@ -1962,7 +1962,7 @@ namespace winstd
|
|||||||
///
|
///
|
||||||
class event_log : public handle<HANDLE, NULL>
|
class event_log : public handle<HANDLE, NULL>
|
||||||
{
|
{
|
||||||
WINSTD_HANDLE_IMPL(event_log, NULL)
|
WINSTD_HANDLE_IMPL(event_log, HANDLE, NULL)
|
||||||
|
|
||||||
public:
|
public:
|
||||||
///
|
///
|
||||||
@ -1993,7 +1993,7 @@ namespace winstd
|
|||||||
///
|
///
|
||||||
class sc_handle : public handle<SC_HANDLE, NULL>
|
class sc_handle : public handle<SC_HANDLE, NULL>
|
||||||
{
|
{
|
||||||
WINSTD_HANDLE_IMPL(sc_handle, NULL)
|
WINSTD_HANDLE_IMPL(sc_handle, SC_HANDLE, NULL)
|
||||||
|
|
||||||
public:
|
public:
|
||||||
///
|
///
|
||||||
|
@ -23,7 +23,7 @@ namespace winstd
|
|||||||
///
|
///
|
||||||
class http : public handle<HINTERNET, NULL>
|
class http : public handle<HINTERNET, NULL>
|
||||||
{
|
{
|
||||||
WINSTD_HANDLE_IMPL(http, NULL)
|
WINSTD_HANDLE_IMPL(http, HINTERNET, NULL)
|
||||||
|
|
||||||
public:
|
public:
|
||||||
///
|
///
|
||||||
|
@ -107,7 +107,7 @@ namespace winstd
|
|||||||
///
|
///
|
||||||
class addrinfo : public handle<PADDRINFOA, NULL>
|
class addrinfo : public handle<PADDRINFOA, NULL>
|
||||||
{
|
{
|
||||||
WINSTD_HANDLE_IMPL(addrinfo, NULL)
|
WINSTD_HANDLE_IMPL(addrinfo, PADDRINFOA, NULL)
|
||||||
|
|
||||||
public:
|
public:
|
||||||
///
|
///
|
||||||
@ -140,7 +140,7 @@ namespace winstd
|
|||||||
///
|
///
|
||||||
class waddrinfo : public handle<PADDRINFOW, NULL>
|
class waddrinfo : public handle<PADDRINFOW, NULL>
|
||||||
{
|
{
|
||||||
WINSTD_HANDLE_IMPL(waddrinfo, NULL)
|
WINSTD_HANDLE_IMPL(waddrinfo, PADDRINFOW, NULL)
|
||||||
|
|
||||||
public:
|
public:
|
||||||
///
|
///
|
||||||
|
Loading…
x
Reference in New Issue
Block a user