假设我有一个类似
的模板类template<class T> class Foo{
T a;
auto baz(){
return 4.2f;
}
};
int main(){
Foo<int> bar;
return 0;
}
有没有一种工具可以将这段代码转换为实际的类,并提供输出为:
class Foo{
int a;
float baz(){
return 4.2f;
}
};
// main goes below this line
使用推论类型替换所有auto
和模板参数的工具。
我当时正在使用模板,并且好奇是否有这样的工具,因为它可能对学习类型推导有好处?
答案 0 :(得分:5)
我的意思是,编译器会这样做。扩展为callback
的类型实际上应称为getHeight()
,如果在调试器中逐步执行已编译的程序,则会看到该类型。
我不知道有什么工具可以进行文本扩展,而且我可以肯定我不会喜欢任何非平凡程序的输出,特别是使用标准库容器的程序。
编辑-好的,这仍然是题外话,但是,由于我已经回答了,所以这似乎很重要:
像这样(link)扩展原始代码
let barHeight;
componentDidMount() {
barHeight = StatusBarManager.getHeight(statusBarHeight => {
console.log({ mounted: statusBarHeight });
barHeight = statusBarHeight;
});
}
您会发现,它从未发出您想要的Foo
,只是因为它从未真正使用过。