草庐IT

gtk_init_check

全部标签

c++ - BOOST_CHECK_EQUAL 与 pair<int, int> 和自定义运算符 <<

当尝试执行BOOST_CHECK_EQUAL(pair,pair)时,gcc没有找到pair的流运算符,尽管声明了它。有趣的是std::out找到了运算符。ostream&operator&p){s';returns;}BOOST_AUTO_TEST_CASE(works){pairexpected(5,5);pairactual(5,5);std::coutexpected(5,5);pairactual(5,5);BOOST_CHECK_EQUAL(actual,expected);}这不会编译错误:...instantiatedfromhere../boost-atp/relea

c++ - 类型特征 : Check if reference member variable is static or not

我想检查一个类的成员变量是否是静态的。使用std::is_member_pointer适用于除引用成员之外的所有类型。#includestructA{intfoo;};structB:A{};structC{staticintfoo;};structD:C{};structE{int&foo;};structF{staticint&foo;};static_assert(std::is_member_pointer::value,"No");static_assert(std::is_member_pointer::value,"No");static_assert(!std::is_

c++ - 自动配置/自动制造 : How to avoid passing the "check" option to AC_CONFIG_SUBDIRS

我正在使用Autoconf构建我的C++项目。它使用第三方代码,这些代码也是在Autoconf/Automake的帮助下构建的。所以在我的configure.ac中有以下行:AC_CONFIG_SUBDIRS([subdirectoryname])一切正常,但我还使用该功能让测试在执行makecheck时自动进行-这也是由第三方代码完成的。因为这些测试需要一段时间,所以每次我想测试自己的代码时都执行它们很烦人。那么有没有办法避免check选项被传递给子目录的Makefile呢?更新:覆盖check-recursive似乎不是一个选项,因为我的顶级Makefile.am看起来(或多或少)

c++ - 在没有显示的情况下使用 GTK

是否可以在没有有效X显示的情况下使用GTK?我想将GTK与Webkit结合使用,但目前我只对使用DOM函数进行实验感兴趣,因此我不需要实际显示任何内容。在没有显示器的服务器上通过SSH连接执行此操作对我来说非常方便。但是,如果没有DISPLAY环境变量,gtk_init()只会失败并显示消息:Gtk-WARNING**:无法打开显示:有没有在没有显示器的情况下使用GTK的方法? 最佳答案 有一个名为Xvfb的X服务器,它提供有效的DISPLAY并将输出发送到文件而不是图形硬件。您可以在运行gtk客户端的同一台机器上运行它,gtk将能

c++ - std::error_code,my_error::check_block == my_error::validate && my_error::accept_block == my_error::validate

我正在使用std::error_code并定义和注册了一堆错误(使用枚举类)。我有一个非常通用的错误,现在称为my_error::validate,但我想在我的库中提供更具体的版本。通常人们会想要使用:if(ec==bc::error::validate)//...但是有时他们可能希望看到与该std::error_code关联的特定错误或打印错误消息。//ec.message()says"check_block()failedtodoXYZ"assert(ec==bc::error::check_block);我希望能够启用如下功能:if(ec==bc::error::validate

c++ - 什么是 "recursive_init_error"异常?

我决定用计算的goto和局部静态做一个测试voidg(){std::cout我想看看输出是否是“initinit!”。但令我惊讶的是,我没有得到那个输出,而是GCC优雅地处理了它,在运行时输出:initterminatedbyrecursive_init_error:exception那个异常(exception)是什么?它是标准异常吗?C++03还是C++0x?感谢您的任何解释。 最佳答案 这是由C++03§6.7/4中所述引起的:...Otherwisesuchanobjectisinitializedthefirsttimec

c++ - BOOST_CHECK 无法为自定义类型编译 operator<<

我写了这个非常简单的类,以便清楚我的问题是什么:classA{public:intx;A(inty){x=y;}booloperator==(constA&other)const{returnx==other.x;}};现在,如果我定义Afirst(1)和Asecond(1),对我来说BOOST_CHECK_EQUAL(first,second)应该通过是很自然的。然而,我在尝试这样做时遇到了50个错误,第一个听起来像:nomathforoperator 最佳答案 我确定了三种方法来解决operator的问题.第一种方式是提供一个o

c++ - boost 测试不 init_unit_test_suite

我运行这段代码#defineBOOST_TEST_MAIN#defineBOOST_TEST_DYN_LINK#include#include#include#includeusingnamespaceboost::unit_test;usingnamespacestd;voidTestFoo(){BOOST_CHECK(0==0);}test_suite*init_unit_test_suite(intargc,char*argv[]){std::coutadd(BOOST_TEST_CASE(&TestFoo));returnmaster_test_suite;}但是在运行时它说T

C++ 11 正则表达式 : checking if string starts with regex

我正在使用C++11的支持,并想检查字符串的开头是否与正则表达式匹配。[如果有帮助,我可以切换到Boost,但我的印象是它们基本相同。]显然,如果我可以控制表达式的实际文本表示,我可以只粘贴^在它的开头作为anchor。但是,如果我只有一个regex怎么办?(或basic_regex)对象?我可以修改它代表的正则表达式来添加anchor吗?或者我必须使用regex_search,得到结果,检查是否从位置0开始? 最佳答案 您可以在使用regex_search时添加std::regex_constants::match_continu

c++ - 全局构造函数调用不在 .init_array 部分

我正在尝试在嵌入式目标(ARMCortex-M3)上添加全局构造函数支持。假设我有以下代码:classfoobar{inti;public:foobar(){i=100;}voidinc(){i++;}};foobarfoo;intmain(){foo.inc();for(;;);}我是这样编译的:arm-none-eabi-g++-O0-gdwarf-2-mcpu=cortex-m3-mthumb-cfoo.cpp-ofoo.o当我使用objdump查看.init_array部分时,它显示.init_section的大小为零。我确实得到了一个名为_Z41__static_initia