我從std::codecvt
派生出來創建自定義區域設置。我應該實施的大多數方法都非常簡單,除了這個std::mbstate_t
。在我的編譯器vs2010中,它被聲明爲int
。但是,谷歌告訴我這是一個POD類型,它有時是一個聯盟(我不知道的)或一個結構(我再也找不到它)。什麼是std :: mbstate_t?
據我所知,std::mbstate_t
是部分轉換的佔位符。而且,我認爲,當std::codecvt::on_out()
需要更多空間來編寫輸出時,它會發揮作用,而這又將調用std::codecvt::do_unshift()
。如果我的假設錯誤,請糾正我。
我讀過another post關於存儲指針,雖然帖子沒有足夠的答案。我也讀this example它假定它是一個32位類型,雖然標準規定int
不小於16位。
我的問題。我可以安全地存儲在std :: mbstate_t中什麼?我可以安全地將其替換爲另一種類型嗎?上述帖子的答案建議將其替換,但以下評論另有說明。