The commonc++ FAQ

  1. Which platforms are supported?

    Current platform support includes Mac OS X, POSIX systems such as GNU/Linux and Solaris, and Microsoft Windows (2000 and later). There are no plans to ever support Mac OS Classic (MacOS 9 and earlier), Windows 95/98/ME, OS/2, IRIX, SunOS 4.x, Ultrix and friends, or any other obsolete operating systems. Windows support is for both the Visual Studio and the MinGW development environments.

  2. Is commonc++ stable enough for use in my application?

    That depends on your application. Versions 0.1 through 0.9 are intended to be incremental refinements toward a production-quality 1.0 release. If you want to use commonc++ in a production environment, then it's best to wait for the 1.0 release.

  3. What are the license terms?

    The commonc++ library is released under the GNU Lesser General Public License. It can be used in both open-source and closed-source projects. Please read the text of the LGPL for details.

  4. Will you change the license from LGPL to a more permissive license so that a) it can be linked statically with non-GPL (non-free) programs and/or b) source code can be copied out of the library and put into a non-GPL (non-free) project?


  5. Is commonc++ related to the GNU Common C++ project?

    No, commonc++ is not related in any way to the GNU Common C++ project (aka APE, Bayonne Framework, GNU Telephony, or any of the other myriad names by which that project is known).

  6. What can I do to help?

    Assistance with testing/debugging and implementation of missing functionality would be especially appreciated.

  7. How do I submit bug reports and other feedback?

    Please use the feedback form.

  8. Does the library have support for IPv6?

    IPv6 is not currently supported.

  9. Does the library have support for internationalization?

    Modest internationalization is currently supported, with more support to come in future releases.

  10. Which C++ compilers are supported?

    On POSIX systems (including Mac OS X), gcc 3.4 or later is required, and 4.0 or later is highly recommended.

    On Windows, Microsoft Visual Studio 8.0 or higher is required; Visual Studio.NET 2005 and the "free" Visual C++ 2005 Express Edition are supported. Older versions of Visual Studio may or may not work, but are not supported due to their obsolescense and/or the lack of resources to maintain them. The GNU toolchain (gcc and friends) via the MinGW environment is also supported.

  11. Why do the source files have .c++ and .h++ extensions?

    The .c++ extension is used because the name of the programming language is C++, not "Cxx" or "Cpp" or "CC", and all modern operating systems can handle '+' characters in filenames. The .h++ extension is used to differentiate C++ header files from C header files.

  12. How can I get Microsoft Visual Studio.NET 2008 or Visual C++ Express 2008 to recognize the .c++ and .h++ file extensions?

    Use the following registry files to make Windows Explorer and Visual C++ Express 2008 aware of the extensions (registry modifications for Visual Studio.NET will be slightly different).

    To adjust the indentation style to match that of the commonc++ source code and add a right margin guide at column 80 in the IDE editor, use the following registry file:
    To swap the Caps Lock and Control keys in Windows, use the following registry file:
    Windows may require a reboot for all of these registry changes to properly take effect.

    See this article and this FAQ for more information.

  13. When I try to compile commonc++ using MinGW, I get errors during the linker step.

    Please see the MinGW section in the README.

  14. Applications built with commonc++ on Windows using Visual Studio.NET 2008 or Visual C++ 2008 Express fail to start when deployed to non-development systems.

    If you built commonc++ and/or your program with Visual Studio 2008 or Visual C++ 2008 Express, you must install the Microsoft Visual C++ 2005 Redistributable Package on the target system. Individually copying the required C/C++ runtime DLLs to the application folder will not work.