fastdo
0.6.16
|
#include "system_detection.inl"
#include <string>
#include <sstream>
#include <vector>
#include <map>
#include <tuple>
#include <queue>
#include <functional>
#include <algorithm>
#include <assert.h>
#include <stdlib.h>
#include <string.h>
#include "literal_str.inl"
#include "func_traits.inl"
#include "func_runable.inl"
#include "func_invoker.inl"
命名空间 | |
winux | |
跨平台基础功能库 | |
宏定义 | |
#define | WINUX_DLL |
#define | WINUX_API |
#define | WINUX_FUNC_DECL(ret) WINUX_DLL ret WINUX_API |
#define | WINUX_FUNC_IMPL(ret) ret WINUX_API |
#define | countof(arr) ( sizeof(arr) / sizeof(arr[0]) ) |
#define | T(__x) __x |
#define | DISABLE_OBJECT_COPY(clsname) |
#define | IF_PTR(ptr) if ( (ptr) != NULL ) (ptr) |
#define | ASSIGN_PTR(ptr) if ( (ptr) != NULL ) (*(ptr)) |
#define | UNUSED(s) |
#define | DEFINE_ATTR_MEMBER(ty, name, memname) |
#define | DEFINE_ATTR_MEMBER_READONLY(ty, name, memname) |
#define | DEFINE_ATTR_MEMBER_VAL(ty, name, memname) |
#define | DEFINE_ATTR_MEMBER_VAL_READONLY(ty, name, memname) |
#define | DEFINE_ATTR_METHOD(ty, name, memname) |
#define | DEFINE_ATTR_METHOD_READONLY(ty, name, memname) |
#define | DEFINE_ATTR_METHOD_VAL(ty, name, memname) |
#define | DEFINE_ATTR_METHOD_VAL_READONLY(ty, name, memname) |
#define | DEFINE_ATTR(ty, name, getcode, setcode) |
#define | DEFINE_ATTR_READONLY(ty, name, getcode) |
#define | DEFINE_ATTR_VAL(ty, name, getcode, setcode) |
#define | DEFINE_ATTR_VAL_READONLY(ty, name, getcode) |
#define | DEFINE_FUNC_NEWINSTANCE(cls, ret, paramtypes, params) |
#define | DEFINE_CUSTOM_EVENT(evtname, paramtypes, calledparams) |
#define | DEFINE_CUSTOM_EVENT_RETURN_EX(ret, evtname, paramtypes) |
#define | GCC_VERSION_GREAT_THAN(Major, Minor, Patchlevel) ( __GNUC__ > Major || ( __GNUC__ == Major && ( __GNUC_MINOR__ > Minor || ( __GNUC_MINOR__ == Minor && __GNUC_PATCHLEVEL__ > Patchlevel ) ) ) ) |
#define | BinVal(x) winux::Bin0<0##x>::val |
#define | MIXED_REF_TYPE_METHOD(mt, ty, memb, funcname) |
#define | MIXED_REF_TYPE_METHOD_OUTER(mt, ty, memb, funcname) |
#define | MIXED_TYPE_ENUM_ITEM(item, nouse1, nouse2, nouse3) item, |
#define | MIXED_TYPE_ENUM_ITEMSTRINGA(item, nouse1, nouse2, nouse3) #item, |
#define | MIXED_TYPE_ENUM_ITEMSTRINGW(item, nouse1, nouse2, nouse3) L ## #item, |
#define | MIXED_TYPE_LIST(funcmacro) |
类型定义 | |
typedef int | winux::int32 |
typedef unsigned int | winux::uint |
typedef unsigned int | winux::uint32 |
typedef unsigned long | winux::ulong |
typedef short | winux::int16 |
typedef unsigned short | winux::ushort |
typedef unsigned short | winux::uint16 |
typedef char | winux::int8 |
typedef unsigned char | winux::uint8 |
typedef char16_t | winux::char16 |
typedef char32_t | winux::char32 |
typedef intptr_t | winux::offset_t |
typedef intptr_t | winux::ssize_t |
typedef size_t | winux::usize_t |
typedef wchar_t | winux::wchar |
typedef unsigned __int64 | winux::uint64 |
typedef unsigned __int64 | winux::ulonglong |
typedef __int64 | winux::int64 |
typedef __int64 | winux::longlong |
typedef char | winux::tchar |
typedef unsigned char | winux::byte |
template<typename _ChTy > | |
using | winux::XString = std::basic_string< _ChTy, std::char_traits< _ChTy >, std::allocator< _ChTy > > |
typedef XString< char > | winux::AnsiString |
typedef XString< char > | winux::Utf8String |
typedef XString< wchar > | winux::UnicodeString |
typedef XString< char16 > | winux::UnicodeString16 |
typedef XString< char16 > | winux::Utf16String |
typedef XString< char32 > | winux::UnicodeString32 |
typedef XString< char32 > | winux::Utf32String |
typedef XString< tchar > | winux::String |
template<typename _ChTy > | |
using | winux::XStringArray = std::vector< XString< _ChTy > > |
typedef XStringArray< char > | winux::AnsiStringArray |
typedef XStringArray< char > | winux::Utf8StringArray |
typedef XStringArray< wchar > | winux::UnicodeStringArray |
typedef XStringArray< char16 > | winux::UnicodeString16Array |
typedef XStringArray< char32 > | winux::UnicodeString32Array |
typedef XStringArray< char16 > | winux::Utf16StringArray |
typedef XStringArray< char32 > | winux::Utf32StringArray |
typedef XStringArray< tchar > | winux::StringArray |
typedef std::map< String, String > | winux::StringStringMap |
typedef std::pair< String, String > | winux::StringStringPair |
typedef std::vector< Mixed > | winux::MixedArray |
typedef std::map< String, Mixed > | winux::StringMixedMap |
typedef std::pair< String, Mixed > | winux::StringMixedPair |
template<typename _ChTy > | |
using | winux::CharTypeConstrain = typename CharSpec< typename std::decay< _ChTy >::type >::Type |
字符类型约束 更多... | |
typedef std::map< Mixed, Mixed, MixedLess > | winux::MixedMixedMap |
typedef std::map< Mixed, Mixed, MixedLessI > | winux::MixedMixedMapI |
typedef std::pair< Mixed const, Mixed > | winux::MixedMixedPair |
函数 | |
template<typename _Ty > | |
RefParam< _Ty > | winux::Ref (_Ty &r) |
向模板参数传递引用型参数 更多... | |
template<typename _Fx , typename... _ArgType> | |
RunableT< _Fx, std::tuple< typename std::decay< _ArgType >::type... > > * | winux::NewRunable (_Fx fn, _ArgType &&...arg) |
创建一个Runable对象 更多... | |
template<typename _Fx , typename... _ArgType> | |
Invoker< _Fx > * | winux::NewInvoker (_Fx fn, _ArgType &&...arg) |
template<typename _KTy , typename _VTy , typename _Pr , typename _Alloc > | |
MapAssigner< _KTy, _VTy, _Pr, _Alloc > | winux::Assign (std::map< _KTy, _VTy, _Pr, _Alloc > *m) |
给容器赋值 更多... | |
template<typename _Ty , typename _Alloc > | |
ArrayAssigner< _Ty, _Alloc > | winux::Assign (std::vector< _Ty, _Alloc > *a) |
给容器赋值 更多... | |
template<typename _ChTy , typename = CharTypeConstrain<_ChTy>> | |
static size_t | winux::StrLen (_ChTy const *str) |
计算字符串长度 更多... | |
template<typename _Ty > | |
static _Ty | winux::InvertByteOrder (_Ty v) |
反转字节序。_Ty 必须是基本数字类型 更多... | |
template<typename _Ty > | |
static void | winux::InvertByteOrderArray (_Ty *p, size_t count) |
反转字节序。_Ty 必须是基本数字类型 更多... | |
void | winux::InvertByteOrder (void *buf, size_t size) |
反转字节序 更多... | |
static bool | winux::IsLittleEndian () |
判断编译环境是否为小端序 更多... | |
static bool | winux::IsBigEndian () |
判断编译环境是否为大端序 更多... | |
int | winux::MemoryCompare (void const *buf1, size_t n1, void const *buf2, size_t n2) |
内存比较 更多... | |
int | winux::MemoryCompareI (void const *buf1, size_t n1, void const *buf2, size_t n2) |
内存比较(不区分大小写) 更多... | |
template<typename _ChTy > | |
static int | winux::StringCompare (XString< _ChTy > const &str1, XString< _ChTy > const &str2) |
字符串比较 更多... | |
template<typename _ChTy > | |
static int | winux::StringCompareI (XString< _ChTy > const &str1, XString< _ChTy > const &str2) |
字符串(大小写无关)比较 更多... | |
template<typename _Ty > | |
static bool | winux::ArrayLess (_Ty const *arr1, size_t count1, _Ty const *arr2, size_t count2) |
array less 更多... | |
template<typename _Ty > | |
static bool | winux::ArrayGreater (_Ty const *arr1, size_t count1, _Ty const *arr2, size_t count2) |
array greater 更多... | |
template<typename _Ty > | |
static bool | winux::ArrayEqual (_Ty const *arr1, size_t count1, _Ty const *arr2, size_t count2) |
array equal 更多... | |
template<typename _Ty > | |
static bool | winux::ArrayLess (std::vector< _Ty > const &arr1, std::vector< _Ty > const &arr2) |
array less 更多... | |
template<typename _Ty > | |
static bool | winux::ArrayGreater (std::vector< _Ty > const &arr1, std::vector< _Ty > const &arr2) |
array less 更多... | |
template<typename _Ty > | |
static bool | winux::ArrayEqual (std::vector< _Ty > const &arr1, std::vector< _Ty > const &arr2) |
array equal 更多... | |
bool | winux::CollectionLess (Collection const &coll1, Collection const &coll2) |
collection less 更多... | |
bool | winux::CollectionGreater (Collection const &coll1, Collection const &coll2) |
collection greater 更多... | |
bool | winux::CollectionEqual (Collection const &coll1, Collection const &coll2) |
collection equal 更多... | |
template<typename _MAP , typename _KEY > | |
bool | winux::isset (_MAP const &m, _KEY const &k) |
检测map中是否有该键的值 更多... | |
template<typename _Ty > | |
std::vector< _Ty > | winux::ToArray (_Ty *arr, uint count) |
将C数组转换成vector 更多... | |
template<typename _Ty , uint _Count> | |
std::vector< _Ty > | winux::ToArray (_Ty(&arr)[_Count]) |
template<typename _Fx , typename... _ArgType> | |
int | winux::VoidReturnInt (_Fx fn, _ArgType &&...arg) |
调用一个返回void的函数或函数对象,返回一个数字 更多... | |
bool | winux::ValueIsInArray (StringArray const &arr, String const &val, bool caseInsensitive=false) |
判断一个字符串值是否在一个字符串数组里,默认大小写敏感 更多... | |
int | winux::Random (int n1, int n2) |
随机数,随机产生n1~n2的数字. 包括n1,n2本身 更多... | |
bool | winux::ParseBool (AnsiString const &str, bool *boolVal) |
parse bool 更多... | |
bool | winux::ParseBool (UnicodeString const &str, bool *boolVal) |
parse bool 更多... | |
bool | winux::ParseInt (AnsiString const &str, int *iVal) |
parse int 更多... | |
bool | winux::ParseInt (UnicodeString const &str, int *iVal) |
parse int 更多... | |
bool | winux::ParseUInt (AnsiString const &str, uint *uiVal) |
parse uint 更多... | |
bool | winux::ParseUInt (UnicodeString const &str, uint *uiVal) |
parse uint 更多... | |
bool | winux::ParseLong (AnsiString const &str, long *lVal) |
parse long 更多... | |
bool | winux::ParseLong (UnicodeString const &str, long *lVal) |
parse long 更多... | |
bool | winux::ParseULong (AnsiString const &str, ulong *ulVal) |
parse ulong 更多... | |
bool | winux::ParseULong (UnicodeString const &str, ulong *ulVal) |
parse ulong 更多... | |
bool | winux::ParseInt64 (AnsiString const &str, int64 *i64Val) |
parse int64 更多... | |
bool | winux::ParseInt64 (UnicodeString const &str, int64 *i64Val) |
parse int64 更多... | |
bool | winux::ParseUInt64 (AnsiString const &str, uint64 *ui64Val) |
parse uint64 更多... | |
bool | winux::ParseUInt64 (UnicodeString const &str, uint64 *ui64Val) |
parse uint64 更多... | |
bool | winux::ParseFloat (AnsiString const &str, float *fltVal) |
parse float 更多... | |
bool | winux::ParseFloat (UnicodeString const &str, float *fltVal) |
parse float 更多... | |
bool | winux::ParseDouble (AnsiString const &str, double *dblVal) |
parse double 更多... | |
bool | winux::ParseDouble (UnicodeString const &str, double *dblVal) |
parse double 更多... | |
static int | winux::BufferCompare (Buffer const &buf1, Buffer const &buf2) |
memcmp() 更多... | |
static int | winux::BufferCompareI (Buffer const &buf1, Buffer const &buf2) |
memicmp() 更多... | |
AnsiString const & | winux::TypeStringA (Mixed const &v) |
输出Mixed类型的字符串表示 更多... | |
UnicodeString const & | winux::TypeStringW (Mixed const &v) |
输出Mixed类型的字符串表示 更多... | |
std::ostream & | winux::operator<< (std::ostream &o, Mixed const &m) |
扩展iostream的<< 更多... | |
std::wostream & | winux::operator<< (std::wostream &o, Mixed const &m) |
变量 | |
static constexpr size_t const | winux::npos = static_cast<size_t>(-1) |
非位置,值为-1。 更多... | |
Mixed const | winux::mxNull |
Mixed(MT_NULL)常量对象 更多... | |
#define WINUX_DLL |
在文件 utilities.hpp 第 60 行定义.
#define WINUX_API |
在文件 utilities.hpp 第 61 行定义.
在文件 utilities.hpp 第 64 行定义.
#define WINUX_FUNC_IMPL | ( | ret | ) | ret WINUX_API |
在文件 utilities.hpp 第 65 行定义.
#define countof | ( | arr | ) | ( sizeof(arr) / sizeof(arr[0]) ) |
在文件 utilities.hpp 第 68 行定义.
#define T | ( | __x | ) | __x |
在文件 utilities.hpp 第 75 行定义.
#define DISABLE_OBJECT_COPY | ( | clsname | ) |
在文件 utilities.hpp 第 85 行定义.
#define IF_PTR | ( | ptr | ) | if ( (ptr) != NULL ) (ptr) |
在文件 utilities.hpp 第 91 行定义.
#define ASSIGN_PTR | ( | ptr | ) | if ( (ptr) != NULL ) (*(ptr)) |
在文件 utilities.hpp 第 93 行定义.
#define UNUSED | ( | s | ) |
在文件 utilities.hpp 第 97 行定义.
#define DEFINE_ATTR_MEMBER | ( | ty, | |
name, | |||
memname | |||
) |
在文件 utilities.hpp 第 101 行定义.
#define DEFINE_ATTR_MEMBER_READONLY | ( | ty, | |
name, | |||
memname | |||
) |
在文件 utilities.hpp 第 109 行定义.
#define DEFINE_ATTR_MEMBER_VAL | ( | ty, | |
name, | |||
memname | |||
) |
在文件 utilities.hpp 第 116 行定义.
#define DEFINE_ATTR_MEMBER_VAL_READONLY | ( | ty, | |
name, | |||
memname | |||
) |
在文件 utilities.hpp 第 124 行定义.
#define DEFINE_ATTR_METHOD | ( | ty, | |
name, | |||
memname | |||
) |
在文件 utilities.hpp 第 131 行定义.
#define DEFINE_ATTR_METHOD_READONLY | ( | ty, | |
name, | |||
memname | |||
) |
在文件 utilities.hpp 第 137 行定义.
#define DEFINE_ATTR_METHOD_VAL | ( | ty, | |
name, | |||
memname | |||
) |
在文件 utilities.hpp 第 142 行定义.
#define DEFINE_ATTR_METHOD_VAL_READONLY | ( | ty, | |
name, | |||
memname | |||
) |
在文件 utilities.hpp 第 148 行定义.
#define DEFINE_ATTR | ( | ty, | |
name, | |||
getcode, | |||
setcode | |||
) |
在文件 utilities.hpp 第 153 行定义.
#define DEFINE_ATTR_READONLY | ( | ty, | |
name, | |||
getcode | |||
) |
在文件 utilities.hpp 第 159 行定义.
#define DEFINE_ATTR_VAL | ( | ty, | |
name, | |||
getcode, | |||
setcode | |||
) |
在文件 utilities.hpp 第 164 行定义.
#define DEFINE_ATTR_VAL_READONLY | ( | ty, | |
name, | |||
getcode | |||
) |
在文件 utilities.hpp 第 170 行定义.
#define DEFINE_FUNC_NEWINSTANCE | ( | cls, | |
ret, | |||
paramtypes, | |||
params | |||
) |
在文件 utilities.hpp 第 175 行定义.
#define DEFINE_CUSTOM_EVENT | ( | evtname, | |
paramtypes, | |||
calledparams | |||
) |
在文件 utilities.hpp 第 182 行定义.
#define DEFINE_CUSTOM_EVENT_RETURN_EX | ( | ret, | |
evtname, | |||
paramtypes | |||
) |
在文件 utilities.hpp 第 197 行定义.
#define GCC_VERSION_GREAT_THAN | ( | Major, | |
Minor, | |||
Patchlevel | |||
) | ( __GNUC__ > Major || ( __GNUC__ == Major && ( __GNUC_MINOR__ > Minor || ( __GNUC_MINOR__ == Minor && __GNUC_PATCHLEVEL__ > Patchlevel ) ) ) ) |
在文件 utilities.hpp 第 210 行定义.
#define BinVal | ( | x | ) | winux::Bin0<0##x>::val |
在文件 utilities.hpp 第 314 行定义.
#define MIXED_REF_TYPE_METHOD | ( | mt, | |
ty, | |||
memb, | |||
funcname | |||
) |
在文件 utilities.hpp 第 1451 行定义.
#define MIXED_REF_TYPE_METHOD_OUTER | ( | mt, | |
ty, | |||
memb, | |||
funcname | |||
) |
在文件 utilities.hpp 第 1454 行定义.
#define MIXED_TYPE_ENUM_ITEM | ( | item, | |
nouse1, | |||
nouse2, | |||
nouse3 | |||
) | item, |
在文件 utilities.hpp 第 1459 行定义.
#define MIXED_TYPE_ENUM_ITEMSTRINGA | ( | item, | |
nouse1, | |||
nouse2, | |||
nouse3 | |||
) | #item, |
在文件 utilities.hpp 第 1460 行定义.
#define MIXED_TYPE_ENUM_ITEMSTRINGW | ( | item, | |
nouse1, | |||
nouse2, | |||
nouse3 | |||
) | L ## #item, |
在文件 utilities.hpp 第 1461 行定义.
#define MIXED_TYPE_LIST | ( | funcmacro | ) |
在文件 utilities.hpp 第 1463 行定义.