Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/6.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
D 类模板中的纯构造函数_D - Fatal编程技术网

D 类模板中的纯构造函数

D 类模板中的纯构造函数,d,D,我有一些有效的代码,我不知道为什么。我将类实例化为不可变变量。类中没有不可变的构造函数,也没有标记为纯的,但它仍然可以工作 我还了解到,pure构造函数可以广泛用于可变、不可变、常量和共享实例 我能在D网站上找到的唯一一件事是在函数模板中推断纯度。既然我的类是参数化的(或类模板),那么编译器是否应该推断所有方法的纯度,包括构造函数 代码如下: public class Data(size_t numInputs, size_t numTargets) { ... public this(

我有一些有效的代码,我不知道为什么。我将类实例化为不可变变量。类中没有
不可变的
构造函数,也没有标记为
纯的
,但它仍然可以工作

我还了解到,
pure
构造函数可以广泛用于可变、不可变、常量和共享实例

我能在D网站上找到的唯一一件事是在函数模板中推断纯度。既然我的类是参数化的(或类模板),那么编译器是否应该推断所有方法的纯度,包括构造函数

代码如下:

public class Data(size_t numInputs, size_t numTargets)
{
  ...
  public this(in double[][] data, in bool[] filter, in bool doNorm = true)
  {
    ...
  }
}
我能在D网站上找到的唯一一件事是在函数模板中推断纯度。既然我的类是参数化的(或类模板),那么编译器是否应该推断所有方法的纯度,包括构造函数

对。由于类是一个模板,所有方法也都是模板(考虑它们必须是模板,因为隐藏的
参数的类型来自模板)。因此,他们的身体必须在源头上可用。推断属性的两个要求是body source可用,以及它们的模板参数(函数也不能尝试调用或检查自身,但您也不能这样做),因此可以将其推断为纯属性