C/C++开发

C++概念:检查模板实例化

假设我有一个模板化类型,例如 template struct mytype { }; 如何编写检查类型是否为该模板的实例化的概念? template concept MyType = requires(T x) { ??? } 我想不出一种明显的方法来做到这一点,而不是解析为老式的专 ..
发布时间:2022-05-16 12:56:53 C/C++开发

Ranges算法与STD算法的差异

许多标准库算法在C++20中有两个版本:一个在std名称空间中,另一个在std::ranges名称空间中。例如,std::ranges::count和std::count都用于计算满足谓词的元素的数量。 为什么这些算法有两个版本? 推荐答案 Ranges功能将C++20概念添加到迭代器和范围中,并将其算法等的定义限制为这些概念。但是,C++20概念具有不同于C++17命名需求的需 ..
发布时间:2022-05-16 12:18:30 C/C++开发

如何检查GTK+3.0中的小部件类型?

我看到了this帖子,但它是针对Python的,所以这对我没有太大帮助。我正在用C++编程,在一个不是我写的代码库上工作。我看到了一些像GTK_IS_ENTRY和GTK_IS_COMBO_BOX这样的支票,但我不确定这个人是在哪里找到这些的,或者还有什么GTK_IS_...。有没有提到过这些东西?我在网上搜索,也在GTK/Glib网站上搜索,但什么也找不到。谢谢! api 类型检查宏通 ..
发布时间:2022-05-16 09:43:25 C/C++开发

为什么C++支持带有实现的纯虚函数?

我今天做了一个简单的测试: struct C{virtual void f()=0;}; void C::f(){printf("weird ");} 程序还可以,但我觉得奇怪,我们用=0表示函数体应该在继承的类中定义,但似乎还是可以给它实现函数。 GCC和VC都试过了,都还行。所以在我看来,这应该是C++标准的一部分。 但为什么这不是语法错误? 我能想到的一个原因是, ..
发布时间:2022-05-15 23:45:11 C/C++开发

OpenCV扭曲透视的替代方案

我正在使用OpenCV warpVision()函数扭曲图像中找到的反轮廓,以找到我正在使用findContours()查找的轮廓。 如下图所示: 但warpVision()函数需要“更多时间”才能将图像扭曲为全图。是否有其他方法可以将图像中的对象扭曲为全图,如图所示。 或者遍历会有帮助吗?但这样做会很困难,这样我就可以减少warpVision()函数所用的时间。 推荐答案 ..
发布时间:2022-05-13 16:57:33 C/C++开发

智能指针在具有自动存储持续时间的对象上的使用

如果我将智能指针(scoped_ptr、unique_ptr或shared_ptr)应用到具有自动存储持续时间(即存储在堆栈上)的对象上,会有问题吗?我假设不会像在两种情况下那样(有或没有智能指针),如果没有更多的指针指向它们,它们将被删除。指针本身始终具有自动存储持续时间,即,如果超出范围,它们将被删除。 推荐答案 是,有一个问题(一个很大的问题):您正在使用智能指针做一些它们不是设 ..
发布时间:2022-05-12 15:38:02 C/C++开发

从引用创建SHARED_PTR

我对C++比较陌生,这个问题听起来像个初学者问题,但我无法用Internet上的其他资源解决它。 我正在尝试从引用创建一个Shared_PTR。我有以下Book类: #include #include "Author.hpp" class Book { public: void setAuthor(const Author& t_author); ..
发布时间:2022-05-12 14:52:53 C/C++开发

测试类型是否为(智能)指针的通用方法

在我的代码中,我需要测试赋予模板的类型是否为指针--无论它是否智能。根据Boost的说法,没有可靠和通用的方法来做到这一点(参见here)--或者有吗? 到目前为止,我检查了以下内容: A:T可以转换为void*吗? B:T有get()方法吗? C:T有名为element_type的类型吗? D:get()是否返回element_type*? 如果(A||B&;&am ..
发布时间:2022-05-12 14:43:10 C/C++开发