CppCommon icon indicating copy to clipboard operation
CppCommon copied to clipboard

Cross-platform C++ common library for Linux, OSX, Windows, Cygwin, MinGW

CppCommon

Linux (clang) Linux (gcc)
MacOS
Windows (Cygwin) Windows (MSYS2) Windows (MinGW) Windows (Visual Studio)

C++ Common Library contains reusable components and patterns for error and exceptions handling, filesystem manipulations, math, string format and encoding, shared memory, threading, time management and others.

CppCommon API reference

Contents

  • Features
  • Requirements
  • How to build?

Features

  • Cross platform (Linux, MacOS, Windows)
  • Exception handling model
  • Filesystem manipulations
  • String encoding converters
  • String format using {fmt} library
  • CPU, memory, environment
  • Shared memory
  • Stack trace
  • UUID generator
  • Thread extensions (priority, affinity, yield)
  • Thread barrier, latch
  • Synchronization primitives
  • Named synchronization primitives
  • Producer/consumer queues
  • Time management
  • Utilities

Requirements

Optional:

How to build?

Linux: install required packages

sudo apt-get install -y binutils-dev uuid-dev

Install gil (git links) tool

pip3 install gil

Setup repository

git clone https://github.com/chronoxor/CppCommon.git
cd CppCommon
gil update

Linux

cd build
./unix.sh

MacOS

cd build
./unix.sh

Windows (Cygwin)

cd build
unix.bat

Windows (MSYS2)

cd build
unix.bat

Windows (MinGW)

cd build
mingw.bat

Windows (Visual Studio)

cd build
vs.bat