紀錄C++11的Template Metaprogramming (樣板元编程)練習範例
影片00:04,constexpr最晚在程式編譯期(compile time)就要給值,無法在執行期間(run time)動態給值,
__FILE__是C的標準語法,也能在編譯期就從完整檔案路徑取出檔名,並儲存在宣告為constexpr的字串內,
紀錄C++11的Template Metaprogramming (樣板元编程)練習範例
影片00:04,constexpr最晚在程式編譯期(compile time)就要給值,無法在執行期間(run time)動態給值,
__FILE__是C的標準語法,也能在編譯期就從完整檔案路徑取出檔名,並儲存在宣告為constexpr的字串內,
作業系統:Win10 x64,其他版本的Windows不確定
這裡彙整的都是OS內建的指令或設定,不用額外安裝其他App
指令或設定都能在網路上搜尋到很多介紹,這裡只做簡單的節錄
三年前的秋天拍的,石門水庫附近的秋楓很漂亮
旁邊南苑公園有隻猴子,是以前桃園燈會的主燈,但不確定晚上還有沒有燈光秀?
上網查,南苑公園現在改變很多,多了很多熱氣球
C關鍵字pragma pack,C#關鍵字StructLayout,網路上能找到的資料極多
最保險的寫法,資料用1個byte的寬度去對齊記憶體
C:#pragma pack(1)
C#:[StructLayout(LayoutKind.Sequential, Pack =1)]
有些系統為了效能,程式內資料會用4或8個bytes的寬度去對齊記憶體,
持續使用GOG上看到高解析度修改版進行遊戲:
https://support.gog.com/hc/en-us/articles/360018687573-Simcity-3000-Unlimited-widescreen-support?product=gog
當然不是梅竹賽放水,而是成功湖開始放水,真快!
看起來因為環湖步道的關係,湖面積會往內縮,景色會跟以前很不一樣
成功湖旁邊印象中是座禮堂,拆到一半就停了,不知道之後會改造成甚麼樣子?
只有影片開頭錄到一聲喵,後面等好久,牠都不繼續喵了
很少看到短腿貓,而且看比例,牠前腳比較短,後腳還好,很少見
夏天時在四四南村附近的公園看到的,最近燈會也有再去附近繞繞,但沒看到牠了
這一篇應該要在情人節發表才對!
前一篇寫得太複雜,已經做調整更新,並把friend class拆開,獨立寫在此
friend class會破壞物件的封裝特性,使用上要很小心,非必要不使用
前一篇的static constructor只能存取公開的(public)欄位或方法,但稍作調整,存取private或protected也沒問題
namespace MyNamespace
以C++11為例,C++17後有更簡潔的寫法,但尚未驗證
C++沒有C#的static class或static constructor,但可以實現相同的效果,
雖然閱讀上會覺得很多餘(甚至會覺得很怪),不夠簡潔
接續前一篇,並參考網頁
https://stackoverflow.com/questions/16284629/undefined-reference-to-static-variable-c
斜線/
反斜線\,在C/C++/C#等語言中通常要加上跳脫字元才能呈現,就是原始碼字串上寫"\\",會輸出\,
但是我在windows上使用MinGW測試出不同情況,還不清楚原因?紀錄如下
檔案路徑的呈現,目前只找到只有windows是以\作為分隔符,其他平台都是以/作分隔
https://youtube.com/shorts/evna_asu0qo
情人節快樂2023,LEGO快閃店,在誠品生活信義店旁,另外在統一時代百貨台北店也有活動
有些商品有打85折促銷,但不確定品項和折扣是否每天一樣,快閃店展示到2/14止
快閃店有些展示是台灣幾位樂高達人的創作,非常驚人!
接續之前寫的,C語言的sizeof(long)和下一個千禧蟲問題,這裡紀錄C取時間和指標使用上的一些眉角
參考網頁:
https://www.tutorialspoint.com/c_standard_library/c_function_asctime.htm
//1970/1/1開始經過多少秒
const time_t rawTime = time(NULL);
__LINE__效果類似CSharp的[CallerLineNumber],不過[CallerMemberName]尚未在C找到類似的功能
__DATE__和__TIME__會帶入程式碼編譯成執行檔時的時間,適合用來幫程式壓上開發版本號
__FILE__和__LINE__適合用來記錄log,追蹤程式的執行過程
__FILE__會壓上程式碼檔案的完整路徑,因此用來儲存__FILE__的char array別給太小,否則程式執行時可能會有異常
接續之前寫的:
1. 在CentOS 7使用CSharp開發程式的前置條件(安裝.NET 7)
2. 在CentOS 7上使用Visual Studio Code開發標準C語言程式