Skip to content

DVA490-474-Project-Course/project-structure

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

31 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Project Structure

The purpose of this repository is to act as a template and guide for the project structure which this project will adhere to. The project subscribes to the Google C++ Style Guide, available at: https://google.github.io/styleguide/cppguide.html and the repository additionally provides a guiding hand in following this coding standard. It is important to note however that this repository is not exhaustive nor is it kept up to date, always refer to: https://google.github.io/styleguide/cppguide.html for accurate information. The second source for this project, in situations which the first does not cover or is found ambigious, is: https://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines

Descriptions

  • src: contains all source files (.cc) and their respective (private) header files (.h) (these are meant for internal use and are not meant for distribution to the public).
  • include: contains all "public interface" headers, all the headers that are for public (external) consumption. (Will probably not be used).
  • lib: contains all library files. (Will probably not be used).
  • tests: contains all test files (unit tests, integration tests, etc).
  • CMakeLists.txt: used to generate a Makefile (build system-independent).
  • Makefile: used to compile all the code and get executable code (provided by the CMake file).
  • build: all files generated by compilation should be here.
  • docs: folder for documentation files.
  • README.md: (the file you are currently viewing) should provide general project overview, contributors, stakeholders, contact information, dependencies and requirements, sponsors, instructions of how to use/install the project.
  • .gitignore: files/directories that should be ignored are build, Makefile, generated.

Naming rules

  • Please favor always using longer name for clarity rather than using unclear accronyms.
  • File names: all lowercase and use _ for word seperation. C++ files end with .cc and headers with .h. Filenames should be very specific.
  • Directory: all lowercase and use - for word seperation.
  • All types including classes, struct, enums, type aliases, type templates, concept names: start with capital letter and have capital letter at the begining of each word.
  • Variables: all lower case with _ for word seperation.
  • See remaning in .cc and .h files.

Disallowed

The followng libraries must not be used:

  • <ratio>
  • <cfenv> and <fenv.h>
  • <filesystem>
  • <coroutine>
  • Do not use any C++20 modules.

Check https://google.github.io/styleguide/cppguide.html for the libraries from Boost library collection which are allowed.

About

Explains the project structure which should be used throughout the project

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published