#pragma once
#include <vcruntime.h>
#include <vcruntime_exception.h>
#pragma pack(push, _CRT_PACKING)
#ifndef RC_INVOKED
#if defined _M_CEE_MIXED && !defined _VCRT_BUILD
// Provide a fake definition of __type_info_node to suppress linker warning
// LNK4248: unresolved typeref token for '__type_info_node'; image may not run.
struct __type_info_node { };
#else
struct
;
#endif
#ifdef _M_CEE_PURE
extern System::IntPtr __type_info_root_node;
#else
extern
;
#endif
_CRT_BEGIN_C_HEADER
__pragma
(pack(push,
8
))
extern
"C"
{
struct
{
const
char
*
;
const
char
[
1
];
() =
delete
;
(
const
&) =
delete
;
(
&&) =
delete
;
&
(
const
&) =
delete
;
&
(
&&) =
delete
;
};
_VCRTIMP int __cdecl __std_type_info_compare(
_In_ const __std_type_info_data* _Lhs,
_In_ const __std_type_info_data* _Rhs
);
_VCRTIMP size_t __cdecl __std_type_info_hash(
_In_ const __std_type_info_data* _Data
);
_VCRTIMP const char* __cdecl __std_type_info_name(
_Inout_ __std_type_info_data* _Data,
_Inout_ __type_info_node* _RootNode
);
#pragma warning(push)
#pragma warning(disable: 4577) // 'noexcept' used with no exception handling mode specified
#pragma warning(disable:
4577
)
class
{
public
:
(
const
&) =
delete
;
&
(
const
&) =
delete
;
()
const
noexcept
{
return
(&
);
}
bool
(
const
&
)
const
noexcept
{
return
(&
, &
.
) ==
0
;
}
bool
(
const
&
)
const
noexcept
{
return
(&
, &
.
) !=
0
;
}
bool
(
const
&
)
const
noexcept
{
return
(&
, &
.
) <
0
;
}
const
char
*
()
const
noexcept
{
#ifdef _M_CEE_PURE
return __std_type_info_name(&_Data, static_cast<__type_info_node*>(__type_info_root_node.ToPointer()));
#else
return
(&
, &
__type_info_root_node
);
#endif
}
const
char
*
()
const
noexcept
{
return
.
;
}
virtual
()
noexcept
;
private
:
mutable
;
};
#pragma warning(pop)
namespace
{
using
::
;
}
#if _HAS_EXCEPTIONS
namespace
{
#pragma warning(push)
#pragma warning(disable: 4577) // 'noexcept' used with no exception handling mode specified
#pragma warning(disable:
4577
)
class
:
public
{
public
:
()
noexcept
:
(
"bad cast"
,
1
)
{
}
static
__construct_from_string_literal
(
const
char
*
const
)
noexcept
{
return
(
,
1
);
}
private
:
(
const
char
*
const
,
int
)
noexcept
:
(
,
1
)
{
}
};
class
:
public
{
public
:
()
noexcept
:
(
"bad typeid"
,
1
)
{
}
static
__construct_from_string_literal
(
const
char
*
const
)
noexcept
{
return
(
,
1
);
}
private
:
friend
class
;
(
const
char
*
const
,
int
)
noexcept
:
(
,
1
)
{
}
};
class
:
public
{
public
:
static
__construct_from_string_literal
(
const
char
*
const
)
noexcept
{
return
(
,
1
);
}
private
:
(
const
char
*
const
,
int
)
noexcept
:
(
,
1
)
{
}
};
#pragma warning(pop)
}
#endif // _HAS_EXCEPTIONS
#endif // !RC_INVOKED
#pragma pack(pop)