About CLion

A cross-platform IDE for C and C++.

CLion is a fully integrated C/C++ development environment. It will enhance your productivity with a smart editor, code quality assurance, automated refactorings and deep integration with the CMake build system.

CLion Features

  • Smart C and C++ editor - Thanks to native C and C++ support, including modern C++ standards, libc++ and Boost, CLion knows your code through and through and takes care of the routine while you focus on the important things.
  • Navigation - Instantly navigate to a symbol's declaration or context usages, search through the whole project for a class, file or symbol by its name, find your way through the code base with structure and hierarchical views.
  • Code generation - Add class members, override/implement functions, generate constructors/destructors, getters/setters, equality, relational and stream output operators, wrap a block of code with a statement, or generate a declaration from actual usage - all via simple keyboard shortcuts.
  • Refactoring - Rename symbols, move members up/down the hierarchy, change function signature, and be sure CLion’s automated refactorings will accurately propagate the appropriate changes throughout your code.
  • On-the-fly code analysis - With CLion, you can create code that's beautiful and correct at the same time. Potential code issues are identified instantly and fixed as you type! Be sure all the proper changes are handled automatically by CLion. CLion also performs Data Flow analysis to find out all the cases of the unreachable code, infinite recursion and more.
  • Integrated debugger - Investigate and solve problems with ease through CLion's friendly debugger user interface with GDB or LLDB available as a backend. Attach to local processes or debug remotely. Check disassembly view when sources are not available.
  • Inline variable view - Get the complete view of your project with variable values shown right in the editor as you debug.
  • Watches and variables view - Inspect the state of all the variable for a chosen function in the stack frame, or monitor variable/expression changes during the debug session.
  • Evaluate expression - Evaluate result of a function call or some complicated expression when stop at some execution point in the debug session.