Boost にバグ報告を投げたい
先日の記事でも書いたが、Boost 1.46.0 現在でも修正されていない小さなバグが2つある。
ライブラリは Boost.Wave と Boost.PropertyTree である。
Tickets を検索してみた限りでは、同じような報告は見つからなかった。
この2つのバグについて、僕は新しい Ticket として投稿しようと思う。
ひとまず報告したい内容をこのブログに書きます。
何しろ、バグ報告を投げた経験も殆ど無いし、英語力の問題もあって正直手探りです。
他に記載すべき情報や、文章の書き方、突っこみなどあれば言ってくださるとありがたいです。
- Boost.Wave でコンパイルエラー
VC8 〜 VC10 で確認。
-
- 再現コード
#include <boost/utility/value_init.hpp> #include <boost/wave/util/cpp_include_paths.hpp>
原因は、boost/wave/util/cpp_include_paths.hpp で書かれている get 関数が、
意図に反して boost::get(boost::value_initialized
以下に、問題のコードと修正コードを示す。
-
- boost/wave/util/cpp_include_paths.hpp (186)
return get<from>(pragma_once_files).find(filename) != pragma_once_files.end();
↓
return boost::multi_index::get<from>(pragma_once_files).find(filename) != pragma_once_files.end();
-
- boost/wave/util/cpp_include_paths.hpp (202)
get<to>(pragma_once_files).erase(r.first, r.second);
↓
boost::multi_index::get<to>(pragma_once_files).erase(r.first, r.second);
- Boost.PropertyTree でコンパイルエラー
VC8 〜 VC10 で確認。
boost::property_tree::detail::rapidxml から見えるスコープに
alloc_func という型名が宣言されているとコンパイルエラーになる。
-
- 再現コード
struct alloc_func; #include <boost/property_tree/detail/rapidxml.hpp>
原因は、boost/property_tree/detail/rapidxml.hpp で書かれている alloc_func の typedef を、
VC++ コンパイラが解析できないためである。
以下に、問題のコードと修正コードを示す。
-
- boost/property_tree/detail/rapidxml.hpp (370)
typedef void *(alloc_func)(std::size_t); // Type of user-defined function used to allocate memory
↓
typedef void *pvoid; typedef pvoid (alloc_func)(std::size_t); // Type of user-defined function used to allocate memory
または
typedef BOOST_DEDUCED_TYPENAME mpl::identity<void*>::type (alloc_func)(std::size_t); // Type of user-defined function used to allocate memory