我试图像这样创建一对id和object:
#include <iostream>
#include <utility>
#include <functional>
struct num{
double x;
double y;
};
int main(){
auto tmp = std::make_pair(1, {1.0, 2.0});
}
Run Code Online (Sandbox Code Playgroud)
我得到错误 error: no matching function for call to 'make_pair(int, <brace-enclosed initializer list>)'
有没有一种正确的方法来创建id和对象?
不,这是你应该如何创建你的对:
auto tmp = std::make_pair(1, num{1.0, 2.0});
Run Code Online (Sandbox Code Playgroud)
或者(正如@StoryTeller提到的那样):
std::pair<int,num> tmp {1, {1.0, 2.0}};
Run Code Online (Sandbox Code Playgroud)
现在,在这两种情况下,编译器都有一个线索,{1.0, 2.0}它应该是一个初始化器num.
| 归档时间: |
|
| 查看次数: |
1723 次 |
| 最近记录: |