View Single Post
Author Message
Veteran Member
Join Date: Aug 2014
Old 05-28-2021 , 00:06   MM:S plugin fails to compile due to stdlib-related error on newer toolchains
Reply With Quote #1

I'm trying to compile my fork of RCBot2 (a hybrid MM:S plugin and SourceMod extension), and it reports the following error message on the current Debian (Buster) release using Clang:

In file included from /home/user/alliedmodders/rcbot2/utils/RCBot2_meta/bot_plugin_meta.cpp:40:
In file included from /home/user/alliedmodders/rcbot2/utils/RCBot2_meta/bot.h:68:
In file included from /home/user/alliedmodders/rcbot2/utils/RCBot2_meta/bot_utility.h:37:
In file included from /usr/bin/../lib/gcc/x86_64-linux-gnu/8/../../../../include/c++/8/vector:60:
In file included from /usr/bin/../lib/gcc/x86_64-linux-gnu/8/../../../../include/c++/8/bits/stl_algobase.h:64:
/usr/bin/../lib/gcc/x86_64-linux-gnu/8/../../../../include/c++/8/bits/stl_pair.h:428:13: error: no member named 'swap' in namespace 'std'
        using std::swap;
A similar error among others is displayed on GCC:

In file included from /usr/include/c++/8/bits/stl_algobase.h:64,
                 from /usr/include/c++/8/vector:60,
                 from /home/user/alliedmodders/rcbot2/utils/RCBot2_meta/bot_utility.h:37,
                 from /home/user/alliedmodders/rcbot2/utils/RCBot2_meta/bot.h:68,
                 from /home/user/alliedmodders/rcbot2/utils/RCBot2_meta/bot_plugin_meta.cpp:40:
/usr/include/c++/8/bits/stl_pair.h: In member function ‘void std::pair<_T1, _T2>::swap(std::pair<_T1, _T2>&)’:
/usr/include/c++/8/bits/stl_pair.h:428:13: error: ‘std::swap’ has not been declared
  using std::swap;
Full error message is available in this issue. It's known to compile against the older Debian 8 and Ubuntu 16.04 without any changes. Google comes up with no results on this particular error, and similar issues don't seem to fit this problem.

Any ideas of where to go from here? Very lost since the compile error appears to happen within the standard library. Compiling a short C++ file using clang++ with the algorithm and vector includes does work no problem.

Would prefer to stick to c++11.
I do TF2, TF2 servers, and TF2 plugins.
I don't do DMs over Discord -- PM me on the forums regarding inquiries.
AlliedModders Releases / Github / TF2 Server / Donate (BTC / BCH / coffee)

Last edited by nosoop; 05-28-2021 at 00:33.
nosoop is offline