Это двухногий вопрос: один для C и один для С++.
Что означают стандарты C и С++ о следующем использовании тройного оператора (?:
):
const char* opt = /* possible NULL pointer */;
const char* str = opt ?: "";
Когда это стало законным? Является ли это расширением компилятора? Каковы требования к первому операнду (неявно конвертируемому в bool
/int
)?