#pragma once
#ifndef _XLOCINFO_
#define _XLOCINFO_
#ifndef RC_INVOKED
#include <xlocinfo.h>
#include <cstdlib>
#include <xstddef>
#pragma pack(push,_CRT_PACKING)
#pragma warning(push,_STL_WARNING_LEVEL)
#pragma warning(disable: _STL_DISABLED_WARNINGS)
#pragma warning(disable:
4455
4494
4619
4643
4702
4984
4988
)
_STL_DISABLE_CLANG_WARNINGS
#pragma push_macro("new")
#undef new
class _CRTIMP2_PURE_IMPORT _Timevec
class
__declspec
(dllimport)
{
public
:
__CLR_OR_THIS_CALL _Timevec(void *_Ptr = nullptr)
: _Timeptr(
)
{
}
__CLR_OR_THIS_CALL _Timevec(const _Timevec& _Right)
{
*
this
;
}
__CLR_OR_THIS_CALL ~_Timevec() noexcept
{
(
);
}
_Timevec& __CLR_OR_THIS_CALL operator=(const _Timevec& _Right)
{
=
.
;
((
*)&
)->
=
nullptr
;
return
(*
this
);
}
void *__CLR_OR_THIS_CALL _Getptr() const
{
return
(
);
}
private
:
void
*
;
};
class _CRTIMP2_PURE_IMPORT _Locinfo
class
__declspec
(dllimport)
{
public
:
typedef
::
;
typedef
::
;
typedef
::
;
typedef _STD _Timevec _Timevec;
static _MRTIMP2_PURE_NPURE void __CLRCALL_PURE_OR_CDECL _Locinfo_ctor(
*,
const
char
*);
static _MRTIMP2_PURE_NPURE void __CLRCALL_PURE_OR_CDECL _Locinfo_ctor(
*,
int
,
const
char
*);
static _MRTIMP2_PURE_NPURE void __CLRCALL_PURE_OR_CDECL _Locinfo_dtor(
*);
static _MRTIMP2_PURE_NPURE _Locinfo& __CLRCALL_PURE_OR_CDECL _Locinfo_Addcats(
*,
int
,
const
char
*);
__CLR_OR_THIS_CALL _Locinfo(const char *_Pch = "C")
#ifndef _M_CEE
: _Lock(_LOCK_LOCALE)
#endif /* _M_CEE */
{
if
(
==
nullptr
)
_THROW(runtime_error("bad locale name"));
throw
(
"bad locale name"
);
(
this
,
);
}
__CLR_OR_THIS_CALL _Locinfo(int _Cat, const char *_Pch)
#ifndef _M_CEE
: _Lock(_LOCK_LOCALE)
#endif /* _M_CEE */
{
if
(
==
nullptr
)
_THROW(runtime_error("bad locale name"));
throw
(
"bad locale name"
);
(
this
,
,
);
}
__CLR_OR_THIS_CALL ~_Locinfo() noexcept
{
(
this
);
}
_Locinfo& __CLR_OR_THIS_CALL _Addcats(int _Cat, const char *_Pch)
{
if
(
==
nullptr
)
_THROW(runtime_error("bad locale name"));
throw
(
"bad locale name"
);
return
(
(
this
,
,
));
}
const char *__CLR_OR_THIS_CALL _Getname() const
{
return
(
.
());
}
_Collvec __CLR_OR_THIS_CALL _Getcoll() const
{
return
(::
());
}
_Ctypevec __CLR_OR_THIS_CALL _Getctype() const
{
return
(::
());
}
_Cvtvec __CLR_OR_THIS_CALL _Getcvt() const
{
return
(::
());
}
const lconv *__CLR_OR_THIS_CALL _Getlconv() const
{
return
(
());
}
_Timevec __CLR_OR_THIS_CALL _Gettnames() const
{
return
(
(::
()));
}
const char *__CLR_OR_THIS_CALL _Getdays() const
{
const
char
*
= ::
();
if
(
_Ptr
!=
nullptr
)
{
((
*)
this
)->
_Ptr
;
((
void
*)
_Ptr
);
}
return
(!
.
() ?
.
()
:
":Sun:Sunday:Mon:Monday:Tue:Tuesday:Wed:Wednesday"
":Thu:Thursday:Fri:Friday:Sat:Saturday"
);
}
const char *__CLR_OR_THIS_CALL _Getmonths() const
{
const
char
*
= ::
();
if
(
_Ptr
!=
nullptr
)
{
((
*)
this
)->
_Ptr
;
((
void
*)
_Ptr
);
}
return
(!
.
() ?
.
()
:
":Jan:January:Feb:February:Mar:March"
":Apr:April:May:May:Jun:June"
":Jul:July:Aug:August:Sep:September"
":Oct:October:Nov:November:Dec:December"
);
}
const char *__CLR_OR_THIS_CALL _Getfalse() const
{
return
(
"false"
);
}
const char *__CLR_OR_THIS_CALL _Gettrue() const
{
return
(
"true"
);
}
int __CLR_OR_THIS_CALL _Getdateorder() const
{
return
(::
());
}
_Timevec __CLR_OR_THIS_CALL _W_Gettnames() const
{
return
(
(::
()));
}
const unsigned short *__CLR_OR_THIS_CALL _W_Getdays() const
const
unsigned
short
*
()
const
{
const
wchar_t
*
= ::
();
if
(
_Ptr
!=
nullptr
)
{
((
*)
this
)->
_Ptr
;
((
void
*)
_Ptr
);
}
return
((
const
unsigned
short
*)(!
.
()
?
.
()
:
L":Sun:Sunday:Mon:Monday:Tue:Tuesday:Wed:Wednesday"
L":Thu:Thursday:Fri:Friday:Sat:Saturday"
));
}
const unsigned short *__CLR_OR_THIS_CALL _W_Getmonths() const
const
unsigned
short
*
()
const
{
const
wchar_t
*
= ::
();
if
(
_Ptr
!=
nullptr
)
{
((
*)
this
)->
_Ptr
;
((
void
*)
_Ptr
);
}
return
((
const
unsigned
short
*)(!
.
()
?
.
()
:
L":Jan:January:Feb:February:Mar:March"
L":Apr:April:May:May:Jun:June"
L":Jul:July:Aug:August:Sep:September"
L":Oct:October:Nov:November:Dec:December"
));
}
(
const
&) =
delete
;
&
(
const
&) =
delete
;
private
:
#ifdef _M_CEE
_EmptyLockit _Empty_lock; // to maintain same size
#else /* _M_CEE */
;
#endif /* _M_CEE */
<
char
>
;
<
char
>
;
<
wchar_t
>
;
<
wchar_t
>
;
<
char
>
;
<
char
>
;
};
template
<
class
>
inline
int __CRTDECL _LStrcoll(const _Elem *_First1, const _Elem *_Last1,
int
__cdecl
(
const
*
,
const
*
,
const
*
,
const
*
,
const
::
*)
{
for
(;
&&
; ++
, ++
)
if
(*
< *
)
return
(-
1
);
else
if
(*
< *
)
return
(+
1
);
return
(
? -
1
:
? +
1
:
0
);
}
template
<>
inline
int __CRTDECL _LStrcoll(const char *_First1, const char *_Last1,
int
__cdecl
(
const
char
*
,
const
char
*
,
const
char
*
,
const
char
*
,
const
::
*
)
{
return
(
(
,
,
,
,
));
}
template
<>
inline
int __CRTDECL _LStrcoll(const wchar_t *_First1, const wchar_t *_Last1,
int
__cdecl
(
const
wchar_t
*
,
const
wchar_t
*
,
const
wchar_t
*
,
const
wchar_t
*
,
const
::
*
)
{
return
(
(
,
,
,
,
));
}
template
<
class
>
inline
size_t __CRTDECL _LStrxfrm(_Elem *_First1, _Elem *_Last1,
const
*
,
const
*
,
const
::
*)
{
const
=
-
;
if
(
_Count
<=
-
)
{
_CSTD memcpy(_First1, _First2, _Count * sizeof(_Elem));
::
(
,
,
_Count
*
sizeof
(
));
}
return
(
_Count
);
}
template
<>
inline
size_t __CRTDECL _LStrxfrm(_Out_writes_ (_Last1 - _First1)
_Post_readable_size_(return) char *_First1, _In_z_ char *_Last1,
const
char
*
,
const
char
*
,
const
::
*
)
{
return
(
(
,
,
,
,
));
}
template
<>
inline
size_t __CRTDECL _LStrxfrm(_Out_writes_ (_Last1 - _First1)
_Post_readable_size_(return) wchar_t *_First1, _In_z_ wchar_t *_Last1,
const
wchar_t
*
,
const
wchar_t
*
,
const
::
*
)
{
return
(
(
,
,
,
,
));
}
#pragma pop_macro("new")
_STL_RESTORE_CLANG_WARNINGS
#pragma warning(pop)
#pragma warning(pop)
#pragma pack(pop)
#endif /* RC_INVOKED */
#endif /* _XLOCINFO_ */
#pragma pack(pop)