dst
가 즉 , 목적지가 stl
이 아닌 일반 메모리배열이라면
4996의 warning이 뜬다.
이 warning을 제거하는 방법은
#include<iterator>
using namespace stdext;
그리고 checked_array_iterator
를 사용해서 인자를 넘겨주면 된다.
TCHAR* TString::ConvertWCharLinear(char* str) {
wstring wstr = CA2W(str);
TCHAR* tstr = (TCHAR*)calloc(wstr.size() + 1, sizeof(TCHAR));
std::copy(wstr.begin(), wstr.end(), checked_array_iterator(tstr,wstr.size()+1));
return tstr;
}
####추가 기술
C++11
에서는 전역 함수 begin
과 end
가 나왔다.
이를 사용하면 일반 배열에 대해서도 반복자를 제공한다.