tjw*_*992 1 c++ generic-programming autoload
Perl允许您使用名为的函数捕获对未定义方法的调用AUTOLOAD.每当你调用一个Perl找不到的AUTOLOAD方法时,它会查找一个方法并调用它.这可以以许多不同的方式使用.有关更多信息,请参阅:AUTOLOAD
最近我进入了C++,很奇怪是否有办法在C++程序中模拟这种功能.我知道C++中的所有东西都需要在编译时定义很多,这使得这个问题变得棘手,但我想必须有一些技术涉及模板或其他一些技巧,至少可以接近.
你能AUTOLOAD在C++中获得最接近Perl的功能是什么?
小智 5
在有意义的Perl定义中,这是不可能的AUTOLOAD.
基本问题是在C++编译时解析方法名称.确实,在某些情况下,在运行时解析方法调用.但接下来是决定调用哪种已经定义的方法.
在C++中不存在具有在源文件中调用的方法名称以及在没有该名称的任何方法的情况下编译代码的基本功能.
当然如果你认为重写Perl是一个合理的答案,那么答案是肯定的,这是可能的.但后来它变成了一个微不足道的问题.