int main(void) { std::array<int, 3> array1 = { 1, 2, 3 }, array2 = { 4, 5, 6 }, array3; std::array<short, 3> array4 = { 4, 5, 6 }; std::vector<int> vector1 = { 1, 2, 3 }, vector2 = { 4, 5, 6 }, vector3(3); std::vector<short> vector4 = { 4, 5, 6 }; // InputIteratorA == InputIteratorB Add(array1.cbegin(), array1.cend(), array2.cbegin(), array3.begin()); Add(vector1.cbegin(), vector1.cend(), vector2.cbegin(), vector3.begin()); // InputIteratorA == InputIteratorB Add(array1.cbegin(), array1.cend(), array2.begin()); Add(vector1.cbegin(), vector1.cend(), vector2.begin()); // InputIteratorA != InputIteratorB Add(array1.cbegin(), array1.cend(), array4.cbegin(), array3.begin()); Add(vector1.cbegin(), vector1.cend(), vector4.cbegin(), vector3.begin()); // InputIteratorA != InputIteratorB Add(array1.cbegin(), array1.cend(), array4.begin()); Add(vector1.cbegin(), vector1.cend(), vector4.begin()); std::array<unsigned char, 257> array5; std::vector<int> vector5(3); std::vector<double> vector6(10); FillRange(array5.begin(), array5.end(), 0); FillRange(vector5.begin(), vector5.end(), 10); FillRange(vector6.begin(), vector6.end(), 10.0); }
int GuardRange(LPWSTR module, DWORD* a, DWORD* b) { int flag=0; __asm { mov eax,seh_recover mov recv_addr,eax push ExceptHandler push fs:[0] mov recv_esp,esp mov fs:[0],esp } flag=FillRange(module,a,b); __asm { seh_recover: mov eax,[esp] mov fs:[0],eax add esp,8 } return flag; }