Tôi chỉ thấy rằng C++ không đưa ra bất kỳ cảnh báo nào để truyền từ pair<double, int>
đến pair<int, int>
, điều này hơi đáng ngạc nhiên. Đây là chương trình của tôi test_pair.cpp
:g ++ cho ghép cặp?
#include <vector>
#include <utility>
using namespace std;
int main()
{
std::vector<pair<int, int> > v;
pair<double, int> p = make_pair(3.8, 3);
v.push_back(p);
}
tôi biên dịch nó bằng cách sử g++ test_type.cpp -Wall -Wconversion
, nhưng vẫn không có cảnh báo được tạo ra. Tôi đang sử dụng g ++ v4.6.1. Bất cứ ai có bất kỳ ý tưởng làm thế nào để làm cho g + + tạo ra một cảnh báo cho điều này, hoặc nó chỉ có thể không được thực hiện?
ký hiệu này là gì? Tôi không quen với nó: 'v.push_back ({p});'. – orlp
xin lỗi, tôi đã cố gắng sử dụng C++ 11 tính năng, tôi nên loại bỏ các dấu ngoặc. – chtlp