This compiles: condition ? std::make_pair(1,2) : std::make_pair(3,4)
.
This doesn't: condition ? {1,2} : {3,4}
.
At the first {
, g++ says "expected primary-expression before '{' token." Even when you enclose the braces in parentheses, the braces are interpreted as a block of statements, not as a std::pair. This is with Ubuntu 18's g++ 7.5, either with its default -std=c++14
or with its older -std=c++11
.
In a ?: expression, can one use this abbreviation for make_pair that C++11 introduced? If so, how?
Aucun commentaire:
Enregistrer un commentaire