Code Monkey home page Code Monkey logo

ironic_library's Introduction

Welcome to Ironic Library!

Contents

  1. Welcome to ironic Library
  2. Contents
  3. Overview
  4. Installation
  5. Platforms
  6. Natvis
  7. Documentation

Overview

Here is a brief but full overview of features of the library:

  • Containers: block.h, map.h, quiet_hash_map.h, quiet_list.h, quiet_map.h, quiet_ring.h, quiet_vector.h, string.h, vector.h
  • Definitions: constants.h, types.h
  • Encoding library: encoding.h
  • Mathematics: fft.h, gauss.h
  • File utilities: file.h, mapping.h
  • Hash algorithms: fnv1a.h, md5.h
  • Networking: ip.h, tcp.h, udp.h
  • Databases: n2st_database.h, s2st_database.h
  • Neuronal networks: neuro.h
  • High-performance computing: parallel.h, matrix.h
  • RAII wrapper: resource.h
  • Source and sink abstractions: sink.h, source.h
  • Cross-platform versions of standard C functions: str.h, print.h

Installation

Installation was designed to be super-easy and super-flexible at the same time.

Easy way: templates and inlines will work right out of the box. To use non-template and non-inline methods, include ironic.cpp to your project.

Flexible way: there is a way to reduce compile time and compile parts Ironic library with different options, but for this a little theory is needed. The code is divided into three groups:

  • Inline - it's implementation shall always be present in each .cpp file.
  • Template - it's implementation shall always be present and used in one or more .cpp files. Note that template class ir::EXAMPLE<int> is also an "usage" and will force the compiler to compile all methods of EXAMPLE<int> class.
  • Non-inline and non-template - it's implementation shell always be present in one .cpp file.

So the modes of compilation and correspondent macros are:

  • #define IR_INCLUDE 'n' will include no implementations. The compiler might complain about inline function is not implemented or equivalent warning.
  • #define IR_INCLUDE 'i' will include only implementation of inline functions.
  • #define IR_INCLUDE 't' will include implementation of inline and template functions (default behavior).
  • #define IR_INCLUDE 'a' will include include all implementations.

Also if you define IR_EXCLUDE_%EXAMPLE% the %EXAMPLE% implementation will be not included. But if you define IR_EXCLUDE, the compiler will include only implementations marked with IR_INLCUDE_%EXAMPLE%.

Platforms

The code is tested for Windows x86 and x64, Linux x64 and Linux ARMv7.

Natvis

For some classes Natvis files are provided. Include these files to your Visual Studio project and enjoy debugging.

Documentation

Doxygen documentation is provided. I would recommend to start with Modules page.

P.S. My code is not dirty, it is alternatively clean.

ironic_library's People

Contributors

kyrylo-sovailo avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.