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 |
|
|
|
|
|