История изменений
Исправление yetanother, (текущая версия) :
Ну это же совсем не то. Где здесь вывод типа возвращаемого значения функции? Еще раз:
// ||-- тип функции выводится компилятором D
// ||
// \/
auto square(long num) {
if (num < 0)
return num * num; // здесь возвращаем long
return 0.0; // здесь возвращаем double
}
static assert(is(typeof(square(0L)) == double)); // функция `square` возвращает значение типа double
Нужен код с выводом типа на С++, а в такой код и сишечка умеет.
Исправление yetanother, :
Ну это же совсем не то. Где здесь вывод типа возвращаемого значения функции? Еще раз:
// ||-- тип функции выводится компилятором
// ||
// \/
auto square(long num) {
if (num < 0)
return num * num; // здесь возвращаем long
return 0.0; // здесь возвращаем double
}
Нужен код с выводом типа на С++, а в такой код и сишечка умеет.
Исправление yetanother, :
Ну это же совсем не то. Где здесь вывод типа возвращаемого значения функции? Еще раз:
// ||-- тип функции выводится компилятором
// ||
// \/
auto square(long num) {
if (num < 0)
return num * num; // здесь возвращаем long
return 0.0; // здесь возвращаем ~~double~~ тоже long
}
Нужен код с выводом типа на С++, а в такой код и сишечка умеет.
Исходная версия yetanother, :
Ну это же совсем не то. Где здесь вывод типа возвращаемого значения функции? Еще раз:
auto square(long num) { // <--- тип функции выводится компилятором
if (num < 0)
return num * num; // здесь возвращаем long
return 0.0; // здесь возвращаем ~~double~~ тоже long
}
Нужен код с выводом типа на С++, а в такой код и сишечка умеет.