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);
}
Esempio n. 2
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;
}