@TWT

Тег C++17 в блоге TWT

TWT

Если Tenno-Seremel откроет ссылку Clang 7 in a Docker container for C++17 development то она сможет собрать свежие личкрафты даже на своём дебиане

TWT

В свежем qtcreator на С++ я сделал

const auto x = QChar::unicodeVersion(static_cast<uint>(ch));

и получил

128575 -> Unicode_6_0
128576 -> Unicode_6_0
128577 -> Unicode_7_0
128578 -> Unicode_7_0
128579 -> Unicode_8_0

На питоне я так сделать не могу, потому что в PyQt не завезли QChar::unicodeVersion
Или я плохо искал...
А unicodedata.unidata_version это просто константа '11.0.0'

TWT

The Nightmare of Move Semantics for Trivial C++ Classes - Nicolai Josuttis

TWT

Сегодня TIL узнал, что в С++ новая "Вражда между тупоконечниками и остроконечниками":
Одни пишут по-нормальному const auto x = boo();
Но есть извращенцы, которые пишут auto const x = boo();

TWT

Меня magog убедил собрать свежий dev-qt/qt-creator
Мол, раз уж dev-util/qbs теперь 1.11.1 значит соберётся
И dev-qt/qt-creator мне говорит compound literals are a C99-specific feature
Ваще красивчик.
Всем рекомендую.
Просто бросайте ваши IDE и используйте dev-qt/qt-creator

TWT

Modules are useless without support from build tools.

TWT
TWT

C++98
C++03
C++11
C++14
C++17
C++20
В каком-то смысле это 6 разных языков. В каком-то.

TWT

On February 5th, 2017, Herb Sutter proposed adding a three-way comparison operator, called the spaceship operator, to the C++ standard with the <=> syntax
It was successfully merged into the C++20 draft in November 2017.

TWT

Я хочу чтобы magog посмотрел это видео

TWT

Вопрос одновременно к magog и к qnikst про applicative в С++17
В личкрафтах есть src/util/sll/applicative.h
А я создаю класс Color, конструктор которого принимает три uint8_t R, G, B
А в main у меня нет трёх байтов, у меня вместо этого три std::optional<uint8_t> R, G, B
Вопрос: как мне применить applicative так, чтоб если все три значения нормик то сконструировался бы инстанс класса Color, а если хотя бы один std::optional<uint8_t> пустой, то мне б вместо инстанса класса Color отдало пустоту в std::optional<Color>?

Дедфуда не спрашиваю по очевидным причинам: он пидор и я не понимаю его языка.

TWT

llvm/ADT/STLExtras.h:818:6: предупреждение:
mangled name for «bool llvm::all_of(...) [with ... throw ()]»
will change in C++17 because the exception specification is part of a function type [-Wnoexcept-type]

C++17 придёт, порядок наведёт.

Вернее, C++17 пришёл, порядок уже тут.

Ну вот и хорошо

TWT
TWT
TWT
1516890397: Started emerge on: янв 25, 2018 17:26:36
1516890397:  *** emerge --oneshot --autounmask=n --quiet-build=n gcc
1516890405:  >>> emerge (1 of 1) sys-devel/gcc-7.3.0 to /
1516890405:  === (1 of 1) Cleaning (sys-devel/gcc-7.3.0::/usr/local/portage/sys-devel/gcc/gcc-7.3.0.ebuild)
1516890405:  === (1 of 1) Compiling/Merging (sys-devel/gcc-7.3.0::/usr/local/portage/sys-devel/gcc/gcc-7.3.0.ebuild)

Спасибо ребятам, которые этот день приближали как могли!

TWT

Знаете, есть такие люди в мире С++, которые боятся вызовов виртуальных функций.
Их в детстве ударили по башке учебником по Си и они думают, что их проект будет безбожно тормозить.
Они думают, что каждое слово слово virtual замедляет программу на 5%
Я думаю, что именно такие люди сделали gtk

TWT

Какой из вариантов вам больше нравится?
1) когда шланг говорит
default constructor of 'Q' is implicitly deleted because field 'm' has no default constructor
2) когда гцц говорит
«Q::Q()» is implicitly deleted because the default definition would be ill-formed

TWT

Подборка ссылок на С++ от питон-программиста:

performance tools
Linux perf for Qt developers - Milian Wolff - QtCon 2016
Processor Counter Monitor (PCM)
http://www.brendangregg.com/linuxperf.html
http://www.brendangregg.com/perf.html
http://sandsoftwaresound.ne...-tutorial-hot-spots/
http://sandsoftwaresound.ne...tut-count-hw-events/
http://sandsoftwaresound.ne...t-profile-hw-events/
Hotspot - the Linux perf GUI for performance analysis
https://github.com/KDAB/hotspot

Sanitizers (AddressSanitizer, ThreadSanitizer, MemorySanitizer, more):
american fuzzy lop (afl-fuzz)
https://github.com/google/sanitizers
https://github.com/google/sanitizers/wiki
C++ Weekly - Ep 84 - C++ Sanitizers
Address and Thread Sanitizers in GCC
https://oscarforner.com/201.../13/Clang_sanitizers
C++ Weekly - Ep 85 - Fuzz Testing
"Modern fuzzing of C/C++ Projects" workshop
Fuzz Smarter Not Harder: An afl-fuzz Primer
libFuzzer – a library for coverage-guided fuzz testing
http://tutorial.libFuzzer.info
RamFuzz - A fuzzer for individual method parameters
Materials from Fuzzing With AFL workshop
CppCon 2017: Kostya Serebryany “Fuzz or lose”
https://github.com/CppCon/C...r/Demos/Fuzz Or Lose

Static analysis:
Compilers - warning options
Useful GCC warning options not enabled by -Wall -Wextra
Clang Static Analyzer
clang-tidy
CodeChecker: an analyzer tooling, defect database and viewer extension for the Clang Static Analyzer and Clang Tidy
http://btorpey.github.io/bl...016/04/07/mo-static/
http://btorpey.github.io/bl...1/12/even-mo-static/
http://btorpey.github.io/bl.../09/17/lotso-static/
Cppcheck: A tool for static C/C++ code analysis

TWT
TWT

As a C and C++ software developer, Anastasia Kazakova created real-time *nix-based systems and pushed them to production for 8 years. She has a passion for networking algorithms and embedded programming and believes in good tooling. With all her love for C++, she is now the Product Marketing Manager on the JetBrains CLion team. Besides, Anastasia runs a C++ user group in Saint-Petersburg, Russia

Добавить пост

Вы можете выбрать до 10 файлов общим размером не более 10 МБ.
Для форматирования текста используется Markdown.