language-design

    0热度

    1回答

    为什么不允许用户定义转换到基类不可用时的基类(或引用):protected或private? 当有一类D及其public基B,有结合引用B(B&或B&&,可能CV修饰)到类D的对象的隐式规则,所以用户定义转换到B&没有意义。但是,当基类为protected或private时,隐式规则不再适用。那么为什么不允许使用用户定义的转换为B&(或const B&或B&&等)?

    4热度

    2回答

    假设我有一个叫做T的类型。现在让我们说我做了一个T类型的数组,它给了我T[]。在代码,它给出: var myArray = new T[10]; 随着10的长度因此,我们可以看到,这使得包含10项T类型的阵列。这工作如果T是int,string,BinaryWriter或任何标准。但我们假设T是阵列类型,如int[]或string[]。 然后,如果我们想定义的10项T型(int[])的阵列,它

    1热度

    2回答

    ML族语言具有自动压缩功能 - 其中带有两个参数的函数调用被认为一次应用一个参数,f x y = (f x) y - 而其他语言族没有。 这仅仅是一次历史性的事故,还是有技术上的原因呢? 请注意,我是而不是问自动卷曲是净是好还是坏(这是一种主观判断)。我在问,它是否与ML家族语言的其他功能产生协同作用,从而使其更加自然地包含在这些语言中,如果是这样,这些功能是什么以及协同的性质是什么?或者相反,其

    1热度

    1回答

    一种answer到Is Javascript a Functional Programming Language?表示: 函数编程意味着程序被概念化为一功能的评价,而不是控制流程。代码是功能的描述,并没有控制流的固有概念。 我已经了解到,当语言支持第一类功能并且没有控制流程时,它的设计目标必须定义为功能语言。那么为什么Smalltalk是一种功能语言,不支持其他功能特性,如不可变性,代数数据类型,

    3热度

    1回答

    例如,如果我尽量延长int,与int不是类型的真实姓名,这个代码将失败: type int with member this.IsEven = this % 2 = 0 我必须使用System.Int32代替: type System.Int32 with member this.IsEven = this % 2 = 0 //test let i = 20 if i.IsEven

    3热度

    2回答

    在函数式编程中,调用不接受参数的函数的正确名称是什么?例如: // 2 types of execute functions type Function = | UnitFunction of (unit -> unit) | OperandFunction of (unit16 -> unit) let nop() = () let shiftRegist

    0热度

    1回答

    据我所知,大多数现代CPU和平台都是64位的,包括移动处理器。 如果我开发一种新的编程语言,只定位到64位平台会容易得多。 也许我不知道什么,有一个32位解决方案的巨大市场,除了传统的东西?

    0热度

    1回答

    要防呆,它需要: 清晰的语法 可能使用auto 原子的使用,以防止意外的失误像if (!opt) { opt->call(); } 没有运行时断言(编辑 :和例外) 无编译器警告 (可选)无静态检查器警告GS 到目前为止,我已经试过这4个选项(假设具有可变optional<T> opt;): 选项0标准用法 if (opt) { opt->call(); } +清洁代码 +自然控制

    5热度

    2回答

    整数,浮点和长Scala中的最大值为: Int.MaxValue = 2147483647 Float.MaxValue = 3.4028235E38 Long.MaxValue = 9223372036854775807L 来自Scala编译器的作者,Keynote, PNW Scala 2013,幻灯片16 What's Int.MaxValue between friends?: val x

    2热度

    1回答

    我有两个类A和B,两个定义方法m()。虽然这些方法的签名是相同的,但它们是两种完全不同的方法,具有不同的含义。在课堂C中,我想更新m()。而不是写在类C中的新m(),从A和B熔合两个m(),我想分开重写它们。请看下面的代码: class A { public: virtual void m() {cout << "MA" << endl;}}; class B { public: virtual