39

I'm looking for an Integrated Development Environment for C++ that should run on Windows 8. The program should ideally support the following features:

  • Code completion/hinting
  • Indentation assistance
  • Syntax highlighting
  • Refactoring (ability to rename variables, classes, functions, etc. at the very least)
  • Code navigation (analogous to ctrl + clicking in Eclipse Indigo)

Additionally, the IDE should be standards-compliant, meaning that it does not utilize a compiler or code parser which knowingly and wilfully violate the C++ standard (as does Microsoft Visual Studio), and notifies the user when s/he writes non-standard-compliant code (despite the fact a compiler might accept it).

At this time I cannot acquire products that are not free, but I am willing to accept answers that describe a relatively cheap (say, < $100) product.

  • 3
    A distinction needs to be made here that standards compliance is strictly related to the underlying toolchain used to compile your code. IOW, an IDE cannot violate the c++ standard because its not responsible for turning your source into runnable code -- the compiler is. – greatwolf Dec 19 '14 at 1:43
  • 1
    Try CLion from JetBrains. – cic Mar 27 '15 at 16:28
  • How much experience do you have with vi and/or emacs? Please count it even if the experience was decades ago. (Just like you never forget how to ride a bicycle, you also never quite fully forget how to do wicked-cool stuff with surprisingly few keystrokes in vi.) – unforgettableid Aug 17 '15 at 20:03
  • 1
    "the IDE should be standards-compliant" - This request doesn't actually make sense for the IDE, as the job standards compliance falls to the underlying compiler, not the IDE. E.g. if you use Code::Blocks and tell it to use MSVC, then of course the non-standard behaviour you mentioned in your link will work the same way. – Brandin Feb 3 '16 at 10:19
  • 1
    @Brandin The OP has been educated but is no longer interested in this question. Feel free to edit as the community sees fit. – ApproachingDarknessFish Mar 9 '17 at 20:28
18

Code::Blocks

I would recommend this one for Windows if you will be working on a team which uses multiple platforms. It can handle the configuration changes, so you never notice that your teammates aren't using the same OSes. It is a very powerful modern IDE, but may be too much for some projects. It can use many compiler toolchains out of the box, and can be configured for just about any non-standard ones.

As the official site says, Code::Blocks is an "... open source, cross-platform, free C, C++ and Fortran IDE."

Features

  1. Imports MSVC projects and Dev-C++ projects
  2. Open Source
  3. Natively Cross-platform
  4. Written in C++. No interpreted languages or proprietary libs needed.
  5. Extensible through plugins
  6. Syntax highlighting, customizable and extensible
  7. Code completion/hinting
  8. Indentation assistance
  9. Code navigation

More feature information can be found on the official site here.

Screenshot from developer's site

  • This provides refactoring support? How? – Ira Baxter Jul 7 '16 at 2:59
  • Code::Blocks isn't maintained any more. I'd recommend Qt Creator instead. It is better anyway. – Timmmm Jan 16 '17 at 9:42
  • @Timmmm: It indeed seems the Code::Blocks website has not been updated in a full year. – einpoklum Mar 10 '17 at 8:42
14

There is a C/C++ bundle for Netbeans.

I can verify that it has syntax highlighting, code completion, and code formatting/indentation assist.

While I haven't used the C++ bundle personally, I use the Java and PHP flavours on a daily basis, and I assume based on the existence of cntrl+click navigation and refactoring in both that they should also be present in the C++ bundle.

The only real downside I have found to Netbeans is that sometimes after a few hours it can become sluggish to the point of being unresponsive due to (what I assume is) a memory leak (at least on 64-bit Windows 7), at which time you need to kill the associated java.exe process to release the memory. This issue may have been fixed, though, as I have not experienced it in a few months.

12

The CDT Project provides a fully functional C and C++ IDE based on the Eclipse platform. Features include: support for project creation and managed build for various toolchains, standard make build, source navigation, various source knowledge tools, such as type hierarchy, call graph, include browser, macro definition browser, code editor with syntax highlighting, folding and hyperlink navigation, source code refactoring and code generation, visual debugging tools, including memory, registers, and disassembly viewers. (Source)

