小编A-n*_*n-y的帖子

什么是正确的 LLVM 标头保护样式?

在 clang tidy 中,检查[llvm-header-guard]查找 LLVM 样式的头保护,但我找不到任何正确的 LLVM 头保护样式的示例,特别是给定名称的结构,编码标准页面没有提到任何东西。

c++ include-guards llvm llvm-clang clang-tidy

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

可以使用默认参数复制包含lambda的std :: function吗?

有没有办法从lambda恢复类型信息,默认参数存储在std :: function中,该类型的参数中没有这些参数?

std::function<void()> f1 = [](int i = 0){};
std::function<void(int)> f2 = [](int i = 0){};
std::function<void(int)> f3 = f1;  // error
std::function<void()> f4 = f2;     // error
Run Code Online (Sandbox Code Playgroud)

查看std :: function的复制构造函数,其他函数类型没有部分模板特化,所以我想这个信息会丢失,只是你不能将一种类型的函数赋值给一个函数另一种类型,即使在内部它们都可以调用该函数.它是否正确?是否有任何解决方法可以实现这一目标?我正在看std :: function :: target,但没有运气,我不是函数类型和指针的专家.

另外,f1(或lambda)如何绑定默认参数?

c++ lambda function-pointers default-parameters std-function

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

具有多字基本类型的“auto”变量声明会导致错误

是否可以使用 auto 关键字和由两个或多个单词组成的类型名称来声明变量?

如果没有,为什么不呢?

例如

auto foo = unsigned int{0};

给出以下编译器输出

铛:

error: expected '(' for function-style cast or type construction

海湾合作委员会:

error: expected primary-expression before 'unsigned'

c++ auto c++11

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