All streams
Search
Write a publication
Pull to refresh
31
0
Send message
Для тривиальных типов (например int) смысла в этом нет (например gcc генерирует одинаковый код ассемблера), но если используется итератор, то реализуя оператор ++ будет необходимо написать примерно следующее:
  T old( *this ); // запомнить начальное значение
  ++*this;         //инкрементировать        
  return old;     //вернуть старое значение

Если в конструкторе копирования (когда создается old) есть накладные расходы, то преинкремент потенциально приобритает смысл. Но если две записи идентичны в циклах (и стандарт не указывает о предпочтительности того или иного оператора), то можно использовать один и не думать о том, снизит ли он эффективность. Хотя обычно все решается стандартами написания кода в конкретной организации/группе разработчиков и если постинкремент удобнее программисту, то, на мой взгляд, следует его и использовать, ведь все же язык для программиста а не наоборот.

P.S. 25 лет назад кстати GCC только и появился: в 1989 году.
Я бы еще добавил правило использования в циклах преинкремента и предекремента вместо постинкремента и постдекремента (++i и --i вместо i++ и i--).
Prefer preincrement to postincrement whenever possible. Preincrement is potentially faster than postincrement. Just think about the obvious implementations of pre/post-increment. This rule applies to decrement too:

Источник: QtCreator Coding Rules
На данный момент видимо нет, так как спецификация qmake
qmake.exe animatedtiles.pro -r -spec winphone-x86-msvc2012
явно указывает на то, что используются инструменты Windows.
Девушка симпатичная.
Забавно читать комментарии к видео по этому поводу:
Killstrek Reaper Drone with a hot sensor operator girl

Мне кажется это все же симуляция. Показывать реальные боевые действия не позволит их гриф секретности.
К тому же реальные рабочие места операторов наземной станции управления БЛА «Predator» (GCS — Ground Control Station) выглядят вот так:
Фото

А вот так выглядит перспективная разработка от General Atomics Aeronautical Systems
Фото

В доступных для скачивания дистрибутивах Qt под Windows (MSVS 2012 x32/x64, MinGW x86_32, etc) QtCreator собран с MSVS 2010 x32 (ревизия 27d10d8dcd), поэтому и потребуется одна сборка (если же пользователь сам собрал QtCreator с MinGW, то собрать плагин ему не составит труда).
Linux x86_64 вроде не забыт: отдельно для этой платформы собираю плагины, например для плагина контроля аудио Linux_x64. Просто обозначение принято x64 (как и на странице загрузки), вместо x86-64
Не знаю, может у них там в Азиатско-Тихоокеанском регионе у всех так, но вот еще одна новость в тему:
Китайских заключенных заставляли зарабатывать виртуальные деньги в World of Warcraft
То есть если человек до зоны имел профессию «портной», то он будет одежду в цехе шить, а если «геймер», то будет прокачивать lvl на продажу.
Если мальчик пойдет по стопам отца, то в свое резюме он сможет вписать строчку:
в возрасте 5 лет обнаружил критическую уязвимость в системе авторизации Xbox Live.
Геймер — это теперь и перспективный вид спорта и профессия.
Южнокорейский университет Чан-Ан, входящий в десятку лучших учебных заведений страны, приравнял соревнования геймеров к традиционному профессиональному спорту. Но это далеко не все: «электронный спорт» станет профессией, которой будут учить в университете.

цитата отсюда
Например так было с плагином TODO. Другой пример — с версии QtCrator 3.1 Artistic Style Plugin частично вошел в состав QtCreator в виде плагина Beautifying Source Code). Приведенные же в статье плагины скорее «Just for Fun» и никто их естественно не будет добавлять в основной репозиторий.
Отличная идея, именно так (насколько мне известно) и делают для того, чтобы создать систему расширений в приложении, но вызывает вопрос следующее:
Если в QScriptEngine зарегистрировать точки доступа к QtCreator API

Ведь мы можем определить интерфейс доступа к QtCreator api (который, к слову сказать, периодически изменяется и его еще нужно поддерживать), а как при этом быть с другими функциями, которые возможно новый плагин захочет использовать?

На самом деле сборок получается не так и много: одна для Windows (так как для x64 и x32 используется MSVS 2010 x32), одна для Linux x64, одна для Linux x32 и одна для Mac OS X — всего четыре. Если, к примеру, в Windows системе установить виртуальную машины Linux x32, x64 и MacOSX а папку с исходниками расшарить за счет «Guest Additions», то сборка всех плагинов сводится к переключению между машинами и запуску сборки-тестировании (ну и сборе всех версий плагинов в одном месте). Если это все автоматизировать (вплоть до написания серверов для виртуальных машин, которые будет получать команды и запускать сборку), то весь процесс (по идее) не займет много времени.
По части «useful comments» в свою очередь вспоминается недавний пост В LA Times новость о землетрясении написал робот. Все к этому и идет.
Многих фантастов их современники не воспринимали в серьез (едва ли они сами верили в осуществимость результатов полета их фантазии). Однако многое из рассказов Жюль Верна сейчас — обычная реальность.
Возможно вот и эта первоапрельская шутка со временем станет реальностью, а тролли станут хитрее и будут применять импланты, позволяющие обходить детекторы за счет внесения помех в тембр голоса (система «Анти-Анти-Тролль»).
Похожее решение есть еще у KDAB (разработчики KDChart). Называется их виджет KDPropertyView и входит в состав набора виджетов KD Tools.
KDPropertyView is an model/view based viewer/ editor for key/value properties. The basic type of a property is QVariant. Additional display/edit information like minimum- and maximum-values, lists of options, and input masks can be communicated to the view via the model. Composite properties are supported (for example a ”Size” property might be composed of a height and width). A number of editors are included in KDTools, but the system can easily be extended via delegates and custom editors that plug into KDPropertyView.