CDT Project Screenshot of multiple windows

  • 2
    I wouldn't say it's fully-functional - after all, its refactoring capabilities are nearly zero, and it offers no automatic bug-resolution and warning-resolution like you get in Eclipse for Java - but it's coming along. Maybe in a decade or so it'll get nice... (don't get me wrong - I use it daily). – einpoklum Feb 27 '16 at 10:41
6

CLion

CLion UI

It's a cross-platform IDE with advanced C++ support known from ReSharper C++. The IDE is by JetBrains, the company behind IntelliJ Idea and Android Studio.

Works on Windows, Linux and MacOS.

Regarding features:

  • Code completion - It completes variable names, class members, header file names and everything you'd expect from a C++ IDE.

  • Indentation - It has configurable auto indentation.

  • Syntax highlighting is present for C++ and a few web languages.

  • Advanced refactoring support. Maybe the best among the C++ IDEs. It allows you to rename variables and classes, extract code to a separate function, move members up/down a class hierarchy, move and copy the code, and I probably didn't cover everything.

  • Code navigation - It allows Ctrl+Click to go to definition, search for references, and move back/forward through the code locations you visited.

  • It has very good static analysis. You can see and correct most errors before compiling the code once. It also warns about cases which are ignored by other IDEs like unused includes.

  • Code generation - You can automatically generate declarations for unknown variables or create a new class with its source and header files.

Another strong point for CLion is that it uses a CMake CMakeLists.txt file as its project file instead of using a new format. This allows for developing a project with or without the IDE interchangeably and eases importing of projects into it.

Currently, it costs $100 for personal use, and it is free for Open Source development.

5

Orwell Dev-C++

Long ago, Dev-C++ was perhaps the go-to free C/C++ IDE on Windows, but it was buggy, and the original version was unmaintained for a rather long time. The Orwell version fixes many known issues. It is worth checking out at least. Also worth mentioning is another fork called WX-Dev-C++, which might be useful for RAD GUI development, however this version is unmaintained as well.

Orwell Dev-C++ version: (Orwell Dev-C++ version)From the developer's sourceforge site WX-Dev-C++ version (WX-Dev-C++ version) From the developer's site Original Dev-C++ version: (Original Dev-C++ version:)From the developer's site

Features that all version support:

  1. Support GCC-based compilers
  2. Integrated debugging (using GDB)
  3. Support for multiple languages (localization)
  4. Class Browser
  5. Code Completion
  6. Debug variable Browser
  7. Project Manager
  8. Customizable syntax highlighting editor
  9. Quickly create Windows, console, static libraries and DLLs
  10. Support of templates for creating your own project types
  11. Makefile creation
  12. Edit and compile Resource files
  13. Tool Manager
  14. Print support
  15. Find and replace facilities
  16. Package manager, for easy installation of add-on libraries
  17. CVS Support
  18. To-Do List
  19. CPU Window

WX version extends this with:

  1. WYSIWYG wxWidgets resource editor

Orwell version extends this with:

  1. MinGW GCC 4.8.1 32bit
  2. TDM-GCC 4.8.1 32/64bit
  3. Syntax highlighting
  4. Code completion
  5. Shows information about code when hovering above code
  6. Provides user-editable shortcuts and tools
  7. GPROF profiling
  8. GDB debugging
  9. Devpak IDE extensions

Community dev-pak (plug-ins) exist, too. A good site to find some is devpaks.org. Also, there seems to be WX dev-pak extensions for Orwell located in this external thread, but I have not tested them.

  • 1
    I currently use WxDev-C++ for my C++ development, and I really wouldn't recommend it if you aren't in need of WxWidgets. Even then the amount of major bugs it has, especially the GUI designer becoming out of sync with the code, make Visual Studio a preferable environment for WxWidgets. – Ken Herbert Feb 10 '14 at 1:35
  • winterblodd, yeah, I wish it was better maintained. Have you tried Codeblocks? wiki.codeblocks.org/… – ConfusedStack Feb 10 '14 at 1:38
  • I've used Orwell and while it's usable (and much better than bloodshed) it's still quite lacking in many of the features I'm looking for. I'll check out WX though. – ApproachingDarknessFish Feb 10 '14 at 2:36
  • So, it's Windows-only? – einpoklum Feb 27 '16 at 10:42
1

Qt Creator

The IDE has now in times of Qt5 matured enough to really be first choice for most Qt developers. This required quite a big set of features, which make the IDE now also usable really well for non-Qt projects.

Pro's:

  • Comes with a optional MinGW toolchain when installed with a Qt toolkit, and can nevertheless build non-Qt projects.
  • Integration of MinGW and MSVC toolchains comes without additional effort, including debugging with these.
  • CMake support
  • Big number of plugins available
  • Full set of IDE features one might expect from a recent IDE.

Con's:

  • Hard to integrate a C++ toolchain that does not come with the Qt installers
  • I agree this is by far the best, especially now that the clang code model and static analysis is built in. It's actually better than Intellisense now. All of the other IDEs mentioned in this question are years behind (except maybe CLion which I've not tried). – Timmmm Jan 16 '17 at 9:41
