C++ Config Manager

會寫 Config Manager 是因為在開發演算法的過程中都有需多參數要不斷調試,避免 hard code 所以改為讀入一個外部檔案作為參數設定。方便頻繁的修改讀寫影像路徑、演算法參數等。

其中又以處理不同變數的讀寫最為繁瑣,因此寫了一個簡單的 sample,利用 marco programming 和 function overload 的特性,再加上一點點的 template,大大簡化了讀寫參數的複雜度,並且維持程式碼的乾淨。把最骯髒的地方用更骯髒的方式隱藏起來XD

GitHub

利用 function overload 來自動導入不同變數型態,對應不同型態的變數處理方式在編譯階段就已經完成,執行上是高效率的,需要手動增加的部分只有類似下面的 macro。讓我們可以更專注在控管 variable name 上,如果再使用 clang 來 parse config 自動產生 macro 就可以做到全自動了,讓這個工具作為提升開發效率的第一步吧,我們只要專注撰寫 config.cpp 就足夠了

只要定義了如下的 config.cpp

再寫入這些 macro 就可以輕鬆讀入設定