Recent C++ goodies:
tools and more
CAN C++ DEVELOPERS BE MORE PRODUCTIVE IN 2018?
Bartłomiej Filipek, bfilipek.com
About me
See my coding blog at: www.bfilipek.com
10y+ experience
Currently @Xara.com
◦ Text related features for advanced document editors
Somehow addicted to C++ 
Xara Cloud Demo
The plan
C++ Status
Tool Demo
◦ Visual Studio 2017
◦ Clang Power Tools for VS
◦ Core Guideline Checker
◦ …
◦ SourceTrail
◦ Live++
◦ Conan
Summary
C++ Status
4th December 2017 - C++17 has been published as ISO/IEC 14882:2017
C++20 on the way!
ISO Meetings
◦ November 2017: Albuquerque [AL-bu-kur-key], USA
◦ Herb Sutter Report
◦ botondballo trip report
◦ r/cpp/ live thread
◦ March 2018: Jacksonville (JAX), USA
◦ r/cpp/2018_jacksonville_iso_c_committee_reddit_trip/
◦ Vittorio Romeo: trip report: first ISO C++ meeting experience
◦ Herb Sutter: Trip report: Winter ISO C++ standards meeting (Jacksonville)
◦ botondballo trip report
◦ June 2018: Rapperswil, Switzerland
◦ November 2018: San Diego, USA
C++20 what’s already there?
Albuquerque, November 2017
◦ operator<=> (aka the spaceship operator) and library support for operator<=>
◦ P0515 R3
◦ Range-based for with initializer
◦ Lambdas in unevaluated contexts
◦ Deprecate POD - P0767R1 – “trivial” and “standard-layout”
◦ Apply [[nodiscard]] to the standard library - P0600R1
◦ On async, allocate, launder, new, empty
◦ std::osyncstream
◦ std::to_address
◦ constexpr std::complex
◦ constexpr algorithms
◦ Floating point std::atomics
◦ std::string/std::string_view .starts_with and .ends_with
C++20 what’s already there?
Jacksonville, March 2018
◦ [[no_unique_address]], which enables the empty base optimization for final types
◦ Make typename optional in more places
◦ [[likely]] and [[unlikely]]
◦ <version> header
◦ Calender and timezone library
◦ https://github.com/HowardHinnant/date
◦ syncstream manipulators for C++ Synchronized Buffered Ostream
◦ span
◦ Pack expansion in lambda init-capture: [...args = std::move(args)](){}
C++20 – what’s planned?
To boldly suggest an overall plan for C++20 - P0592R0
◦ Modules
◦ Concepts
◦ Ranges
◦ Networking
ToolsDisclaimer: In most cases I’m not an expert! 
Visual Studio 2017
Released in March 2017
◦ 5 updates in 2017
◦ Current version: 15.6.2 (8th March 2018)
◦ Community version is free
◦ Visual Studio Roadmap for 2018
Open Folder
Cmake support – 15.4
Clang compiler!
Improvements…
◦ Google and Boost Tests adapters since 15.5!
◦ https://docs.microsoft.com/en-us/visualstudio/test/how-to-use-google-test-for-cpp
Visual Studio 2017 for C++ developers – you will love it
Core guidelines
Cpp CoreGuidelines - Main Link
C++ Core Guidelines Checker in Visual Studio 2017
Clang Power Tools for VS
Clang Format Style Options
https://zed0.co.uk/clang-format-configurator/
SourceTrail
http://www.bfilipek.com/2017/10/sourcetrail.html
Conan
Package Manager for C++, version 1.1 currently
www.conan.io
Conan Center
Conan Transit
Live++, from Molecular Matters
Hot patch your app on the go!
MSVC compiler
◦ LLVM in progress
x86/x64 - bit mode
Single DLL – loaded into your app
Compilation & patching process in the background
Live++ released on March 27th Molecular Matters -> Live++
Others?
Clang:
◦ Address Sanitizer
◦ Undefined Behavior Sanitizer
◦ Memory Sanitizer
Static analysers
◦ CppCheck
IDE
◦ Clion
◦ QTCreator
Visual Assist
Vtune Free for commercial use!
◦ 90-day trial, with unlimited number of renewals
Questions ?

