Questions tagged «constructor»

5
Scala中什么是更高种类的类型?
您可以在网上找到以下内容: 更高种类的类型==类型构造函数? class AClass[T]{...} // For example, class List[T] 有人说这是一种更高种类的类型,因为它抽象了符合该定义的类型。 较高种类的类型是采用其他类型并构造新类型的类型 这些虽然也称为类型构造函数。(例如,在Scala编程中)。 更高种类的类型==类型构造函数,它将类型构造函数作为类型参数? 在高级类属的论文中,您可以阅读 ...在类型上进行抽象的类型,在类型上进行抽象(“高级类型”)...” 这表明 class XClass[M[T]]{...} // or trait YTrait[N[_]]{...} // e.g. trait Functor[F[_]] 是一种较高的类型。 因此,考虑到这一点,很难区分类型构造函数,更高种类的类型和将类型构造函数作为类型参数的类型构造函数,因此存在上述问题。

3
平凡,标准布局,POD
用外行的话来说,平凡类型,标准布局类型和POD有什么区别? 具体来说,我想确定是否new T与new T()任何模板参数不同T。哪种类型的性状is_trivial,is_standard_layout而且is_pod我应该选择? (作为附带的问题,这些类型特征中的任何一种都可以在没有编译器魔术的情况下实现吗?)

7
区分两个零参数构造函数的惯用方式
我有这样的课: struct event_counts { uint64_t counts[MAX_COUNTERS]; event_counts() : counts{} {} // more stuff }; 通常我想默认(零)初始化counts数组,如图所示。 但是,在通过性能分析确定的选定位置,我想抑制数组初始化,因为我知道数组即将被覆盖,但是编译器不够聪明,无法弄清楚它。 创建这样的“辅助”零参数构造函数的惯用而有效的方法是什么? 当前,我正在使用uninit_tag作为伪参数传递的标记类,如下所示: struct uninit_tag{}; struct event_counts { uint64_t counts[MAX_COUNTERS]; event_counts() : counts{} {} event_counts(uninit_tag) {} // more stuff }; 然后,像event_counts c(uninit_tag{});想抑制构造时一样,调用no-init构造函数。 我对不涉及创建哑类或以某种方式更有效的解决方案持开放态度。

6
通过C ++中的重载构造函数初始化未知类型的变量
来自主要来自python的背景,我在使用C ++类型方面有些挣扎。 我试图通过几个采用不同类型作为参数的重载构造函数之一来初始化类变量。我已经读到使用auto关键字可以用于变量的自动声明,但是在我的情况下,直到选择构造函数后,它才会被初始化。但是,编译器对不初始化并不满意value。 class Token { public: auto value; Token(int ivalue) { value = ivalue; } Token(float fvalue) { value = fvalue; } Token(std::string svalue) { value = svalue; } void printValue() { std::cout << "The token value is: " << value << std::endl; } }; 在python中,它可能看起来像: class Token(): def …
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.