C++ codebase structure and rules
project_name/
├── src/
│ ├── main.cpp
│ ├── module1.cpp
│ ├── module2.cpp
│ └── ...
├── include/
│ ├── module1.h
│ ├── module2.h
│ └── ...
├── bin/ (or build/)
│ └── executable_name (compiled binary)
├── lib/ (optional, for external libraries)
│ ├── library1/
│ └── library2/
├── data/ (optional, for data files)
├── tests/ (optional, for unit tests)
├── docs/ (optional, for documentation)
├── CMakeLists.txt (if using CMake)
├── README.md (project documentation)
└── .gitignore (ignore build artifacts, IDE files, etc.)