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;
}
}