WinStd
Additional templates and function helpers for Microsoft Windows using Standard C++ classes
|
General API. More...
#include <Windows.h>
#include <assert.h>
#include <stdarg.h>
#include <tchar.h>
#include <iostream>
#include <memory>
#include <stdexcept>
#include <string>
#include <vector>
Go to the source code of this file.
Classes | |
struct | winstd::LocalFree_delete< _Ty > |
Deleter for unique_ptr using LocalFree. More... | |
struct | winstd::LocalFree_delete< _Ty[]> |
Deleter for unique_ptr to array of unknown size using LocalFree. More... | |
class | winstd::ref_unique_ptr< _Ty, _Dx > |
Helper class for returning pointers to std::unique_ptr. More... | |
class | winstd::ref_unique_ptr< _Ty[], _Dx > |
Helper class for returning pointers to std::unique_ptr (specialization for arrays) More... | |
class | winstd::handle< T, INVAL > |
Base abstract template class to support generic object handle keeping. More... | |
class | winstd::dplhandle< T, INVAL > |
Base abstract template class to support object handle keeping for objects that support trivial handle duplication. More... | |
class | winstd::num_runtime_error< _Tn > |
Numerical runtime error. More... | |
class | winstd::win_runtime_error |
Windows runtime error. More... | |
class | winstd::basic_string_printf< _Elem, _Traits, _Ax > |
Base template class to support string formatting using printf() style templates. More... | |
class | winstd::basic_string_msg< _Elem, _Traits, _Ax > |
Base template class to support string formatting using FormatMessage() style templates. More... | |
class | winstd::basic_string_guid< _Elem, _Traits, _Ax > |
Base template class to support converting GUID to string. More... | |
class | winstd::string_guid |
Single-byte character implementation of a class to support converting GUID to string. More... | |
class | winstd::wstring_guid |
Wide character implementation of a class to support converting GUID to string. More... | |
class | winstd::sanitizing_allocator< _Ty > |
An allocator template that sanitizes each memory block before it is destroyed or reallocated. More... | |
struct | winstd::sanitizing_allocator< _Ty >::rebind< _Other > |
Convert this type to sanitizing_allocator<_Other> More... | |
class | winstd::sanitizing_blob< N > |
Sanitizing BLOB. More... | |
Macros | |
#define | __L(x) L ## x |
"L" stringizing macro | |
#define | _L(x) __L(x) |
Makes string Unicode. | |
#define | WINSTD_STRING_IMPL(x) #x |
Stringizing macro helper. | |
#define | WINSTD_STRING(x) WINSTD_STRING_IMPL(x) |
Stringizing macro. | |
#define | WINSTD_NONCOPYABLE(C) |
Declares a class as non-copyable. More... | |
#define | WINSTD_NONMOVABLE(C) |
Declares a class as non-movable. More... | |
#define | WINSTD_STACK_BUFFER_BYTES 1024 |
Size of the stack buffer in bytes used for initial system function call. More... | |
#define | PRINTF_LPTSTR "s" |
LPTSTR printf/scanf format specifier. | |
#define | PRINTF_LPOLESTR "ls" |
LPOLESTR printf/scanf format specifier. | |
#define | _tcin (std::cin ) |
Standard input stream for TCHAR strings. More... | |
#define | _tcout (std::cout) |
Standard output stream for TCHAR strings. | |
#define | _tcerr (std::cerr) |
Standard error stream for TCHAR strings. | |
#define | _tclog (std::clog) |
Standard logging stream for TCHAR strings. | |
#define | WINSTD_HANDLE_IMPL(C, INVAL) |
Implements default constructors and operators to prevent their auto-generation by compiler. More... | |
#define | WINSTD_DPLHANDLE_IMPL(C, INVAL) |
Implements default constructors and operators to prevent their auto-generation by compiler. More... | |
Typedefs | |
typedef std::string | winstd::tstring |
Multi-byte / Wide-character string (according to _UNICODE) | |
typedef basic_string_printf< char, std::char_traits< char >, std::allocator< char > > | winstd::string_printf |
Single-byte character implementation of a class to support string formatting using printf() style templates. | |
typedef basic_string_printf< wchar_t, std::char_traits< wchar_t >, std::allocator< wchar_t > > | winstd::wstring_printf |
Wide character implementation of a class to support string formatting using printf() style templates. | |
typedef string_printf | winstd::tstring_printf |
Multi-byte / Wide-character formatted string (according to _UNICODE) | |
typedef basic_string_msg< char, std::char_traits< char >, std::allocator< char > > | winstd::string_msg |
Single-byte character implementation of a class to support string formatting using FormatMessage() style templates. | |
typedef basic_string_msg< wchar_t, std::char_traits< wchar_t >, std::allocator< wchar_t > > | winstd::wstring_msg |
Wide character implementation of a class to support string formatting using FormatMessage() style templates. | |
typedef string_msg | winstd::tstring_msg |
Multi-byte / Wide-character formatted string (according to _UNICODE) | |
typedef string_guid | winstd::tstring_guid |
Multi-byte / Wide-character string GUID (according to _UNICODE) | |
typedef std::basic_string< char, std::char_traits< char >, sanitizing_allocator< char > > | winstd::sanitizing_string |
A sanitizing variant of std::string. More... | |
typedef std::basic_string< wchar_t, std::char_traits< wchar_t >, sanitizing_allocator< wchar_t > > | winstd::sanitizing_wstring |
A sanitizing variant of std::wstring. More... | |
typedef sanitizing_string | winstd::sanitizing_tstring |
Multi-byte / Wide-character sanitizing string (according to _UNICODE) | |
Functions | |
static int | vsnprintf (char *str, size_t capacity, const char *format, va_list arg) |
Formats string using printf() . More... | |
static int | vsnprintf (wchar_t *str, size_t capacity, const wchar_t *format, va_list arg) noexcept |
Formats string using printf() . More... | |
template<class _Elem , class _Traits , class _Ax > | |
static int | vsprintf (std::basic_string< _Elem, _Traits, _Ax > &str, const _Elem *format, va_list arg) |
Formats string using printf() . More... | |
template<class _Elem , class _Traits , class _Ax > | |
static int | sprintf (std::basic_string< _Elem, _Traits, _Ax > &str, const _Elem *format,...) |
Formats string using printf() . More... | |
template<class _Traits , class _Ax > | |
static DWORD | FormatMessage (DWORD dwFlags, LPCVOID lpSource, DWORD dwMessageId, DWORD dwLanguageId, std::basic_string< char, _Traits, _Ax > &str, va_list *Arguments) |
Formats a message string. More... | |
template<class _Traits , class _Ax > | |
static DWORD | FormatMessage (DWORD dwFlags, LPCVOID lpSource, DWORD dwMessageId, DWORD dwLanguageId, std::basic_string< wchar_t, _Traits, _Ax > &str, va_list *Arguments) |
Formats a message string. More... | |
template<class _Ty , class _Dx > | |
ref_unique_ptr< _Ty, _Dx > | winstd::get_ptr (std::unique_ptr< _Ty, _Dx > &owner) noexcept |
Helper function template for returning pointers to std::unique_ptr. More... | |
template<class _Ty , class _Dx > | |
ref_unique_ptr< _Ty[], _Dx > | winstd::get_ptr (std::unique_ptr< _Ty[], _Dx > &owner) noexcept |
Helper function template for returning pointers to std::unique_ptr (specialization for arrays) More... | |
General API.