SlideShare uma empresa Scribd logo
1 de 16
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 ?

Mais conteúdo relacionado

Mais procurados

2020 [pweb] 12 Node.js
2020 [pweb] 12 Node.js2020 [pweb] 12 Node.js
2020 [pweb] 12 Node.jsVICTOR JATOBÁ
 
NE Scala 2016 roundup
NE Scala 2016 roundupNE Scala 2016 roundup
NE Scala 2016 roundupHung Lin
 
Keep GCC running: 2019 update (BlinkOn 10)
Keep GCC running: 2019 update (BlinkOn 10)Keep GCC running: 2019 update (BlinkOn 10)
Keep GCC running: 2019 update (BlinkOn 10)Igalia
 
Introducing haXe
Introducing haXeIntroducing haXe
Introducing haXeAndy Li
 

Mais procurados (8)

2020 [pweb] 12 Node.js
2020 [pweb] 12 Node.js2020 [pweb] 12 Node.js
2020 [pweb] 12 Node.js
 
From NodeJS to Rust
From NodeJS to RustFrom NodeJS to Rust
From NodeJS to Rust
 
Comparing C and Go
Comparing C and GoComparing C and Go
Comparing C and Go
 
Software maintenance PyConPL 2016
Software maintenance PyConPL 2016Software maintenance PyConPL 2016
Software maintenance PyConPL 2016
 
R in gvSIG
R in gvSIGR in gvSIG
R in gvSIG
 
NE Scala 2016 roundup
NE Scala 2016 roundupNE Scala 2016 roundup
NE Scala 2016 roundup
 
Keep GCC running: 2019 update (BlinkOn 10)
Keep GCC running: 2019 update (BlinkOn 10)Keep GCC running: 2019 update (BlinkOn 10)
Keep GCC running: 2019 update (BlinkOn 10)
 
Introducing haXe
Introducing haXeIntroducing haXe
Introducing haXe
 

Semelhante a Recent c++ goodies (March 2018)

Angular v2 et plus : le futur du développement d'applications en entreprise
Angular v2 et plus : le futur du développement d'applications en entrepriseAngular v2 et plus : le futur du développement d'applications en entreprise
Angular v2 et plus : le futur du développement d'applications en entrepriseLINAGORA
 
[아이펀팩토리] 2018 데브데이 서버위더스 _04 리눅스 게임 서버 성능 분석
[아이펀팩토리] 2018 데브데이 서버위더스 _04 리눅스 게임 서버 성능 분석[아이펀팩토리] 2018 데브데이 서버위더스 _04 리눅스 게임 서버 성능 분석
[아이펀팩토리] 2018 데브데이 서버위더스 _04 리눅스 게임 서버 성능 분석iFunFactory Inc.
 
DEVNET-2006 Coding 210: Parsing JSON in C++
DEVNET-2006	Coding 210: Parsing JSON in C++DEVNET-2006	Coding 210: Parsing JSON in C++
DEVNET-2006 Coding 210: Parsing JSON in C++Cisco DevNet
 
Exploring Google APIs with Python
Exploring Google APIs with PythonExploring Google APIs with Python
Exploring Google APIs with Pythonwesley chun
 
G Suite & Google APIs coding workshop
G Suite & Google APIs coding workshopG Suite & Google APIs coding workshop
G Suite & Google APIs coding workshopwesley chun
 
C++14 - Modern Programming for Demanding Times
C++14 - Modern Programming for Demanding TimesC++14 - Modern Programming for Demanding Times
C++14 - Modern Programming for Demanding TimesCarlos Miguel Ferreira
 
Introduction to serverless computing on Google Cloud
Introduction to serverless computing on Google CloudIntroduction to serverless computing on Google Cloud
Introduction to serverless computing on Google Cloudwesley chun
 
Introduction to Cloud Computing with Google Cloud
Introduction to Cloud Computing with Google CloudIntroduction to Cloud Computing with Google Cloud
Introduction to Cloud Computing with Google Cloudwesley chun
 
Continuous integration is not a solved problem
Continuous integration is not a solved problemContinuous integration is not a solved problem
Continuous integration is not a solved problemKristian Van Der Vliet
 
Docker Timisoara: Dockercon19 recap slides, 23 may 2019
Docker Timisoara: Dockercon19 recap slides, 23 may 2019Docker Timisoara: Dockercon19 recap slides, 23 may 2019
Docker Timisoara: Dockercon19 recap slides, 23 may 2019Radulescu Adina-Valentina
 
Windows brings Docker Goodness - What does it mean for .NET developers?
Windows brings Docker Goodness - What does it mean for .NET developers?Windows brings Docker Goodness - What does it mean for .NET developers?
Windows brings Docker Goodness - What does it mean for .NET developers?Naeem Sarfraz
 
