DAS  3.0
Das Analysis System
IPlugin.h File Reference
#include <filesystem>
#include <iostream>
#include <memory>
#include <string>
#include <vector>
#include <type_traits>
#include <Options.h>
#include <Variation.h>
+ Include dependency graph for IPlugin.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  IPlugin
 

Namespaces

 Darwin
 
 Darwin::Tools
 

Macros

#define DARWIN_EXPORT_PLUGIN(...)   extern "C" PluginsVec * CreatePlugin () { return plugins<__VA_ARGS__>(); }
 

Typedefs

using PluginsVec = std::vector< std::unique_ptr< Darwin::Tools::IPlugin > >
 

Functions

template<class... Plugins>
PluginsVecplugins ()
 

Variables

template<typename P >
concept Plugin = std::is_base_of_v<IPlugin, P>
 

Macro Definition Documentation

◆ DARWIN_EXPORT_PLUGIN

#define DARWIN_EXPORT_PLUGIN (   ...)    extern "C" PluginsVec * CreatePlugin () { return plugins<__VA_ARGS__>(); }

Typedef Documentation

◆ PluginsVec

using PluginsVec = std::vector<std::unique_ptr<Darwin::Tools::IPlugin> >

Function Documentation

◆ plugins()

PluginsVec* plugins ( )
78 {
79  using namespace std;
80  auto vec = new PluginsVec;
81  auto _ [[maybe_unused]] = (vec->emplace_back(make_unique<Plugins>()), ..., 0);
82  return vec;
83 }
PluginsVec
std::vector< std::unique_ptr< Darwin::Tools::IPlugin > > PluginsVec
Definition: IPlugin.h:75