Skip to content

Commit

Permalink
Revert "Revert "[WIP] Move to C++17 (#1602)": Multiple compilation an…
Browse files Browse the repository at this point in the history
…d linkage errors on Linux"

This reverts commit 2cdf9f2.
  • Loading branch information
Grumbel committed Jul 24, 2022
1 parent 29541ae commit a5d0c07
Show file tree
Hide file tree
Showing 59 changed files with 237 additions and 292 deletions.
2 changes: 1 addition & 1 deletion CMakeLists.txt
Expand Up @@ -46,7 +46,7 @@ if(COMMAND cmake_policy)
cmake_policy(SET CMP0023 NEW)
endif()

set(CMAKE_CXX_STANDARD 14)
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_CXX_EXTENSIONS OFF)

Expand Down
2 changes: 1 addition & 1 deletion src/badguy/mriceblock.cpp
Expand Up @@ -182,7 +182,7 @@ MrIceBlock::collision_squished(GameObject& object)
break;
}
}
BOOST_FALLTHROUGH;
[[fallthrough]];

case ICESTATE_NORMAL:
{
Expand Down
4 changes: 2 additions & 2 deletions src/badguy/snail.cpp
Expand Up @@ -175,7 +175,7 @@ Snail::collision_solid(const CollisionHit& hit)
m_physic.set_velocity_x(-m_physic.get_velocity_x());
}
}
BOOST_FALLTHROUGH;
[[fallthrough]];
case STATE_FLAT:
case STATE_KICKED_DELAY:
if (hit.top || hit.bottom) {
Expand Down Expand Up @@ -249,7 +249,7 @@ Snail::collision_squished(GameObject& object)

switch (state) {
case STATE_NORMAL:
BOOST_FALLTHROUGH;
[[fallthrough]];
case STATE_KICKED:
squishcount++;
if (squishcount >= MAX_SNAIL_SQUISHES) {
Expand Down
4 changes: 2 additions & 2 deletions src/control/controller.cpp
Expand Up @@ -55,15 +55,15 @@ std::string Control_to_string(Control control)
return g_control_names[static_cast<int>(control)];
}

boost::optional<Control> Control_from_string(const std::string& text)
std::optional<Control> Control_from_string(const std::string& text)
{
for(int i = 0; g_control_names[i] != nullptr; ++i) {
if (text == g_control_names[i]) {
return static_cast<Control>(i);
}
}

return boost::none;
return std::nullopt;
}

Controller::Controller():
Expand Down
5 changes: 3 additions & 2 deletions src/control/controller.hpp
Expand Up @@ -18,7 +18,8 @@
#define HEADER_SUPERTUX_CONTROL_CONTROLLER_HPP

#include <iosfwd>
#include <boost/optional.hpp>
#include <string>
#include <optional>

enum class Control {
LEFT = 0,
Expand Down Expand Up @@ -51,7 +52,7 @@ enum class Control {
std::ostream& operator<<(std::ostream& os, Control control);

std::string Control_to_string(Control control);
boost::optional<Control> Control_from_string(const std::string& text);
std::optional<Control> Control_from_string(const std::string& text);

class Controller
{
Expand Down
2 changes: 1 addition & 1 deletion src/control/joystick_config.cpp
Expand Up @@ -173,7 +173,7 @@ JoystickConfig::read(const ReaderMapping& joystick_mapping)
std::string control_text;
map.get("control", control_text);

const boost::optional<Control> maybe_control = Control_from_string(control_text);
const std::optional<Control> maybe_control = Control_from_string(control_text);
if (!maybe_control)
{
log_info << "Invalid control '" << control_text << "' in buttonmap" << std::endl;
Expand Down
4 changes: 2 additions & 2 deletions src/control/keyboard_config.cpp
Expand Up @@ -16,7 +16,7 @@

#include "control/keyboard_config.hpp"

#include <boost/optional.hpp>
#include <optional>

#include "util/log.hpp"
#include "util/reader_mapping.hpp"
Expand Down Expand Up @@ -123,7 +123,7 @@ KeyboardConfig::read(const ReaderMapping& keymap_mapping)
control_text = control_text.substr(pos + 1);
}

const boost::optional<Control> maybe_control = Control_from_string(control_text);
const std::optional<Control> maybe_control = Control_from_string(control_text);
if (maybe_control) {
if (m_configurable_controls.count(*maybe_control)) {
bind_key(static_cast<SDL_Keycode>(key), player_id, *maybe_control);
Expand Down
2 changes: 1 addition & 1 deletion src/control/keyboard_manager.cpp
Expand Up @@ -170,7 +170,7 @@ KeyboardManager::process_menu_key_event(const SDL_KeyboardEvent& event)
}
m_parent->reset();
MenuManager::instance().refresh();
m_wait_for_key = boost::none;
m_wait_for_key = std::nullopt;
return;
}

Expand Down
4 changes: 2 additions & 2 deletions src/control/keyboard_manager.hpp
Expand Up @@ -18,7 +18,7 @@
#ifndef HEADER_SUPERTUX_CONTROL_KEYBOARD_MANAGER_HPP
#define HEADER_SUPERTUX_CONTROL_KEYBOARD_MANAGER_HPP

#include <boost/optional.hpp>
#include <optional>

#include "control/controller.hpp"
#include "control/keyboard_config.hpp"
Expand All @@ -42,7 +42,7 @@ class KeyboardManager final
private:
InputManager* m_parent;
KeyboardConfig& m_keyboard_config;
boost::optional<KeyboardConfig::PlayerControl> m_wait_for_key;
std::optional<KeyboardConfig::PlayerControl> m_wait_for_key;
bool m_lock_text_input;

private:
Expand Down
4 changes: 2 additions & 2 deletions src/editor/editor.cpp
Expand Up @@ -318,7 +318,7 @@ Editor::get_level_directory() const
}

void
Editor::test_level(const boost::optional<std::pair<std::string, Vector>>& test_pos)
Editor::test_level(const std::optional<std::pair<std::string, Vector>>& test_pos)
{
m_overlay_widget->reset_action_press();

Expand Down Expand Up @@ -691,7 +691,7 @@ Editor::event(const SDL_Event& ev)
if (ev.type == SDL_KEYDOWN &&
ev.key.keysym.sym == SDLK_t &&
ev.key.keysym.mod & KMOD_CTRL) {
test_level(boost::none);
test_level(std::nullopt);
}

if (ev.type == SDL_KEYDOWN &&
Expand Down
4 changes: 2 additions & 2 deletions src/editor/editor.hpp
Expand Up @@ -167,7 +167,7 @@ class Editor final : public Screen,
* new filename.
*/
void save_level(const std::string& filename = "", bool switch_file = false);
void test_level(const boost::optional<std::pair<std::string, Vector>>& test_pos);
void test_level(const std::optional<std::pair<std::string, Vector>>& test_pos);
void update_keyboard(const Controller& controller);

protected:
Expand All @@ -188,7 +188,7 @@ class Editor final : public Screen,
bool m_save_request_switch;
bool m_test_request;
bool m_particle_editor_request;
boost::optional<std::pair<std::string, Vector>> m_test_pos;
std::optional<std::pair<std::string, Vector>> m_test_pos;

std::unique_ptr<Savegame> m_savegame;
std::string* m_particle_editor_filename;
Expand Down
16 changes: 8 additions & 8 deletions src/editor/object_option.cpp
Expand Up @@ -53,7 +53,7 @@ ObjectOption::~ObjectOption()
}

BoolObjectOption::BoolObjectOption(const std::string& text, bool* pointer, const std::string& key,
boost::optional<bool> default_value,
std::optional<bool> default_value,
unsigned int flags) :
ObjectOption(text, key, flags),
m_pointer(pointer),
Expand Down Expand Up @@ -86,7 +86,7 @@ BoolObjectOption::to_string() const
}

IntObjectOption::IntObjectOption(const std::string& text, int* pointer, const std::string& key,
boost::optional<int> default_value,
std::optional<int> default_value,
unsigned int flags) :
ObjectOption(text, key, flags),
m_pointer(pointer),
Expand Down Expand Up @@ -175,7 +175,7 @@ RectfObjectOption::add_to_menu(Menu& menu) const
}

FloatObjectOption::FloatObjectOption(const std::string& text, float* pointer, const std::string& key,
boost::optional<float> default_value,
std::optional<float> default_value,
unsigned int flags) :
ObjectOption(text, key, flags),
m_pointer(pointer),
Expand Down Expand Up @@ -208,7 +208,7 @@ FloatObjectOption::add_to_menu(Menu& menu) const
}

StringObjectOption::StringObjectOption(const std::string& text, std::string* pointer, const std::string& key,
boost::optional<std::string> default_value,
std::optional<std::string> default_value,
unsigned int flags) :
ObjectOption(text, key, flags),
m_pointer(pointer),
Expand Down Expand Up @@ -242,7 +242,7 @@ StringObjectOption::add_to_menu(Menu& menu) const

StringSelectObjectOption::StringSelectObjectOption(const std::string& text, int* pointer,
const std::vector<std::string>& select,
boost::optional<int> default_value,
std::optional<int> default_value,
const std::string& key, unsigned int flags) :
ObjectOption(text, key, flags),
m_pointer(pointer),
Expand Down Expand Up @@ -287,7 +287,7 @@ StringSelectObjectOption::add_to_menu(Menu& menu) const
EnumObjectOption::EnumObjectOption(const std::string& text, int* pointer,
const std::vector<std::string>& labels,
const std::vector<std::string>& symbols,
boost::optional<int> default_value,
std::optional<int> default_value,
const std::string& key, unsigned int flags) :
ObjectOption(text, key, flags),
m_pointer(pointer),
Expand Down Expand Up @@ -366,7 +366,7 @@ ScriptObjectOption::add_to_menu(Menu& menu) const
}

FileObjectOption::FileObjectOption(const std::string& text, std::string* pointer,
boost::optional<std::string> default_value,
std::optional<std::string> default_value,
const std::string& key,
std::vector<std::string> filter,
const std::string& basedir,
Expand Down Expand Up @@ -410,7 +410,7 @@ FileObjectOption::add_to_menu(Menu& menu) const
}

ColorObjectOption::ColorObjectOption(const std::string& text, Color* pointer, const std::string& key,
boost::optional<Color> default_value, bool use_alpha,
std::optional<Color> default_value, bool use_alpha,
unsigned int flags) :
ObjectOption(text, key, flags),
m_pointer(pointer),
Expand Down
35 changes: 18 additions & 17 deletions src/editor/object_option.hpp
Expand Up @@ -17,7 +17,8 @@
#ifndef HEADER_SUPERTUX_EDITOR_OBJECT_OPTION_HPP
#define HEADER_SUPERTUX_EDITOR_OBJECT_OPTION_HPP

#include <boost/optional.hpp>
#include <optional>
#include <functional>
#include <string>
#include <vector>

Expand Down Expand Up @@ -75,7 +76,7 @@ class BoolObjectOption : public ObjectOption
{
public:
BoolObjectOption(const std::string& text, bool* pointer, const std::string& key,
boost::optional<bool> default_value,
std::optional<bool> default_value,
unsigned int flags);

virtual void save(Writer& write) const override;
Expand All @@ -84,7 +85,7 @@ class BoolObjectOption : public ObjectOption

private:
bool* const m_pointer;
const boost::optional<bool> m_default_value;
const std::optional<bool> m_default_value;

private:
BoolObjectOption(const BoolObjectOption&) = delete;
Expand All @@ -95,7 +96,7 @@ class IntObjectOption : public ObjectOption
{
public:
IntObjectOption(const std::string& text, int* pointer, const std::string& key,
boost::optional<int> default_value,
std::optional<int> default_value,
unsigned int flags);

virtual void save(Writer& write) const override;
Expand All @@ -104,7 +105,7 @@ class IntObjectOption : public ObjectOption

private:
int* const m_pointer;
const boost::optional<int> m_default_value;
const std::optional<int> m_default_value;

private:
IntObjectOption(const IntObjectOption&) = delete;
Expand Down Expand Up @@ -150,7 +151,7 @@ class FloatObjectOption : public ObjectOption
{
public:
FloatObjectOption(const std::string& text, float* pointer, const std::string& key,
boost::optional<float> default_value,
std::optional<float> default_value,
unsigned int flags);

virtual void save(Writer& write) const override;
Expand All @@ -159,7 +160,7 @@ class FloatObjectOption : public ObjectOption

private:
float* const m_pointer;
const boost::optional<float> m_default_value;
const std::optional<float> m_default_value;

private:
FloatObjectOption(const FloatObjectOption&) = delete;
Expand All @@ -170,7 +171,7 @@ class StringObjectOption : public ObjectOption
{
public:
StringObjectOption(const std::string& text, std::string* pointer, const std::string& key,
boost::optional<std::string> default_value,
std::optional<std::string> default_value,
unsigned int flags);

virtual void save(Writer& write) const override;
Expand All @@ -179,7 +180,7 @@ class StringObjectOption : public ObjectOption

private:
std::string* const m_pointer;
boost::optional<std::string> m_default_value;
std::optional<std::string> m_default_value;

private:
StringObjectOption(const StringObjectOption&) = delete;
Expand All @@ -190,7 +191,7 @@ class StringSelectObjectOption : public ObjectOption
{
public:
StringSelectObjectOption(const std::string& text, int* pointer, const std::vector<std::string>& select,
boost::optional<int> default_value,
std::optional<int> default_value,
const std::string& key, unsigned int flags);

virtual void save(Writer& write) const override;
Expand All @@ -200,7 +201,7 @@ class StringSelectObjectOption : public ObjectOption
private:
int* const m_pointer;
const std::vector<std::string> m_select;
const boost::optional<int> m_default_value;
const std::optional<int> m_default_value;

private:
StringSelectObjectOption(const StringSelectObjectOption&) = delete;
Expand All @@ -213,7 +214,7 @@ class EnumObjectOption : public ObjectOption
EnumObjectOption(const std::string& text, int* pointer,
const std::vector<std::string>& labels,
const std::vector<std::string>& symbols,
boost::optional<int> default_value,
std::optional<int> default_value,
const std::string& key, unsigned int flags);

virtual void save(Writer& write) const override;
Expand All @@ -224,7 +225,7 @@ class EnumObjectOption : public ObjectOption
int* const m_pointer;
const std::vector<std::string> m_labels;
const std::vector<std::string> m_symbols;
const boost::optional<int> m_default_value;
const std::optional<int> m_default_value;

private:
EnumObjectOption(const EnumObjectOption&) = delete;
Expand Down Expand Up @@ -253,7 +254,7 @@ class FileObjectOption : public ObjectOption
{
public:
FileObjectOption(const std::string& text, std::string* pointer,
boost::optional<std::string> default_value,
std::optional<std::string> default_value,
const std::string& key,
std::vector<std::string> filter,
const std::string& basedir,
Expand All @@ -266,7 +267,7 @@ class FileObjectOption : public ObjectOption

private:
std::string* const m_pointer;
boost::optional<std::string> m_default_value;
std::optional<std::string> m_default_value;
const std::vector<std::string> m_filter;
std::string m_basedir;
bool m_path_relative_to_basedir;
Expand All @@ -280,7 +281,7 @@ class ColorObjectOption : public ObjectOption
{
public:
ColorObjectOption(const std::string& text, Color* pointer, const std::string& key,
boost::optional<Color> default_value, bool use_alpha,
std::optional<Color> default_value, bool use_alpha,
unsigned int flags);

virtual void save(Writer& write) const override;
Expand All @@ -289,7 +290,7 @@ class ColorObjectOption : public ObjectOption

private:
Color* const m_pointer;
const boost::optional<Color> m_default_value;
const std::optional<Color> m_default_value;
bool m_use_alpha;

private:
Expand Down

0 comments on commit a5d0c07

Please sign in to comment.