Client Side Performance for Back End Developers - Cambridge .NET User Group -...
Client Side Performance for Back End Developers - Cambridge .NET User Group -...Client Side Performance for Back End Developers - Cambridge .NET User Group -...
Client Side Performance for Back End Developers - Cambridge .NET User Group -...Bart Read
 
Supercharging CI/CD with GitLab and Rancher - June 2017 Online Meetup
Supercharging CI/CD with GitLab and Rancher - June 2017 Online MeetupSupercharging CI/CD with GitLab and Rancher - June 2017 Online Meetup
Supercharging CI/CD with GitLab and Rancher - June 2017 Online MeetupShannon Williams
 
Angular (v2 and up) - Morning to understand - Linagora
Angular (v2 and up) - Morning to understand - LinagoraAngular (v2 and up) - Morning to understand - Linagora
Angular (v2 and up) - Morning to understand - LinagoraLINAGORA
 
Exploring Google APIs with Python
Exploring Google APIs with PythonExploring Google APIs with Python
Exploring Google APIs with Pythonwesley chun
 
The printing press of 2021 - using GitLab to publish the VSHN Handbook
The printing press of 2021 - using GitLab to publish the VSHN HandbookThe printing press of 2021 - using GitLab to publish the VSHN Handbook
The printing press of 2021 - using GitLab to publish the VSHN HandbookAarno Aukia
 
PySpark on Kubernetes @ Python Barcelona March Meetup
PySpark on Kubernetes @ Python Barcelona March MeetupPySpark on Kubernetes @ Python Barcelona March Meetup
PySpark on Kubernetes @ Python Barcelona March MeetupHolden Karau
 

Semelhante a Recent c++ goodies (March 2018) (20)

Angular v2 et plus : le futur du développement d'applications en entreprise
Angular v2 et plus : le futur du développement d'applications en entrepriseAngular v2 et plus : le futur du développement d'applications en entreprise
Angular v2 et plus : le futur du développement d'applications en entreprise
 
Promise of DevOps
Promise of DevOpsPromise of DevOps
Promise of DevOps
 
[아이펀팩토리] 2018 데브데이 서버위더스 _04 리눅스 게임 서버 성능 분석
[아이펀팩토리] 2018 데브데이 서버위더스 _04 리눅스 게임 서버 성능 분석[아이펀팩토리] 2018 데브데이 서버위더스 _04 리눅스 게임 서버 성능 분석
[아이펀팩토리] 2018 데브데이 서버위더스 _04 리눅스 게임 서버 성능 분석
 
DEVNET-2006 Coding 210: Parsing JSON in C++
DEVNET-2006	Coding 210: Parsing JSON in C++DEVNET-2006	Coding 210: Parsing JSON in C++
DEVNET-2006 Coding 210: Parsing JSON in C++
 
Exploring Google APIs with Python
Exploring Google APIs with PythonExploring Google APIs with Python
Exploring Google APIs with Python
 
C++ in our world
C++ in our worldC++ in our world
C++ in our world
 
G Suite & Google APIs coding workshop
G Suite & Google APIs coding workshopG Suite & Google APIs coding workshop
G Suite & Google APIs coding workshop
 
C++14 - Modern Programming for Demanding Times
C++14 - Modern Programming for Demanding TimesC++14 - Modern Programming for Demanding Times
C++14 - Modern Programming for Demanding Times
 
Introduction to serverless computing on Google Cloud
Introduction to serverless computing on Google CloudIntroduction to serverless computing on Google Cloud
Introduction to serverless computing on Google Cloud
 
Introduction to Cloud Computing with Google Cloud
Introduction to Cloud Computing with Google CloudIntroduction to Cloud Computing with Google Cloud
Introduction to Cloud Computing with Google Cloud
 
Continuous integration is not a solved problem
Continuous integration is not a solved problemContinuous integration is not a solved problem
Continuous integration is not a solved problem
 
Docker Timisoara: Dockercon19 recap slides, 23 may 2019
Docker Timisoara: Dockercon19 recap slides, 23 may 2019Docker Timisoara: Dockercon19 recap slides, 23 may 2019
Docker Timisoara: Dockercon19 recap slides, 23 may 2019
 
Windows brings Docker Goodness - What does it mean for .NET developers?
Windows brings Docker Goodness - What does it mean for .NET developers?Windows brings Docker Goodness - What does it mean for .NET developers?
Windows brings Docker Goodness - What does it mean for .NET developers?
 
Client Side Performance for Back End Developers - Cambridge .NET User Group -...
Client Side Performance for Back End Developers - Cambridge .NET User Group -...Client Side Performance for Back End Developers - Cambridge .NET User Group -...
Client Side Performance for Back End Developers - Cambridge .NET User Group -...
 
Supercharging CI/CD with GitLab and Rancher - June 2017 Online Meetup
Supercharging CI/CD with GitLab and Rancher - June 2017 Online MeetupSupercharging CI/CD with GitLab and Rancher - June 2017 Online Meetup
Supercharging CI/CD with GitLab and Rancher - June 2017 Online Meetup
 
