C++

These questions were shown only to the developers who chose C++ as one of their three primary programming languages.

Which C++ standards do you regularly use?

12%41%39%46%13%C++20C++17C++14C++11C++98 / C++03

People are continuing to adopt the new C++ standards. The share of developers using C++20 has jumped to 12%.

11%36%44%47%18%C++20C++17C++14C++11C++98 / C++03

The results for some questions, including this one, have been split into 3 groups based on the types of software the respondents develop and the fields in which their companies operate. These groups represent the 3 main areas of C++ development: Embedded development, Finance, and Games development.

Do you plan to move to another C++ standard in the next 12 months? If so, to which one?

50%14%10%19% 8%No, I don't plan toto C++11to C++14to C++17to C++20

Roughly half of the C++ developers surveyed plan to move to another standard this year.

Which IDE or editor do you use the most for C++ development?

26%22%22% 7% 4% 4% 3% 3% 2% 2% 1% 3%Visual StudioCLionVisual Studio CodeVi/VimQtCreatorSublimeXcodeAtomEmacsEclipse CDTNetBeansOther

26%25%22% 6% 4% 4% 4% 3% 2% 2% 1% 1%Visual StudioVisual Studio CodeCLionVi/VimAtomEmacsQtCreatorXcodeNetBeansSublimeEclipse CDTOther

JetBrains recently launched the Rider for Unreal Engine IDE Public Preview, which we hope will make it onto this table for Game Development next year.

Which unit-testing frameworks do you regularly use, if any?

31%14% 6% 6% 3% 1%15%34% 4%Google TestCatchBoost.TestCppUnitdoctestCppUTestI don't use frameworksI don’t write unit tests for C++Other

Catch moved into second place this year, overtaking Boost.Test and CppUnit.

31%12% 5% 6% 2% 2%19%32% 2%Google TestCatchBoost.TestCppUnitdoctestCppUTestI don't use frameworksI don’t write unit tests for C++Other

What dependency managers do you use in your projects?

23%10% 8% 6% 3% 1% 4%49%I rely on a system package managerNugetvcpkgConanbuild2HunterOtherNone

Half of C++ developers don’t use anything to manage their dependencies.

23%10% 7% 6% 5% 2% 6%46%I rely on a system package managerNugetvcpkgConanbuild2HunterOtherNone

What error reporting methods are allowed on your current project (work or school)?

79%Exceptions (throw, try,catch)
51%Numeric error codes (e.g.,errc, error_code, HRESULT)
22%Success/failure result classtypes (e.g.,Boost.Expected,Boost.Outcome)

Which project models or build systems do you regularly use, if any?

53%35%29% 7% 7% 5% 3% 3% 2% 1% 4%13%CMakeVisual Studio projectMakefilesXcode projectCustom build systemQmakeAutotoolsBazelBoost.BuildSConsOtherNone

As in previous years, the leading build systems are CMake, Visual Studio project, and Makefiles.

54%35%34%11% 7% 7% 4% 3% 3% 2% 4% 8%CMakeMakefilesVisual Studio projectCustom build systemQmakeXcode projectAutotoolsBazelBoost.BuildSConsOtherNone

Which compilers do you regularly use?

74%43%32% 9% 5% 3%GCCClangMSVCIntelCustomOther

GCC has increased its share for the first time in 4 years, while Clang has been growing steadily.

79%42%33% 8% 7% 5%GCCClangMSVCIntelCustomOther

Which of the following tools do you or your team use for guideline enforcement or other code quality or analysis?

36%23%20%13% 9% 6% 2% 2%Tool provided by my IDE (Visual Studio, ReSharper C++, CLion, etc.)Clang-tidyClang-analyzer / Clang Static AnalyzerCppcheckCpplintCoverityParasoft C/C++testStack
All results

The growing popularity of Clang is driving the popularity of it’s tools, such as Clang-tidy and Clang-analyzer.

Which of the following coding advice or guidelines sources do you or your team actively use?

29%26%24% 9% 5% 5% 3% 3%Effective C++ series (books by Scott Meyers)Google C++ Style GuideC++ Core Guidelines – main project (github.com/isocpp/CppCoreGuidelines)C++ Coding Standards (book by Herb Sutter and Andrei Alexandrescu)Guru of the Week / Exceptional C++ series (blog/books by Herb Sutter)C++ Core Guidelines – a company-specific fork/branch augmented with internal rulesAbseil tips of the weekHigh Integrity C++ Coding Standard (Programming Research)
All results

Thank you for your time!

We hope you found our report useful. Share this report with your friends and colleagues.

Join JetBrains Tech Insights Lab

Take part in surveys and UX studies to make JetBrains products easier to use yet even more powerful. For participating in our research, you’ll also get the chance to earn rewards.

If you have any questions or suggestions, please contact us at surveys@jetbrains.com.

© 2000-2020 JetBrains s.r.o. All rights reserved.