Skip to content

Latest commit

 

History

History
71 lines (57 loc) · 2.09 KB

STYLE.md

File metadata and controls

71 lines (57 loc) · 2.09 KB

MeTA Style Guide

Code Formatting

  • We will follow the code formatting options provided by clang-format. Visit the file .clang-format for our settings.

Coding Style

  • Classes, methods, and variables are all snake_case.
  • Template parameters are CamelCase.
  • Nothing is declared in the global namespace.
  • No new/delete; certainly no malloc() or free().
  • Use exceptions instead of error codes.
  • Private members in classes are denoted as member_.
  • Getters and setters should be
type myclass::member() const;
void myclass::member(const type&);
  • Use override (and final) wherever possible.
  • Prefer brace initialization for classes.
  • Use auto almost always.
  • Prefer fixed-width integer types.
  • Use range-based for where possible.
  • Use nullptr, never NULL or 0, etc.
  • Prefer enum class (strongly typed enums).
  • Prefer no pointer over unique_ptr over shared_ptr.
  • Do not use rand() deprecated in C++14.
  • Use #ifndef META_FILE_NAME_H_ for double inclusion guards.
  • #define kept to a minimum, and ALL_CAPS_SNAKE if used.
  • Lines should be no longer than 80 characters

Documentation

  • We will use Doxygen to document our source.
  • MeTA doxygen settings are in meta.doxygen.in.
  • In general, the doxygen commenting style we will use is
/**
 * Description if necessary. Otherwise can just be in the @return
 * @param thing Capital first letter?
 * @return lowercase for return?
 */
  • In header files, include the brief LICENSE notice:
/**
 * ...
 *
 * All files in META are dual-licensed under the MIT and NCSA licenses. For more
 * details, consult the file LICENSE.mit and LICENSE.ncsa in the root of the
 * project.
 */
  • In the file comment, use @file and (preferrably) @author. Of course, multiple authors may be listed.

Source files

  • All source files should be in snake_case
  • Binaries should be hyphenated-file-names