MeVisLab Toolbox Reference
Executable.h
Go to the documentation of this file.
1 // Copyright (c) Fraunhofer MEVIS, Germany. All rights reserved.
2 // **InsertLicense** code
3 
4 #pragma once
5 
6 #include <asio/Processor.h>
7 
8 
9 namespace asio {
10 
11  template<typename... Args>
13 
14  // vtordisp(2) enables the vtordisp members for all vitual bases
15  // with virtual functions to ensure correct performance of
16  // dynamic_cast on a partially constructed object. Otherwise
17  // a warning is generated for each compilation unit.
18 
19 #ifdef _MSC_VER
20 #pragma vtordisp(push, 2)
21 #endif
22  template<typename... Args>
23  class ExecutableType<ParameterPack<Args...>> : public virtual Processor
24  {
25  public:
26 
27  using InputSignature = ParameterPack<Args...>;
28 
29  // todo: deprecate this!
31 
32  virtual void execute(Args... args) = 0;
33  };
34 #ifdef _MSC_VER
35 #pragma vtordisp(pop)
36 #endif
37 
38  template<typename... Args>
40 
41  template<typename... Args>
43 
44  template<typename... Args>
45  using Executable = ConstRefExecutable<Args...>;
46 
48 
49 }
Base class for all asynchronous I/O interfaces.
Definition: Processor.h:31