工程移植到c 11標準

2021-06-27 20:38:22 字數 1328 閱讀 9162

日誌向。。記錄一下遷移中遇到的幾個不那麼明顯的編譯錯誤。。都是由於c++11標準更加嚴格,以前編譯器幫忙做的事現在不讓做了導致的。對c++11標準沒有去研究(md基礎的c++都沒學好呢tat),所以只記錄問題和目前的解決方法,到底為什麼這麼改或者有沒有更好的修改方法以後學習過了再說。

1.std::basic_istream中會用到ctype<_chart>,而ctype<_chart>只有char和wchar兩種實現。如果basic_istream中傳進來的模板引數是boost::uint8_t的話不會做型別轉換而直接報錯。之前應該是編譯器會自動做型別轉換?

2.定義在類中的友元模板引數需要先宣告才能被同一命名空間的其他類所呼叫。

例子:

class subpiececontentimp

};

需要修改為:

template class subpiececontentimp;

template t buffer_static_cast(subpiececontentimp& buf);

3.過載結構體的<,如果用的是友元內聯函式會找不到。。

例子:

class a

peer_recvtime(const peer_recvtime & p1)

: recv_time(p1.recv_time), peer(p1.peer){}

boost::uint32_t recv_time;

connectionbasepointer peer;

};

friend inline bool operator < (peer_recvtime & p1, peer_recvtime & p2);
};
inline bool operator < (assigner::peer_recvtime & p1, assigner::peer_recvtime & p2)

需要修改為:

class a

peer_recvtime(const peer_recvtime & p1)

: recv_time(p1.recv_time), peer(p1.peer){}

boost::uint32_t recv_time;

connectionbasepointer peer;

bool operator < (const peer_recvtime & p) const

};};

sylixos標準工程移植到Lite版本

1.概述 針對低端處理器 如arm m系列處理器 的開發工作,翼輝資訊推出了sylixos lite工程版本。sylixos lite版本工程屬於sylixos輕量級工程,與標準的sylixos工程相比裁剪掉部分功能 如gdb除錯 虛擬記憶體管理 動態裝載 部分網路功能等 由於sylixos lit...

縱橫C 11標準(目錄)

c 11標準正式通過,正式發布也指日可待,vs和gcc都已經為c 11標準提前做好了部分準備 有些標準仍舊為支援 希望新的標準能夠得到完美的支援 比如c 03標準中的分離模板定義到現在大部分編譯器也沒有很好的支援,export關鍵字也就廢了 個人認為c 11標準中基本原則中的核心是 我根據自己的理解...

C 11新標準總結

c 11新標準出現已久,在此主要對它做乙個總結 c 11新增型別long long和unsigned long long,以支援64位的整型,char16 t,char32 t,以支援16位和32位的字元表示。用大括號括起來的列表 初始化列表 的適用範圍,使其可用於所有內建型別和使用者定義的型別。使...