小编use*_*761的帖子

typeid/type_info奇怪的行为

为什么以下示例:

#include <iostream>
#include <typeinfo>

template<typename T>
void fun(const T& param)
{
        std::cout << "T = " << typeid(T).name() << std::endl;
        std::cout << "param = " << typeid(param).name() << std::endl;
        std::cout << (typeid(T)==typeid(param)) << std::endl;
}

int main(int, char**)
{
        fun(1);
}
Run Code Online (Sandbox Code Playgroud)

给出以下输出:

T is i
param is i
1
Run Code Online (Sandbox Code Playgroud)

我知道这种type_info::name()行为取决于实现.无论如何我希望operator==返回false(因为param是const引用而不是整数).

c++ typeid

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

我可以在基类中重载纯虚方法吗?

在下面的例子中,我有一个带有纯虚方法(又名FUN1)和普通方法(又名FUN2)的抽象类.

#include <iostream>

class A
{
public:
        virtual void fun(int i) = 0; // FUN1
        void fun() { this->fun(123); } // FUN2
};

class B : public A
{
public:
        virtual void fun(int i) { std::cerr << i << std::endl; }
};

int main(int,char**)
{
        B b;
        b.fun();
}
Run Code Online (Sandbox Code Playgroud)

为什么我不能在派生类上调用FUN2?g ++给出错误:

main.cpp:19:8:错误:没有匹配函数来调用'B :: fun()'


编辑:请注意,纯虚函数的重载问题是不同的.我不想覆盖方法.

c++ inheritance interface

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

QTextDocument 默认样式表

我尝试使用 QTextDocument 在 QImage 上绘制文本。如何设置默认(“body”)样式?

目前我使用一个<p>标签,像这样

QPainter painter(_image);
QTextDocument doc;
doc.setDefaultStyleSheet("p { color : green; background-color : black; }");
doc.setHtml("<p>test 123</p>");
doc.drawContents(&painter,_image->rect());
Run Code Online (Sandbox Code Playgroud)

我想去掉<p>标签

doc.setHtml("test 123");
Run Code Online (Sandbox Code Playgroud)

我试过了

doc.setDefaultStyleSheet("body { color : green; background-color : black; }");
doc.setDefaultStyleSheet("{ color : green; background-color : black; }");
doc.setDefaultStyleSheet("color : green; background-color : black; ");
doc.setDefaultStyleSheet("QImage { color : green; background-color : black; }");
Run Code Online (Sandbox Code Playgroud)

编辑:

我也试过

doc.setDefaultStyleSheet("* { color : green; background-color : black; }");
Run Code Online (Sandbox Code Playgroud)

css qt stylesheet

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

构建后清理boost临时文件

在boost库构建之后,主目录是~9GB.如何删除临时/中间文件(并保留已编译的库文件)?

我使用Windows作为我的项目.

c++ boost

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

如何处理来自 Python imaplib 的 UTF8 字符串

Python imaplib 有时会返回如下所示的字符串:

=?utf-8?Q?Repertuar_wydarze=C5=84_z_woj._Dolno=C5=9Bl=C4=85skie?=
Run Code Online (Sandbox Code Playgroud)

这个符号的名称是什么?

如何将其解码(或者应该说编码?)为 UTF8?

python utf-8 imaplib

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

Qt OpenGL动态与桌面

Qt版本与动态和桌面OpenGL有什么区别?http://tver-soft.org/qt64

opengl qt

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

在 django-rest-auth 中拥有“注销”端点有什么意义?

这篇文章中,我读到基于令牌的身份验证是无状态的,这意味着服务器不保留登录用户的记录。

另一方面,在django-rest-auth API 文档中提到了一个注销端点。它是做什么用的?

authentication django rest django-rest-auth

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

Nodejs代表的是Reactor还是Proactor设计模式?

网上有很多文章将 NodeJS 演示为反应器模式的示例。这不是相当积极主动吗?

据我了解,两者的区别是:

  1. reactor 在单个线程中处理事件(同步)
  2. 前摄器处理事件是带有完成回调的多线程(异步)

例如在这篇文章中:

Reactor 模式是 Node.js 中非阻塞 I/O 操作的一种思想。该模式提供了一个与每个 I/O 操作关联的处理程序(对于 Node.js,是一个回调函数)。当生成 I/O 请求时,会将其提交给解复用器。

这实际上不是proctor的定义吗?

architecture design-patterns reactor node.js

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

协程可以返回 std::future 吗?(无法找到该协程的承诺类型)

我尝试编译 CppCon 演示文稿中的协程示例https://youtu.be/ZTqHjjm86Bw?t=560

\n

在此输入图像描述

\n

不幸的是编译失败:

\n
$ g++-10 -pedantic -Wall -std=c++20 -fcoroutines main.cpp \nmain.cpp: In function \xe2\x80\x98std::future<int> compute_value()\xe2\x80\x99:\nmain.cpp:7:16: error: unable to find the promise type for this coroutine\n    7 |   int result = co_await std::async([]\n      |                ^~~~~~~~\n
Run Code Online (Sandbox Code Playgroud)\n

演讲者一开始就警告说,他将要演讲的只是一个提案。所以这让我很困惑:可以吗?std::future从协程返回,还是我只是尝试错误地调用它?

\n

完整代码:

\n
$ g++-10 -pedantic -Wall -std=c++20 -fcoroutines main.cpp \nmain.cpp: In function \xe2\x80\x98std::future<int> compute_value()\xe2\x80\x99:\nmain.cpp:7:16: error: unable to find the promise type for this coroutine\n    7 |   int result = co_await std::async([]\n      |                ^~~~~~~~\n
Run Code Online (Sandbox Code Playgroud)\n

c++ future coroutine c++20 c++-coroutine

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

如何设置 PDO 映射?

基本了解CANopen网络中PDO映射的概念。它允许以小标题广播实时数据。

它是如何制作的?如何设置我的设备以了解如何发送/接收 PDO?我需要某种软件吗?

industrial can-bus canopen

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