Modern Cpp记录】的更多相关文章

#include <iostream> # include <set> #include <chrono> #ifndef UNUSED #define UNUSED(v) (void)(v) #endif typedef std::chrono::time_point<std::chrono::system_clock, std::chrono::nanoseconds> time_point; //void logg(const time_point&a…
最近将手头上负责的项目代码从GCC 4.8.2升级到了GCC 8.2.(终于可以使用C++17了,想想后续的开发也是很美好啊~~)不过这个过程之中也遇到了一些稀奇古怪的问题,在这里做一个简单的记录,希望后续有同学遇到类似的问题能作为参考. 1. error: unable to find string literal operator 'operator" 这个我感觉是历史的遗留问题了,从C++11开始就不支持字符串字面量后面直接连接变量名,GCC 4.8.2应该是没有支持该编译检查,所以后续升…
背景 在编译的时候,出现"redefine"的错误,最后检查才发现对应的头文件没有写正确的预编译信息: #ifndef _HeadFileName_H #define _HeadFileName_H // 头文件内容 #endif //_HeadFileName_H 添加后,不再报错,然后就思考,这个"#ifndef #define #endif"的作用到底是什么?于是有了此篇文章. 正文 "#ifndef #define #endif"其实是预…
1. Preface Constant buffer是我们在编写shader的时候,打交道最多的一种buffer resource了.constant表明了constant buffer中的数据,在一次draw call的执行过程中都是不变的:而在不同的draw call之间,我们可以修改其中的数据.它是我们把数据从CPU传递到GPU最常见的方法.constant buffer的概念和定义就不在这里赘述了,鄙文主要讨论如何优雅的管理constant buffer. 2. How to creat…
先看个代码吧!!!!!!!!!! #include <iostream> using namespace std; class A { public: A(){cout<<"construct1..............."<<endl;} A& operator = (const A&&) {cout<<" operator move"<<endl;} A(const A&…
本文首发于个人博客https://kezunlin.me/post/f3c3eb8/,欢迎阅读最新内容! tutorial to use nlohmann json for serializing data with modern cpp Guide include #include <nlohmann/json.hpp> // for convenience using json = nlohmann::json; compile with -std=c++11 CMakeLists.txt…
面试质量非常高....非常高...高... 一面 自我介绍 看过hotspot哪些模块,模板解释器工作说一下,生成的native code放在哪,怎么处理safepoint的 说项目,实现了哪些字节码指令:monitorenter monitorexit怎么实现的:GC:new Thread怎么实现的:synchronized怎么实现的,对象锁是每个对象都有吗,怎么确定是否给对象分配对锁:怎么进行对象分配的,STW之后用户线程还能继续吗so on 算法题,无向图的复制:不消耗额外空间重写一个:如…
转:https://www.cyhone.com/articles/right-way-to-use-cpp-smart-pointer/#comments C++11 中推出了三种智能指针,unique_ptr.shared_ptr 和 weak_ptr,同时也将 auto_ptr 置为废弃 (deprecated). 但是在实际的使用过程中,很多人都会有这样的问题: 不知道三种智能指针的具体使用场景 无脑只使用 shared_ptr 认为应该禁用 raw pointer(裸指针,即 Widg…
由于工作的需求,后续笔者工作需要和开源的OLAP数据库ClickHouse打交道.ClickHouse是Yandex在2016年6月15日开源了一个分析型数据库,以强悍的单机处理能力被称道. 笔者在实际测试ClickHouse和阅读ClickHouse的源码过程之中,对"战斗民族"开发的数据库十分欣赏.ClickHouse不仅是一个很好的数据库学习材料,而且同时应用了大量的CPP17的新特性进行开发,也是一个大型的Modern CPP的教导资料. 笔者接下来会陆续将阅读ClickHou…
参考文章: [1] 基础篇:lvalue,rvalue和move [2] 深入浅出 C++ 右值引用 [3] Modern CPP Tutorial [4] 右值引用与转移语义 刷 Leetcode 时,时不时遇到如下 2 种遍历 STL 容器的写法: int main() { vector<int> v = {1, 2, 3, 4}; for (auto &x: v) cout<<x<<' '; cout<<endl; for (auto &…