Difference between revisions of "C/C++"
From HCL
					
										
					
					| Line 10: | Line 10: | ||
| == C++ == | == C++ == | ||
| * [http://developers.sun.com/solaris/articles/mixing.html Mixing C/C++] | * [http://developers.sun.com/solaris/articles/mixing.html Mixing C/C++] | ||
| − | * [http://en.wikipedia.org/wiki/Template_metaprogramming Template C++] | + | * [http://en.wikipedia.org/wiki/Template_metaprogramming Template C++] is preferrable from the point of view of runtime performance | 
| + | * Use plain C unless you need flexible data structures or STL/Boost functionality | ||
| + | * Provide main API in C | ||
| == General == | == General == | ||
Revision as of 14:08, 10 February 2010
Coding
- Coding header files
- One-true-brace ident style
- Learn from examples and use coding approaches from third-party software
Commenting
- Place Doxygen comments in header files (before declarations of namespaces/classes/structs/typedefs/macros) and main source files (for documenting tools and tests)
- Use double forward slash for short comments in the code
C++
- Mixing C/C++
- Template C++ is preferrable from the point of view of runtime performance
- Use plain C unless you need flexible data structures or STL/Boost functionality
- Provide main API in C
General
- Don't use non-standard functions, like itoa
- Dynamic loading of shared libraries
Creating libraries with Autotools
-  Prepare two sets of headers:
-  includes (for the include directory): include_HEADERS = ...
-  sources (internal C data structures and C++ template classes): library_SOURCES = library.h ...-  library.his a precompiled header (contains common headers and symbols), which is to be included in most of source files of the library
 
-  
 
-  includes (for the include directory): 
