left-hand operand of comma hat keine Wirkung?
Ich habe einige Schwierigkeiten mit dieser Warnung, es ist innerhalb eines template-container-Klasse
int k = 0, l = 0;
for ( k =(index+1), l=0; k < sizeC, l < (sizeC-index); k++,l++){
elements[k] = arryCpy[l];
}
delete[] arryCpy;
dies ist die Warnung, die ich bekommen
cont.h: In member function `void Container<T>::insert(T, int)':
cont.h:99: warning: left-hand operand of comma has no effect
cont.h: In member function `void Container<T>::insert(T, int) [with T = double]':
a5testing.cpp:21: instantiated from here
cont.h:99: warning: left-hand operand of comma has no effect
cont.h: In member function `void Container<T>::insert(T, int) [with T = std::string]':
a5testing.cpp:28: instantiated from here
cont.h:99: warning: left-hand operand of comma has no effect
>Exit code: 0
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dem Komma Ausdruck
a,b,c,d,e
ist ähnlichdaher
k<sizeC, l<(sizeC - index)
nur zurückl < (sizeC - index)
.Kombinieren, um Bedingungen, verwenden Sie
&&
oder||
.Den Ausdruck
k < sizeC, l < (sizeC-index)
gibt nur das Ergebnis der Rechte-hand-test. Verwenden&&
zu kombinieren-tests:Änderung:
Wenn Sie eine Komma-Ausdrucks ist der Rechte argument zurückgegeben wird, so dass Ihre:
Ausdruck:
und so findet
verwenden Sie die
&&
zu kombinieren, die Bedingungen statt.