小编axi*_*mar的帖子

如何以毫秒级分辨率获得Windows系统时间?

如何以毫秒级分辨率获得Windows系统时间?

如果上述情况不可行,那么如何才能获得操作系统的启动时间?我想将此值与timeGetTime()一起使用,以便计算具有毫秒分辨率的系统时间.

先感谢您.

windows time resolution system

20
推荐指数
4
解决办法
4万
查看次数

如何使用指向父级和子级的指针在Haskell中编写对象树?

我遇到了以下问题:我有一个不同类的对象树,其中子类中的操作使父类无效.在命令式语言中,这样做很简单.例如,在Java中:

public class A {
    private List<B> m_children = new LinkedList<B>();
    private boolean m_valid = true;

    public void invalidate() {
        m_valid = false;
    }

    public void addChild(B child) {
        m_children.add(child);
        child.m_parent = this;
    }
}

public class B {
    public A m_parent = null;
    private int m_data = 0;

    public void setData(int data) {
        m_data = 0;
        m_parent.invalidate();
    }
}

public class Main {
    public static void main(String[] args) {
        A a = new A();
        B b = new B(); …
Run Code Online (Sandbox Code Playgroud)

java haskell functional-programming imperative

8
推荐指数
2
解决办法
1742
查看次数

回调如何修改纯函数式编程中的对象状态?

问题出在这里:GUI按钮有一个回调,可以将其状态从选中切换到未选中状态.

在命令式编程语言中,它很容易实现:只需修改Button的状态即可.例如:

void callback(Button btn) {
    btn.setChecked(!btn.getChecked());
}
Run Code Online (Sandbox Code Playgroud)

但在纯函数式编程中,回调不能改变对象的状态.回调唯一能做的就是创建一个具有新状态的新Button对象.例如:

Button callback(Button btn) {
    return new Button(!btn.checked);
}
Run Code Online (Sandbox Code Playgroud)

由上述回调创建的按钮不会是程序GUI的一部分,因为外部函数必须获得回调的结果并将新的按钮值重新集成到GUI.

此外,按钮不应具有上述类型签名的回调,因为按钮回调应该是通用的.即回调的类型签名是:

Object callback(Object object);
Run Code Online (Sandbox Code Playgroud)

我在纯功能代码中可以想到的唯一解决方案是回调接受并返回全局GUI,例如:

GUI callback(GUI gui, Button btn) {
    ...bla bla bla recreate the gui tre ...
}
Run Code Online (Sandbox Code Playgroud)

那么我如何在纯功能代码中执行此操作?我的纯函数回调如何改变我按钮的状态?

functional-programming callback

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

如何从类名中找到Qt元对象实例?

有没有办法在给定类名的情况下找到类的QMetaObject实例?我喜欢做的是从磁盘加载对象,但为了实现这一点,我需要一种方法来使用类的名称检索QMetaObject实例,以便使用QMetaObject创建实例.

reflection qt metadata classname qmetaobject

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

带有模板参数的C++ 0x lambdas?

可能重复:
lambda函数可以模板化吗?

是否可以使用模板参数的c ++ 0x lambda?例如:

template <typename T> [=](const T *x) {}
Run Code Online (Sandbox Code Playgroud)

我想要做的是在类型列表(可变参数列表)上编写静态for循环,并且我想将当前类型作为参数传递给目标仿函数(或lambda)的operator().

lambda templates metaprogramming c++11

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

如何在c ++ 0x中访问lambda的类型?

如何在c ++中访问lambda函数的参数类型?以下不起作用:

template <class T> struct capture_lambda {
};

template <class R, class T> struct capture_lambda<R(T)> {
    static void exec() {
    }
};

template <class T> void test(T t) {
    capture_lambda<T>::exec();
}

int main() {
    test([](int i)->int{ return 0; });
}
Run Code Online (Sandbox Code Playgroud)

上面没有编译,因为编译器选择模板原型而不是专门化.

有没有办法做到这一点?

我实际上想要实现的是:我有一个函数列表,我想选择适当的函数来调用.例:

template <class T, class ...F> void exec(T t, F... f...) {
    //select the appropriate function from 'F' to invoke, based on match with T.
}
Run Code Online (Sandbox Code Playgroud)

例如,我想调用带'int'的函数:

exec(1, [](char c){ printf("Error"); }, [](int i){ printf("Ok"); });
Run Code Online (Sandbox Code Playgroud)

lambda templates variadic c++11

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

为什么在C++ 0x中,编译器会选择特定的一般移动分配?

我有以下代码:

#include <iostream>
using namespace std;

template <class T> class Foo {
public:
    template <class U> void operator = (const U &u) {
        cout << "generic copy assigment\n";
    }

    void operator = (const Foo<T> &f) {
        cout << "specific copy assigment\n";
    }

    template <class U> void operator = (U &&u) {
        cout << "generic move assigment\n";
    }

    void operator = (Foo<T> &&f) {
        cout << "specific move assigment\n";
    }
};

int main() {
    Foo<int> i, j;
    i = j;
    return …
Run Code Online (Sandbox Code Playgroud)

templates variable-assignment c++11

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

擦除位集中各个位的最有效方法是什么?是XOR还是AND/NOT?

我有一个很大的位,我想经常重置其中的各个位.哪种方法更快?

一个) bitset[word_index] ^= 1 << bit_index

要么

b) bitset[word_index] &= ~(1 << bit_index)

该应用程序适用于桌面(如果它起作用).

binary xor bitset

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

如何使用Java方法Class.getResourceAsStream()从jar读取UTF-8文本文件?

我有一个存储在java jar文件中的UTF-8文件.我试图使用getResourceAsStream()方法读取它,但函数返回的输入流读取器使用默认编码,即Windows下的ANSI编码.

如何从jar中读取UTF-8文本文件?

java text jar utf-8 inputstreamreader

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