CVB++ 15.0
detail_dyn_loader.hpp
1#pragma once
2
3#include <vector>
4
5#include "../global.hpp"
6#include "../string.hpp"
7
8namespace Cvb
9{
10
11 CVB_BEGIN_INLINE_NS
12
13 namespace Internal
14 {
15
16 class DynLoader final
17 {
18 public:
19 explicit DynLoader(const String &name);
20 DynLoader(const DynLoader &other) = delete;
21 DynLoader &operator=(const DynLoader &other) = delete;
22 DynLoader(DynLoader &&other) = delete;
23 DynLoader &operator=(DynLoader &&other) = delete;
24 ~DynLoader();
25
26 void *LoadSymbol(const String &name) noexcept;
27
28 private:
29 void *handle_ = nullptr;
30
31 DynLoader &operator()(DynLoader &&) = delete;
32 DynLoader &operator()(const DynLoader &) = delete;
33 };
34
35 } // namespace Internal
36
37 CVB_END_INLINE_NS
38
39} // namespace Cvb
40
41#if defined _WIN32
42# include "detail_dyn_loader_windows.hpp"
43#else
44# include "detail_dyn_loader_linux.hpp"
45#endif
Root namespace for the Image Manager interface.
Definition c_bayer_to_rgb.h:17
std::string String
String for wide characters or unicode characters.
Definition string.hpp:49