说我有类型边缘:
struct edge
{
long long weight;
int dest;
inline bool operator<(const edge& other) const
{
return weight > other.weight;
}
};
在G ++ 4.1.2(CentOS)中我可以安全地做到:
edge e = (edge){0, 1};
但在MSVC ++ 2010上,相同的代码会导致:
test.cpp(57) : error C2059: syntax error : '{'
test.cpp(57) : error C2143: syntax error : missing ';' before '{'
test.cpp(57) : error C2143: syntax error : missing ';' before '}'
有没有办法在MSVC ++编译器中执行此操作?
答案 0 :(得分:0)
我建议有一个构造函数:
struct edge {
long long weight;
int dest;
edge(long long w, int d): weight(w), dest(d) {};
inline bool operator<(const edge& other) const {
return weight > other.weight;
}
};
然后使用
edge e (0,1);