Recent c++ goodies (March 2018)

  • 1.
    Recent C++ goodies: toolsand more CAN C++ DEVELOPERS BE MORE PRODUCTIVE IN 2018? Bartłomiej Filipek, bfilipek.com
  • 2.
    About me See mycoding blog at: www.bfilipek.com 10y+ experience Currently @Xara.com ◦ Text related features for advanced document editors Somehow addicted to C++  Xara Cloud Demo
  • 3.
    The plan C++ Status ToolDemo ◦ Visual Studio 2017 ◦ Clang Power Tools for VS ◦ Core Guideline Checker ◦ … ◦ SourceTrail ◦ Live++ ◦ Conan Summary
  • 4.
    C++ Status 4th December2017 - C++17 has been published as ISO/IEC 14882:2017 C++20 on the way! ISO Meetings ◦ November 2017: Albuquerque [AL-bu-kur-key], USA ◦ Herb Sutter Report ◦ botondballo trip report ◦ r/cpp/ live thread ◦ March 2018: Jacksonville (JAX), USA ◦ r/cpp/2018_jacksonville_iso_c_committee_reddit_trip/ ◦ Vittorio Romeo: trip report: first ISO C++ meeting experience ◦ Herb Sutter: Trip report: Winter ISO C++ standards meeting (Jacksonville) ◦ botondballo trip report ◦ June 2018: Rapperswil, Switzerland ◦ November 2018: San Diego, USA
  • 5.
    C++20 what’s alreadythere? Albuquerque, November 2017 ◦ operator<=> (aka the spaceship operator) and library support for operator<=> ◦ P0515 R3 ◦ Range-based for with initializer ◦ Lambdas in unevaluated contexts ◦ Deprecate POD - P0767R1 – “trivial” and “standard-layout” ◦ Apply [[nodiscard]] to the standard library - P0600R1 ◦ On async, allocate, launder, new, empty ◦ std::osyncstream ◦ std::to_address ◦ constexpr std::complex ◦ constexpr algorithms ◦ Floating point std::atomics ◦ std::string/std::string_view .starts_with and .ends_with
  • 6.
    C++20 what’s alreadythere? Jacksonville, March 2018 ◦ [[no_unique_address]], which enables the empty base optimization for final types ◦ Make typename optional in more places ◦ [[likely]] and [[unlikely]] ◦ <version> header ◦ Calender and timezone library ◦ https://github.com/HowardHinnant/date ◦ syncstream manipulators for C++ Synchronized Buffered Ostream ◦ span ◦ Pack expansion in lambda init-capture: [...args = std::move(args)](){}
  • 7.
    C++20 – what’splanned? To boldly suggest an overall plan for C++20 - P0592R0 ◦ Modules ◦ Concepts ◦ Ranges ◦ Networking
  • 8.
    ToolsDisclaimer: In mostcases I’m not an expert! 
  • 9.
    Visual Studio 2017 Releasedin March 2017 ◦ 5 updates in 2017 ◦ Current version: 15.6.2 (8th March 2018) ◦ Community version is free ◦ Visual Studio Roadmap for 2018 Open Folder Cmake support – 15.4 Clang compiler! Improvements… ◦ Google and Boost Tests adapters since 15.5! ◦ https://docs.microsoft.com/en-us/visualstudio/test/how-to-use-google-test-for-cpp Visual Studio 2017 for C++ developers – you will love it
  • 10.
    Core guidelines Cpp CoreGuidelines- Main Link C++ Core Guidelines Checker in Visual Studio 2017
  • 11.
    Clang Power Toolsfor VS Clang Format Style Options https://zed0.co.uk/clang-format-configurator/
  • 12.
  • 13.
    Conan Package Manager forC++, version 1.1 currently www.conan.io Conan Center Conan Transit
  • 14.
    Live++, from MolecularMatters Hot patch your app on the go! MSVC compiler ◦ LLVM in progress x86/x64 - bit mode Single DLL – loaded into your app Compilation & patching process in the background Live++ released on March 27th Molecular Matters -> Live++
  • 15.
    Others? Clang: ◦ Address Sanitizer ◦Undefined Behavior Sanitizer ◦ Memory Sanitizer Static analysers ◦ CppCheck IDE ◦ Clion ◦ QTCreator Visual Assist Vtune Free for commercial use! ◦ 90-day trial, with unlimited number of renewals
  • 16.

Editor's Notes

  • #5 Ask: do you use C++17?
  • #10 Show Community version Test open folder and cmake? Amazing! glwf
  • #11 Show core guideline cheecker