摘要:
Callable对象,是任何可以调用的东西。函数指针,函数,重载了operator()的对象,lamda 在模板编程实践中,经常做调用转发,例如: 但是,F(args...)只能应付普通函数,和重载operator()的对象。如果F是函数指针,就挂了。std::invoke就是一个utility类, 阅读全文
posted @ 2018-03-21 20:11
thomas76
阅读(1098)
评论(0)
推荐(0)
摘要:
new运算符支持指定按什么对齐了。over-aligned意思是超过默认的对齐的尺寸。std::max_align_t是个类型,其对齐大小为标量当中最大的那个 经测试,MS上的值为8。其它平台的典型值为8或16。 参考:https://ask.helplib.com/others/post_1236 阅读全文
posted @ 2018-03-21 17:03
thomas76
阅读(217)
评论(0)
推荐(0)
摘要:
考虑如下代码: S(1)构造了一次,是个无名的临时对象(暂且给它取名为tmp),然后传递给fun函数,s是另一个局部对象。因此程序应打印两次~S() called。(实测vs2015打印2次,gcc和clang中只打印一次) C++17开始,S(1)这个纯右值不一定要物化为tmp,意思是在这个程序中 阅读全文
posted @ 2018-03-21 14:23
thomas76
阅读(462)
评论(0)
推荐(0)
摘要:
参考:http://zh.cppreference.com/w/cpp/language/expressions 不求值表达式:表达式在编译期被使用,运行期无计算。例如: 但是,typeid有个例:令 typeid(expr), 当expr是广义左值(glvalue)时,expr是对应的运行期计算的 阅读全文
posted @ 2018-03-21 11:40
thomas76
阅读(125)
评论(0)
推荐(0)

浙公网安备 33010602011771号