C++中 “_ASSIGN_FROM_BASE”的问题
unsigned char* Findif(unsigned char* First, unsigned char* Last, byte pad)
{for (; First != Last; ++First)
if (*First!=pad)
break;
return (First);
}
unsigned char* find_if(unsigned char* First, unsigned char* Last, byte pad)
{
_ASSIGN_FROM_BASE(First,
Findif(_CHECKED_BASE(First), _CHECKED_BASE(Last),pad));
return (First);
}
#define _ASSIGN_FROM_BASE(_Dest, _Src) _STD _Checked_assign_from_base(_Dest, _Src)
其中_ASSIGN_FROM_BASE(First,
Findif(_CHECKED_BASE(First), _CHECKED_BASE(Last),pad));
是什么意思?也就是_ASSIGN_FROM_BASE的意思
另外find_if 里的return(First)的值是最开始传进去的值还是++First后改变的
[解决办法]
额 find_if 里面的return(First)的First的值是经过for (; First != Last; ++First)
if (*First!=pad)
break;
后的值。
[解决办法]
++_First这里不是已经修改了么。