Python
Java
PHP
IOS
Android
Nodejs
JavaScript
Html5
Windows
Ubuntu
Linux
GCC 无法使用 init-capture 捕获指向模板类型的“this”指针
模板类可以捕获自己的thislambda 中的指针 template
c
templates
inheritance
Lambda
c14
如何测试类型是否是具有非类型参数的模板的特化?
我想知道是否有任何解决方案来查找类型是否是采用非类型参数而不指定每种类型的模板的特化 例如 如果有一个这样的类 template
c
templates
C11
c14
用户定义的不带下划线的文字
根据参考参数可以使用定义文字 CSomeClass operator s const char literal size t size 现在读完该段落后我认为应该也可以定义 CSomeClass operator r const char
c
C11
c14
userdefinedliterals
非静态成员函数的 decltype 格式是否错误?
我不确定是否完全理解 dcl type 4 3 对于一个表达式e 表示的类型decltype e 定义如下 4 3 否则 如果e是不带括号的 id 表达式或不带括号的类成员访问 decltype e 是命名实体的类型e 如果没有这样的实体
c
c14
languagelawyer
C17
decltype
我的 LLVM 和 clang (OSX) 版本是什么?
在 Mac OS 上 如果我运行clang version I get Apple LLVM version 6 0 clang 600 0 34 4 based on LLVM 3 5svn Target x86 64 apple dar
c
MacOS
Clang
LLVM
c14
解压类型列表
假设我有一个只接受类型模板参数的函数 我无法更改它的定义 实现 template lt typename T gt void do it 现在我有一个以通常的方式定义的类型列表 也无法更改它 template lt typename Ts
c
templates
c14
variadictemplates
C17
std::array 的嵌套聚合初始化[重复]
这个问题在这里已经有答案了 我想知道 为什么要声明std arr下面的代码会产生错误 而c arr编译良好 struct S int a b S c arr 1 2 3 4 OK std array
c
Arrays
initialization
c14
aggregateinitialization
decltype(auto) 从 lambda 捕获推导出返回类型
我的编译器对一个小的 C 14 代码片段有不同意见 include
c
C11
Lambda
c14
decltype
像结构成员一样访问 C++14 lambda 捕获
AFAIK C 11 14 不允许在定义 lambda 时就地定义新的返回类型 然而 C 14 lambda 捕获表达式似乎本质上创建了一个带有一个或多个 成员 和一个运算符 的匿名类型 那么 为什么编译器不允许访问捕获的成员outside
c
Lambda
Capture
c14
强制编译器选择以 const T& 作为参数的复制构造函数
我正在编写一个类 其中有模板化构造函数和复制构造函数 每次我想使用非常量对象调用复制构造函数时 都会选择模板化构造函数 如何强制编译器选择复制构造函数 这是 mcve include
c
c14
copyconstructor
使用别名模板时无法将 `std::unique_ptr` 分配给 clang 中的基类
以下代码在 gcc 4 9 3 和 clang 3 7 1 上编译并运行得很好 std unique ptr include
c
Clang
c14
默认在 Sublime Text 3 中将程序编译为 c++ 14
我知道我们可以使用 g 编译器将程序编译为 C 但g 编译器默认为98版本 要将其作为 C 14 运行 我们需要添加 std c 14在终端 Sublime Text 因其轻量级和功能而被认为是竞争性编程中有价值的编辑器 在这些比赛中 时间
c
Compilation
sublimetext3
sublimetext
c14
未命名命名空间内名称的外部链接
根据C 标准第3 5 4条 未命名的命名空间或直接或间接声明的命名空间 在未命名的命名空间内具有内部链接 同时在第 7 3 1 1 段中我们有注释 96 尽管未命名命名空间中的实体可能具有外部链接 它们通过其翻译特有的名称进行有效限定 单元
c
c14
unnamednamespace
使用“void_t”检查类是否具有具有特定签名的方法
此刻 我是使用此方法检查类是否具有具有特定签名的方法 参加后Walter E Brown 的元编程 CppCon2014 演讲 我开始想知道是否void t可以在这种特殊情况下使用 以使代码更清晰 更具可读性 但是我很难思考void t 到
c
templates
void
templatemetaprogramming
c14
性能差异:std::accumulate vs std::inner_product vs Loop
今天 我想分享一些在我尝试实现这个简单操作时令我震惊的事情 我发现执行相同操作的不同方法 通过使用std inner product 实现谓词并使用std accumulate功能 使用 C 风格的循环 我想通过使用 Quick Bench
c
STL
c14
profiling
languagelawyer
从 lambda 中获取捕获的变量?
我想知道是否有办法获取 lambda 捕获的变量的类型 值 使用场景是类似的 int a 5 auto lamb a return a static assert std is same
c
C11
Lambda
c14
constexpr 求值分支/ constexpr 重载
设置 我有一个使用 SIMD 内在函数的函数 并且想在一些 constexpr 函数中使用它 为此 我需要将其设为 constexpr 但是 SIMD 内在函数未标记为 constexpr 编译器的常量求值器无法处理它们 我尝试用具有相同功
c
c14
SIMD
constexpr
intrinsics
枚举类型布局与其基础类型兼容吗?
我正在翻看n3690 即将出台的草案C 14标准 我在部分中看到7 2段落9 如果两个枚举类型具有相同的基础类型 则它们是布局兼容的 但是 我找不到任何说明枚举类型与其基础类型布局兼容的内容 对我来说 考虑到 底层类型 含义的合理语义 这似
c
enums
languagelawyer
c14
C++17 之前的函数交错
看看这个简单的函数调用 f a b 根据标准 调用顺序为a and b 未指定 C 17 有附加规则不允许a and b 交错 据我所知 在C 17之前 没有这样的规则 现在 看看这个简单的代码 int v 0 int fn int t v
c
C11
c14
languagelawyer
C17
在通用 lambda 中使用模板参数
GCC允许使用以下语法作为扩展 a functional object that will add two like type objects auto add
c
Lambda
c14
C20
«
1 ...
13
14
15
16
17
18
19
»