摘要: thread_specific_ptr代表了一个全局的变量,而在每个线程中都各自new一个线程本地的对象交给它进行管理。 线程之间就不会因为访问同一全局对象而引起资源竞争导致性能下降。 而线程结束时,这个资源会被自动释放。 阅读全文
posted @ 2018-06-22 17:09 osbreak 阅读(2464) 评论(0) 推荐(0) 编辑
摘要: C++ 11中的Lambda表达式用于定义并创建匿名的函数对象,以简化编程工作。 C++11中,官方似乎一直鼓励大家用lambda表达式,而不是函数对象,lambda表达式更易于使用和理解。 lambda表达式的语法如下: [capture_block](parameters) exceptions 阅读全文
posted @ 2018-06-22 11:20 osbreak 阅读(324) 评论(0) 推荐(0) 编辑
摘要: 被抛弃的std::auto_ptr std::auto_ptr 能够方便的管理单个堆内存对象。auto_ptr用于指向一个动态分配的对象指针,他的析构函数用于删除所指对象的空间,以此达到对对象生存期的控制。 auto_ptr本质是管理权限的转移。在进行赋值,拷贝构造时,会对控制权进行转移。 使用场景总结: 1)不要使用auto_ptr对象保存指向静态分配对象的指针。 2)... 阅读全文
posted @ 2018-06-22 10:44 osbreak 阅读(148) 评论(0) 推荐(0) 编辑
摘要: 1、方便资源的管理,自动释放没有指针引用的资源。 2、使用引用计数来标识是否有多余指针指向该资源。(shart_ptr本身指针会占1个引用) 3、在赋值操作中, 原来资源的引用计数会减一,新指向的资源引用计数会加一。 std::shared_ptr p1(new Test); std::shared_ptr p2(new Test); p1 = p2; 4、引用计数加一/减一操作... 阅读全文
posted @ 2018-06-21 22:37 osbreak 阅读(187) 评论(0) 推荐(0) 编辑
摘要: unique_ptr使用场景 阅读全文
posted @ 2018-06-21 17:30 osbreak 阅读(474) 评论(0) 推荐(0) 编辑
摘要: 1.菜单 1.01 菜单栏 // 注册目录测试函数 ON_COMMAND(ID_INSERT_MENU, OnMenuTest) void CMainFrame::OnMenuTest() { //获得主菜单 CMenu* pMenu = GetMenu(); //获得子菜单 CMenu* pSub 阅读全文
posted @ 2018-06-21 16:52 osbreak 阅读(453) 评论(0) 推荐(0) 编辑
摘要: https://learn.microsoft.com/zh-cn/cpp/?view=msvc-170 1.窗口 1.01 获得当前窗口的句柄 //获得当前窗口的句柄 HWND hWnd = GetSafeHwnd(); //通过HWND获得CWnd指针 CWnd* pWnd = CWnd::Fr 阅读全文
posted @ 2018-06-21 16:50 osbreak 阅读(192) 评论(0) 推荐(0) 编辑
摘要: pugixml比tinyxml快不止一个数量级pugixml 可以在github上直接下载到源码 https://github.com/zeux/pugixml 包括两个头文件(pugixml.hpp pugiconfig.hpp) 和 一个源文件(pugixml.cpp) 例子1 1 <?xml 阅读全文
posted @ 2018-06-21 16:36 osbreak 阅读(661) 评论(0) 推荐(0) 编辑
摘要: weak_ptr 是一种不控制对象生命周期的智能指针, 它指向一个 shared_ptr 管理的对象. 进行该对象的内存管理的是那个强引用的 shared_ptr. weak_ptr只是提供了对管理对象的一个访问手段. 为了解决std::shared_ptr在相互引用的情况下出现的问题而存在的, std::shared_ptr赋值给weak_ptr时,weak_ptr 支持拷贝... 阅读全文
posted @ 2018-06-21 15:01 osbreak 阅读(920) 评论(0) 推荐(0) 编辑
摘要: 字符转码 1.01 UTF8ToUnicode std::wstring UTF8ToUnicode(const std::string& utf8string) { int widesize = ::MultiByteToWideChar(CP_UTF8, 0, utf8string.c_str( 阅读全文
posted @ 2018-06-21 11:06 osbreak 阅读(474) 评论(0) 推荐(0) 编辑