我有这段代码:
// 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
?
答案 0 :(得分:2)
它不是原始值,因此它的构造函数和/或析构函数可能具有所需的副作用。
经典示例: Timer对象,用于测量构造和销毁之间的时间:https://stackoverflow.com/a/5302868/1938163