gcc5.4.0を使用して大きなプロジェクトでmakeを実行すると、このエラーが発生しました。sstreamがパブリックアクセスコンパイラエラーで再宣言されました
/usr/include/c++/5/sstream:300:14: error: '__xfer_bufptrs' redeclared with 'public' access
struct __xfer_bufptrs
^
/usr/include/c++/5/sstream:67:14: note: previously declared 'private' here
struct __xfer_bufptrs;
私にはコンパイラの問題のようですか?この問題は標準的なC++ライブラリsstreamで発生するので、間違ったコンパイラを使用していますか?ここで
は、コードスニペットているエラーメッセージはを参照してください:ラインで67class basic_stringbuf : public basic_streambuf<_CharT, _Traits>
{
struct __xfer_bufptrs;
public:
2)sstream提供行から始まる)
1. sstream提供300
#if _GLIBCXX_USE_CXX11_ABI
// This type captures the state of the gptr/pptr pointers as offsets
// so they can be restored in another object after moving the string.
struct __xfer_bufptrs
{
__xfer_bufptrs(const basic_stringbuf& __from, basic_stringbuf* __to)
: _M_to{__to}, _M_goff{-1, -1, -1}, _M_poff{-1, -1, -1}
{
私が知っています標準ライブラリに何か問題はありません。なぜそれがエラーを投げるのですか?
これは、私はいくつかの答えになった最も近い: https://github.com/PacificBiosciences/pbbam/issues/14
そして、答えがこれらの「Dprivate」と「Dpublic」フラグを中心に展開しそうです。私はコンパイラのフラグを仮定していますが、私は彼らが何をしているのか分かりません。
がめちゃめちゃライブラリのメンテナのように見えると混乱のこの種のを避けるために、明示的なアクセスの資格を使用しますアップ。 –
誰もこれについて何も考えていませんか?たぶん私は最善の方法を尋ねなかったが、私は本当にこれに追加する他の情報を知りません... –