Can anyone please explain why the following will compile
int a = aAssignments[i]->Count;
int b = fInstanceData->NumRequiredEmpsPerJob[i];
fInstanceData->NumSlotsPerJob[i] = max(a,b);
but
fInstanceData->NumSlotsPerJob[i] = max((int)(aAssignments[i]->Count), (int)(fInstanceData->NumRequiredEmpsPerJob[i])); //why on earth does this not work?
wont? The error it gives is error C2665: 'std::max' : none of the 7 overloads could convert all the argument types
The variable aAssigmments
is of type array<List<int>^>^
and fInstanceData->NumRequiredEmpsPerJob
is of type array<int>^
The manual for std::max
states that it takes values by reference, so it's clearly doing this implicitly in the first example, so why can't the compiler do the same for integer values returned by the count property, as in the second example? Can I get a reference to an int explicitly?