作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在这里,我实现了一个模板化函数和一个模板化 Lambda。我已经开始探索 C++14 功能,但不确定以下 lambda 有什么问题。有什么建议吗?
#include <iostream>
#include <random>
#include <algorithm>
#include <functional>
template<class T = std::mt19937, std::size_t N = T::state_size>
auto MersenneEngine() {
return T(N);
}
template<class T = std::mt19937, std::size_t N = T::state_size>
auto MersenneEngineLambda = []() {
return T(N);
};
int main() {
// your code goes here
std::cout << MersenneEngine<std::mt19937>() << std::endl;
std::cout << MersenneEngineLambda<std::mt19937>() << std::endl; // Compilation error : error: use of 'MersenneEngineLambda<std::mersenne_twister_engine...before deduction of 'auto'
return 0;
}
这是完整的代码http://ideone.com/lveJRN
最佳答案
代码没问题。
您发现您的 GCC (5.1) 版本中存在错误。这并不奇怪,因为变量模板在 GCC 5 中是全新的。
根据经验,它在 GCC 6.1.1 中或之前已修复。
关于c++ - 当作为 Lambda 实现时,auto 的扣除不起作用。错误 : before deduction of 'auto' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38946598/
我是一名优秀的程序员,十分优秀!