Открыть список
Как стать автором
Обновить

Комментарии 7

https://msdn.microsoft.com/en-us/library/aa691330%28v=vs.71%29.aspx
Вот правила "расширения" числовых типов в C#, если кому интересен алгоритм
Плюс везде, где написано "compile-time error occurs", это не совсем правда. Если операнд может быть преобразован к требуемому типу на этапе компиляции, то ошибки не будет.
Бонусом статья про Null-lifting, https://blogs.msdn.microsoft.com/ericlippert/2007/06/27/what-exactly-does-lifted-mean/
Вот мне интересно, зачем было вводить тип auto в С++? :)
типа нету… А вот ключевое слово, позволяющее определять тип переменной — есть.
Пардон, не так выразился. Ключевое слово, да, но суть от этого не меняется — так как отдаётся всё на усмотрение компилятора.
Напишете вы
auto r = 3 / 2;

или
double r = 3 / 2;

результат будет один и тот же, в r будет лежать вполне себе округлённый результат деления.
Так же и в вышеприведённых примерах.
Никакого усмотрения калькулятора, тип правой части от левой не зависит.
Чтобы не писать что-то типа map::const_iterator каждый раз, когда надо что-то найти?
Да, я знаю, можно обойти typedefом. Но на typedefы внутри шаблонных функций могут кончиться «хорошие» имена — и опять полезут длинные и странные названия типов, от которых хотели уйти.
Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.