Angular (v2 and up) - Morning to understand - Linagora
Angular (v2 and up) - Morning to understand - LinagoraAngular (v2 and up) - Morning to understand - Linagora
Angular (v2 and up) - Morning to understand - Linagora
 
Exploring Google APIs with Python
Exploring Google APIs with PythonExploring Google APIs with Python
Exploring Google APIs with Python
 
The printing press of 2021 - using GitLab to publish the VSHN Handbook
The printing press of 2021 - using GitLab to publish the VSHN HandbookThe printing press of 2021 - using GitLab to publish the VSHN Handbook
The printing press of 2021 - using GitLab to publish the VSHN Handbook
 
PySpark on Kubernetes @ Python Barcelona March Meetup
PySpark on Kubernetes @ Python Barcelona March MeetupPySpark on Kubernetes @ Python Barcelona March Meetup
PySpark on Kubernetes @ Python Barcelona March Meetup
 
CI/CD with Github Actions
CI/CD with Github ActionsCI/CD with Github Actions
CI/CD with Github Actions
 

Mais de Bartlomiej Filipek

Empty Base Class Optimisation, [[no_unique_address]] and other C++20 Attributes
Empty Base Class Optimisation, [[no_unique_address]] and other C++20 AttributesEmpty Base Class Optimisation, [[no_unique_address]] and other C++20 Attributes
Empty Base Class Optimisation, [[no_unique_address]] and other C++20 AttributesBartlomiej Filipek
 
C++17 std::filesystem - Overview
C++17 std::filesystem - OverviewC++17 std::filesystem - Overview
C++17 std::filesystem - OverviewBartlomiej Filipek
 
Let's talks about string operations in C++17
Let's talks about string operations in C++17Let's talks about string operations in C++17
Let's talks about string operations in C++17Bartlomiej Filipek
 
WPF - the future of GUI is near
WPF - the future of GUI is nearWPF - the future of GUI is near
WPF - the future of GUI is nearBartlomiej Filipek
 

Mais de Bartlomiej Filipek (8)

Empty Base Class Optimisation, [[no_unique_address]] and other C++20 Attributes
Empty Base Class Optimisation, [[no_unique_address]] and other C++20 AttributesEmpty Base Class Optimisation, [[no_unique_address]] and other C++20 Attributes
Empty Base Class Optimisation, [[no_unique_address]] and other C++20 Attributes
 
Vocabulary Types in C++17
Vocabulary Types in C++17Vocabulary Types in C++17
Vocabulary Types in C++17
 
C++17 std::filesystem - Overview
C++17 std::filesystem - OverviewC++17 std::filesystem - Overview
C++17 std::filesystem - Overview
 
Let's talks about string operations in C++17
Let's talks about string operations in C++17Let's talks about string operations in C++17
Let's talks about string operations in C++17
 
Summary of C++17 features
Summary of C++17 featuresSummary of C++17 features
Summary of C++17 features
 
GPU - how can we use it?
GPU - how can we use it?GPU - how can we use it?
GPU - how can we use it?
 
WPF - the future of GUI is near
WPF - the future of GUI is nearWPF - the future of GUI is near
WPF - the future of GUI is near
 
3D User Interface
3D User Interface3D User Interface
3D User Interface
 

Último

04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024The Digital Insurer
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 

Último (20)

04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 

Recent c++ goodies (March 2018)

  • 1. Recent C++ goodies: tools and more CAN C++ DEVELOPERS BE MORE PRODUCTIVE IN 2018? Bartłomiej Filipek, bfilipek.com
  • 2. 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
  • 3. The plan C++ Status Tool Demo ◦ Visual Studio 2017 ◦ Clang Power Tools for VS ◦ Core Guideline Checker ◦ … ◦ SourceTrail ◦ Live++ ◦ Conan Summary
  • 4. 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
  • 5. 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
  • 6. 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)](){}
  • 7. C++20 – what’s planned? To boldly suggest an overall plan for C++20 - P0592R0 ◦ Modules ◦ Concepts ◦ Ranges ◦ Networking
  • 8. ToolsDisclaimer: In most cases I’m not an expert! 
  • 9. 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
  • 10. Core guidelines Cpp CoreGuidelines - Main Link C++ Core Guidelines Checker in Visual Studio 2017
  • 11. Clang Power Tools for VS Clang Format Style Options https://zed0.co.uk/clang-format-configurator/
  • 13. Conan Package Manager for C++, version 1.1 currently www.conan.io Conan Center Conan Transit
  • 14. 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++
  • 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

Notas do Editor

  1. Ask: do you use C++17?
  2. Show Community version Test open folder and cmake? Amazing! glwf
  3. Show core guideline cheecker