5
我有這樣的代碼:爲什麼沒有爲所有變量報告「未使用的變量」警告?
// 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;
}
然而gcc
編譯器給我unused variable
只爲values
陣列警告。爲什麼v
和cities
未報告?
? –
這兩個是類實例,而類構造函數/析構函數可能有副作用,例如改變一些全球狀態。 –
後兩個變量*被使用(在它們自己的構造中,其中具有潛在的副作用)。微不足道的POD類型沒有這樣的功能結構。如果您將其類型更改爲POD類型,並且例如動態初始化它們,則會出現相同的使用警告。 'std :: vector * pv = new std :: vector {4,5,6};'會發出相同的警告。 –
WhozCraig