2020年5月28日

[C++] Compile Time if in C++17

要說的話...就是把原本要用 SFINAE (substitution failure is not an error) 才能做到的事情變成可以用更直覺的寫法來做到。

2020年5月19日

[筆記] Design and Analysis of Approximation Algorithms - Introduction

標題其實是這本書:Design and Analysis of Approximation Algorithms,這本書簡單來說是在介紹 approximation algorithm (中文好像會翻成逼近演算法、近似演算法)。這類演算法著重的地方是那些現在沒有 "有效率" (也就是 polynomial time 的方法) 的方法解決的最佳化問題 (optimization problem,換言之答案是要找出極值,不論是最大值或最小值),這類問題只要去找 NP-Complete、NP-hard 就有一大堆了。
當然學術上的方法是一回事,現實中當你遇到這類問題又一定要有一個解的時候,真正的問題就會變成你怎麼知道你找出來的解距離最佳解有多遠? 所以這本書的目的就是統整併分析目前有哪些方法可以有效率的解決找出一個近似解、同時告訴你這些近似解在理論上距離最佳解有多遠?

2020年5月16日

2020年5月15日

[C++] inline Variable and thread_local in C++17

inline variable 最大的用意應該就是允許在 header 就把變數的宣告 + 定義一次搞定吧。在 C++17 前除了少數特例 (比方說 literal type),基本上 header 只能放宣告,明確的定義是必須要放在單一的 translation unit 以遵守 ODR (one definition rule)。

2020年5月13日

[C++] Structure Binding in C++17

用一句最簡單的畫作結論的話就是語法糖
C++11 開始除了一些新觀念的引進 (比方說 move semantic) 之外,類似的語法糖也增加了不少,經典例子就是 lambda expression。而 structure binding 到底是啥呢? 舉個簡單例子:
std::pair<int, double> ms{1, 3.14};
auto [i, d] = ms;
一個很樸實無華但是稍微可以讓你的 code 更簡潔易懂的東西。

[生活] 工作日常 - 2019

上一篇的傳送門:工作日常 - 2018

這篇收錄 2019 年的工作日常,2019 年是個 hashtag 大爆發的一年 XD