1
我正在玩一些D代码。 我有一些功能的阵列上筛选:如何在D lang中声明一个指向模板函数的指针?
auto Case1Filters(R)(R lines) if(isInputRange!R) { ... }
auto Case2Filters(R)(R lines) if(isInputRange!R) { ... }
我想有一个函数指针,并分配给它我的过滤器之一,因此,我宣布一个像这样的变量:
auto function(R)(R lines) filter = null;
我编译时得到这些错误:
conv.d(54): Error: basic type expected, not function
conv.d(54): Error: function declaration without return type. (Note that constructors are always named 'this')
conv.d(54): Error: no identifier for declarator int function(R)(R lines)
conv.d(54): Error: semicolon expected following function declaration
它看起来像编译器认为我声明了一个函数。 我尝试了一个别名,但无济于事:有没有办法做到这一点?
它确实:-)解决这个问题,尽管我期待的是,编译器会已经能够推断返回类型,两者的功能存在并返回一个字符串数组。 – garph0 2014-10-10 05:30:28
但函数可以被赋予第三个不相关的函数,它具有相同的签名但返回类型不同 – 2014-10-10 06:58:08
它可以,但它不会:我的期望是,如果编译器发现两个不匹配的函数,它会窒息(有点像在这种情况下:http://pastebin.com/8Tf5TdPQ)但也许我只是想念一些东西:我对这门语言非常陌生。 – garph0 2014-10-10 08:08:12