草庐IT

c++ - 禁用 OpenCV VideoWriter 输出

当我使用OpenCV的VideoWriter类创建视频时,它会在终端中输出如下内容:Output#0,avi,to'video.avi':Stream#0.0:Video:mpeg4,yuv420p,512x384,q=2-31,12582kb/s,90ktbn,24tbc我想禁用它,但我不知道该怎么做。 最佳答案 将控制台“静音”一会儿。Ref.#include#includeintmain(intargc,char**argv){std::streambuf*cout_sbuf=std::cout.rdbuf();//saveo

c++ - 有条件地禁用复制构造函数

假设我正在编写一个类模板C持有T值,所以C仅当T时才可复制是可复制的。通常,当模板可能支持或不支持某个操作时,您只需定义该操作,由您的调用者决定是否在不安全时调用它:templateclassC{private:Tt;public:C(constC&rhs);C(C&&rhs);//otherstuff};但是,这在复制构造函数的情况下会产生问题,因为is_copy_constructible>即使在T时也是如此不可复制;特征看不到复制构造函数在被调用时格式错误。这是一个问题,因为,例如,vector如果std::is_copy_constructible有时会避免使用移动构造函数是真

c++ - 我可以为 assert() 禁用 GCC 的 noreturn 属性吗

Glibc在assert.h中使用GCC的noreturn属性:externvoid__assert_fail(...)...__attribute__((__noreturn__));这会导致GCC在进入调试器之前优化所有局部变量和this指针。优化甚至发生在-Og级别,并且在-O0级别省略了许多其他有用的优化,以至于测试变得非常缓慢。理想情况下,我只想从那里删除__noreturn__属性。我不在乎我的assert()是否运行得更快,我想看看它在何处以及为何触发。是否有GCC命令行标志或任何其他机制可用于禁用__noreturn__优化,而不禁用其他优化?可运行示例代码:#incl

c++ - 禁用特定代码块的语言扩展?

我想在MSVC编译器中禁用语言扩展,但仅限于特定代码块。有一个compileroption可以配置为禁用整个翻译单元(例如,整个文件)的语言扩展,但我不想要这个。最终,我想在编译#include语句和其他预处理器内容时启用语言扩展,但为我的实际代码禁用它。有没有办法禁用特定代码块的语言扩展,或者在MSVC2008中使用#pragma? 最佳答案 这应该是不可能的,因为当启用语言扩展时,VisualStudio使用不同的算法来编译代码,这发生在预处理器扩展之后。换句话说,不可能编译一半带扩展名的文件,而另一半不带扩展名。让我用一个使用

c++ - 为 QDockWidget 禁用分隔光标

我有以下小部件结构。CDockWidgetInfoBar只是一个QDockWidget派生类当我移动到QDockWidget(CDockWidgetInfoBar)上时,我看到了这个分隔光标。它是从哪里来的?我可以禁用它吗?它是QDockWidgetLayout的一部分吗?但是,QDockWidgetLayout是Qtprivate不得使用。有什么想法吗? 最佳答案 这对系统来说似乎是不可能的或极其痛苦的。我在这里尝试这样做:HowcanIpreventtransformcursortoSplitHCursorwhenit'sund

c++ - 在 C++ 中禁用隐式 this

我收到了一个遗留的C++应用程序来修补和添加一些新功能,我在遵循一些代码时遇到了一段糟糕的时光,因为它相当广泛地使用了全局变量,巨大的#define宏和许多极其简洁命名的变量/函数(来自2个继承级别的3个字母函数,等等...)。因此,确定许多函数或变量的来源具有挑战性。它还使用匈牙利符号....有时(m_Thingie是一个成员变量,但有时也是thingie)。有什么方法可以使不指定this->的类成员访问失败吗?那会让我使用编译器来有效地确定变量源。我不介意它是否是一个可怕的hack,如果我可以在进行重构时打开它一会儿,然后在任何发布编译时关闭它,那会很好。

c++ - 在 Googletest 单元测试中禁用自动捕获 C++ 异常

在使用Google测试运行单元测试时,有没有办法禁用自动捕获C++异常?这是为了更好地了解错误的来源。 最佳答案 如Yksisarvinen所述,通过使用--gtest_catch_exceptions=0调用测试可执行文件,您应该能够防止googletest捕获异常(如果这是您想要的-相反,测试应用程序可能会困惑地崩溃)。也就是说,这取决于您想要实现的目标:在我的测试服中,我确保将throw()异常的函数封装在一个try-catchblock中,这样我就可以快速确定哪里出了问题(如果/当它们失败时),然后(如果需要)使用调试器手动

c++ - 我如何在 FreeBSD 上禁用 ASLR?

我目前正在上计算机安全类(class),并想尝试将一些类(class)示例漏洞移植到我的FreeBSD机器上。对于linux,我可以通过使用来禁用ASLR"echo0>/proc/sys/kernel/randomize_va_space".Compilingwith"-fno-stack-protector-zexecstack"gcc上的flags禁用NX和canaries,我认为这对于FreeBSD也是一样的。FreeBSD是否有类似的功能来禁用ASLR?感谢您的宝贵时间。 最佳答案 FreeBSD上没有地址空间随机化功能。

c++ - cmake + sdl - 禁用 sdlmain

我正在使用cmake(winxpsp3、cmake2.8.4)将SDL与我的应用程序链接。cmake_minimum_required(VERSION2.8)find_package(SDLREQUIRED)set(srcWIN32main.cpp)include_directories(${QT_INCLUDE_DIR}${QT_QTGUI_INCLUDE_DIR}${SDL_INCLUDE_DIR})add_executable(test${src})target_link_libraries(test${SDL_LIBRARY})问题:SDL_LIBRARY包含SDLmain.l

c++ - 禁用关于 "underscore-prefixed user-defined literals"的 GCC 警告

我的一个客户有很多代码使用了“ui64”、“ui32”等...后缀,我需要移植它。为了避免验证几个正则表达式查找+替换的可能漫长的夜晚,我将所述后缀重现为用户定义的文字。我正在寻找“-Wno-xxx”标志,用于作为结果弹出的“前面没有‘_’”警告。我搜索了警告列表here,但我的大脑目前正遭受相当严重的字母汤综合症,所以我可能错过了。我使用的是cygwin附带的g++4.8.2。 最佳答案 我相信您正在寻找-Wno-literal-suffix。从gcc-7开始(见此处liveongodbold),这个选项也是turnsoffwar