小编jto*_*ker的帖子

我可以使用纯虚拟功能覆盖虚拟功能吗?

我有三个类:B,DG. D是一个B,G是一个D.这两个BD是抽象的. B来自第三方.

B有一个非纯的虚方法G需要实现(成为a D).将虚拟函数重新定义/覆盖为纯虚拟,我可以并且是一种好习惯吗?

例:

class B // from a third party
{
public:
   virtual void foo();
};

class D : public B
{
public:
   void foo() override = 0; // allowed by gcc 4.8.2
   virtual void bar() = 0;
};

class G : public D
{
public:
   // forgot to reimplement foo
   void bar() …
Run Code Online (Sandbox Code Playgroud)

c++ virtual pure-virtual language-lawyer c++11

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

为什么一个表达式不变,而另一个表达式不变?

为什么Visual Studio 2013编译器拒绝第一个静态断言(错误C2057),而不是第二个?

#include <limits>

typedef int Frequency;

const Frequency minHz{ 0 };
const Frequency maxHz{ std::numeric_limits<Frequency>::max() };
const Frequency invalidHz{ -1 };
static_assert(minHz < maxHz, "minHz must be less than maxHz");                // C2057
static_assert(invalidHz < minHz || invalidHz > maxHz, "invalidHz is valid");  // OK
Run Code Online (Sandbox Code Playgroud)

c++ static-assert c++11 visual-studio-2013

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

如何防止短 lambda 被分成两行?

我有一个关于 C++ lambda 的 clang 格式问题。升级到 Clang-Format 15.0.1 后,我注意到短的但不是在线 lambda 的新行为。下面我将它们称为“双行 lambda”。例子:

单行 lambda

// good/unchanged
auto shortLambda= []() { doSomething(); };
Run Code Online (Sandbox Code Playgroud)

两行 lambda:

// unwanted/new behavior
const auto mediumLambda = [some, args, here](More arguments)
{ return doSomething(some, args, here, arguments); };
Run Code Online (Sandbox Code Playgroud)

多线 Lambda:

// good/unchanged
const auto longLambda= [some, args, here](Are here)
{
   auto result =doSomething(some, args, here, arguments); 
   return result;
};
Run Code Online (Sandbox Code Playgroud)

两行 lambda 的期望行为:

// desired
const auto mediumLambda = [some, args, here](More arguments)
{
   return doSomething(some, args, …
Run Code Online (Sandbox Code Playgroud)

c++ lambda clang-format

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

如何在 Qt 5.12 中使用 /std:c++latest

在 Qt 5.12 之前,我们的文件QMAKE_CXXFLAGS += /std:c++latest中有 和.pri,但在 Qt 5.12 之后,两者c++latest c++14在生成的项目文件中设置为 Visual Studio 命令行参数.vcxproj

我可以通过 访问 C++17 config += c++17,但随后出现此错误:Command line warning D9025: overriding '/std:c++latest' with '/std:c++17'

使用 qmake 创建的项目文件时,如何在 Visual Studio 2019 中使用最新的 C++ 标准? 换句话说,如何阻止 qmake 自动插入自己的-std选项?

编辑:我对自动应用 c++14 的看法是错误的。另一个 .pri 文件已设置它。

qt qmake c++20 visual-studio-2019 qt5.12

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

错误 C1071:由于 #ifdeffed 原始字符串文字中的 /*,在注释中发现意外的文件结尾

为什么此代码会出现“错误 C1071:在注释中发现意外的文件结尾”错误?

#include <iostream>

int main()
{
#if 0
   std::string script = R"(#!/bin/sh
ls /mnt/*.txt
)";
#endif
}
Run Code Online (Sandbox Code Playgroud)

我使用的是 Visual Studio 16.7.5。

c++ visual-studio

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

当操作系统关闭抗锯齿功能时,如何绘制抗锯齿的 QFont?

当我使用 aQPainter到adrawTextQPixmap使用 aQFont时,当操作系统启用了抗锯齿功能时,它看起来是抗锯齿的,但当操作系统没有启用抗锯齿功能时,即使我显式设置了画家的渲染提示和字体策略,它也不会出现

QPainter painter(&pixmap);
painter.setRenderHints(QPainter::Antialiasing | QPainter::TextAntialiasing);
font.setStyleStrategy(QFont::NoSubpixelAntialias); // I do not want clear-type
Run Code Online (Sandbox Code Playgroud)

我知道当在操作系统级别关闭抗锯齿文本时,操作系统(在本例中为 Windows 7)能够绘制抗锯齿文本,因为 Visual Studio 就是这样做的。

如何让 Qt 覆盖该操作系统的抗锯齿设置?

搜索词:抗锯齿

qt antialiasing qpixmap qpainter

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

为什么从我的Qt应用程序的命令行运行IncrediBuild永远不会停止?

我使用Visual Studio 2013和IncrediBuild来编译Qt应用程序.通过IDE一切正常,但在命令行上运行时,BuildConsole永远不会返回.

正在运行的进程:

  • BuildConsole.exe
  • cmd.exe
  • devenv.com
  • devenv.exe
  • MSBuild.exe

qt incredibuild visual-studio-2013

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

为什么我的自定义QHeaderView不允许排序

我实现了从QHeaderView扩展的我自己的QHeaderView。

在使用此视图的QTableWidget上启用排序功能后,仍然无法排序。出于生气,该表最初按第一列排序。如果未将水平标题设置为自定义类,则会执行排序。

唯一的重载方法是构造函数(强制水平使用)和sizeHint()。

sorting qt qheaderview

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