Может кто-нибудь объяснить, почему следующее будет компилировать
int a = aAssignments[i]->Count;
int b = fInstanceData->NumRequiredEmpsPerJob[i];
fInstanceData->NumSlotsPerJob[i] = max(a,b);
, но
fInstanceData->NumSlotsPerJob[i] = max((int)(aAssignments[i]->Count), (int)(fInstanceData->NumRequiredEmpsPerJob[i])); //why on earth does this not work?
не так?Это ошибка: error C2665: 'std::max' : none of the 7 overloads could convert all the argument types
Переменная aAssigmments
имеет тип array<List<int>^>^
, а fInstanceData->NumRequiredEmpsPerJob
имеет тип array<int>^
В руководстве по std::max
указано, что онапринимает значения по ссылке, поэтому он явно делает это неявно в первом примере, так почему же компилятор не может сделать то же самое для целочисленных значений, возвращаемых свойством count, как во втором примере?Могу ли я получить ссылку на int явно?