如果我在运行时使用 unix 上的 dlopen() 或 Windows 上的 LoadLibrary() 加载 dll 或 so 库,我是否需要确保库中的符号与程序中的符号名称不同?另外是否可以加载定义相同函数的多个共享库?
编辑:我特别询问运行时动态链接。
我正在尝试使用std :: enable_if从类模板中删除成员函数。当我禁用一个功能时,我得到了错误:
C2938: 'std::enable_if_t<false,int64_t>' : Failed to specialize alias template
Run Code Online (Sandbox Code Playgroud)
我的代码如下所示:
template<int NUM_COMPONENTS>
struct Foo
{
typename std::enable_if_t<(NUM_COMPONENTS == 2), void> set(int64 x, int64 y)
{
// some code here
}
}
Run Code Online (Sandbox Code Playgroud)
我是否正在执行该标准不允许的操作,如果可以的话,还有另一种方法吗?还是这是一个错误?我正在将MSVC与QtCreator一起使用。