C++ STL源代码, 看不懂, 求解释~~~
// MACRO _IS_YES
#ifndef _IS_YES
#define _IS_YES(ty)(sizeof (ty) == sizeof (_STD tr1::_Yes))
typedef char (&_No)[1];
typedef char (&_Yes)[2];
#endif /* _IS_YES */
// FUNCTION _Has_result_type
_No _Has_result_type(...);
template<class _Ty>
_Yes _Has_result_type(_Ty *,
typename _Remove_reference<typename _Ty::result_type>::_Type * = 0);
#define _HAS_RESULT_TYPE(_Ty)\
_IS_YES(_STD tr1::_Has_result_type((_Ty *)0))
[解决办法]
NO:一个char元素的数组的引用
YES:数组的引用,数组包含2个char元素
[解决办法]
修正一下
typedef char (&_No)[1]; //声明符号_NO是一个元素类型为char,大小为1的数组的引用
typedef char (&_Yes)[2];////声明符号_Yes是一个元素类型为char,大小为2的数组的引用