0
我在观察编译错误“error:could not convert'{{{{{{{{{{{{{{{{{{{} {'} {'} std :: vector'“在下面的代码中。无法从大括号初始化程序列表转换为向量
我在做矢量插入错了吗? 顺便说一句我不想使用push_back方法。是否可以使用'='插入。 我有一种感觉,它是语法错误,但无法找到它。
当谷歌搜索时,我发现早期版本的gcc中存在一个错误。我正在使用4.8.1,所以我假设我正在使用的库应该包含修复程序。
#include <functional>
#include <iostream>
#include <vector>
struct Foo {
Foo(int num) : num_(num) {}
void print_add(int i) const { std::cout << num_+i << '\n'; }
int num_;
};
struct X {
void print() {
std::cout << "I'm in X "<<std::endl;
}
};
struct XXX {
std::function<void(const Foo&,int)> a;
std::function<void(const X&)> b;
};
int main()
{
std::vector<XXX> vec =
{
{
{&Foo::print_add},
{&X::print}
}
};
}
非常感谢T.C.是的,我错过了函数中的const :) –
另一个快速问题。我们不可能有地图正确或有方法吗? –
@GanapathySubramanian你为什么要这样的东西? – VermillionAzure