小编Mar*_*utz的帖子

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

比较std :: function <>

有可能以某种方式比较两个std::tr1::function<>对象吗?如果我有一组function<void(int,float)>对象并想要添加和删除事件处理程序,该怎么办?添加是微不足道的,但找到要删除的那个似乎是不可能的.

c++ tr1 c++11

6
推荐指数
2
解决办法
4675
查看次数

析构函数隐藏在此代码中的哪个位置?

我无法理解Foo移动构造函数~ptr在以下示例中尝试调用的原因:

#include <utility>

template <typename T, typename Policy>
class ptr {
    T * m_t;
public:
    ptr() noexcept : m_t(0) {}
    explicit ptr(T *t) noexcept : m_t(t) {}
    ptr(const ptr &other) noexcept : m_t(Policy::clone(other.m_t)) {}
    ptr(ptr &&other) noexcept : m_t(other.m_t) { other.m_t = 0; }
    ~ptr() noexcept { Policy::delete_(m_t); }
    ptr &operator=(const ptr &other) noexcept
    { ptr copy(other); swap(copy); return *this; }
    ptr &operator=(ptr &&other) noexcept
    { std::swap(m_t,other.m_t); return *this; }

    void swap(ptr &other) noexcept { std::swap(m_t, …
Run Code Online (Sandbox Code Playgroud)

c++ rvalue-reference move-constructor move-semantics c++11

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

专门用于模板化密钥的std :: hash

我试图专门为我自己的类型哈希,一个模板化的键.

我是基于cppreference.

我得到编译错误"C++标准不提供此类型的哈希".我想我做错了.编译器甚至可以支持这种模板吗?

namespace std {
    template<typename SType, typename AType, typename PType>
    struct MyKey {
        const SType from;
        const AType consume;
        const PType pop;
    };

    template<typename SType, typename AType, typename PType>
    struct hash<MyKey<SType, AType, PType>> {
        size_t operator ()(MyKey const &key) {
            std::hash<SType>()(key.from);
            std::hash<AType>()(key.consume);
            std::hash<PType>()(key.pop);
        }
    };
}
Run Code Online (Sandbox Code Playgroud)

c++ hash templates c++11 stdhash

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

如何在 cmake 中启用`/std:c++latest`?

我可以设置CMAKE_CXX_STANDARD17get /std:c++17,但不能设置为latest,可以吗?我想我可以暴力破解它

if (MSVC)
    add_compiler_options(/std:c++latest)
endif()
Run Code Online (Sandbox Code Playgroud)

当然,但是有没有一种惯用的方式来获取/std:c++latest,甚至可能与工具链无关?

编辑为什么有人想要这个?与 Clang 和 GCC 不同,MSVC 似乎没有定义/std:c++2a启用 post-C++17 特性。它只是/std:c++latest用于那个。如果我正在使用一组已知的编译器构建代码库,我知道我可以使用哪些 C++20 功能,但我需要告诉构建系统启用每个编译器的所有功能。

c++ cmake visual-c++

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

在Qt拖放中使用QMimeData传递数据

我试图了解在Qt中使用拖放时数据是如何传递的.根据我从我一直在研究的示例中理解的内容,您首先通过覆盖继承的方法将窗口小部件定义为可拖动QWidget.

在重写方法的实现中,我一直在查看的例子实例化一个指向QMimeData对象的指针,并通过调用setText(const QString &text)和存储信息setData(const QByteArray &data).它们QByteArray<<操作员一起在对象中存储信息:

QByteArray itemData;
QDataStream dataStream(&itemData, QIODevice::WriteOnly);

dataStream << labelText << QPoint(ev->pos() - rect().topLeft());

QMimeData *mimeData = new QMimeData;
mimeData->setData("application/x-fridgemagnet", itemData);
mimeData->setText(labelText);
Run Code Online (Sandbox Code Playgroud)

dropEvent()接受drop的小部件中的方法定义中,这两个变量都是由>>运算符检索的:

QString text;
QPoint offset;
dataStream >> text >> offset;
Run Code Online (Sandbox Code Playgroud)

在该setData()方法中,application/x-fridgemagnet作为MIME类型参数传递.那是在其他地方定义的还是它可以弥补的东西?

如何在对象内存储和检索自定义QMimeData对象?我试过这个:

dataStream << labelText << QPoint(ev->pos() - rect().topLeft()) << myObject;
Run Code Online (Sandbox Code Playgroud)

并试图像这样检索它:

myClass myObject;
dataStream >> text >> offset >> myObject;
Run Code Online (Sandbox Code Playgroud)

但它没有用,说"无法匹配'运营商>>".我应该怎么做的提示?

c++ qt drag-and-drop mime-types

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

C++ Regex匹配没有标点符号的单词

我搜索过,找不到任何东西.为了不浪费我的时间来回答其他人明显的答案,我在这里问.目前为止只有一个有用的网站是这个网站:http://softwareramblings.com/2008/07/regular-expressions-in-c.html但样本过于简单.我正在使用Visual Studio 2010.

#include <regex>

[...]

string seq = "Some words. And... some punctuation.";
regex rgx("\w");

smatch result;
regex_search(seq, result, rgx);

for(size_t i=0; i<result.size(); ++i){
    cout << result[i] << endl;
}
Run Code Online (Sandbox Code Playgroud)

预期产出将是:

一些
单词

一些
标点符号

谢谢.

c++ regex tr1

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

使用正则表达式在Notepad ++中查找和替换

我有一个数字列表.每行一个数字.我想用特定的模式替换所有数字.例如,我的文件看起来像这样:

1
2
3
4
Run Code Online (Sandbox Code Playgroud)

我想替换它,以便在Notepad ++中使用正则表达式看起来如下所示:

[1],
[2],
[3],
....
Run Code Online (Sandbox Code Playgroud)

regex notepad++

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

在svn和git中提交时,如何在$ EDITOR中添加命令行提示符

是否有可能有一个小的shell脚本来替换$EDTIORfor git和svn?

因此,当一个不熟悉vi或emacs的人进行提交并忘记添加 -m "fixed the foo bug" 参数时,它不会打开编辑器,他们不知道如何退出,而是只会提示

请证明这个提交包含的内容是一句话:

并且用户只是写了一个小句子,点击进入,然后关闭它.

svn git prompt editor pre-commit

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

Qt4.8(或Qt 5)如何进行绘画?

它可能与“我的程序代码如何通过各种Qt5绘画系统转换到屏幕设备上的GUI的方式一样”?

由于Qt支持各种平台,因此我的问题仅基于Linux和嵌入式Linux(因为它们都是开源os,并且在绘画方面也有所不同:-))?

我的问题集中在以下主题上:

  1. QWidgetQGraphicsItemRectangle(在QML中)绘画系统不同?还有,这是什么?

  2. 哪个不使用QPainterQPaintEngine?类?

  3. Qt4.8(或Qt5)中实现了多少个绘画引擎?例如,QRasterPaintEngine

  4. 如果平台是Linux(支持X11),Qt会使用X11 API绘画吗?那么,X11的Paint Engine和之间有什么区别QRasterPaintEngine?如果平台还支持OpenGL,那么Qt将使用X11 API还是OpenGL API?

  5. 如果GPU支持OpenGL,则Qt可以使用OpenGL;否则,Qt可以使用OpenGL。但是如果GPU不支持OpenGL,那么Qt如何处理这种情况?

qt paint qt5

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