草庐IT

tiny_malloc_from_free_list

全部标签

c++ - 构造函数中的 weak_from_this()

我知道您不能在构造函数中使用shared_from_this。但是可以在构造函数中使用新的weak_from_this吗?根据cppreference:Thisisacopyofthetheprivatemutableweak_ptrmemberthatispartofenable_shared_from_this.http://en.cppreference.com/w/cpp/memory/enable_shared_from_this/weak_from_this我没有看到从构造函数中获取内部存储的weak_ptr拷贝的问题,但我可能遗漏了一些东西,所以我不确定这一点。

c++ - MsgPack 中不匹配的 free()/delete

我尝试在我的程序中使用Msgpack。有人可以帮我解决msgpackwiki中的下一个示例(流媒体功能)吗:http://wiki.msgpack.org/pages/viewpage.action?pageId=1081387并提供更正确的使用这个库的流媒体功能的例子。#include#include#includeintmain(void){//serializesmultipleobjectsusingmsgpack::packer.msgpack::sbufferbuffer;msgpack::packerpk(&buffer);pk.pack(std::string("Log

c++ - BOOST MPL 添加两个 list_c 对象导致意外行为

我有以下代码:#include#include#include#include#include#include#include#include#includeusingnamespaceboost::mpl;typedeflist_cevens;typedeflist_cprimes;typedeflist_csums;typedeftransform>::typeresult;BOOST_MPL_ASSERT((equal>));intmain(){std::cout它编译,所以BOOST_MPL_ASSERT成立。但是,运行它时,main函数中的断言失败。这是什么意思?包含相同元素

C++ libclang : Retrieving cursor from CXSourceLocation returning wrong cursor?

我目前正在使用libclang和C++编写一个简单的克隆检测器。程序使用结构存储游标,包含指向翻译单元的指针和通过调用clang_getCursorLocation(cursor)获得的CXSourceLocation。typedefstruct{CXTranslationUnit*tu;CXSourceLocationsrcLoc;}t_cursorLocation;为了这个错误,子访问者函数访问每个节点并从每个游标创建一个结构。使用t_cursorLocation类型的结构,我编写了这个函数来检索相应的光标:CXCursorgetCursor(t_cursorLocation*lo

c++ - 如何编写接受 std::vector 或 std::list 的函数?

我想这个问题有点简单。vector和列表都有push和pop函数,而且-更重要的是-可以迭代:for(autovalue:items)...然而,std::vector和std::list似乎并不共享一个基类。因此,问题是:我如何编写一个函数来接受其中一个(或者,实际上,任何其他适合实现的东西)?std::lista;std::vectorb;DoSomething(a);DoSomething(b);我想在不重载的情况下进行。如果使用模板,它们不应该导致疯狂的错误消息。比如下面的代码——inta;DoSomething(a);--应该会导致调用站点出现编译错误,不在模板内的某处!有人

c++ - 滚动时Qt List Widget动态内容加载

我想为Qt(不是QML)创建一个小部件,它派生自QListWidget等,并在向上/向下滚动时动态加载内容,就像大多数Android/iOS应用程序一样。有人知道哪种方法最好吗?干杯, 最佳答案 动态加载内容并不意味着它是无限的。为此,只需实现模型的fetchMore()和canFetchMore()方法。 关于c++-滚动时QtListWidget动态内容加载,我们在StackOverflow上找到一个类似的问题: https://stackoverflow

c++ - 不能将 std::vector<T> 转换为 std::initializer_list<T> 吗?

我还以为有人可以做到这一点?然而,情况似乎并非如此。为什么?还是我做错了什么?#include#include#includeusingnamespacestd;voidfn(std::initializer_listi){for(intivalue:i){cout{4,5,6})return0;}demo我问这个的原因是因为我有一个带有初始化列表的类,我是从它派生的,但需要在将初始化列表传递给基类之前修改初始化列表。我怎样才能做到这一点? 最佳答案 有时旧的方法是最好的方法:只传入范围:voidfn(std::initialize

c++ - std::forward_list 和序列概念要求

标准委员会选择为std::forward_list实现API是否有某种原因使其不满足序列容器概念要求?Sequence概念要求指定容器必须与以下表达式兼容:c.insert(it,v);//insertatpositionc.insert(it,n,v);//fillinsertc.insert(it,begin,end);//insertrange...其中it是一个迭代器,v是一个元素,n是一个整数,begin/end是一个迭代器范围。这个API没有理由不能用于单链表,因为insert函数需要一个迭代器起始位置。但出于某种原因,std::forward_list具有insert_a

【C++练级之路】【Lv.8】【STL】list类的模拟实现

快乐的流畅:个人主页个人专栏:《C语言》《数据结构世界》《进击的C++》远方有一堆篝火,在为久候之人燃烧!文章目录引言一、结点二、迭代器2.1成员变量与默认成员函数2.2operator*2.3operator->2.4operator++2.5operator--2.6relationaloperators三、list3.1成员变量3.2迭代器3.2.1begin3.2.2end3.3默认成员函数3.3.1constructor3.3.2destructor3.3.3copyconstructor3.3.4operator=3.4修改3.4.1insert3.4.2push_front3.4

C++动态内存分配探秘:new与malloc的关键差异及实例解析

 概述:在C++中,new和malloc均用于动态内存分配,但存在关键差异。new是C++运算符,能调用构造函数,返回类型明确;而malloc是C函数,仅分配内存,需手动类型转换。示例源代码生动演示了它们在构造函数调用和类型信息方面的不同。在C++中,new 和 malloc 都用于动态内存分配,但它们之间有一些重要的区别。以下是对它们的详细描述,包括方法、步骤和相应的示例源代码。new和malloc的区别:1.使用方法:new: 是C++的运算符,能够调用对象的构造函数,返回类型明确。malloc: 是C语言的库函数,只分配内存块,返回void*,不会调用对象的构造函数。2.类型信息:new