相关疑难解决方法(0)

在C++ 11中用"auto"推导出lambda的类型是什么?

我有一种感觉,lambda的类型是一个函数指针.当我进行以下测试时,我发现它是错误的(演示).

#define LAMBDA [] (int i) -> long { return 0; }
int main ()
{
  long (*pFptr)(int) = LAMBDA;  // ok
  auto pAuto = LAMBDA;  // ok
  assert(typeid(pFptr) == typeid(pAuto));  // assertion fails !
}
Run Code Online (Sandbox Code Playgroud)

上面的代码是否缺少任何一点?如果不是那么,typeofauto关键字推导出的lambda表达式是什么?

c++ lambda typeof auto c++11

129
推荐指数
4
解决办法
3万
查看次数

功能模板重载

任何人都可以总结一下函数模板重载的想法吗?重要的是,模板参数或功能参数?返回值怎么样?

例如,给定一个功能模板

template<typename X, typename Y> void func(X x, Y y) {}
Run Code Online (Sandbox Code Playgroud)

什么是重载的功能模板?

1) template<typename X> void func(X x, int y) {}
2) template<typename X, typename Y> X func(X x, Y y) {}
3) template<class X, class Y, class Z> void func(X x, Y y, Z z) {}
Run Code Online (Sandbox Code Playgroud)

c++ templates overloading

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

标签 统计

c++ ×2

auto ×1

c++11 ×1

lambda ×1

overloading ×1

templates ×1

typeof ×1