Loki is a C++ library of designs, containing flexible implementations of common design patterns and idioms.

Overview
Last update: Novmber 16, 2005

Directions:

To use Loki, simply extract the files from the archive, 
give your compiler access to their include path:

- if you have a standard conforming compiler use "loki/include/loki" 
  or "loki/include" for "#include <loki/HeaderFile.h>" usage

- if you have a non-conforming compiler use "loki/include/noncc/loki" 
  or "loki/include/noncc" for "#include <loki/HeaderFile.h>" usage. 
  The noncc files are declared as 'deprecated' and will be removed in
  future. They are also not updated with the new features of Loki 
  and bugfixes (unless YOU do it).


If you use the small object allocator directly or indirectly 
(through the Functor class) you must add src/SmallObj.cpp to your 
project/makefile.

If you use Singletons with longevity you must add 
src/Singleton.cpp to your project/makefile.

If you use OrderedStatic.h with you must add 
src/OrderedSataic.cpp to your project/makefile.

Or use the library generated by make.msvc.bat, make.mingw.bat,
or make.


Compatibility:

Supported Compilers:
Gcc v3.4
Gcc v4.0
Gcc v4.1
Microsoft Visual C++ v7.1
Microsoft Visual C++ v8.0

by special noncc files:
Borland C++ Builder v6.0
Microsoft Visual C++ v6.0
Microsoft Visual C++ v7.0
see also readme.txt files


Mostly Supported:
CodeWarrior 6.0

CodeWarrior has a problem with the Conversion template (see TypeManip.h) 
and, though it compiles it, it doesn't provide correct results. 
Consequently, the DerivedToFront algorithm in Typelist.h does not function. 
This affects the static dispatcher in Multimethods.h. As a fix, you must 
order the types (putting the most derived ones in the front) when providing 
the typelist argument to StaticDispatcher.



More info:

Andrei's page  : http://erdani.org 
Soureforge page: http://sourceforge.net/projects/loki-lib/
You might also like...
C-based/Cached/Core Computer Vision Library, A Modern Computer Vision Library

Build Status Travis CI VM: Linux x64: Raspberry Pi 3: Jetson TX2: Backstory I set to build ccv with a minimalism inspiration. That was back in 2010, o

 Edge ML Library - High-performance Compute Library for On-device Machine Learning Inference
Edge ML Library - High-performance Compute Library for On-device Machine Learning Inference

Edge ML Library (EMLL) offers optimized basic routines like general matrix multiplications (GEMM) and quantizations, to speed up machine learning (ML) inference on ARM-based devices. EMLL supports fp32, fp16 and int8 data types. EMLL accelerates on-device NMT, ASR and OCR engines of Youdao, Inc.

A fast, scalable, high performance Gradient Boosting on Decision Trees library, used for ranking, classification, regression and other machine learning tasks for Python, R, Java, C++. Supports computation on CPU and GPU.
A fast, scalable, high performance Gradient Boosting on Decision Trees library, used for ranking, classification, regression and other machine learning tasks for Python, R, Java, C++. Supports computation on CPU and GPU.

Website | Documentation | Tutorials | Installation | Release Notes CatBoost is a machine learning method based on gradient boosting over decision tree

Radeon Rays is ray intersection acceleration library for hardware and software multiplatforms using CPU and GPU

RadeonRays 4.1 Summary RadeonRays is a ray intersection acceleration library. AMD developed RadeonRays to help developers make the most of GPU and to

Using PLT trampolines to provide a BLAS and LAPACK demuxing library.

libblastrampoline All problems in computer science can be solved by another level of indirection Using PLT trampolines to provide a BLAS and LAPACK de

OpenPose: Real-time multi-person keypoint detection library for body, face, hands, and foot estimation
OpenPose: Real-time multi-person keypoint detection library for body, face, hands, and foot estimation

Build Type Linux MacOS Windows Build Status OpenPose has represented the first real-time multi-person system to jointly detect human body, hand, facia

A lightweight C++ machine learning library for embedded electronics and robotics.

Fido Fido is an lightweight, highly modular C++ machine learning library for embedded electronics and robotics. Fido is especially suited for robotic

