Quelqu'un peut-il s'il vous plaît expliquer pourquoi ce qui suit compilerapourquoi ne pas compiler en utilisant std :: max et C++/CLI?
int a = aAssignments[i]->Count;
int b = fInstanceData->NumRequiredEmpsPerJob[i];
fInstanceData->NumSlotsPerJob[i] = max(a,b);
mais
fInstanceData->NumSlotsPerJob[i] = max((int)(aAssignments[i]->Count), (int)(fInstanceData->NumRequiredEmpsPerJob[i])); //why on earth does this not work?
coutume? L'erreur qu'il donne est error C2665: 'std::max' : none of the 7 overloads could convert all the argument types
La aAssigmments
variables est de type array<List<int>^>^
et fInstanceData->NumRequiredEmpsPerJob
est de type array<int>^
Le manuel std::max
indique qu'il prend des valeurs par référence, il est donc clairement fait implicitement dans le premier exemple, alors pourquoi le compilateur ne peut-il pas faire la même chose pour les valeurs entières renvoyées par la propriété count, comme dans le second exemple? Puis-je obtenir une référence à un int explicitement?
Comment peut-il même compiler cette propriété 'Count', les tableaux ont une propriété' Length'. – leppie
@leppie C'est un tableau de listes, j'indexe le tableau à 'i' et je compte les éléments de cette liste. –
Ah oui :) J'ai raté ça. – leppie