| 3859 |
|
return _STD _Equal(_CHECKED_BASE(_First1), _CHECKED_BASE(_Last1), _First2, |
| 3860 |
|
_STD _Iter_random(_First1, _First2), _STD _Range_checked_iterator_tag()); |
| 3861 |
|
} |
| 3862 |
|
|
| 3863 |
|
template<class _InIt1, class _InIt2, class _Pr> |
| 3864 |
|
inline |
| 3865 |
|
bool __CLRCALL_OR_CDECL unchecked_equal(_InIt1 _First1, _InIt1 _Last1, _InIt2 _First2, _Pr _Pred) |
| 3866 |
|
{ // compare [_First1, _Last1) to [First2, ...) |
| 3867 |
|
return _STD _Equal(_CHECKED_BASE(_First1), _CHECKED_BASE(_Last1), _First2, _Pred, |
| 3868 |
|
_STD _Iter_random(_First1, _First2), _STD _Range_checked_iterator_tag()); |
| 3869 |
|
} |
| 3870 |
|
|
| 3871 |
|
template<class _InIt1, class _InIt2, class _Pr> |
| 3872 |
|
inline |
| 3873 |
|
_IF_CHK_(_InIt2, bool) __CLRCALL_OR_CDECL checked_equal(_InIt1 _First1, _InIt1 _Last1, _InIt2 _First2, _Pr _Pred) |
| 3874 |
|
{ // compare [_First1, _Last1) to [First2, ...) using _Pred |
| 3875 |
|
return _STD _Equal(_CHECKED_BASE(_First1), _CHECKED_BASE(_Last1), _First2, _Pred, |
| 3876 |
|
_STD _Iter_random(_First1, _First2), _STD _Range_checked_iterator_tag()); |
| 3877 |
|
} |
| 3878 |
|
|
| 3879 |
|
template<class _InIt1, class _InElem2, class _Pr, size_t _Size> |
| 3880 |
|
inline |
| 3881 |
|
bool __CLRCALL_OR_CDECL checked_equal(_InIt1 _First1, _InIt1 _Last1, _InElem2 (&_First2)[_Size], _Pr _Pred) |
| 3882 |
|
{ // compare [_First1, _Last1) to [First2, ...) using _Pred |
| 3883 |
|
return checked_equal(_First1, _Last1, |
| 3884 |
|
_STDEXT make_checked_array_iterator(_First2, _Size), _Pred); |
| 3885 |
|
} |
| 3886 |
|
|
| 3887 |
|
template<class _InIt1, class _InIt2, class _Pr> |
| 3888 |
|
inline |
| 3889 |
|
_SCL_CHECKED_ALGORITHM_WARN |
| 3890 |
|
_IF_NOT_CHK_(_InIt2, bool) __CLRCALL_OR_CDECL checked_equal(_InIt1 _First1, _InIt1 _Last1, _InIt2 _First2, _Pr _Pred) |
| 3891 |
|
{ // compare [_First1, _Last1) to [First2, ...) using _Pred |
| 3892 |
|
return _STD _Equal(_CHECKED_BASE(_First1), _CHECKED_BASE(_Last1), _First2, _Pred, |
| 3893 |
|
_STD _Iter_random(_First1, _First2), _STD _Range_checked_iterator_tag()); |
| 3894 |
|
} |
| 3895 |
|
|
| 3896 |
|
_STDEXT_END |
| 3897 |
|
|
| 3898 |
|
/* _SECURE_CRT definitions */ |
| 3899 |
|
|
| 3900 |
|
#define __STR2WSTR(str) L##str |
| 3901 |
|
#define _STR2WSTR(str) __STR2WSTR(str) |
| 3902 |
|
|
| 3903 |
|
#define __FILEW__ _STR2WSTR(__FILE__) |
| 3904 |
|
#define __FUNCTIONW__ _STR2WSTR(__FUNCTION__) |
| 3905 |
|
|
| 3906 |
|
#if !defined(_W64) |
| 3907 |
|
#if !defined(__midl) && (defined(_X86_) || defined(_M_IX86)) && _MSC_VER >= 1300 |
| 3908 |
|
#define _W64 __w64 |
| 3909 |
|
#else |
| 3910 |
|
#define _W64 |
| 3911 |
|
#endif |
| 3912 |
|
#endif |
| 3913 |
|
|
| 3914 |
|
#ifndef _UINTPTR_T_DEFINED |
| 3915 |
|
#ifdef _WIN64 |
| 3916 |
|
typedef unsigned __int64 uintptr_t; |
| 3917 |
|
#else |
| 3918 |
|
typedef _W64 unsigned int uintptr_t; |
| 3919 |
|
#endif |
| 3920 |
|
#define _UINTPTR_T_DEFINED |
| 3921 |
|
#endif |
| 3922 |
|
|
| 3923 |
|
#ifndef _WCHAR_T_DEFINED |
| 3924 |
|
typedef unsigned short wchar_t; |
| 3925 |
|
#define _WCHAR_T_DEFINED |
| 3926 |
|
#endif |
| 3927 |
|
|
| 3928 |
|
#ifndef _CRTIMP |
| 3929 |
|
|
| 3930 |
|
#ifdef _DLL |
| 3931 |
|
#define _CRTIMP __declspec(dllimport) |
| 3932 |
|
|
| 3933 |
|
#else /* ndef _DLL */ |
| 3934 |
|
#define _CRTIMP |
| 3935 |
|
#endif /* _DLL */ |
| 3936 |
|
|
| 3937 |
|
#endif /* _CRTIMP */ |
| 3938 |
|
|
| 3939 |
|
#ifdef _DEBUG |
| 3940 |
|
|
| 3941 |
|
#if !defined(_NATIVE_WCHAR_T_DEFINED) && defined(_M_CEE_PURE) |
| 3942 |
|
extern "C++" |
| 3943 |
|
#else |
| 3944 |
|
extern "C" |
| 3945 |
|
#endif |
| 3946 |
|
_CRTIMP void __cdecl _invalid_parameter(_In_opt_z_ const wchar_t *, _In_opt_z_ const wchar_t *, _In_opt_z_ const wchar_t *, unsigned int, uintptr_t); |
| 3947 |
|
|
| 3948 |
|
#else /* _DEBUG */ |
| 3949 |
|
|
| 3950 |
|
extern "C" |
| 3951 |
|
_CRTIMP void __cdecl _invalid_parameter_noinfo(void); |
| 3952 |
|
|
| 3953 |
|
#endif /* def _DEBUG */ |
| 3954 |
|
|
| 3955 |
|
|
| 3956 |
|
#ifdef _MSC_VER |
| 3957 |
|
#pragma warning(pop) |
| 3958 |
|
#pragma pack(pop) |
| 3959 |
|
#endif /* _MSC_VER */ |
| 3960 |
|
|
| 3961 |
|
#endif /* RC_INVOKED */ |
| 3962 |
|
#endif /* _XUTILITY_ */ |
| 3963 |
|
|
| 3964 |
|
/* |
| 3965 |
|
* This file is derived from software bearing the following |
| 3966 |
|
* restrictions: |
| 3967 |
|
* |
| 3968 |
|
* Copyright (c) 1994 |
| 3969 |
|
* Hewlett-Packard Company |
| 3970 |
|
* |
| 3971 |
|
* Permission to use, copy, modify, distribute and sell this |
| 3972 |
|
* software and its documentation for any purpose is hereby |
| 3973 |
|
* granted without fee, provided that the above copyright notice |
| 3974 |
|
* appear in all copies and that both that copyright notice and |
| 3975 |
|
* this permission notice appear in supporting documentation. |
| 3976 |
|
* Hewlett-Packard Company makes no representations about the |
| 3977 |
|
* suitability of this software for any purpose. It is provided |
| 3978 |
|
* "as is" without express or implied warranty. |
| 3979 |
|
*/ |
| 3980 |
|
|
| 3981 |
|
/* |
| 3982 |
|
* Copyright (c) 1992-2007 by P.J. Plauger. ALL RIGHTS RESERVED. |
| 3983 |
|
* Consult your license regarding permissions and restrictions. |
| 3984 |
|
V5.03:0009 */ |
| 3985 |
|
|
|
|
|