草庐IT

jtable-main-container

全部标签

c++ - gdb backtrace 没有显示 main() 的完整堆栈跟踪

我正在使用Xalanlibrary.我的程序在Xalan调用中的某处崩溃。我希望看到从main()一直到崩溃点的完整堆栈跟踪。我正在使用以下命令行进行编译g++-oprogram.out-g-O0-lxalan-cmyprogram.out我正在使用“backtracefull”命令并获得以下输出#00xb79313b4inxalanc_1_11::XPath::findRoot(xalanc_1_11::XPathExecutionContext&,xalanc_1_11::XalanNode*,intconst*,int,xalanc_1_11::MutableNodeRefLis

c++ - 在通过在 main 中声明数组来解决之前,数组绑定(bind)不是整数常量

程序1#includestd::size_tthree(){return3;}inti[three()];intmain(){return0;}方案二std::size_tthree(){return3;}intmain(){inti[three()];return0;}这里的问题是程序1如预期的那样给出了编译错误"error:arrayboundisnotanintegerconstantbefore']'token"但是不知道为什么程序2编译成功了? 最佳答案 C99允许inti[three()];声明一个变长数组,但只允许if

c++ - "If you' 已经写了一个编译测试,你've written a call to main"

在程序中调用mainviolatesC++标准voidf(){main();//anendlessloopcallingmain?Nothat'snotallowed}intmain(){staticint=0;std::cout在lecture中ChandlerCarruth,大约在“22.40”说ifyou'vewrittenacompilertestyou'vewrittenacalltomain这有什么关系,或者如何克服标准不允许的事实? 最佳答案 这里的要点是,如果你编写编译器测试代码,你可能会想用一些不同的参数集测试调用

c++ - 为什么 std::allocator 要求 propagate_on_container_move_assignment 为真?

根据当前标准(20.7.9),std::allocator有一个成员propagate_on_container_move_assignment设置为true_type:templateclassallocator{public:typedefsize_tsize_type;typedefptrdiff_tdifference_type;typedefT*pointer;typedefconstT*const_pointer;typedefT&reference;typedefconstT&const_reference;typedefTvalue_type;templatestruc

c++ - 有没有一种方法可以将 container<T>::size_type 普遍用于不同类型的 T?

假设我有一个std::vectora的类(class)和std::vectorb我想要的字段reserve()在构造函数中设置为某种大小,这对于两个容器都是相等的。鉴于reserve()接受size_type参数,为了完全安全,据我所知,我必须使用两个参数编写我的构造函数,这并不是特别吸引人:MyCtor(std::vector::size_typesize1,std::vector::size_typesize2){abortIfNotEqual(size1,size2);//Proceedonlyifsize1==size2a.reserve(size1);b.reserve(si

c++ - BOOST_FOREACH : What is the error on using this of a STL container?

有谁知道为什么以下会在VC9上产生错误?classElem;classElemVec:publicvector{public:voidfoo();};voidElemVec::foo(){BOOST_FOREACH(Elem&elem,*this){//Dosomethingwithelem}return;}我得到的错误是:errorC2355:'this':canonlybereferencedinsidenon-staticmemberfunctions我现在拥有的唯一(hack)解决方案是:voidElemVec::foo(){ElemVec*This=this;BOOST_FO

c++ - QMap::contains() 未返回预期值

我有一个包含QMap对象的类:QMapusers;现在,在下面的函数Foo()中,if子句总是返回false,但是当我遍历映射时,比较的QString,即str1出现在键中。voidFoo(QString&str1,QString&str2){if(users.contains(str1))users[str1]->doStuff(str2);else{for(QMap::iteratoriter=users.begin();iter!=users.end();iter++)qDebug()我做错了什么吗?为什么contains()不返回true? 最佳答案

c++ - 使 main() "uncrashable"

我想编写一个守护进程管理器来确保所有守护进程都在运行,就像这样(简化的伪代码):voidwatchMe(filename){while(true){system(filename);//freezesaslongasfilenameruns//oh,filenamemustbecrashed.Nevermind,willberestarted}}intmain(){_beginThread(watchMe,"foo.exe");_beginThread(watchMe,"bar.exe");}这部分已经在工作了——但现在我面临的问题是,当观察到的应用程序——比如foo.exe——崩溃时

c++ - std::containers 的日志分配器?

X:我需要知道程序的每个部分使用了多少内存。我的程序经常使用C++std库。特别是,我想知道每个对象使用了多少内存。我是怎么做的:要记录some_vector的消耗,只需写my::vectorsome_vector;在哪里namespacemy{templateusingvector=std::vector>;}登录分配器实现如下:templatestructLoggingAllocator{//...boilerplate...pointerallocate(size_typen,std::allocator::const_pointerhint=0){log_allocation(

c++ - g++ 链接问题 : In function `_start' : (. text+0x20): undefined reference to `main'

我收到对主要错误的undefinedreference-即使我已经定义了主要,并且(AFAICT),我已经正确链接了它。这是我的代码和我使用的命令://################################################//proj1.h#ifndef__SCRATCH_PROJ1_H#define__SCRATCH_PROJ1_HintaddOne(inti);#endif/*__SCRATCH_PROJ1_H*///################################################//proj1.cpp#include"pr