0
sagen, dass ich eine Art Kante haben:ein Arrayliteral in C Casting ++ auf einen Typ (VC++)
struct edge
{
long long weight;
int dest;
inline bool operator<(const edge& other) const
{
return weight > other.weight;
}
};
In G ++ 4.1.2 (CentOS) ich sicher tun können:
edge e = (edge){0, 1};
Aber der gleiche Code auf MSVC++ 2010 verursacht:
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 '}'
gibt es eine Möglichkeit, dies in MSVC++ Compiler zu tun?
Ist das nicht die Besetzung überflüssig? – Marlon
Oh ok, ich habe es gerade ausprobiert, und es funktioniert. Ich benutze G ++ die ganze Zeit und habe gesehen, wie andere es gewirkt haben, also dachte ich, das wäre die einzige Option. Vielen Dank! – uberness132
Ja, die Besetzung sah auch komisch aus. Die Syntax (ohne die Besetzung) geht den ganzen Weg zurück zu K & R C. – DRVic