SlideShare ist ein Scribd-Unternehmen logo
1 von 16
Downloaden Sie, um offline zu lesen
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 ?

Weitere ähnliche Inhalte

Was ist angesagt?

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
 

Was ist angesagt? (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
 

Ähnlich wie 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
 

Ähnlich wie 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
 

Mehr von 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
 

Mehr von 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
 

Kürzlich hochgeladen

Glenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security ObservabilityGlenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security Observabilityitnewsafrica
 
UiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPathCommunity
 
4. Cobus Valentine- Cybersecurity Threats and Solutions for the Public Sector
4. Cobus Valentine- Cybersecurity Threats and Solutions for the Public Sector4. Cobus Valentine- Cybersecurity Threats and Solutions for the Public Sector
4. Cobus Valentine- Cybersecurity Threats and Solutions for the Public Sectoritnewsafrica
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersNicole Novielli
 
Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024TopCSSGallery
 
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...Wes McKinney
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfNeo4j
 
Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks  and Compliance Requirements i...Abdul Kader Baba- Managing Cybersecurity Risks  and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...itnewsafrica
 
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better StrongerModern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Strongerpanagenda
 
Digital Tools & AI in Career Development
Digital Tools & AI in Career DevelopmentDigital Tools & AI in Career Development
Digital Tools & AI in Career DevelopmentMahmoud Rabie
 
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...Nikki Chapple
 
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesHow to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesThousandEyes
 
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfSo einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfpanagenda
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsNathaniel Shimoni
 
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotesMuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotesManik S Magar
 
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical InfrastructureVarsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructureitnewsafrica
 
A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI AgeCprime
 
Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)
Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)
Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)Mark Simos
 
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesAssure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesThousandEyes
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsRavi Sanghani
 

Kürzlich hochgeladen (20)

Glenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security ObservabilityGlenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security Observability
 
UiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to Hero
 
4. Cobus Valentine- Cybersecurity Threats and Solutions for the Public Sector
4. Cobus Valentine- Cybersecurity Threats and Solutions for the Public Sector4. Cobus Valentine- Cybersecurity Threats and Solutions for the Public Sector
4. Cobus Valentine- Cybersecurity Threats and Solutions for the Public Sector
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software Developers
 
Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024
 
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdf
 
Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks  and Compliance Requirements i...Abdul Kader Baba- Managing Cybersecurity Risks  and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...
 
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better StrongerModern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
 
Digital Tools & AI in Career Development
Digital Tools & AI in Career DevelopmentDigital Tools & AI in Career Development
Digital Tools & AI in Career Development
 
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
 
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesHow to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
 
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfSo einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directions
 
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotesMuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
 
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical InfrastructureVarsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
 
A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI Age
 
Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)
Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)
Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)
 
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesAssure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and Insights
 

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

Hinweis der Redaktion

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