摘要:
[root@localhost cpp_build]# gdb ./kungfu_strategy_demo GNU gdb (GDB) Red Hat Enterprise Linux 7.6.1-80.el7 Copyright (C) 2013 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or late... 阅读全文
摘要:
完美转发(perfect forwarding)问题是指函数模板在向其他函数传递参数时该如何保留该参数的左右值属性的问题。也就是说函数模板在向其他函数传递自身形参时,如果相应实参是左值,它就应该被转发为左值;同样如果相应实参是右值,它就应该被转发为右值。 这样做是为了保留在其他函数针对转发而来的参数 阅读全文
摘要:
在C++11中,标准库在<utility>中提供了一个有用的函数std::move,这个函数的名字具有迷惑性,因为实际上std::move并不能移动任何东西,它唯一的功能是将一个左值强制转化为右值引用,继而我们可以通过右值引用使用该值,以用于移动语义。从实现上讲,std::move基本等同于一个类型 阅读全文
摘要:
C++中对象发生拷贝的场景可以分为两种,一种是被拷贝的对象还要继续使用,另一种是被拷贝的对象不再使用;第二种一般可以认为是对右值的拷贝,也就是一个临时对象; C++11中引入了移动构造函数,对象发生拷贝时不需要重新分配空间而是使用被拷贝对象的内存,即临时对象的内存,从而提高代码运行效率(作用); c 阅读全文
摘要:
Java中没有定义friend. friend用于声明类的友元,可以无视类中成员的属性。无论成员3p中的哪一种,友元类或友元函数都可以访问,破坏了封装性,此关键字备受争议。专家会建议程序员使用get/set接口来访问类的成员,但friend确实能少些很多代码。 C++11对friend关键字进行了改 阅读全文
摘要:
常量表达式 Item 1:如果函数必须在编译期进行求值,就将其声明为 理由 需要用 来告诉编译器允许对其进行编译期求值。 示例 阶乘的例子: 上例中给出了constexpr函数fac()的定义,在f()中列举了几种调用fac()的情形。在这里,编译期间能够求值的前提是fac()要为constexpr 阅读全文
摘要:
/* 题目: 写一个排序程序 输入字符串: "5 34 7 34 6 2 12 3 4, 52 ; 13" 输出字符串: "2 3 4 5 6 7 12 13 34 34 52" */ #include #include #include #include #include using namespace std; int str2num(string s) //字符串转化为数... 阅读全文