Архив за 20 февраля 2017 - 6

Вместо КДПВ — короткая драма для привлечения внимания, основанная на реальных событиях. Ее можно смело пропустить и перейти к статье, которая поможет вам разобраться в rvalue-ссылках, конструкторах перемещения, универсальных ссылках, идеальной передаче (perfect forwarding) и т. д.

Драма в трех действиях

Действие первое

Компилятор. Локальный объект x типа T, проживающий на стеке, вы приговариваетесь к изъятию у вас всего имущества в связи с тем, что не будете пользоваться им до конца своей жизни.

Объект x. Что? Я не какой-то там временный объект, у меня постоянная регистрация, вы не имеете права!

Компилятор. Никто вас не выселяет. Но согласно одиннадцатой редакции стандартного кодекса, все ваши вещи будут переданы другому объекту, которому они нужны больше.

Объект x. И как вы это сделаете? Все мои данные надежно инкапсулированы, я не позволю никому бесцеремонно обращаться с ними. Если уж они так вам нужны, то пусть приходит конструктор копирования со своей флешкой, я ему скопирую.

Читать полностью »

Как сообщает издание The Investor, компания LG Display стала лидером по объему поставок телевизионных панелей разрешением 4К в четвертом квартале прошлого года.

Таким образом, LG Display является крупнейшим поставщиком телевизионных панелей 4К вот уже пятый квартал подряд. За вышеуказанный период времени компания отгрузила 6,78 млн таких панелей для телевизоров, заняв 31,1% соответствующего сегмента рынка.

Привет! Об иммутабельных данных немало говориться, но о реализации на С++ найти что-то сложно. И, потому, решил данный восполнить пробел в дебютной статье. Тем более, что в языке D есть, а в С++ – нет. Будет много кода и много букв.

О стиле – служебные классы и метафункции используют имена в стиле STL и boost, пользовательские классы в стиле Qt, с которой я в основном и работаю.

Введение

Что из себя представляют иммутабельные данные? Иммутабельные данные – это наш старый знакомый const, только более строгий. В идеале иммутабельность означает контекстно-независиую неизменяемость ни при каких условиях.

По сути иммутабельные данные должны:

  • обеспечивать физическую и логическую константность;
  • запрещать присваивание нового значения на этапе компиляции;
    все операции должны проводиться над копией, а не над оригиналом.

Иммутабельные данные пришли из функционального программирования и нашли место в параллельном програмировании, т. к. гарантируют отсутсвие побочных эффектов.

Как можно реализовать иммутабельные данные в С++?
В С++ у нас есть (сильно упрощенно):

  • значения – объекты фундаментальных типов, экземпляры классов (структур, объединений), перечислений;
  • указатели;
    ссылки;
    массивы.

Функции и void не имеет смысл делать иммутабельными. Ссылки тоже не будем делать иммутабельными, для этого есть const reference_wrapper.

Читать полностью »

Компания Xiaomi сообщила, что 28 февраля в Пекине состоится пресс-конференция, на которой будет представлена однокристальная система собственной разработки, получившая название Pinecone.

Ожидается, что первым смартфонов, в котором найдет применение Pinecone, станет Xiaomi Mi 5C. На прошлой неделе источник опубликовал фотографию, на котором якобы запечатлен новый смартфон.

Как мы недавно узнали, HTC в этом году выпустит всего шесть-семь новых моделей смартфонов. Две уже анонсированы: U Play и U Ultra. Третьей будет новый флагман. Судя по всему, четвёртой моделью всё-таки станет аппарат One X10, о котором мы уже упоминали.

Читать полностью »

Компания SpaceX вчера успешно запустила к МКС космический корабль Dragon, используя ракету-носитель Falcon 9.

Запуск была осуществлен со стартового комплекса 39А, откуда в свое время стартовала ракета с кораблем Apollo 11

Читать полностью »

Прошлой осенью компания Motorola объявила о проведение конкурса на лучший модуль Moto Mod для смартфона Moto Z. Одним из финалистов, которые вышли на площадки Indiegogo, стал Linc: The Smart Walkie Talkie.

Этот модуль служит для превращения смартфона Moto Z в рацию и использования его в местах, где нет покрытия сети сотового оператора. Стабильная связь поддерживается на расстоянии до 8 км. Устройство работает на частотах GMRS/FRS и поддерживает до 22 каналов связи.

Фраза: «Да на Алиэкспресс это в сто раз дешевле, а вы меня обманываете» звучала в наш адрес миллионы раз, и практически к каждой статье, рекламному объявлению, заметке находился свой «али-комментатор». Кто-то выражался менее метафорично: «Я куплю то же самое в 10 раз дешевле на Aliexpress», и тем не менее.

Почему правило «я куплю это в 10 раз дешевле на Aliexpress» не работает, и вы проиграете - 1

Мы же последовательно собирали «то же самое» и «в 10 раз дешевле» по разным категориям, чтобы рассказать, почему это не так. Два тезиса:

  • Это — не то же самое
  • Это — не в 10 раз дешевле

Кому интересно, как и где мы ошибались — прошу под кат!
Читать полностью »

История — это опыт, который позволяет современному поколению не наступить вновь на грабли. Но в программировании, как и в других активно развивающихся областях, такой идеальный сценарий не всегда возможен. Почему? Потому что появляются новые языки программирования, многие процессы становятся сложнее, а машины умнее. В этой статье я приведу две реальные истории. Что их объединяет? Во-первых, время — все они произошли в СССР; во-вторых, люди — каждая история могла пойти по другому сценарию, если бы главные герои не проявили свои лучшие/худшие человеческие качества; в-третьих, конечно же, программирование, иначе статья была бы просто неуместна в нашем блоге.

Picture 6

Читать полностью »

Компания MediaTek рассчитывает на то, что микросхема Helio X30 появится в составе готовых устройств во втором квартале этого года, а ее массовое производство должно начаться уже в этом месяце. Напомним, что SoC Helio X30 станет первым предложением MediaTek, производимым с использованием 10-нанометрового технологического процесса, на мощностях TSMC.


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js