【发布时间】:2019-02-06 15:42:36
【问题描述】:
作者:这当然做不到。从下面的答案中学习。
在 C++ 中我们如何做到以下几点
// fundamental language construct
type name = value ;
// for example
int x = y;
带有函数指针?
typedef (char)(*FP)(unsigned);
// AFAIK not possible in C++
FP x = y ;
我可以使用 lambda:
FP x = []( unsigned k) -> char { return char(k); }
但是如果没有 lambda,我不知道该怎么做。有什么想法吗?
【问题讨论】:
-
不要使用 typedef :
char(*x)(unsigned) = y;。虽然我不明白为什么这是可取的。这与使用typedef int type; type x = y;并询问如何在一行中实现该定义相同。 -
您真的想在 Francois 解释问题时将 typedef 和变量声明合并到一行中吗?
-
你可以一直坚持
auto x = &the_function;'。 -
函数指针变量的名称出现在返回类型和参数之间它不会像
type name = value;。 -
@dave:函数也一样,你不需要和号。 @emma:为什么这在 C++ 中不可能?这应该可以正常工作(
(char)除外,它应该是typedef中的char)
标签: c++ lambda function-pointers