Skip to content

Commit 4df0db9

Browse files
restore DynamicLibraryFunctionPointer to its former glory
1 parent 750decc commit 4df0db9

File tree

1 file changed

+10
-16
lines changed

1 file changed

+10
-16
lines changed

include/nbl/system/DynamicLibraryFunctionPointer.h

Lines changed: 10 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,34 +1,32 @@
1-
// Copyright (C) 2018-2020 - DevSH Graphics Programming Sp. z O.O.
1+
// Copyright (C) 2018-2022 - DevSH Graphics Programming Sp. z O.O.
22
// This file is part of the "Nabla Engine".
33
// For conditions of distribution and use, see copyright notice in nabla.h
4-
5-
#if 0 // kill it
6-
74
#ifndef __NBL_SYSTEM_DYNAMIC_LIBRARY_FUNCTION_POINTER_H_INCLUDED__
85
#define __NBL_SYSTEM_DYNAMIC_LIBRARY_FUNCTION_POINTER_H_INCLUDED__
96

107

118
#include "nbl/core/declarations.h"
9+
#include "nbl/core/string/StringLiteral.h"
1210

1311
#include <functional>
1412

1513

1614
namespace nbl::system
1715
{
1816

19-
template<typename FuncT, class UniqueStringType>
17+
template<typename FuncT, core::StringLiteral name>
2018
class NBL_API DynamicLibraryFunctionPointer
2119
{
2220
public:
2321
using result_type = typename std::function<FuncT>::result_type;
2422

25-
DynamicLibraryFunctionPointer() : p(nullptr) {}
26-
DynamicLibraryFunctionPointer(DynamicLibraryFunctionPointer&& other) : DynamicLibraryFunctionPointer()
23+
inline DynamicLibraryFunctionPointer() : p(nullptr) {}
24+
inline DynamicLibraryFunctionPointer(DynamicLibraryFunctionPointer&& other) : DynamicLibraryFunctionPointer()
2725
{
2826
operator=(std::move(other));
2927
}
30-
DynamicLibraryFunctionPointer(void* ptr) : p(reinterpret_cast<FuncT*>(ptr)) {}
31-
~DynamicLibraryFunctionPointer()
28+
inline DynamicLibraryFunctionPointer(void* ptr) : p(reinterpret_cast<FuncT*>(ptr)) {}
29+
inline ~DynamicLibraryFunctionPointer()
3230
{
3331
p = nullptr;
3432
}
@@ -47,7 +45,7 @@ class NBL_API DynamicLibraryFunctionPointer
4745
if (p)
4846
return p(std::forward<T>(args)...);
4947
assert(error);
50-
return error(name);
48+
return error(name.value);
5149
}*/
5250

5351
template<typename... T>
@@ -56,7 +54,7 @@ class NBL_API DynamicLibraryFunctionPointer
5654
if (p)
5755
return p(std::forward<T>(args)...);
5856
else if (error)
59-
error(name);
57+
error(name.value);
6058
if constexpr (!std::is_void_v<result_type>)
6159
{
6260
return result_type{};
@@ -83,14 +81,10 @@ class NBL_API DynamicLibraryFunctionPointer
8381

8482
protected:
8583
FuncT* p;
86-
87-
const char* name = UniqueStringType::value;
8884
};
8985

9086
}
9187

9288
#define NBL_SYSTEM_DECLARE_DYNLIB_FUNCPTR(FUNC_NAME) nbl::system::DynamicLibraryFunctionPointer<decltype(FUNC_NAME),NBL_CORE_UNIQUE_STRING_LITERAL_TYPE(#FUNC_NAME)> p ## FUNC_NAME;
9389

94-
#endif
95-
96-
#endif
90+
#endif

0 commit comments

Comments
 (0)