小编vla*_*don的帖子

使用libcef_static.lib静态编译Chromium-Embedded 3项目

我从CEF Builds网站下载了CEF 3.2272.2029 .

编译好了.

然后根据CEF链接不同的运行时库我试图编译cefsimple示例libcef_static.lib(之前当然在编译指令中编译它).

所以,我更换输入库在Visual Studio:删除libcef.liblibcef_dll_wrapper.lib添加libcef_static.lib.然后出现了许多依赖项(error LNK2001: unresolved external symbol).

我在chromium\src\out\Release\obj子目录中的*.lib文件中搜索符号,添加它们,但是有很多它们可以找到所有依赖项.

因此,我搜索所有*.lib文件,只需将它们添加到链接器输入参数.但我不知道导入libs的顺序.

有没有简单的方法或教程以正确的顺序添加所有必要的依赖项来编译应用程序libcef_static.lib

c++ static-linking chromium-embedded

1
推荐指数
1
解决办法
2207
查看次数

在[0,n)中生成随机

使用<random>C++ 11的标准函数/类/等如何在这些范围内生成随机数:

  • (n,m) - 不包括两端
  • (n,m) - 不包括开头
  • [ n,m) - 不包括结束

特殊情况:

  • [0,n)
  • [0,1)

或者可能有任何文件,如备忘单<random>

c++ random c++11

1
推荐指数
1
解决办法
120
查看次数

重新分配unique_ptr

在此代码Jetbrains CLion抱怨说'unique_ptr::operator=(const unique_ptr &)' is deleted:

std::unique_ptr<std::string> test;
test = std::make_unique<std::string>();
Run Code Online (Sandbox Code Playgroud)

截图

但就此而言:

auto test2 = std::make_unique<std::string>();
Run Code Online (Sandbox Code Playgroud)

没有抱怨.

CLion对吗?可以重新分配unique_ptr吗?

upd它由GCC,CLang和MSVC++编译好,并且必须由任何C++ 14编译器编译.这只是对CLion的好奇心.

c++ unique-ptr c++14 clion

1
推荐指数
1
解决办法
1517
查看次数

如何检查模板类型是否是另一种模板类型?

假设我有一个带int参数的模板类:

template <int Param>
class myclass
{
    // ...
}
Run Code Online (Sandbox Code Playgroud)

例如,我想实现从一个int-parametrized到另一个int参数化的强制转换函数:

template <int Param, class T>
myclass<Param> myclass_cast(const T& other)
{
    // ... some logic
}
Run Code Online (Sandbox Code Playgroud)

我怎样才能静态地确定这T是一个模板化的类myclass<N>?(我可以使用C++ 14).

c++ templates c++14

1
推荐指数
1
解决办法
63
查看次数

从类模板函数返回类ref

给定一个类模板:

template <typename T>
class my_class
{
public:
    my_class& test1() { return *this; }
    // OR
    my_class<T>& test2() { return *this; }
}
Run Code Online (Sandbox Code Playgroud)

返回类型test1test2?之间有什么区别吗?

c++ templates

1
推荐指数
1
解决办法
35
查看次数

如何编译时检测重载模板的重载函数?

假设我们有一个模板:

template <class T>
void VeryImportantFunction(T t) {
    // something
}
Run Code Online (Sandbox Code Playgroud)

在某个地方,它被称为:

// ..
int a = 12345;
VeryImportantFunction(a);
// ..
Run Code Online (Sandbox Code Playgroud)

这是一个非常大的项目,有大量的源代码,偶尔在代码深处的某个地方会出现一个带有重载函数的新标题:

void VeryImportantFunction(int t) {
    // totally another behavior
}
Run Code Online (Sandbox Code Playgroud)

上面的代码片段将调用重载函数,因为它具有更高的优先级.

我们可以以某种方式禁用或以其他方式编译时检测可以重载我们重要模板的函数吗?

c++ c++14

1
推荐指数
1
解决办法
73
查看次数

已删除vs空副本构造函数

已删除的副本构造函数的示例:

class A
{
public:
    // empty copy constructor
    A(const A &) {}
}

class B
{
public:
    // deleted copy constructor
    A(const A&) = delete;
}
Run Code Online (Sandbox Code Playgroud)

他们是否在实践中做同样的事情(禁止复制对象)?为什么delete比这更好{}

c++ copy-constructor c++11

0
推荐指数
1
解决办法
868
查看次数

在C++中为类私有成员保证内存顺序吗?

class my_class_t {

private:
    uint64_t field1;
    uint64_t field2;
};
Run Code Online (Sandbox Code Playgroud)

C++标准是内存的顺序field1field2保证吗?

UPD.答案field2说它是,但&field2可能不等于&field1 + 1.如何确保field2将在之后立即field1

c++ class-members c++14

0
推荐指数
1
解决办法
62
查看次数

为什么会生成不同的汇编代码?哪个更好?

#include <cstdint>

uint64_t hr1(const uint64_t x, const bool a, const int n) noexcept
{
    if (a) {
        return x | (a << n);
    }
    return x;
}

uint64_t hr2(const uint64_t x, const bool a, const int n)
{
    return x | ((a ? 1ull : 0) << n);
}
Run Code Online (Sandbox Code Playgroud)

https://godbolt.org/z/gy_65H

hr1(unsigned long, bool, int):
  mov rax, rdi
  test sil, sil
  jne .L4
  ret
.L4:
  mov ecx, edx
  mov esi, 1
  sal esi, cl
  movsx rsi, esi
  or rax, rsi
  ret …
Run Code Online (Sandbox Code Playgroud)

c++ optimization assembly gcc x86-64

0
推荐指数
1
解决办法
121
查看次数