Pull to refresh
43
Блохин Алексей@Renzo

Пользователь

30
Subscribers
Send message
Не совсем, там даже в начале статьи написано:
Не следует путать с «ящиком с усами»
ICQ еще жив?
Приветствуем вас, Хабралюди!
И вам привет, Земляне! :)
Заменять, например, unsigned long long на auto никто и не советовал, размер кода это сократит, а вот читаемости поубавит, typedef'ами в таких случаях, по-моему, пользуются из покон веков. В Qt, к примеру, об этом изначально позаботились, и ранее обозначенный тип записывается как quint64.
auto — это, в первую очередь, для работы с итераторами (ну и с лямбдами, разумеется)
Кажется я знаю, где они черпали вдохновение:
image
Кто бы что ни говорил но все таки МС за последние несколько лет стали более серьезно относиться к «допиливанию» своих продуктов.
Интересно, как в комментариях сейчас всё сведут к холивару по новому дизайну
Я надеюсь вы понимаете, что и это не все возможности С++11? Я в самом начале статьи упомянул, что
существует много новых дополнений к языку и стандартной библиотеке, эта статья лишь поверхностно охватывает часть из них.
Обо всех возможностях можно книгу писать, в статью уж точно не уместится
Нет, в коде все правильно, здесь используются новые non-member функции (из 8 пункта) — std::begin и std::end
Расширение стандартной библиотеки так же является и расширением языка, разве нет? Другое дело, когда меняется какой-то синтаксис или семантика или же добавляются принципиально новые функции/возможности — по этим признакам классифицировать можно
Этот дизайн намного лучше, чем у нового Xbox
А ведь все начиналось всего лишь с дня Рождения сестры :)
В комментариях выше, подкинули идеи использовать swap, оператор присваивания копии в последнем примере можно переписать следующим образом:
Buffer& operator=(Buffer copy)
{
     swap(*this, copy);
     return *this;
}
// ...
void swap(Buffer& first, Buffer& second) noexcept
{
     using std::swap;
     swap(first._name  , second._name);
     swap(first._size  , second._size);
     swap(first._buffer, second._buffer);
}
Да, конечно же, надо использовать decltype, следующий код рабочий:
auto fact(long long n) -> decltype(n)
{
    return (n == 1)? 1: n * fact(n - 1);
}
auto fact(long long n)
{
    return (n == 1)? 1: n * fact(n - 1);
}

Я думаю вполне должно работать, хотя надо проверить. При объявлении функции типа auto, компилятор будет искать нужный тип в возвращаемом значении функции, умножение этому помещать не должно. Хотя, если будут проблемы, то, возможно, понадобится как-то прикрутить decltype
Что они сделали с дизайном???
Я, конечно, понимаю, в Apple считают, что основная их аудитория — женская половина, но о второй части аудитории тоже забывать не стоит…
Или теперь у черного и белого iPhone еще и разные интерфейсы будут?)

Information

Rating
Does not participate
Location
Санкт-Петербург, Санкт-Петербург и область, Россия
Date of birth
Registered
Activity