The switch
in the C++ standard cannot implement string case matching, but we often have this need, so let’s implement it.
Summarize some of my coding habits
At the beginning when writing code, I always rolled up my sleeves and got to work as soon as I encountered a problem, essentially writing code while debugging and simultaneously designing the solution flow. However, this approach is simply too slow, often leading to writing and deleting code, effectively resulting in a poorly designed code structure requiring refactoring, which wastes a lot of time.
Reading "D&E" and answers to some questions
C++ Language Design and Evolution is a book written by C++ author Bjarne Stroustrup, discussing the thought process and trade-offs from the conception and design to the actual implementation of C++. It is arguably the only book on the market written from the perspective of a language designer on language design.
There are many issues where we should not only know How, but also understand Why, as this allows for a deeper comprehension of the subject. Fortunately, “C++ Language Design and Evolution” is precisely that kind of book. Recently, I realized many aspects of C++ that I only knew How but did not understand Why (too much was sacrificed for compatibility with C), and this article serves as a reading note and a record of Why, which I will gradually organize.
Capturing 360° panoramic video with Unreal Engine 4

This article excerpts some content from the official Unreal Engine blog post: Capturing Stereoscopic 360 Screenshots, Videos, Movies in Unreal Engine 4, while the rest corrects errors in that article and provides a ready-to-use solution.
Reading CSAPP: Comparison with Modern Operating Systems
These past few days, I’ve been enthusiastic about reading CSAPP, and I even posted yesterday that reading CSAPP is more enjoyable than reading Modern Operating Systems (haha).
Dynamic memory and smart pointers
Smart pointers, as one of the most important features of C++11, were originally recorded in C++11 Syntactic Sugar, but this part is so important that I have recently been relatively free (逃) and decided to summarize it in detail separately.
Source Insight plugin and configuration
Recently, I’ve been experimenting with a few development-related tools that can be considered artifacts. As the saying goes, “A workman must sharpen his tools before he can work well.” I’ll take some time to organize and write about it.
Use VisualGDB to write Linux programs on VS
As a C++ developer and Linux user, I often write code on Linux. Recently, I discovered VisualGDB (a VS plugin), which is a fantastic tool that allows me to write and run programs directly on Linux from Windows! The debugging experience is even better!
Deploy shadowsocks service on VPS
In the past few days, I helped a colleague set up a VPS for proxy use and organized some related materials along the way. This article is not aimed at beginners. Before reading the following content, you should first have a VPS that can access the external network (foreign network), and secondly, you should have some basic knowledge of Linux operations.
Some books and tools for learning C/C++
From the time I began learning C language to now, it has been five or six years, during which I have read quite a few good and bad books, tried many tools (the holy war of compilers/editors), and here I will summarize everything in detail. After messing around for a long time, I have come to a kind of thought, which is different from the “take-it-for-granted” mindset; it is an experience of “doing it yourself.”