ParaMonte: Plain Powerful Parallel Monte Carlo and MCMC Library for Python, MATLAB, Fortran, C++, C.
ParaMonte: Plain Powerful Parallel Monte Carlo and MCMC Library for Python, MATLAB, Fortran, C++, C.

Overview | Installation | Dependencies | Parallelism | Examples | Acknowledgments | License | Authors ParaMonte: Plain Powerful Parallel Monte Carlo L

ThunderSVM: A Fast SVM Library on GPUs and CPUs
ThunderSVM: A Fast SVM Library on GPUs and CPUs

What's new We have recently released ThunderGBM, a fast GBDT and Random Forest library on GPUs. add scikit-learn interface, see here Overview The miss

Comments
  • What does the ATEXIT_FIXED macro mean?

    What does the ATEXIT_FIXED macro mean?

    Hi, I was following the book by Andrei Alexandrescu. While reading about the Phoenix Singleton Pattern, I noticed the recommendation of the macro ATEXIT_FIXED, but I'm not able to find what this macro means, or where it is defined? Is it defined by the compiler?

    Any inputs regarding this would be really helpful,

    Thanks!

    opened by rishitc 0
Implementations of Multiple View Geometry in Computer Vision and some extended algorithms.

MVGPlus Implementations of Multiple View Geometry in Computer Vision and some extended algorithms. Implementations Template-based RANSAC 2D Line estim

Chenyu 6 Apr 7, 2022
the implementations of 'Parzen-Window Based Normalized Mutual Information for Medical Image Registration'

ImageRegistration_NormalisedMutualInformation 代码复现论文《Parzen-Window Based Normalized Mutual Information for Medical Image Registration》 利用归一化互信息对医学图像进行

gtc1072 3 Apr 4, 2022
Flexible Collision Library

FCL -- The Flexible Collision Library Linux / OS X Windows Coverage FCL is a library for performing three types of proximity queries on a pair of geom

null 1k Jan 8, 2023
Lightweight, Portable, Flexible Distributed/Mobile Deep Learning with Dynamic, Mutation-aware Dataflow Dep Scheduler; for Python, R, Julia, Scala, Go, Javascript and more

Apache MXNet (incubating) for Deep Learning Apache MXNet is a deep learning framework designed for both efficiency and flexibility. It allows you to m

The Apache Software Foundation 20.2k Dec 31, 2022
A flexible, high-performance serving system for machine learning models

XGBoost Serving This is a fork of TensorFlow Serving, extended with the support for XGBoost, alphaFM and alphaFM_softmax frameworks. For more informat

iQIYI 128 Nov 18, 2022
BayesOpt: A toolbox for bayesian optimization, experimental design and stochastic bandits.

BayesOpt: A Bayesian optimization library BayesOpt is an efficient implementation of the Bayesian optimization methodology for nonlinear optimization,

Ruben Martinez-Cantin 341 Nov 29, 2022
The dgSPARSE Library (Deep Graph Sparse Library) is a high performance library for sparse kernel acceleration on GPUs based on CUDA.

dgSPARSE Library Introdution The dgSPARSE Library (Deep Graph Sparse Library) is a high performance library for sparse kernel acceleration on GPUs bas

dgSPARSE 59 Dec 5, 2022
The Robotics Library (RL) is a self-contained C++ library for rigid body kinematics and dynamics, motion planning, and control.

Robotics Library The Robotics Library (RL) is a self-contained C++ library for rigid body kinematics and dynamics, motion planning, and control. It co

Robotics Library 656 Jan 1, 2023
Scalable, Portable and Distributed Gradient Boosting (GBDT, GBRT or GBM) Library, for Python, R, Java, Scala, C++ and more. Runs on single machine, Hadoop, Spark, Dask, Flink and DataFlow

eXtreme Gradient Boosting Community | Documentation | Resources | Contributors | Release Notes XGBoost is an optimized distributed gradient boosting l

Distributed (Deep) Machine Learning Community 23.6k Jan 3, 2023
ORB-SLAM3 is the first real-time SLAM library able to perform Visual, Visual-Inertial and Multi-Map SLAM with monocular, stereo and RGB-D cameras, using pin-hole and fisheye lens models.

Just to test for my research, and I add coordinate transformation to evaluate the ORB_SLAM3. Only applied in research, and respect the authors' all work.

B.X.W 5 Jul 11, 2022