LINUX.ORG.RU

История изменений

Исправление 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
}

Нужен код с выводом типа на С++, а в такой код и сишечка умеет.