0

Geany

According to the official site, "[i]t was developed to provide a small and fast IDE, which has only a few dependencies from other packages. It supports many filetypes and has some nice features."

This is a great minimal programming editor that has a Windows port. It is relatively cheap ($0 < $100), runs on Windows 8, it makes no assumptions about the compiler, (AFAIK) maintains the C++ standard as it uses GNU gcc/g++ by default for C/C++ (you could use any compiler installed, though), and has many of the features you are asking for. Although a little more limited than some of the other enterprise solutions, especially in resource lacking environments it can hold its own since:

Features:

  1. Code completion/hinting
  2. Indentation assistance
  3. Syntax highlighting
  4. UPDATE: It does support minimal refactoring and reflow (and there are tools/plugins which may improve this too)
  5. Code navigation (Ctrl if the declaration is in an open file)

It is in a similar category is the amazing program Notepad++, and the Unix/GNULinux powerhouses vim or emacs varieties, but I would recommend Geany as it is easy to use with nearly 0 learning curve, and :

Also has in addition:

  • free
  • Cross platform
  • gives you the same look and feel (although this is highly customizable) no matter the platform
  • will allow for multilanguage support (often large projects may use scripting, etc and it is nice to only need one IDE)
  • No compiler assumptions - it is easy to make it use any C++ compliant toolchain
  • Very customizable
  • VERY light-weight
  • Complete terminal integration under POSIX systems (Linux)

Screenshot found online of software

Personally, I almost exclusively use this IDE when writing code quickly on Linux with a GUI. It has some very nice features for C/C++ that are usually reserved for much larger programs. It is fast and can open just about any non-binary form document. It has nice key commands like switching lines, duplication, and multi-line indentation and comment control. You can use VIM inside it (as part of the terminal access it provides). It can save ways of building software, without requiring projects to self-contain their own build options. For example, even if there isn't a makefile (which can be used with a function-key) you can save build options that are selectable based on filetype. This is useful if there are several libraries that you use often and link with but want to be able to write something quickly, compile and test it. For example two custom commands I end up using a lot with geany are g++ -Wall -o "%e" "%f" 'allegro-config --cflags --libs' could be used to compile an Allegro4 program or nvcc -arch=sm_20 -o "%e" *.o -lcudart 'pkg-config opencv --cflags --libs' to build a CUDA application that also uses OpenCV. Once you save these they are selectable from a drop-down box or as a function-key for every .CPP file or whichever file type you associated it with. I have also found its print formatted and syntax-highlighted code to PDF (using Linux CUPS IIRC) to be very useful for handing in program documentation for classes. Being so low resource I have it on a portable Linux, and having made my own setup / configuration of it, I have saved an uncountable number of hours on each project since. To add to an existing project just make a new .CPP document or open an existing one from the file manager, and you're already working, rather than configuring, building off of a template, manually adding libraries, etc.

  • 1
    Explain how this supports C++ well. If it does not, this isn't really an answer. – Ira Baxter Feb 19 '14 at 8:50
  • 1
    I have explained how this supports C++ well, given how I use it, and answered the OP's question. – ConfusedStack Mar 19 '15 at 14:41
  • How does it address refactoring? (OP: "rename variables etc. at the very least") This is actually really hard to do right. If Geany does it (you tell us), how does it do it a way that is "right"? – Ira Baxter Mar 19 '15 at 17:07
0

Visual Studio Code

This is a flexible IDE for many programming languages and supports C++ very well through many plugins. It was released in 2015 and is actively maintained. See this quote from Wikipedia:

Visual Studio Code is a source code editor developed by Microsoft for Windows, Linux and macOS. It includes support for debugging, embedded Git control, syntax highlighting, intelligent code completion, snippets, and code refactoring. It is also customizable, so users can change the editor's theme, keyboard shortcuts, and preferences. It is free and open-source, although the official download is under a proprietary license.

Screenshot from Wikipedia

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.