ys memos

Blog

プルリクエストのためのデバッグ


c++

2020/09/30

個人開発では自分の PC のみで動作すれば良いのだが、OSS では複数の環境(OS,Compiler 等)で動作する必要がある。

その時に変更したコードをメモる。


C++について書く

変更点に対する表記は git 風にと書くことにする

- 変更前
+ 変更後


古いboost::asioでは、 io_contextは存在しない(現在では推奨)。 なので、古い boost での動作が必要であれば、以下の変更を加える。

- boost::asio::io_context io_context_;
+ boost::asio::io_servier io_service_;


昔はstd::mutexがなかったようだ。 OSS がboostに依存していれば、boost::threadを使う。 (等値変換ではないかもしれません!)

+ #include <boost/thread.hpp>

- mutable std::mutex mtx_;
+ mutable boost::thread mtx_;

- std::lock_guard<std::mutex> lock (mtx_);
+ boost::mutex::scoped_lock lock (mtx_);

コンパイラオプションによっては、intstd::size_tの比較ができない。

私の場合は for 文でエラーが発生した。継続条件にstd::size_tを使っているが、変数をintで宣言したためエラー発生した。

- for (int i=0; i<N; ++i) {
+ for (std::size_t i=0; i<N; ++i) {

コンパイラのバージョン・オプションによっては、override specifierを省略してはいけないようだ。

私の場合はMacOSでのビルドが通らなかった。

- void func ();
+ void func () override;

関連タグを探す