Мне интересно, почему void()
имеет значение void
, но void{}
не существует...? См. следующий ответ: https://coderhelper.com/a/37708167/293195
Например, в контексте:
template<typename R>
R foo(){
return R{};
}
Мне интересно, почему void()
имеет значение void
, но void{}
не существует...? См. следующий ответ: https://coderhelper.com/a/37708167/293195
Например, в контексте:
template<typename R>
R foo(){
return R{};
}
Обязательный. Трудно понять, что вы ищете в ответе здесь. Потому что P0146 не был одобрен? Или потому, что когда была добавлена инициализация фигурной скобки, никто не подумал о
void
... или с тех пор это не заботит. Или ...?Связанный Насколько существующий код C++ будет нарушен, если void будет фактически определен как
struct void {};
@Barry: есть масса вопросов «почему» в языковом дизайне, на которые можно ответить правильно и объективно. Когда кто-то задает вопрос, он не знает, что ответом будет «бог знает почему» или «это потому, что <причина>». Просто пример, вот вопрос «почему» с правильным ответом: coderhelper.com/questions/8911696/if-condition-with-nullable. Тем же человеком, который написал этот «обязательный» ответ. И даже ответ «бог знает почему» лучше, чем отказ. Таким образом, по крайней мере, мы знаем, что для чего-то нет особой причины (так что это не дизайнерское решение).
@geza Вы предполагаете, что это один из тех вопросов «почему» в языковом дизайне, на которые можно ответить правильно и объективно? Если вы не предлагаете это, то я не понимаю смысла комментария. Я просто заявляю, что не знаю, как ответить на этот вопрос, потому что не верю, что на него может быть осмысленный и объективный ответ.
@Barry: Хорошо, тогда, может быть, я просто неправильно понял твои намерения.