牛油貓的筆記
菜鳥研究生的筆記,記錄關於科技、通訊學、加密學、計算機工程等內容。
(Move to ...)
Home
▼
Saturday, August 12, 2023
淺談 C++ 的 requires 關鍵字
›
引言 使用 Template 模板的時候,如果可以加上 requires 關鍵字,就可以對不同的資料類型,實體化出不同的的函式,或者做編譯時期的檢查。 例子 #include < iostream > template < typename T> T...
Tuesday, July 4, 2023
淺談 C++ 20 的 std::span 跨類
›
引言 自 C++ 20 開始,針對所有順序排列的矩陣,標準庫開始提供了一種新的寫法。 以往,我們在處理不同容器 (Container) 的時候,即使它們十分相似,我們也要分開續一處理。比如說,std::array,std::vector,還有最傳統的 C-style array,...
Saturday, May 20, 2023
淺談 C++ 的 if constexpr 分支忽略
›
簡介 以往定義常數,我們都會採用 const 這個關鍵字。雖然它可以確保該常數不變 (immutable),但要注意一點:它並不保證數值是在編譯期間決定的。例如,在賦值的時候,這種寫法是被允許的: int x = getFromSomewhere(); const int MAX...
Wednesday, September 28, 2022
Linux ldd - 列出動態函式庫的工具
›
引言 有時候,當執行一些 Linux 程序時,系統會回報一個莫名其妙的錯誤: -bash: ./executableABC: No such file or directory 遇到這個情況,大部分人都會想: 明明我的程序就在,為什麼系統會找不到它呢 ? 其實,它找不到的不是程序...
Wednesday, July 27, 2022
在 Ubuntu 中增加 Swap 交換檔案
›
引言 要明白 Swap,首先要明白「隨機存取記憶體」 (RAM)。 隨機存取記憶體 (RAM),是一種能與處理器 (CPU) 快速交換資料的記憶體裝置。一般而言,作業系統需要先把程式和資料,由硬碟載入到記憶體中。然後,CPU 才能通過記憶控制器 (Memory Controlle...
›
Home
View web version