草庐IT

pybind11

全部标签

c++ - 在 Qt Creator 中使用 C++11

这个问题在这里已经有了答案:HowtoenableC++11inQtCreator?(6个答案)关闭7年前。我在Ubuntu上使用QtCreator,我想使用新的C++11功能,但默认情况下它们未启用。如何配置QtCreator以支持新的C++11功能?

c++ - 将代码从 C++03 迁移到 C++11 : should I be cautious about the implicit default move constructor?

我有一个代码库,我想从C++03切换到C++11。据我所知,某些类将通过具有隐式默认移动构造函数(以及随之而来的移动赋值运算符)而从更改中受益。虽然我完全同意(我什至认为这是一件好事),但我有点担心这种隐式构造函数可能对我拥有的某些不可复制类产生的影响。我举的一个例子是一个类,它包装了libiconv的iconv_t句柄以利用RAII。更明确地说,类如下:classiconv_wrapper{public:iconv_wrapper():m_iconv(iconv_open()){}~iconv_wrapper(){iconv_close(m_iconv);}private://Not

c++ - C++11标准中这条语句的含义是什么?

从C++11标准的段落§5.2.2/1中提取的这句话中的粗体字符是什么意思?Therearetwokindsoffunctioncall:ordinaryfunctioncallandmemberfunction(9.3)call.Afunctioncallisapostfixexpressionfollowedbyparenthesescontainingapossiblyempty,comma-separatedlistofexpressionswhichconstitutetheargumentstothefunction.Foranordinaryfunctioncall,th

c++ - 在 C++11 中从 std::deque move 一个元素

我们知道std::deque::front()返回对双端队列第一个元素的引用。我想知道这段代码是否总是安全的://dequeoflambdasdeque>funs;//thenissomeotherplace://takealockm.lock();autof=move(funs.front());//movethefirstlambdainffuns.pop_front();//removetheelementfromdeque//nowthevalueisholdbyfm_.unlock();//unlocktheresorcef();//executef我已经使用gcc-4.9尝

c++ - 如何在不使用 C++11 的情况下使用多个值初始化 boost::mt19937

我可以使用:boost::mt19937gen(43);这很好用,但是如果我在使用随机数生成器之前想要超过32位的种子怎么办?有没有一种简单的方法可以将64位或128位种子放入MersenneTwister?我找到了几个在生成结果之前加载多个值的示例,但没有一个代码有效。这段代码有几个问题:std::vectorseedv(1000,11);std::vector::iteratori=seedv.begin();boost::mt19937gen2(i,seedv.end());首先,调用gen2()总是返回相同的值。我不知道我是怎么搞砸的。其次,我不想要1,000个种子,但是当我将

c++ - 让 Howard Hinnant 的 short_alloc(C++11 版本)在 Visual C++ 2015 中编译

我希望能够将自定义分配器与std::vector一起使用,以便将小数据缓冲区(例如,小于1024字节)存储在堆栈上,并且只有较长的vector存储在堆上。作为一个有Fortran背景的人,每次我必须进行堆内存分配以在五行子程序的持续时间内存储六个元素时,这让我感到body疼痛!HowardHinnant发表了他的short_alloc分配器完全符合我的要求,如果我用gcc编译它,它会很好用。但是,在VisualC++中我无法编译它。在VisualC++2013中,部分问题是不受支持的C++11关键字太多,但即使我已将所有这些都#DEFINE掉,我仍然遇到了问题。今天尝试用VisualC

c++ - 如何在 C++11 中将容器 std::array<type, size> 用于多维数组?

例如,包含三个整数的一维数组可以定义为std::arraymyarray或myarray[3].有没有像std::array这样的容器对于像myarray[3][3]这样的多维数组? 最佳答案 一个关键部分是确保{}初始化工作类似于std::array,并尽可能合理地让自己保持pod状。与std::array的兼容性也很重要,什么比std::array更兼容??所以我的解决方案从std::array中生成多维数组小号:templatestructmulti_array_helper{usingtype=T;};templateusi

(开源)Git的安装、环境变量配置及Git基本操作(基于Windows10、11系统)

目录一、Git简述二、安装配置教程:(一)Git安装(二)环境变量配置配置信息 ①配置用户②配置邮箱③Git生成密钥(ssh)安装配置完成 三、Git的基本操作(一)创建仓库命令(二)配置(三)提交与修改文件(四)分支(五)标签(六)查看信息(七)远程同步(八)撤销一、Git简述Git是世界上使用最为广泛、最先进的一款免费、开源的分布式版本控制系统。Git最初由Linux系统内核的作者LinusTorvalds在2005年开始开发,目前已经是一个持续维护的成熟开源项目。如今,大量软件项目依赖Git进行版本管理,其中既有开源软件,也有商业软件,Git在很多操作系统和集成开发环境(IDE)上都表现

c++ - fabsf 是 C++11 中 std 命名空间的一部分吗?

页面https://en.cppreference.com/w/cpp/numeric/math/fabs提到std::fabsf从C++11开始可用。但是,当我使用G++6.3.0编译甚至使用std::fabsf的最简单程序时,它说fabsf不是std.#includeintmain(){return(int)std::fabsf(0.0f);}哪个是对的?G++6.3.0没有将它包含在std中是错误的,还是上面的页面在C++11中将它作为std的一部分提及是错误的?如果是G++出错了,那会在以后的版本中修复吗? 最佳答案 是的,

c++ - C++11 中的整数除法

我注意到C++11的5.6节有一些措辞变化。(我正在查看日期为2011-02-28的C++标准草案N3242。)新(草案)标准包括以下句子:“对于整数操作数,/运算符生成代数商,并丢弃任何小数部分;”在03标准(ISO-IEC-14882-2003)的5.6中没有这个说法,但我不认为这是一个变化,是吗?这就是C和C++多年来一直工作的方式,除非我失去理智(无论如何都可能发生)。 最佳答案 你不会生气的。5.6/4的脚注说:[C++03footnote74]:Accordingtoworkunderwaytowardtherevisi