2017.1 Mar 29
CLion 2017.1 delivers support for the following C++14 features:
- auto return type,
- generic lambdas,
- variable templates, and
- generalized lambda captures.
See the full list of supported features per standard in CLion’s online documentation.
As the C++17 standard is just around the corner and the upcoming features are being finalized, CLion starts supporting C++17 with nested namespaces.
Make auto intention
For the sake of code readability and accuracy, CLion now suggests to modernize your C++ code
by converting variable type to auto.
As this feature should be used carefully across your code base, it’s implemented as a
non-intrusive intention. Use it as you see fit.
We continue to improve CLion’s parser and code analysis to make it even more accurate:
- Hidden functions from the base class are no longer suggested in completion
- Fixes for various false positives, for example in case of decltype(auto) in trailing return
- Correct calculation for value category (that fixes many false 'expression is not assignable,' 'expression must be lvalue,' and 'expression must be rvalue' warnings)
CLion now locates the precompiled headers and headers included via -include option, in order to correctly resolve symbols from such files and correctly highlight the code, navigate through it, perform code refactorings, etc.
Disassembly view for debugger
While debugging with GDB, you can now step into disassembly code when the sources are not available. Read the assembly, which is properly highlighted in the editor, and step through it to investigate the problem.
Catch is a cross-platform unit testing framework for C++ known for its easy starting process and convenient and flexible test cases. Now you can use Catch with CLion and benefit from completion and the built-in test runner.
Microsoft Visual C++ compiler
Experimental support for the Microsoft Visual C++ compiler is here. Check it out to avoid difficulties with MinGW/MinGW-w64 or Cygwin configuration, and especially if you use Microsoft Visual C++ as a compiler for your cross-platform C++ project.
Current support covers:
- Auto-detection and support for C++ compiler from Visual Studio 2013, 2015 and 2017
- Support for projects using CMake with NMake generator
- Settings to configure architecture, platform, etc.
- Navigation through the compiler errors in the Messages tool window
To switch on the support, use clion.enable.msvc option in the Registry.
Project model improvements
Project model is now more user-friendly:
- For existing CMake projects, the project name in CLion is taken from CMake’s
PROJECT_NAME on first opening
- Escaped symbols in CMake files are now handled correctly
- Obsolete not-modified run configurations, and run configurations for deleted targets,
are now removed automatically
Find in Path
Run a text search across the whole project or any selected scope with Find in Path, now in a compact and more convenient popup window with immediate preview.
Refine your search through the Git and Mercurial logs in the Log Viewer with these new options:
- Ability to use regular expressions
- Ability to match / ignore case
Configure which information to display in the log viewer to make it more compact or more detailed (for example, show / hide tag names).
The Branches popup has been redesigned and can now mark important branches as Favorites.
This gives you the ability to filter the branches and show only favorites in the
Several important enhancements were added to the Swift plugin for CLion:
- Create new Swift projects with ease using the new project template
- Check possible issues in your code in Swift with SourceKit inspections and intentions available in the plugin
- When using a type which doesn't exist yet, create it from usage via Alt+Enter
- Zero latency typing has proved to remove many typing lags in IntelliJ-based IDEs and is
now enabled by default
- CMake 3.7 was bundled into CLion
- Fixes for Dvorak layout in macOS, as well as Korean, Chinese and Japanese keyboard
layouts on macOS are included
- Settings Repository plugin is finally bundled into CLion
- Go plugin was updated and now correlates with Gogland functionality