Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Windows 为什么';是否允许嵌套函数重载?_Windows_D_Dmd - Fatal编程技术网

Windows 为什么';是否允许嵌套函数重载?

Windows 为什么';是否允许嵌套函数重载?,windows,d,dmd,Windows,D,Dmd,我使用嵌套函数分解代码的一小部分,但当我需要扩展函数以支持不同类型的参数时,我得到了一个重新声明编译错误: 声明X已经结束 这是D的设计者(如果是,为什么?)还是因为“使用的太少”而没有实现的这类功能之一 再现错误的代码示例: void foo() { int baa(int a) { return a * 2; } int baa(int a, int b) { return a + b; } } 您将从中找到

我使用嵌套函数分解代码的一小部分,但当我需要扩展函数以支持不同类型的参数时,我得到了一个重新声明编译错误:

声明X已经结束

这是D的设计者(如果是,为什么?)还是因为“使用的太少”而没有实现的这类功能之一

再现错误的代码示例:

void foo()
{
    int baa(int a)
    {
        return a * 2;
    }

    int baa(int a, int b)
    {
        return a + b;
    }
}

您将从中找到所有详细信息并跟踪进度

  • 本地函数在其作用域之外不可见。它们的使用非常有限,因此重载能力没有什么好处

  • 本地范围中不允许向前引用,这意味着任何重载的使用都将受到相当大的限制

  • 克服这一点并非不可能,只是似乎毫无意义

    --沃尔特·布莱特


    您能编辑您的问题并添加代码吗?很可能是因为X是在父函数中定义的,您在嵌套函数中再次声明了它。@L33TS:添加了代码示例。我假设它只是没有为嵌套函数实现,它很可能在某个时候实现,但是我不认为它会很快成为一个重要的实现,它不是在文档中明确地说你可以重载嵌套函数吗?我可能是错的,我不记得在文件里是怎么说的。