summaryrefslogtreecommitdiffhomepage
path: root/README.md
blob: 6d495db4d593e5fa1b8f8dddfe8a656284da2034 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
# Open C++ Library

[![License: BSL](https://img.shields.io/badge/license-BSL-blue.svg)](LICENSE)

## Brief:

A C++ library with additional modules for your C++ SDLC.

## Requirements:

- Boost C++ libraries (https://www.boost.org/)
- Clang (https://clang.llvm.org/)
- Git (https://git-scm.com/)

## Structure:

- `core`: Core utilities and fundamental abstractions used across OCL.
- `except`: Exception classes and error-handling helpers.
- `fix`: FIX protocol utilities and helpers for Financial Information eXchange integration.
- `io`: Input/output utilities, stream helpers, and file handling.
- `logic`: Logic facilities, macros, and helpers for programs.
- `memory`: Memory management utilities, allocators, and smart-pointer helpers.
- `net`: Networking utilities and lightweight socket helpers.
- `simd`: SIMD-optimized algorithms and low-level performance helpers.
- `tests`: Unit and integration tests that validate OCL components.
- `utility`: General-purpose helper functions and small algorithms.

## Examples:

### Logic Module (Option container)

```cpp
#include <logic/opt.hpp>

int main(int argc, char** argv)
{
  auto opt = ocl::opt(ocl::eval_eq(50, 50)).expect("ocl::eval_eq, does not match!");
  opt = ocl::opt(ocl::eval_eq(50, 40));
  opt.expect("this time it doesn't.");

  return EXIT_SUCCESS;
}
```

##### (c) 2025 Amlal El Mahrouss, licensed under the Boost Software License.