小编lep*_*phe的帖子

make - 在同一个 eval 调用中定义多个变量

我想使用makeeval函数在 a 中定义几个(动态命名的)变量foreach,但我无法eval完成这项工作。

我试过这样的事情:

$(eval \
    var1 = val1 \
    var2 = val2 \
)
Run Code Online (Sandbox Code Playgroud)

它不起作用:var1被定义为val1 var2 = val2var2未定义。这是有道理的,因为我放在\第二行的末尾。但是如果我删除它,eval呼叫将永远不会终止。

我尝试了不同的方法来让这个\只被 看到eval,但没有任何效果。因此问题是:是否可以在同一个eval调用中定义多个变量?

我当然可以打eval两次电话……这是相当好奇。

makefile eval

6
推荐指数
1
解决办法
2022
查看次数

自动更新QLabel文本

我有一个简单的QLabel的Qt应用程序.我想知道是否有可能自动更新其文本,因为QLabel构造函数使用了引用.

QLabel ( const QString & text, QWidget * parent = 0, Qt::WindowFlags f = 0 )
Run Code Online (Sandbox Code Playgroud)

我想要的是一个QLabel,当我更改QString内容时,它的文本会被更新.

我尝试了以下代码(使用Qt 5.0.2):

#include <QtGui>
#include <QtWidgets>

int main(int argc, char **argv)
{
    QApplication app(argc, argv);

    QString str("test");
    QLabel label(str);
    label.setFixedSize(300,70);
    label.show();
    str = "yoh";
    label.repaint();

    return app.exec();
}
Run Code Online (Sandbox Code Playgroud)

但标签仍显示"测试".那么,我做错了什么,或者是否无法自动更新内容?

任何帮助,将不胜感激.顺便说一下,如果我必须继承QLabel,那就没问题了.

c++ qt

4
推荐指数
1
解决办法
1838
查看次数

未定义的参数列表

我有一个C++模板类(在Qt中)应该处理自定义项列表.这个类有一个简单的成员函数,它应该调用模板类型的构造函数并将创建的项添加到列表中.

void CustomList::addElement(void)
{
    T *element = new T();
    // ...
}
Run Code Online (Sandbox Code Playgroud)

但我有一个问题:我希望这个函数能够调用重载的构造函数.

我以为我可以给它应该在构造函数中使用的参数.因此,它将作为参数调用addElement()的参数的"副本".

除了我不知道有多少,只有他们的类型.我能做到的任何简单方法吗?

c++

2
推荐指数
1
解决办法
88
查看次数

Ocaml - 具有多态参数的构造函数

在玩具函数语言的解释器中,我有一个expr类型,每个算术和布尔运算符都有一个构造函数.我想将这种类型分解为:

type expr =
    | Int of int
    | BinaryArith of (int -> int -> int) * expr * expr
    | Comparison of ('a -> 'a -> bool)   * expr * expr
Run Code Online (Sandbox Code Playgroud)

但是,由于'atype参数未定义,因此不会输入.我可以完全参数化'a expr,但单个实例expr将不再提供多态行为.

最终,我的愿望是通过内置的比较操作符(<>,>=,等)的构造函数,所以我想在这里保存完整的多态性.

如果构造函数可以被视为函数,那么使得不可能的一个简单原因是Hindley-Milner类型系统仅支持"prenex"多态性.

我在这里做错了吗?有没有一种实现这种多态性的正确方法?

编辑:虽然接受者答案解决了这个问题,但在其他答案和评论中提出了更好的设计.一定要阅读它们!

polymorphism ocaml types

1
推荐指数
1
解决办法
183
查看次数

标签 统计

c++ ×2

eval ×1

makefile ×1

ocaml ×1

polymorphism ×1

qt ×1

types ×1