Ich habe diesen Code:Warum wird die Warnung "unbenutzte Variable" nicht für alle Variablen gemeldet?
// initializer lists
#include <iostream>
#include <vector>
int main()
{
int values[] { 1, 2, 3 };
std::vector<int> v { 4, 5, 6 };
std::vector<std::string> cities {
"London", "New York", "Paris", "Tokio"
};
return 0;
}
jedoch die gcc
Compiler mir unused variable
gibt values
Array nur zur Warnung. Warum wird v
und cities
nicht gemeldet?
, weil sie kein POD sind? –
Diese beiden sind Klasseninstanzen und Klassenkonstruktoren/Destruktoren können Nebenwirkungen haben, z.B. einen globalen Staat verändern. –
Die letzten beiden Variablen * werden * verwendet (in ihrer eigenen Konstruktion mit möglichen Nebenwirkungen darin). Die trivialen POD-Typen sind nicht so funktional aufgebaut. Die identische Verwendungswarnung tritt für Ihre anderen auf, wenn Sie ihre Typen in POD-Typen ändern und diese beispielsweise dynamisch initialisieren. 'std :: vector * pv = neuer std :: vector {4,5,6};' wird die identische Warnung ausgeben. –
WhozCraig