This example shows how the siplasplas-reflection-dynamic API can be used to export library API types and functions, and be loaded at runtime after loading the library
#include <siplasplas/reflection/dynamic/runtimeloader.hpp>
#include <siplasplas/reflection/dynamic/enum.hpp>
#include <iostream>
int main()
{
    
    
    Runtime& runtime = loader.runtime();
     
    
    
    
    
    
    
    plugin("run")();
    std::cout << "Plugin::ALU::add(20, 22): " << alu("add")(20, 22).get<int>() << std::endl;
    for(std::size_t i = 0; i < operationEnum.
count(); ++i)
     {
        std::cout << operationEnum.
fullName() << 
"::" << operationEnum.
name(i) << 
": " << operationEnum.
value(i) << std::endl;
    }
}