Внешний вид их виджета:



P.S. спасибо Вам за проект.
Спасибо за отзыв.
Просмотрел мельком Цикл статей по сборке RPM и DEB пакетов. Там везде указывается, что пакеты собариются для программы, а тут ведь просто плагин, имеет ли смысл для него делать RPM? Мне просто интересно, какие преимущества у RPM перед простым копированием плагина в папку? Вообще (на мой взгляд) было бы здорово, если бы QtCreator имел полнофункциональный менеджер плагинов, который самостоятельно (или по команде) будет проверять обновления, обновлять существующие плагины, предоставлять список доступных (и новых) плагинов из единого репозитория. Сейчас же, если человек сам не заинтересуется в возможности расширения функционала IDE за счет плагинов, то скорее он о них и не узнает.
Хроника апокалипсиса:
2040 год, день X: взаимный обмен ядерными ударами произошел неожиданно для человечества: страны, обладающие ядерным вооружением, уже как 5 лет назад возложили обязанность принятия решения о нанесении ответного удара на искусственный интеллект, который никогда не ошибался… вплоть до этого момента.
2040 год, спустя месяц: несмотря на то, что поток нейтронов почти полностью (за исключением тараканов) уничтожил всю жизнь на планете… жизнь продолжается, но уже в виртуальном пространстве. Современные автономные источники электроэнергии позволяют работать оборудованию в течении нескольких лет. Климатические датчики фиксируют резкое похолодание и размещают новостные сообщения в ведущих новостных лентах: «В Египте выпал снег, сильный гололед. Не забудьте взять с собой шарф, если вы отправляетесь на курорты Красного моря».

Возможно спустя миллион лет потомок таракана (который выжил и эволюционировал) в процессе раскопок найдет этот комментарий и запишет автора в учебник истории как предсказателя ))
Если есть желание написать плагин, добавляющий ToolBar, то возможно вам пригодится:

1. добавление QToolBar в QtCreator

QWidget *coreWidget = Core::ICore::mainWindow(); //получаем указатель на главный виджет QtCreator
QMainWindow *mainWindow = qobject_cast<QMainWindow *>(coreWidget); //преобразуем в QMainWindow
//далее добавляем ToolBar как к обычному QMainWindow 
QToolBar * fileToolBar = new QToolBar(QString::fromUtf8("Tools"));
mainWindow->addToolBar(fileToolBar);

2. получение списка всех команд, зарегистрированных в QtCreator

QList<Core::Command *> commandsList = Core::ActionManager::commands();
    for (int i = 0 ; i < commandsList.count() ; i++)
    {
        if (commandsList.at(i)->action()) //не у всех Command есть свой QAction
        {
            qDebug()  <<   QString::fromUtf8("Action: ")
                               << commandsList.at(i)->action()->text()
                               <<  QString::fromUtf8( "Description: ")
                               <<  commandsList.at(i)->description();
        }
    }
Обновил до версии 0.0.3.
  • теперь табы отображаются во всех режимах QtCreator (редактора, дизайнера, справки и др.) и расположены сразу под главным меню. Это позволяет переключаться к редактированию того или иного файла сразу из любого режима (в том числе из справочной системы, минуя переключение в режим Edit — данный режим включится автоматически).
  • еще одно улучшение: для форм (файлов *.ui) также появляется вкладка, при переходе на которую сразу отображается редактор формы.

Обновил до версии 0.0.2:

исправлена недоработка, при которой после сохранения файла он продолжает помечаться * (как модифицированный). Случай возникал при автосохранении перед запуском сборки;
— теперь цвет берется из настроек цветовой схемы самого QtCreator'a (пример на рисунке), после смены настроек цветов необходимо перезапустить QtCreator (чтобы изменения затронули и табы);
— скроллер (элемент прокрутки табов, когда они не помещаются все одновременно) сделан непрозрачным;
— удалил весь отладочный вывод.



Исходники в репозитории и архивы обновлены для всех систем за исключением Mac OS X (пока только версия 0.0.1).
Ссылки в статье на архивы с скомпилированными плагинами теперь указывают не на файлы архивов, а на директории для загрузки под конкретную систему (сделано чтобы каждый раз не редактировать ссылки на загрузку).
Видимо в настройках Environment->General в группе User Interface выбрать цвет с помощью Color Picker

Information

Rating
Does not participate
Location
Россия
Registered
Activity