diff --git a/src/about.cpp b/src/about.cpp index e5ea733c95300..5a59bd87cfb5d 100644 --- a/src/about.cpp +++ b/src/about.cpp @@ -207,7 +207,7 @@ void set_about(const config &cfg) */ void show_about(CVideo &video, const std::string &campaign) { - boost::scoped_ptr cur(new cursor::setter(cursor::WAIT)); + std::unique_ptr cur(new cursor::setter(cursor::WAIT)); surface& screen = video.getSurface(); if (screen == nullptr) return; diff --git a/src/actions/undo_action.cpp b/src/actions/undo_action.cpp index 89642a0d29ffc..44227ead57867 100644 --- a/src/actions/undo_action.cpp +++ b/src/actions/undo_action.cpp @@ -93,7 +93,7 @@ namespace { x2 = e.filter_loc2.x + 1; y2 = e.filter_loc2.y + 1; int realx1 = 0, realy1 = 0, realx2 = 0, realy2 = 0; - boost::scoped_ptr u1, u2; + std::unique_ptr u1, u2; if(unit_ptr who = get_unit(e.uid1, e.id1)) { realx1 = who->get_location().x; realy1 = who->get_location().y; diff --git a/src/addon/manager_ui.cpp b/src/addon/manager_ui.cpp index e310f0934bb77..fb1aa71eac1e0 100644 --- a/src/addon/manager_ui.cpp +++ b/src/addon/manager_ui.cpp @@ -155,7 +155,7 @@ addon_op_result do_resolve_addon_dependencies(CVideo& v, addons_client& client, result.outcome = SUCCESS; result.wml_changed = false; - boost::scoped_ptr cursor_setter(new cursor::setter(cursor::WAIT)); + std::unique_ptr cursor_setter(new cursor::setter(cursor::WAIT)); // TODO: We don't currently check for the need to upgrade. I'll probably // work on that when implementing dependency tiers later. @@ -609,7 +609,7 @@ sorted_addon_pointer_list sort_addons_list(addons_list& addons, ADDON_SORT sort, void show_addons_manager_dialog(CVideo& v, addons_client& client, addons_list& addons, std::string& last_addon_id, bool& stay_in_ui, bool& wml_changed, addons_filter_state& filter) { - boost::scoped_ptr cursor_setter(new cursor::setter(cursor::WAIT)); + std::unique_ptr cursor_setter(new cursor::setter(cursor::WAIT)); stay_in_ui = false; filter.changed = false; diff --git a/src/ai/actions.cpp b/src/ai/actions.cpp index 27589c3b8befe..e7035118d8aa8 100644 --- a/src/ai/actions.cpp +++ b/src/ai/actions.cpp @@ -383,7 +383,7 @@ bool move_result::test_route(const unit &un) pathfind::teleport_map allowed_teleports = pathfind::get_teleport_locations(un, my_team, true);///@todo 1.9: see_all -> false //do an A*-search - route_ = boost::shared_ptr( new pathfind::plain_route(pathfind::a_star_search(un.get_location(), to_, 10000.0, &calc, resources::gameboard->map().w(), resources::gameboard->map().h(), &allowed_teleports))); + route_ = std::shared_ptr( new pathfind::plain_route(pathfind::a_star_search(un.get_location(), to_, 10000.0, &calc, resources::gameboard->map().w(), resources::gameboard->map().h(), &allowed_teleports))); if (route_->steps.empty()) { set_error(E_NO_ROUTE); return false; diff --git a/src/ai/actions.hpp b/src/ai/actions.hpp index 57e8885f22c8b..c1cb37e6e565d 100644 --- a/src/ai/actions.hpp +++ b/src/ai/actions.hpp @@ -196,7 +196,7 @@ class move_result : public action_result { const map_location from_; const map_location to_; bool remove_movement_; - boost::shared_ptr route_; + std::shared_ptr route_; map_location unit_location_; bool unreach_is_ok_; bool has_ambusher_; diff --git a/src/ai/composite/aspect.hpp b/src/ai/composite/aspect.hpp index 5bcc5575251ed..da05c7aee4add 100644 --- a/src/ai/composite/aspect.hpp +++ b/src/ai/composite/aspect.hpp @@ -56,7 +56,7 @@ class aspect : public readonly_context_proxy, public events::observer, public co virtual const variant& get_variant() const = 0; - virtual boost::shared_ptr get_variant_ptr() const = 0; + virtual std::shared_ptr get_variant_ptr() const = 0; virtual void recalculate() const = 0; @@ -139,7 +139,7 @@ class typesafe_aspect : public aspect { return *get_variant_ptr(); } - virtual boost::shared_ptr get_variant_ptr() const + virtual std::shared_ptr get_variant_ptr() const { if (!valid_variant_) { if (!valid_) { @@ -147,11 +147,11 @@ class typesafe_aspect : public aspect { } if (!valid_variant_ && valid_ ) { - value_variant_ = boost::shared_ptr(new variant(variant_value_translator::value_to_variant(this->get()))); + value_variant_ = std::shared_ptr(new variant(variant_value_translator::value_to_variant(this->get()))); valid_variant_ = true; } else if (!valid_variant_ && valid_lua_) { value_ = value_lua_->get(); - value_variant_ = boost::shared_ptr(new variant(variant_value_translator::value_to_variant(this->get()))); + value_variant_ = std::shared_ptr(new variant(variant_value_translator::value_to_variant(this->get()))); valid_variant_ = true; // @note: temporary workaround } else { assert(valid_variant_); @@ -163,7 +163,7 @@ class typesafe_aspect : public aspect { virtual void recalculate() const = 0; - virtual boost::shared_ptr get_ptr() const + virtual std::shared_ptr get_ptr() const { if (!valid_) { if (!(valid_variant_ || valid_lua_)) { @@ -172,7 +172,7 @@ class typesafe_aspect : public aspect { if (!valid_ ) { if (valid_variant_) { - value_ = boost::shared_ptr(new T(variant_value_translator::variant_to_value(get_variant()))); + value_ = std::shared_ptr(new T(variant_value_translator::variant_to_value(get_variant()))); valid_ = true; } else if (valid_lua_){ value_ = value_lua_->get(); @@ -186,9 +186,9 @@ class typesafe_aspect : public aspect { } protected: - mutable boost::shared_ptr value_; - mutable boost::shared_ptr value_variant_; - mutable boost::shared_ptr< lua_object > value_lua_; + mutable std::shared_ptr value_; + mutable std::shared_ptr value_variant_; + mutable std::shared_ptr< lua_object > value_lua_; }; @@ -219,14 +219,14 @@ class composite_aspect; template class typesafe_known_aspect : public known_aspect { public: - typesafe_known_aspect(const std::string &name, boost::shared_ptr< typesafe_aspect > &where, aspect_map &aspects) + typesafe_known_aspect(const std::string &name, std::shared_ptr< typesafe_aspect > &where, aspect_map &aspects) : known_aspect(name), where_(where), aspects_(aspects) { } void set(aspect_ptr a) { - boost::shared_ptr< typesafe_aspect > c = boost::dynamic_pointer_cast< typesafe_aspect >(a); + std::shared_ptr< typesafe_aspect > c = std::dynamic_pointer_cast< typesafe_aspect >(a); if (c) { assert (c->get_id()== this->get_name()); where_ = c; @@ -238,7 +238,7 @@ class typesafe_known_aspect : public known_aspect { virtual void add_facet(const config &cfg) { - boost::shared_ptr< composite_aspect > c = boost::dynamic_pointer_cast< composite_aspect >(where_); + std::shared_ptr< composite_aspect > c = std::dynamic_pointer_cast< composite_aspect >(where_); if (c) { assert (c->get_id()==this->get_name()); c->add_facet(-1, cfg); @@ -249,7 +249,7 @@ class typesafe_known_aspect : public known_aspect { } protected: - boost::shared_ptr > &where_; + std::shared_ptr > &where_; aspect_map &aspects_; }; @@ -275,7 +275,7 @@ class composite_aspect : public typesafe_aspect { std::vector< aspect_ptr > default_aspects; engine::parse_aspect_from_config(*this,_default,parent_id_,std::back_inserter(default_aspects)); if (!default_aspects.empty()) { - typename aspect_type::typesafe_ptr b = boost::dynamic_pointer_cast< typesafe_aspect >(default_aspects.front()); + typename aspect_type::typesafe_ptr b = std::dynamic_pointer_cast< typesafe_aspect >(default_aspects.front()); if (composite_aspect* c = dynamic_cast*>(b.get())) { c->parent_id_ = parent_id_; } @@ -296,7 +296,7 @@ class composite_aspect : public typesafe_aspect { std::vector facets_base; engine::parse_aspect_from_config(*this,cfg,parent_id_,std::back_inserter(facets_base)); for (aspect_ptr a : facets_base) { - typename aspect_type::typesafe_ptr b = boost::dynamic_pointer_cast< typesafe_aspect > (a); + typename aspect_type::typesafe_ptr b = std::dynamic_pointer_cast< typesafe_aspect > (a); if (composite_aspect* c = dynamic_cast*>(b.get())) { c->parent_id_ = parent_id_; } @@ -310,13 +310,13 @@ class composite_aspect : public typesafe_aspect { ///@todo 1.9 optimize in case of an aspect which returns variant for (const typename aspect_type::typesafe_ptr &f : make_pair(facets_.rbegin(),facets_.rend())) { if (f->active()) { - this->value_ = boost::shared_ptr(f->get_ptr()); + this->value_ = std::shared_ptr(f->get_ptr()); this->valid_ = true; return; } } if (default_) { - this->value_ = boost::shared_ptr(default_->get_ptr()); + this->value_ = std::shared_ptr(default_->get_ptr()); this->valid_ = true; } } @@ -345,7 +345,7 @@ class composite_aspect : public typesafe_aspect { engine::parse_aspect_from_config(*this,cfg,parent_id_,std::back_inserter(facets)); int j=0; for (aspect_ptr a : facets) { - typename aspect_type::typesafe_ptr b = boost::dynamic_pointer_cast< typesafe_aspect > (a); + typename aspect_type::typesafe_ptr b = std::dynamic_pointer_cast< typesafe_aspect > (a); if (composite_aspect* c = dynamic_cast*>(b.get())) { c->parent_id_ = parent_id_; } @@ -377,7 +377,7 @@ class standard_aspect : public typesafe_aspect { : typesafe_aspect(context, cfg, id) { this->name_ = "standard_aspect"; - boost::shared_ptr value(new T(config_value_translator::cfg_to_value(this->cfg_))); + std::shared_ptr value(new T(config_value_translator::cfg_to_value(this->cfg_))); this->value_= value; LOG_STREAM(debug, aspect::log()) << "standard aspect has value: "<< std::endl << config_value_translator::value_to_cfg(this->get()) << std::endl; } @@ -415,7 +415,7 @@ template class lua_aspect : public typesafe_aspect { public: - lua_aspect(readonly_context &context, const config &cfg, const std::string &id, boost::shared_ptr& l_ctx) + lua_aspect(readonly_context &context, const config &cfg, const std::string &id, std::shared_ptr& l_ctx) : typesafe_aspect(context, cfg, id) , handler_(), code_(), params_(cfg.child_or_empty("args")) { @@ -433,7 +433,7 @@ class lua_aspect : public typesafe_aspect // error return; } - handler_ = boost::shared_ptr(resources::lua_kernel->create_lua_ai_action_handler(code_.c_str(), *l_ctx)); + handler_ = std::shared_ptr(resources::lua_kernel->create_lua_ai_action_handler(code_.c_str(), *l_ctx)); } void recalculate() const @@ -454,7 +454,7 @@ class lua_aspect : public typesafe_aspect } private: - boost::shared_ptr handler_; + std::shared_ptr handler_; std::string code_; const config params_; }; @@ -463,7 +463,7 @@ class lua_aspect : public typesafe_aspect class aspect_factory{ bool is_duplicate(const std::string &name); public: - typedef boost::shared_ptr< aspect_factory > factory_ptr; + typedef std::shared_ptr< aspect_factory > factory_ptr; typedef std::map factory_map; typedef std::pair factory_map_pair; @@ -500,7 +500,7 @@ class register_aspect_factory : public aspect_factory { aspect_ptr get_new_instance( readonly_context &context, const config &cfg, const std::string &id) { - boost::shared_ptr _a(new ASPECT(context,cfg,id)); + std::shared_ptr _a(new ASPECT(context,cfg,id)); aspect_ptr a = _a; a->on_create(); return a; @@ -509,7 +509,7 @@ class register_aspect_factory : public aspect_factory { class lua_aspect_factory{ public: - typedef boost::shared_ptr< lua_aspect_factory > factory_ptr; + typedef std::shared_ptr< lua_aspect_factory > factory_ptr; typedef std::map factory_map; typedef std::pair factory_map_pair; @@ -521,7 +521,7 @@ class lua_aspect_factory{ return *aspect_factories; } - virtual aspect_ptr get_new_instance( readonly_context &context, const config &cfg, const std::string &id, boost::shared_ptr& l_ctx) = 0; + virtual aspect_ptr get_new_instance( readonly_context &context, const config &cfg, const std::string &id, std::shared_ptr& l_ctx) = 0; lua_aspect_factory( const std::string &name ) { @@ -540,9 +540,9 @@ class register_lua_aspect_factory : public lua_aspect_factory { { } - aspect_ptr get_new_instance( readonly_context &context, const config &cfg, const std::string &id, boost::shared_ptr& l_ctx) + aspect_ptr get_new_instance( readonly_context &context, const config &cfg, const std::string &id, std::shared_ptr& l_ctx) { - boost::shared_ptr _a(new ASPECT(context,cfg,id,l_ctx)); + std::shared_ptr _a(new ASPECT(context,cfg,id,l_ctx)); aspect_ptr a = _a; a->on_create(); return a; diff --git a/src/ai/composite/component.hpp b/src/ai/composite/component.hpp index 434e961558926..e3fa33c4d45ee 100644 --- a/src/ai/composite/component.hpp +++ b/src/ai/composite/component.hpp @@ -53,7 +53,7 @@ struct path_element { }; class base_property_handler; -typedef boost::shared_ptr property_handler_ptr; +typedef std::shared_ptr property_handler_ptr; typedef std::map property_handler_map; class component { diff --git a/src/ai/composite/engine.hpp b/src/ai/composite/engine.hpp index 38361822c5bef..3d0592aed4073 100644 --- a/src/ai/composite/engine.hpp +++ b/src/ai/composite/engine.hpp @@ -118,7 +118,7 @@ class engine_factory; class engine_factory{ bool is_duplicate(const std::string &name); public: - typedef boost::shared_ptr< engine_factory > factory_ptr; + typedef std::shared_ptr< engine_factory > factory_ptr; typedef std::map factory_map; typedef std::pair factory_map_pair; diff --git a/src/ai/composite/goal.cpp b/src/ai/composite/goal.cpp index ab65cc17f76a7..ea4cfd12d8278 100644 --- a/src/ai/composite/goal.cpp +++ b/src/ai/composite/goal.cpp @@ -59,7 +59,7 @@ void goal::on_create() LOG_AI_GOAL << "side " << get_side() << " : " << " created goal with name=[" << cfg_["name"] << "]" << std::endl; } -void goal::on_create(boost::shared_ptr) +void goal::on_create(std::shared_ptr) { unrecognized(); } @@ -188,7 +188,7 @@ void target_location_goal::on_create() } const config &criteria = cfg_.child("criteria"); if (criteria) { - filter_ptr_ = boost::shared_ptr(new terrain_filter(vconfig(criteria),resources::filter_con)); + filter_ptr_ = std::shared_ptr(new terrain_filter(vconfig(criteria),resources::filter_con)); } } @@ -249,7 +249,7 @@ void protect_goal::on_create() } const config &criteria = cfg_.child("criteria"); if (criteria) { - filter_ptr_ = boost::shared_ptr(new terrain_filter(vconfig(criteria),resources::filter_con)); + filter_ptr_ = std::shared_ptr(new terrain_filter(vconfig(criteria),resources::filter_con)); } @@ -339,15 +339,15 @@ lua_goal::lua_goal(readonly_context &context, const config &cfg) } } -void lua_goal::on_create(boost::shared_ptr l_ctx) +void lua_goal::on_create(std::shared_ptr l_ctx) { - handler_ = boost::shared_ptr(resources::lua_kernel->create_lua_ai_action_handler(code_.c_str(), *l_ctx)); + handler_ = std::shared_ptr(resources::lua_kernel->create_lua_ai_action_handler(code_.c_str(), *l_ctx)); } void lua_goal::add_targets(std::back_insert_iterator< std::vector< target > > target_list) { - boost::shared_ptr< lua_object< std::vector < target > > > l_obj - = boost::shared_ptr< lua_object< std::vector < target > > >(new lua_object< std::vector < target > >()); + std::shared_ptr< lua_object< std::vector < target > > > l_obj + = std::shared_ptr< lua_object< std::vector < target > > >(new lua_object< std::vector < target > >()); config c(cfg_.child_or_empty("args")); handler_->handle(c, true, l_obj); try { diff --git a/src/ai/composite/goal.hpp b/src/ai/composite/goal.hpp index 4a4b23c8e5894..2e11f19dd2d88 100644 --- a/src/ai/composite/goal.hpp +++ b/src/ai/composite/goal.hpp @@ -65,7 +65,7 @@ class goal : public readonly_context_proxy, public component { virtual void on_create(); - virtual void on_create(boost::shared_ptr); + virtual void on_create(std::shared_ptr); bool active() const; @@ -120,7 +120,7 @@ class target_location_goal : public goal { { return value_; } - boost::shared_ptr filter_ptr_; + std::shared_ptr filter_ptr_; double value_; }; @@ -142,7 +142,7 @@ class protect_goal : public goal { return value_; } - boost::shared_ptr filter_ptr_; + std::shared_ptr filter_ptr_; bool protect_unit_; int radius_; double value_; @@ -170,18 +170,18 @@ class lua_goal : public goal { public: lua_goal(readonly_context& context, const config& cfg); virtual void add_targets(std::back_insert_iterator< std::vector< target > > target_list); - void on_create(boost::shared_ptr); + void on_create(std::shared_ptr); private: std::string code_; - boost::shared_ptr handler_; + std::shared_ptr handler_; }; class goal_factory{ bool is_duplicate(const std::string &name); public: - typedef boost::shared_ptr< goal_factory > factory_ptr; + typedef std::shared_ptr< goal_factory > factory_ptr; typedef std::map factory_map; typedef std::pair factory_map_pair; diff --git a/src/ai/composite/property_handler.hpp b/src/ai/composite/property_handler.hpp index 88e04e774640b..5447cf8a51e32 100644 --- a/src/ai/composite/property_handler.hpp +++ b/src/ai/composite/property_handler.hpp @@ -68,13 +68,13 @@ class base_property_handler { virtual std::vector< component* > handle_get_children() = 0; }; -typedef boost::shared_ptr< base_property_handler > property_handler_ptr; +typedef std::shared_ptr< base_property_handler > property_handler_ptr; template class vector_property_handler : public base_property_handler { public: - typedef boost::shared_ptr t_ptr; - typedef std::vector< boost::shared_ptr > t_ptr_vector; + typedef std::shared_ptr t_ptr; + typedef std::vector< std::shared_ptr > t_ptr_vector; vector_property_handler(const std::string &property, t_ptr_vector &values, std::function &construction_factory) : factory_(construction_factory), property_(property), values_(values){} @@ -218,7 +218,7 @@ class facets_property_handler : public vector_property_handler { template class aspect_property_handler : public base_property_handler { public: - typedef boost::shared_ptr t_ptr; + typedef std::shared_ptr t_ptr; typedef std::map< std::string, t_ptr > aspect_map; aspect_property_handler(const std::string &property, aspect_map &aspects, std::function &construction_factory) @@ -288,21 +288,21 @@ class aspect_property_handler : public base_property_handler { template -static void register_vector_property(std::map &property_handlers, const std::string &property, std::vector< boost::shared_ptr > &values, std::function >&, const config&)> construction_factory) +static void register_vector_property(std::map &property_handlers, const std::string &property, std::vector< std::shared_ptr > &values, std::function >&, const config&)> construction_factory) { property_handler_ptr handler_ptr = property_handler_ptr(new vector_property_handler(property,values,construction_factory)); property_handlers.insert(std::make_pair(property,handler_ptr)); } template -static void register_facets_property(std::map &property_handlers, const std::string &property, std::vector< boost::shared_ptr > &values, boost::shared_ptr& def, std::function >&, const config&)> construction_factory) +static void register_facets_property(std::map &property_handlers, const std::string &property, std::vector< std::shared_ptr > &values, std::shared_ptr& def, std::function >&, const config&)> construction_factory) { property_handler_ptr handler_ptr = property_handler_ptr(new facets_property_handler(property,values,def,construction_factory)); property_handlers.insert(std::make_pair(property,handler_ptr)); } template -static void register_aspect_property(std::map &property_handlers, const std::string &property, std::map< std::string, boost::shared_ptr > &aspects, std::function >&, const config&, std::string)> construction_factory) +static void register_aspect_property(std::map &property_handlers, const std::string &property, std::map< std::string, std::shared_ptr > &aspects, std::function >&, const config&, std::string)> construction_factory) { property_handler_ptr handler_ptr = property_handler_ptr(new aspect_property_handler(property,aspects,construction_factory)); property_handlers.insert(std::make_pair(property,handler_ptr)); diff --git a/src/ai/composite/rca.hpp b/src/ai/composite/rca.hpp index 3911afa5e0663..1de9ea9f84967 100644 --- a/src/ai/composite/rca.hpp +++ b/src/ai/composite/rca.hpp @@ -145,14 +145,14 @@ class candidate_action : public virtual rca_context_proxy, public component { }; -typedef boost::shared_ptr candidate_action_ptr; +typedef std::shared_ptr candidate_action_ptr; class candidate_action_factory; class candidate_action_factory{ bool is_duplicate(const std::string &name); public: - typedef boost::shared_ptr< candidate_action_factory > factory_ptr; + typedef std::shared_ptr< candidate_action_factory > factory_ptr; typedef std::map factory_map; typedef std::pair factory_map_pair; diff --git a/src/ai/composite/stage.hpp b/src/ai/composite/stage.hpp index 4ba7c850ebf31..20e10f191a28c 100644 --- a/src/ai/composite/stage.hpp +++ b/src/ai/composite/stage.hpp @@ -101,7 +101,7 @@ class idle_stage : public stage { class stage_factory{ bool is_duplicate(const std::string &name); public: - typedef boost::shared_ptr< stage_factory > factory_ptr; + typedef std::shared_ptr< stage_factory > factory_ptr; typedef std::map factory_map; typedef std::pair factory_map_pair; diff --git a/src/ai/contexts.cpp b/src/ai/contexts.cpp index 42b79ce33c72d..8873a89d50961 100644 --- a/src/ai/contexts.cpp +++ b/src/ai/contexts.cpp @@ -179,9 +179,9 @@ synced_command_result_ptr readonly_context_impl::check_synced_command_action(con template -void readonly_context_impl::add_known_aspect(const std::string &name, boost::shared_ptr< typesafe_aspect > &where) +void readonly_context_impl::add_known_aspect(const std::string &name, std::shared_ptr< typesafe_aspect > &where) { - boost::shared_ptr< typesafe_known_aspect > ka_ptr(new typesafe_known_aspect(name,where,aspects_)); + std::shared_ptr< typesafe_known_aspect > ka_ptr(new typesafe_known_aspect(name,where,aspects_)); known_aspects_.insert(make_pair(name,ka_ptr)); } diff --git a/src/ai/contexts.hpp b/src/ai/contexts.hpp index 0aa14225a8671..c0368cd7b81f0 100644 --- a/src/ai/contexts.hpp +++ b/src/ai/contexts.hpp @@ -1498,7 +1498,7 @@ class readonly_context_impl : public virtual side_context_proxy, public readonly private: template - void add_known_aspect(const std::string &name, boost::shared_ptr< typesafe_aspect >& where); + void add_known_aspect(const std::string &name, std::shared_ptr< typesafe_aspect >& where); const config cfg_; diff --git a/src/ai/default/aspect_attacks.cpp b/src/ai/default/aspect_attacks.cpp index 7e19d5ff5285d..4475411cdf697 100644 --- a/src/ai/default/aspect_attacks.cpp +++ b/src/ai/default/aspect_attacks.cpp @@ -70,14 +70,14 @@ void aspect_attacks_base::recalculate() const this->valid_ = true; } -boost::shared_ptr aspect_attacks_base::analyze_targets() const +std::shared_ptr aspect_attacks_base::analyze_targets() const { const move_map& srcdst = get_srcdst(); const move_map& dstsrc = get_dstsrc(); const move_map& enemy_srcdst = get_enemy_srcdst(); const move_map& enemy_dstsrc = get_enemy_dstsrc(); - boost::shared_ptr res(new attacks_vector()); + std::shared_ptr res(new attacks_vector()); unit_map& units_ = *resources::units; std::vector unit_locs; @@ -428,7 +428,7 @@ bool aspect_attacks::is_allowed_enemy(const unit& u) const } // end of namespace testing_ai_default -aspect_attacks_lua::aspect_attacks_lua(readonly_context &context, const config &cfg, const std::string &id, boost::shared_ptr& l_ctx) +aspect_attacks_lua::aspect_attacks_lua(readonly_context &context, const config &cfg, const std::string &id, std::shared_ptr& l_ctx) : aspect_attacks_base(context, cfg, id) , handler_(), code_(), params_(cfg.child_or_empty("args")) { @@ -446,7 +446,7 @@ aspect_attacks_lua::aspect_attacks_lua(readonly_context &context, const config & // error return; } - handler_ = boost::shared_ptr(resources::lua_kernel->create_lua_ai_action_handler(code_.c_str(), *l_ctx)); + handler_ = std::shared_ptr(resources::lua_kernel->create_lua_ai_action_handler(code_.c_str(), *l_ctx)); } void aspect_attacks_lua::recalculate() const diff --git a/src/ai/default/aspect_attacks.hpp b/src/ai/default/aspect_attacks.hpp index e02e9da82be93..75dc4adb3954e 100644 --- a/src/ai/default/aspect_attacks.hpp +++ b/src/ai/default/aspect_attacks.hpp @@ -50,7 +50,7 @@ class aspect_attacks_base : public typesafe_aspect { protected: - boost::shared_ptr analyze_targets() const; + std::shared_ptr analyze_targets() const; void do_attack_analysis(const map_location& loc, const move_map& srcdst, const move_map& dstsrc, @@ -73,20 +73,20 @@ class aspect_attacks : public aspect_attacks_base { virtual bool is_allowed_enemy(const unit& u) const; virtual config to_config() const; private: - boost::shared_ptr filter_own_, filter_enemy_; + std::shared_ptr filter_own_, filter_enemy_; }; } // end of namespace testing_ai_default struct aspect_attacks_lua_filter { lua_State* lua; - boost::shared_ptr filter_own_, filter_enemy_; + std::shared_ptr filter_own_, filter_enemy_; int ref_own_, ref_enemy_; }; class aspect_attacks_lua : public ai_default_rca::aspect_attacks_base { public: - aspect_attacks_lua(readonly_context &context, const config &cfg, const std::string &id, boost::shared_ptr& l_ctx); + aspect_attacks_lua(readonly_context &context, const config &cfg, const std::string &id, std::shared_ptr& l_ctx); virtual ~aspect_attacks_lua() {} virtual bool is_allowed_attacker(const unit& u) const; @@ -94,8 +94,8 @@ class aspect_attacks_lua : public ai_default_rca::aspect_attacks_base { virtual config to_config() const; virtual void recalculate() const; private: - boost::shared_ptr handler_; - mutable boost::shared_ptr > obj_; + std::shared_ptr handler_; + mutable std::shared_ptr > obj_; std::string code_; const config params_; }; diff --git a/src/ai/default/recruitment.cpp b/src/ai/default/recruitment.cpp index ca9d54257e045..3d66313bd59d7 100644 --- a/src/ai/default/recruitment.cpp +++ b/src/ai/default/recruitment.cpp @@ -1122,17 +1122,17 @@ void recruitment::simulate_attack( const std::vector attacker_weapons = attacker->attacks(); const std::vector defender_weapons = defender->attacks(); - boost::shared_ptr best_att_attack; + std::shared_ptr best_att_attack; // Let attacker choose weapon for (const attack_type& att_weapon : attacker_weapons) { - boost::shared_ptr best_def_response; + std::shared_ptr best_def_response; // Let defender choose weapon for (const attack_type& def_weapon : defender_weapons) { if (att_weapon.range() != def_weapon.range()) { continue; } - boost::shared_ptr simulation(new attack_simulation( + std::shared_ptr simulation(new attack_simulation( attacker, defender, attacker_defense, defender_defense, &att_weapon, &def_weapon, average_lawful_bonus_)); @@ -1802,9 +1802,9 @@ recruitment_aspect::recruitment_aspect(readonly_context &context, const config & for (config lim : parsed_cfg.child_range("limit")) { create_limit(limits_, lim); } - std::function >&, const config&)> factory_jobs = + std::function >&, const config&)> factory_jobs = std::bind(&recruitment_aspect::create_job,*this,_1,_2); - std::function >&, const config&)> factory_limits = + std::function >&, const config&)> factory_limits = std::bind(&recruitment_aspect::create_limit,*this,_1,_2); register_vector_property(property_handlers(), "recruit", jobs_, factory_jobs); register_vector_property(property_handlers(), "limit", limits_, factory_limits); @@ -1812,18 +1812,18 @@ recruitment_aspect::recruitment_aspect(readonly_context &context, const config & void recruitment_aspect::recalculate() const { config cfg; - for (const boost::shared_ptr& job : jobs_) { + for (const std::shared_ptr& job : jobs_) { cfg.add_child("recruit", job->to_config()); } - for (const boost::shared_ptr& lim : limits_) { + for (const std::shared_ptr& lim : limits_) { cfg.add_child("limit", lim->to_config()); } *this->value_ = cfg; this->valid_ = true; } -void recruitment_aspect::create_job(std::vector > &jobs, const config &job) { - boost::shared_ptr job_ptr(new recruit_job( +void recruitment_aspect::create_job(std::vector > &jobs, const config &job) { + std::shared_ptr job_ptr(new recruit_job( utils::split(job["type"]), job["leader_id"], job["id"], job["number"].to_int(-1), job["importance"].to_int(1), @@ -1834,8 +1834,8 @@ void recruitment_aspect::create_job(std::vector > jobs.push_back(job_ptr); } -void recruitment_aspect::create_limit(std::vector > &limits, const config &lim) { - boost::shared_ptr lim_ptr(new recruit_limit( +void recruitment_aspect::create_limit(std::vector > &limits, const config &lim) { + std::shared_ptr lim_ptr(new recruit_limit( utils::split(lim["type"]), lim["id"], lim["max"].to_int(0) diff --git a/src/ai/default/recruitment.hpp b/src/ai/default/recruitment.hpp index dae40729bc464..192086a175510 100644 --- a/src/ai/default/recruitment.hpp +++ b/src/ai/default/recruitment.hpp @@ -172,13 +172,13 @@ struct recruit_limit : public component { }; class recruitment_aspect : public standard_aspect { - std::vector > jobs_; - std::vector > limits_; + std::vector > jobs_; + std::vector > limits_; public: recruitment_aspect(readonly_context &context, const config &cfg, const std::string &id); void recalculate() const; - void create_job(std::vector > &jobs, const config &job); - void create_limit(std::vector > &limits, const config &lim); + void create_job(std::vector > &jobs, const config &job); + void create_limit(std::vector > &limits, const config &lim); }; typedef std::map > table_row; diff --git a/src/ai/formula/ai.cpp b/src/ai/formula/ai.cpp index 1d893af90c6c0..2e6f7eef11863 100644 --- a/src/ai/formula/ai.cpp +++ b/src/ai/formula/ai.cpp @@ -113,7 +113,6 @@ formula_ai::formula_ai(readonly_context &context, const config &cfg) vars_(), function_table_(*this) { - add_ref(); init_readonly_context_proxy(context); LOG_AI << "creating new formula ai"<< std::endl; } @@ -168,7 +167,6 @@ std::string formula_ai::evaluate(const std::string& formula_str) game_logic::formula f(formula_str, &function_table_); game_logic::map_formula_callable callable(this); - callable.add_ref(); //formula_debugger fdb; const variant v = f.evaluate(callable,nullptr); @@ -532,7 +530,6 @@ variant formula_ai::execute_variant(const variant& var, ai_context &ai_, bool co */ game_logic::map_formula_callable callable(this); - callable.add_ref(); if(error != variant()) callable.add("error", error); @@ -935,7 +932,6 @@ bool formula_ai::can_reach_unit(map_location unit_A, map_location unit_B) const void formula_ai::on_create(){ //make sure we don't run out of refcount - vars_.add_ref(); for(const config &func : cfg_.child_range("function")) { @@ -979,7 +975,6 @@ void formula_ai::evaluate_candidate_action(ca_ptr fai_ca) bool formula_ai::execute_candidate_action(ca_ptr fai_ca) { game_logic::map_formula_callable callable(this); - callable.add_ref(); fai_ca->update_callable_map( callable ); const_formula_ptr move_formula(fai_ca->get_action()); return !make_action(move_formula, callable).is_empty(); diff --git a/src/ai/formula/candidates.cpp b/src/ai/formula/candidates.cpp index dce69dd9e9cc1..1e91a528f31da 100644 --- a/src/ai/formula/candidates.cpp +++ b/src/ai/formula/candidates.cpp @@ -77,7 +77,6 @@ candidate_action_with_filters::candidate_action_with_filters( variant candidate_action_with_filters::do_filtering(ai::formula_ai* ai, variant& input, game_logic::const_formula_ptr formula) { game_logic::map_formula_callable callable(static_cast(ai)); - callable.add_ref(); callable.add("input", input); return formula::evaluate(formula, callable); @@ -123,7 +122,6 @@ void move_candidate_action::evaluate(ai::formula_ai* ai, unit_map& units) for(variant_iterator i = filtered_units.begin() ; i != filtered_units.end() ; ++i) { game_logic::map_formula_callable callable(static_cast(ai)); - callable.add_ref(); callable.add("me", *i); int res = execute_formula(eval_, callable, ai); @@ -227,7 +225,6 @@ void attack_candidate_action::evaluate(ai::formula_ai* ai, unit_map& units) if( ai->can_reach_unit( my_unit_callalbe->get_location(), enemy_units_flt[enemy_unit]->get_location() )) { game_logic::map_formula_callable callable(static_cast(ai)); - callable.add_ref(); callable.add("me", filtered_my_units[my_unit]); callable.add("target", filtered_enemy_units[enemy_unit]); diff --git a/src/ai/formula/candidates.hpp b/src/ai/formula/candidates.hpp index d065315c560f6..0c0bce5453f2a 100644 --- a/src/ai/formula/candidates.hpp +++ b/src/ai/formula/candidates.hpp @@ -34,7 +34,7 @@ namespace game_logic { class base_candidate_action; typedef std::map< std::string, game_logic::const_formula_ptr > candidate_action_filters; -typedef boost::shared_ptr candidate_action_ptr; +typedef std::shared_ptr candidate_action_ptr; //every new candidate action type should be derived from this class //and should complete evaluate and update_callable_map methods diff --git a/src/ai/formula/engine_fai.hpp b/src/ai/formula/engine_fai.hpp index 864bcae5e4f28..649d8c2458b8b 100644 --- a/src/ai/formula/engine_fai.hpp +++ b/src/ai/formula/engine_fai.hpp @@ -44,7 +44,7 @@ class engine_fai : public engine { virtual void set_ai_context(ai_context *context); private: - boost::shared_ptr formula_ai_; + std::shared_ptr formula_ai_; }; } //end of namespace ai diff --git a/src/ai/formula/stage_side_formulas.cpp b/src/ai/formula/stage_side_formulas.cpp index 73a2188aabbaf..fe6fc0860f476 100644 --- a/src/ai/formula/stage_side_formulas.cpp +++ b/src/ai/formula/stage_side_formulas.cpp @@ -46,7 +46,6 @@ stage_side_formulas::~stage_side_formulas() bool stage_side_formulas::do_play_stage() { game_logic::map_formula_callable callable(&fai_); - callable.add_ref(); try { if (move_formula_) { while( !fai_.make_action(move_formula_,callable).is_empty() ) { } diff --git a/src/ai/formula/stage_unit_formulas.cpp b/src/ai/formula/stage_unit_formulas.cpp index ea1bd6c2e06b2..30a06864104f6 100644 --- a/src/ai/formula/stage_unit_formulas.cpp +++ b/src/ai/formula/stage_unit_formulas.cpp @@ -66,7 +66,6 @@ bool stage_unit_formulas::do_play_stage() game_logic::const_formula_ptr priority_formula(fai_.create_optional_formula(i->formula_manager().get_priority_formula())); if (priority_formula) { game_logic::map_formula_callable callable(&fai_); - callable.add_ref(); callable.add("me", variant(new unit_callable(*i))); priority = (game_logic::formula::evaluate(priority_formula, callable)).as_int(); } else { @@ -100,7 +99,6 @@ bool stage_unit_formulas::do_play_stage() game_logic::const_formula_ptr formula(fai_.create_optional_formula(i->formula_manager().get_formula())); if (formula) { game_logic::map_formula_callable callable(&fai_); - callable.add_ref(); callable.add("me", variant(new unit_callable(*i))); fai_.make_action(formula, callable); } else { @@ -123,7 +121,6 @@ bool stage_unit_formulas::do_play_stage() game_logic::const_formula_ptr loop_formula(fai_.create_optional_formula(i->formula_manager().get_loop_formula())); if (loop_formula) { game_logic::map_formula_callable callable(&fai_); - callable.add_ref(); callable.add("me", variant(new unit_callable(*i))); while ( !fai_.make_action(loop_formula, callable).is_empty() && i.valid() ) { diff --git a/src/ai/game_info.hpp b/src/ai/game_info.hpp index 0720fe0144080..9af49f5bfc8be 100644 --- a/src/ai/game_info.hpp +++ b/src/ai/game_info.hpp @@ -51,7 +51,7 @@ typedef std::map moves_map; class ai_composite; -typedef boost::shared_ptr ai_ptr; +typedef std::shared_ptr ai_ptr; class attack_analysis; typedef std::vector attacks_vector; @@ -73,8 +73,8 @@ class typesafe_aspect; template struct aspect_type { - typedef boost::shared_ptr< typesafe_aspect > typesafe_ptr; - typedef std::vector< boost::shared_ptr< typesafe_aspect > > typesafe_ptr_vector; + typedef std::shared_ptr< typesafe_aspect > typesafe_ptr; + typedef std::vector< std::shared_ptr< typesafe_aspect > > typesafe_ptr_vector; }; template @@ -82,8 +82,8 @@ class typesafe_known_aspect; template struct known_aspect_type { - typedef boost::shared_ptr< typesafe_known_aspect > typesafe_ptr; - typedef std::vector< boost::shared_ptr< typesafe_known_aspect > > typesafe_ptr_vector; + typedef std::shared_ptr< typesafe_known_aspect > typesafe_ptr; + typedef std::vector< std::shared_ptr< typesafe_known_aspect > > typesafe_ptr_vector; }; class action_result; @@ -95,21 +95,21 @@ class move_and_attack_result; class stopunit_result; class synced_command_result; -typedef boost::shared_ptr action_result_ptr; -typedef boost::shared_ptr attack_result_ptr; -typedef boost::shared_ptr recall_result_ptr; -typedef boost::shared_ptr recruit_result_ptr; -typedef boost::shared_ptr move_result_ptr; -typedef boost::shared_ptr move_and_attack_result_ptr; -typedef boost::shared_ptr stopunit_result_ptr; -typedef boost::shared_ptr synced_command_result_ptr; - -typedef boost::shared_ptr< aspect > aspect_ptr; -typedef boost::shared_ptr< candidate_action > candidate_action_ptr; -typedef boost::shared_ptr< engine > engine_ptr; -typedef boost::shared_ptr< goal > goal_ptr; -typedef boost::shared_ptr< known_aspect > known_aspect_ptr; -typedef boost::shared_ptr< stage > stage_ptr; +typedef std::shared_ptr action_result_ptr; +typedef std::shared_ptr attack_result_ptr; +typedef std::shared_ptr recall_result_ptr; +typedef std::shared_ptr recruit_result_ptr; +typedef std::shared_ptr move_result_ptr; +typedef std::shared_ptr move_and_attack_result_ptr; +typedef std::shared_ptr stopunit_result_ptr; +typedef std::shared_ptr synced_command_result_ptr; + +typedef std::shared_ptr< aspect > aspect_ptr; +typedef std::shared_ptr< candidate_action > candidate_action_ptr; +typedef std::shared_ptr< engine > engine_ptr; +typedef std::shared_ptr< goal > goal_ptr; +typedef std::shared_ptr< known_aspect > known_aspect_ptr; +typedef std::shared_ptr< stage > stage_ptr; typedef std::map aspect_map; typedef std::map known_aspect_map; diff --git a/src/ai/lua/core.cpp b/src/ai/lua/core.cpp index b9036768c8f4b..ed8257f820318 100644 --- a/src/ai/lua/core.cpp +++ b/src/ai/lua/core.cpp @@ -780,7 +780,7 @@ static int cfun_ai_recalculate_move_maps_enemy(lua_State *L) template typesafe_aspect* try_aspect_as(aspect_ptr p) { - return boost::dynamic_pointer_cast >(p).get(); + return std::dynamic_pointer_cast >(p).get(); } static int impl_ai_aspect_get(lua_State* L) diff --git a/src/ai/lua/core.hpp b/src/ai/lua/core.hpp index 674aac044091b..87a794310983f 100644 --- a/src/ai/lua/core.hpp +++ b/src/ai/lua/core.hpp @@ -27,7 +27,7 @@ namespace ai { class engine_lua; class lua_object_base; -typedef boost::shared_ptr lua_object_ptr; +typedef std::shared_ptr lua_object_ptr; /** * Proxy table for the AI context diff --git a/src/ai/lua/engine_lua.cpp b/src/ai/lua/engine_lua.cpp index 33df0bdf9e7e9..c80de1f5309f6 100644 --- a/src/ai/lua/engine_lua.cpp +++ b/src/ai/lua/engine_lua.cpp @@ -50,7 +50,7 @@ static lg::log_domain log_ai_engine_lua("ai/engine/lua"); #pragma warning(disable:4250) #endif -typedef boost::shared_ptr< lua_object > lua_int_obj; +typedef std::shared_ptr< lua_object > lua_int_obj; class lua_candidate_action_wrapper_base : public candidate_action { @@ -73,7 +73,7 @@ class lua_candidate_action_wrapper_base : public candidate_action { return BAD_SCORE; } - boost::shared_ptr result = l_obj->get(); + std::shared_ptr result = l_obj->get(); return result ? *result : 0.0; } @@ -93,8 +93,8 @@ class lua_candidate_action_wrapper_base : public candidate_action { } protected: - boost::shared_ptr evaluation_action_handler_; - boost::shared_ptr execution_action_handler_; + std::shared_ptr evaluation_action_handler_; + std::shared_ptr execution_action_handler_; config serialized_evaluation_state_; }; @@ -104,8 +104,8 @@ class lua_candidate_action_wrapper : public lua_candidate_action_wrapper_base { lua_candidate_action_wrapper( rca_context &context, const config &cfg, lua_ai_context &lua_ai_ctx) : lua_candidate_action_wrapper_base(context,cfg),evaluation_(cfg["evaluation"]),execution_(cfg["execution"]) { - evaluation_action_handler_ = boost::shared_ptr(resources::lua_kernel->create_lua_ai_action_handler(evaluation_.c_str(),lua_ai_ctx)); - execution_action_handler_ = boost::shared_ptr(resources::lua_kernel->create_lua_ai_action_handler(execution_.c_str(),lua_ai_ctx)); + evaluation_action_handler_ = std::shared_ptr(resources::lua_kernel->create_lua_ai_action_handler(evaluation_.c_str(),lua_ai_ctx)); + execution_action_handler_ = std::shared_ptr(resources::lua_kernel->create_lua_ai_action_handler(execution_.c_str(),lua_ai_ctx)); } virtual ~lua_candidate_action_wrapper() {} @@ -137,8 +137,8 @@ class lua_candidate_action_wrapper_external : public lua_candidate_action_wrappe std::string exec_code; generate_code(eval_code, exec_code); - evaluation_action_handler_ = boost::shared_ptr(resources::lua_kernel->create_lua_ai_action_handler(eval_code.c_str(),lua_ai_ctx)); - execution_action_handler_ = boost::shared_ptr(resources::lua_kernel->create_lua_ai_action_handler(exec_code.c_str(),lua_ai_ctx)); + evaluation_action_handler_ = std::shared_ptr(resources::lua_kernel->create_lua_ai_action_handler(eval_code.c_str(),lua_ai_ctx)); + execution_action_handler_ = std::shared_ptr(resources::lua_kernel->create_lua_ai_action_handler(exec_code.c_str(),lua_ai_ctx)); } virtual ~lua_candidate_action_wrapper_external() {} @@ -211,7 +211,7 @@ class lua_stage_wrapper : public stage { lua_stage_wrapper( ai_context &context, const config &cfg, lua_ai_context &lua_ai_ctx ) : stage(context,cfg),action_handler_(),code_(cfg["code"]),serialized_evaluation_state_(cfg.child_or_empty("args")) { - action_handler_ = boost::shared_ptr(resources::lua_kernel->create_lua_ai_action_handler(code_.c_str(),lua_ai_ctx)); + action_handler_ = std::shared_ptr(resources::lua_kernel->create_lua_ai_action_handler(code_.c_str(),lua_ai_ctx)); } virtual ~lua_stage_wrapper() @@ -238,7 +238,7 @@ class lua_stage_wrapper : public stage { return cfg; } private: - boost::shared_ptr action_handler_; + std::shared_ptr action_handler_; std::string code_; config serialized_evaluation_state_; }; diff --git a/src/ai/lua/engine_lua.hpp b/src/ai/lua/engine_lua.hpp index 40c6dd5fe6ea6..df59ba43ea742 100644 --- a/src/ai/lua/engine_lua.hpp +++ b/src/ai/lua/engine_lua.hpp @@ -84,7 +84,7 @@ class engine_lua : public engine { std::string code_; //There is one lua engine per AI. So, it can hold state - boost::shared_ptr lua_ai_context_; + std::shared_ptr lua_ai_context_; std::string get_engine_code(const config&) const; diff --git a/src/ai/lua/lua_object.cpp b/src/ai/lua/lua_object.cpp index 554c63d9db7f0..0abaa874aaa29 100644 --- a/src/ai/lua/lua_object.cpp +++ b/src/ai/lua/lua_object.cpp @@ -39,9 +39,9 @@ namespace ai { template class lua_object; template <> - boost::shared_ptr lua_object::to_type(lua_State *L, int n) + std::shared_ptr lua_object::to_type(lua_State *L, int n) { - boost::shared_ptr att(new aspect_attacks_lua_filter); + std::shared_ptr att(new aspect_attacks_lua_filter); att->lua = nullptr; att->ref_own_ = att->ref_enemy_ = -1; if(!lua_istable(L, n)) { diff --git a/src/ai/lua/lua_object.hpp b/src/ai/lua/lua_object.hpp index 6d90b0a46c3ed..b0ddfe0441a3c 100644 --- a/src/ai/lua/lua_object.hpp +++ b/src/ai/lua/lua_object.hpp @@ -62,55 +62,55 @@ class lua_object : public lua_object_base // empty } - boost::shared_ptr get() + std::shared_ptr get() { return value_; } void store(lua_State* L, int n) { - this->value_ = boost::shared_ptr(to_type(L, lua_absindex(L, n))); + this->value_ = std::shared_ptr(to_type(L, lua_absindex(L, n))); } protected: // A group of functions that deal with the translation of the results to C++ - boost::shared_ptr to_type(lua_State *, int) + std::shared_ptr to_type(lua_State *, int) { - return boost::shared_ptr(); + return std::shared_ptr(); } - boost::shared_ptr value_; + std::shared_ptr value_; }; template <> -inline boost::shared_ptr lua_object::to_type(lua_State *L, int n) +inline std::shared_ptr lua_object::to_type(lua_State *L, int n) { - return boost::shared_ptr(new double(lua_tonumber(L, n))); + return std::shared_ptr(new double(lua_tonumber(L, n))); } template <> -inline boost::shared_ptr lua_object::to_type(lua_State *L, int n) +inline std::shared_ptr lua_object::to_type(lua_State *L, int n) { - return boost::shared_ptr(new std::string(lua_tostring(L, n))); + return std::shared_ptr(new std::string(lua_tostring(L, n))); } template <> -inline boost::shared_ptr lua_object::to_type(lua_State *L, int n) +inline std::shared_ptr lua_object::to_type(lua_State *L, int n) { - return boost::shared_ptr(new bool(luaW_toboolean(L, n))); + return std::shared_ptr(new bool(luaW_toboolean(L, n))); } template <> -inline boost::shared_ptr lua_object::to_type(lua_State *L, int n) +inline std::shared_ptr lua_object::to_type(lua_State *L, int n) { - return boost::shared_ptr(new int(lua_tointeger(L, n))); + return std::shared_ptr(new int(lua_tointeger(L, n))); } template <> -inline boost::shared_ptr< std::vector > lua_object< std::vector >::to_type(lua_State *L, int n) +inline std::shared_ptr< std::vector > lua_object< std::vector >::to_type(lua_State *L, int n) { - boost::shared_ptr< std::vector > v = boost::shared_ptr< std::vector >(new std::vector()); + std::shared_ptr< std::vector > v = std::shared_ptr< std::vector >(new std::vector()); int l = lua_rawlen(L, n); for (int i = 1; i < l + 1; ++i) { @@ -125,30 +125,30 @@ inline boost::shared_ptr< std::vector > lua_object< std::vector -inline boost::shared_ptr lua_object::to_type(lua_State *L, int n) +inline std::shared_ptr lua_object::to_type(lua_State *L, int n) { - boost::shared_ptr cfg = boost::shared_ptr(new config()); + std::shared_ptr cfg = std::shared_ptr(new config()); luaW_toconfig(L, n, *cfg); return cfg; } template <> -inline boost::shared_ptr lua_object::to_type(lua_State *L, int n) +inline std::shared_ptr lua_object::to_type(lua_State *L, int n) { - boost::shared_ptr cfg = boost::shared_ptr(new config()); - boost::shared_ptr vcfg = boost::shared_ptr(new vconfig(*cfg)); + std::shared_ptr cfg = std::shared_ptr(new config()); + std::shared_ptr vcfg = std::shared_ptr(new vconfig(*cfg)); if (!luaW_tovconfig(L, n, *vcfg)) { cfg->add_child("not"); } vcfg->make_safe(); - boost::shared_ptr tf(new terrain_filter(*vcfg, resources::filter_con)); + std::shared_ptr tf(new terrain_filter(*vcfg, resources::filter_con)); return tf; } template <> -inline boost::shared_ptr > lua_object< std::vector >::to_type(lua_State *L, int n) +inline std::shared_ptr > lua_object< std::vector >::to_type(lua_State *L, int n) { - boost::shared_ptr > targets = boost::shared_ptr >(new std::vector()); + std::shared_ptr > targets = std::shared_ptr >(new std::vector()); std::back_insert_iterator< std::vector > tg(*targets); int l = lua_rawlen(L, n); @@ -195,16 +195,16 @@ inline boost::shared_ptr > lua_object< std::vector > } template <> -inline boost::shared_ptr lua_object::to_type(lua_State *L, int n) +inline std::shared_ptr lua_object::to_type(lua_State *L, int n) { - boost::shared_ptr uaa = boost::shared_ptr(new unit_advancements_aspect(L, n)); + std::shared_ptr uaa = std::shared_ptr(new unit_advancements_aspect(L, n)); return uaa; } // This one is too complex to define in the header. struct aspect_attacks_lua_filter; template <> -boost::shared_ptr lua_object::to_type(lua_State *L, int n); +std::shared_ptr lua_object::to_type(lua_State *L, int n); } // end of namespace ai diff --git a/src/ai/manager.cpp b/src/ai/manager.cpp index 879331f7b3df3..047fd71d57a86 100644 --- a/src/ai/manager.cpp +++ b/src/ai/manager.cpp @@ -101,7 +101,7 @@ void holder::init( side_number side ) default_ai_context_ = new default_ai_context_impl(*readwrite_context_,cfg_); } if (!this->ai_){ - ai_ = boost::shared_ptr(new ai_composite(*default_ai_context_,cfg_)); + ai_ = std::shared_ptr(new ai_composite(*default_ai_context_,cfg_)); } if (this->ai_) { diff --git a/src/ai/manager.hpp b/src/ai/manager.hpp index 72757870aebb9..7f49006a2e4cf 100644 --- a/src/ai/manager.hpp +++ b/src/ai/manager.hpp @@ -45,7 +45,7 @@ namespace events { class observer; } namespace ai { -typedef boost::shared_ptr composite_ai_ptr; +typedef std::shared_ptr composite_ai_ptr; /** * Base class that holds the AI and current AI parameters. diff --git a/src/campaign_server/campaign_server.hpp b/src/campaign_server/campaign_server.hpp index 92492a56318a4..8735d4db45304 100644 --- a/src/campaign_server/campaign_server.hpp +++ b/src/campaign_server/campaign_server.hpp @@ -87,7 +87,7 @@ class server : private boost::noncopyable bool read_only_; int compress_level_; /**< Used for add-on archives. */ - boost::scoped_ptr input_; /**< Server control socket. */ + std::unique_ptr input_; /**< Server control socket. */ std::map hooks_; request_handlers_table handlers_; diff --git a/src/config_cache.hpp b/src/config_cache.hpp index dbcc9f77b06bc..3c512c670cca1 100644 --- a/src/config_cache.hpp +++ b/src/config_cache.hpp @@ -256,7 +256,7 @@ class fake_transaction : private boost::noncopyable { friend class config_cache; - typedef boost::scoped_ptr value_type; + typedef std::unique_ptr value_type; value_type trans_; fake_transaction() : trans_() diff --git a/src/dialogs.cpp b/src/dialogs.cpp index 2dc70633a90a7..47f7d18bbd091 100644 --- a/src/dialogs.cpp +++ b/src/dialogs.cpp @@ -91,13 +91,13 @@ namespace class delete_recall_unit : public gui::dialog_button_action { public: - delete_recall_unit(display& disp, gui::filter_textbox& filter, const boost::shared_ptr >& units) : disp_(disp), filter_(filter), units_(units) {} + delete_recall_unit(display& disp, gui::filter_textbox& filter, const std::shared_ptr >& units) : disp_(disp), filter_(filter), units_(units) {} private: gui::dialog_button_action::RESULT button_pressed(int menu_selection); display& disp_; gui::filter_textbox& filter_; - boost::shared_ptr > units_; + std::shared_ptr > units_; }; template void dump(const T & units) @@ -177,7 +177,7 @@ int advance_unit_dialog(const map_location &loc) std::vector lang_options; - boost::shared_ptr > sample_units(boost::make_shared >()); + std::shared_ptr > sample_units(std::make_shared >()); for(std::vector::const_iterator op = options.begin(); op != options.end(); ++op) { sample_units->push_back(::get_advanced_unit(*u, *op)); const unit& type = *sample_units->back(); @@ -312,7 +312,7 @@ void show_unit_list(display& gui) items.push_back(heading); std::vector locations_list; - boost::shared_ptr > units_list = boost::make_shared >(); + std::shared_ptr > units_list = std::make_shared >(); int selected = 0; @@ -461,9 +461,9 @@ int recruit_dialog(display& disp, std::vector< const unit_type* >& units, const #ifdef LOW_MEM -int recall_dialog(display& disp, const boost::shared_ptr > & units, int /*side*/, const std::string& title_suffix, const int team_recall_cost) +int recall_dialog(display& disp, const std::shared_ptr > & units, int /*side*/, const std::string& title_suffix, const int team_recall_cost) #else -int recall_dialog(display& disp, const boost::shared_ptr > & units, int side, const std::string& title_suffix, const int team_recall_cost) +int recall_dialog(display& disp, const std::shared_ptr > & units, int side, const std::string& title_suffix, const int team_recall_cost) #endif { std::vector options, options_to_filter; @@ -980,11 +980,11 @@ void unit_preview_pane::draw_contents() units_list_preview_pane::units_list_preview_pane(unit_const_ptr u, TYPE type, bool on_left_side) : unit_preview_pane(nullptr, type, on_left_side), - units_(boost::make_shared >(1, u)) + units_(std::make_shared >(1, u)) { } -units_list_preview_pane::units_list_preview_pane(const boost::shared_ptr > &units, +units_list_preview_pane::units_list_preview_pane(const std::shared_ptr > &units, const gui::filter_textbox* filter, TYPE type, bool on_left_side) : unit_preview_pane(filter, type, on_left_side), units_(units) diff --git a/src/dialogs.hpp b/src/dialogs.hpp index ac35495a6a51e..6efc90fc6666c 100644 --- a/src/dialogs.hpp +++ b/src/dialogs.hpp @@ -52,7 +52,7 @@ void show_unit_list(display& gui); int recruit_dialog(display& disp, std::vector& units, const std::vector& items, int side, const std::string& title_suffix); -int recall_dialog(display& disp, const boost::shared_ptr > & units, int side, const std::string& title_suffix, const int team_recall_cost); +int recall_dialog(display& disp, const std::shared_ptr > & units, int side, const std::string& title_suffix, const int team_recall_cost); /** Show unit-stats in a side-pane to unit-list, recall-list, etc. */ class unit_preview_pane : public gui::preview_pane @@ -108,7 +108,7 @@ class units_list_preview_pane : public dialogs::unit_preview_pane { public: units_list_preview_pane(unit_const_ptr u, TYPE type = SHOW_ALL, bool left_side = true); - units_list_preview_pane(const boost::shared_ptr > & units, + units_list_preview_pane(const std::shared_ptr > & units, const gui::filter_textbox *filter = nullptr, TYPE type = SHOW_ALL, bool left_side = true); @@ -117,7 +117,7 @@ class units_list_preview_pane : public dialogs::unit_preview_pane const details get_details() const; void process_event(); - boost::shared_ptr > units_; + std::shared_ptr > units_; }; diff --git a/src/display.cpp b/src/display.cpp index 4562d2757bd30..7bbe614e4ac89 100644 --- a/src/display.cpp +++ b/src/display.cpp @@ -144,7 +144,7 @@ void display::remove_single_overlay(const map_location& loc, const std::string& -display::display(const display_context * dc, CVideo& video, boost::weak_ptr wb, reports & reports_object, const config& theme_cfg, const config& level, bool auto_join) : +display::display(const display_context * dc, CVideo& video, std::weak_ptr wb, reports & reports_object, const config& theme_cfg, const config& level, bool auto_join) : video2::draw_layering(auto_join), dc_(dc), halo_man_(new halo::manager(*this)), @@ -393,7 +393,7 @@ void display::set_team(size_t teamindex, bool show_everything) dont_show_all_ = false; } labels().recalculate_labels(); - if(boost::shared_ptr w = wb_.lock()) + if(std::shared_ptr w = wb_.lock()) w->on_viewer_change(teamindex); } diff --git a/src/display.hpp b/src/display.hpp index fca6b5a90f1fa..427fa095406f2 100644 --- a/src/display.hpp +++ b/src/display.hpp @@ -78,7 +78,7 @@ class gamemap; class display : public filter_context, public video2::draw_layering { public: - display(const display_context * dc, CVideo& video, boost::weak_ptr wb, + display(const display_context * dc, CVideo& video, std::weak_ptr wb, reports & reports_object, const config& theme_cfg, const config& level, bool auto_join=true); virtual ~display(); @@ -661,8 +661,8 @@ class display : public filter_context, public video2::draw_layering protected: //TODO sort const display_context * dc_; - boost::scoped_ptr halo_man_; - boost::weak_ptr wb_; + std::unique_ptr halo_man_; + std::weak_ptr wb_; typedef std::map exclusive_unit_draw_requests_t; /// map of hexes where only one unit should be drawn, the one identified by the associated id string @@ -774,8 +774,8 @@ class display : public filter_context, public video2::draw_layering theme theme_; int zoom_; static int last_zoom_; - boost::scoped_ptr fake_unit_man_; - boost::scoped_ptr builder_; + std::unique_ptr fake_unit_man_; + std::unique_ptr builder_; surface minimap_; SDL_Rect minimap_location_; bool redrawMinimap_; @@ -787,7 +787,7 @@ class display : public filter_context, public video2::draw_layering double turbo_speed_; bool turbo_; bool invalidateGameStatus_; - boost::scoped_ptr map_labels_; + std::unique_ptr map_labels_; reports * reports_object_; /** Event raised when the map is being scrolled */ diff --git a/src/editor/controller/editor_controller.cpp b/src/editor/controller/editor_controller.cpp index 7fd5950f706f3..75433e78b1936 100644 --- a/src/editor/controller/editor_controller.cpp +++ b/src/editor/controller/editor_controller.cpp @@ -1197,7 +1197,7 @@ void editor_controller::export_selection_coords() void editor_controller::perform_delete(editor_action* action) { if (action) { - boost::scoped_ptr action_auto(action); + std::unique_ptr action_auto(action); context_manager_->get_map_context().perform_action(*action); } } @@ -1205,7 +1205,7 @@ void editor_controller::perform_delete(editor_action* action) void editor_controller::perform_refresh_delete(editor_action* action, bool drag_part /* =false */) { if (action) { - boost::scoped_ptr action_auto(action); + std::unique_ptr action_auto(action); context_manager_->perform_refresh(*action, drag_part); } } @@ -1255,7 +1255,7 @@ void editor_controller::mouse_motion(int x, int y, const bool /*browse*/, //last undo action and the controller shouldn't add //anything to the undo stack (hence a different perform_ call) if (a != nullptr) { - boost::scoped_ptr aa(a); + std::unique_ptr aa(a); if (partial) { context_manager_->get_map_context().perform_partial_action(*a); } else { diff --git a/src/editor/controller/editor_controller.hpp b/src/editor/controller/editor_controller.hpp index c2631ecfe9dea..6362f7608b0e9 100644 --- a/src/editor/controller/editor_controller.hpp +++ b/src/editor/controller/editor_controller.hpp @@ -226,10 +226,10 @@ class editor_controller : public controller_base, editor::menu_type active_menu_; /** Reports object. Must be initialized before the gui_ */ - boost::scoped_ptr reports_; + std::unique_ptr reports_; /** The display object used and owned by the editor. */ - boost::scoped_ptr gui_; + std::unique_ptr gui_; /** Pre-defined time of day lighting settings for the settings dialog */ typedef std::map > > tods_map; @@ -237,13 +237,13 @@ class editor_controller : public controller_base, /* managers */ public: - boost::scoped_ptr context_manager_; + std::unique_ptr context_manager_; private: - boost::scoped_ptr toolkit_; + std::unique_ptr toolkit_; tooltips::manager tooltip_manager_; - boost::scoped_ptr floating_label_manager_; + std::unique_ptr floating_label_manager_; - boost::scoped_ptr help_manager_; + std::unique_ptr help_manager_; /** Quit main loop flag */ bool do_quit_; diff --git a/src/editor/editor_display.cpp b/src/editor/editor_display.cpp index 7ecc29b3ae76a..d09a127526b75 100644 --- a/src/editor/editor_display.cpp +++ b/src/editor/editor_display.cpp @@ -57,7 +57,7 @@ const display_context * get_dummy_display_context() { editor_display::editor_display(const display_context * dc, CVideo& video, reports & reports_object, const config& theme_cfg, const config& level) - : display(dc, video, boost::shared_ptr(), reports_object, theme_cfg, level) + : display(dc, video, std::shared_ptr(), reports_object, theme_cfg, level) , brush_locations_() { clear_screen(); diff --git a/src/editor/map/context_manager.cpp b/src/editor/map/context_manager.cpp index e5f9259f76329..8cca680a6a3ea 100644 --- a/src/editor/map/context_manager.cpp +++ b/src/editor/map/context_manager.cpp @@ -1007,7 +1007,7 @@ void context_manager::switch_context(const int index, const bool force) void context_manager::replace_map_context(map_context* new_mc) { - boost::scoped_ptr del(map_contexts_[current_context_index_]); + std::unique_ptr del(map_contexts_[current_context_index_]); map_context_refresher mcr(*this, *new_mc); map_contexts_[current_context_index_] = new_mc; diff --git a/src/editor/map/editor_map.cpp b/src/editor/map/editor_map.cpp index 8858b9383fc81..afb428a34cc37 100644 --- a/src/editor/map/editor_map.cpp +++ b/src/editor/map/editor_map.cpp @@ -44,13 +44,13 @@ editor_map_load_exception wrap_exc(const char* type, const std::string& e_msg, c } editor_map::editor_map(const config& terrain_cfg) - : gamemap(boost::make_shared(terrain_cfg), "") + : gamemap(std::make_shared(terrain_cfg), "") , selection_() { } editor_map::editor_map(const config& terrain_cfg, const std::string& data) - : gamemap(boost::make_shared(terrain_cfg), data) + : gamemap(std::make_shared(terrain_cfg), data) , selection_() { sanity_check(); @@ -70,7 +70,7 @@ editor_map editor_map::from_string(const config& terrain_cfg, const std::string& } editor_map::editor_map(const config& terrain_cfg, size_t width, size_t height, const t_translation::t_terrain & filler) - : gamemap(boost::make_shared(terrain_cfg), t_translation::write_game_map( + : gamemap(std::make_shared(terrain_cfg), t_translation::write_game_map( t_translation::t_map(width + 2, t_translation::t_list(height + 2, filler)))) , selection_() { diff --git a/src/editor/map/map_context.cpp b/src/editor/map/map_context.cpp index 02f988ad1a463..fac45b988781c 100644 --- a/src/editor/map/map_context.cpp +++ b/src/editor/map/map_context.cpp @@ -692,7 +692,7 @@ void map_context::partial_undo() } //a partial undo performs the first action form the current action's action_chain that would be normally performed //i.e. the *first* one. - boost::scoped_ptr first_action_in_chain(undo_chain->pop_first_action()); + std::unique_ptr first_action_in_chain(undo_chain->pop_first_action()); if (undo_chain->empty()) { actions_since_save_--; delete undo_chain; @@ -727,7 +727,7 @@ void map_context::clear_stack(action_stack& stack) void map_context::perform_action_between_stacks(action_stack& from, action_stack& to) { assert(!from.empty()); - boost::scoped_ptr action(from.back()); + std::unique_ptr action(from.back()); from.pop_back(); editor_action* reverse_action = action->perform(*this); to.push_back(reverse_action); diff --git a/src/editor/map/map_context.hpp b/src/editor/map/map_context.hpp index 7e55270d7697a..dc1e472c0876e 100644 --- a/src/editor/map/map_context.hpp +++ b/src/editor/map/map_context.hpp @@ -486,7 +486,7 @@ class map_context : public display_context, private boost::noncopyable unit_map units_; std::vector teams_; std::vector lbl_categories_; - boost::scoped_ptr tod_manager_; + std::unique_ptr tod_manager_; mp_game_settings mp_settings_; game_classification game_classification_; diff --git a/src/editor/palette/palette_manager.hpp b/src/editor/palette/palette_manager.hpp index dd41fdee81e21..93a4cd660a1d2 100644 --- a/src/editor/palette/palette_manager.hpp +++ b/src/editor/palette/palette_manager.hpp @@ -80,11 +80,11 @@ class palette_manager : public gui::widget { public: - boost::scoped_ptr terrain_palette_; - boost::scoped_ptr unit_palette_; - boost::scoped_ptr empty_palette_; - boost::scoped_ptr item_palette_; - boost::scoped_ptr location_palette_; + std::unique_ptr terrain_palette_; + std::unique_ptr unit_palette_; + std::unique_ptr empty_palette_; + std::unique_ptr item_palette_; + std::unique_ptr location_palette_; }; } diff --git a/src/editor/toolkit/editor_toolkit.hpp b/src/editor/toolkit/editor_toolkit.hpp index 26ab4961c1fa4..c07f2c6354599 100644 --- a/src/editor/toolkit/editor_toolkit.hpp +++ b/src/editor/toolkit/editor_toolkit.hpp @@ -87,7 +87,7 @@ class editor_toolkit { const CKey& key_; - boost::scoped_ptr palette_manager_; + std::unique_ptr palette_manager_; //Tools diff --git a/src/formula/callable.hpp b/src/formula/callable.hpp index 4169bb0fddbcc..b0b17ab666f62 100644 --- a/src/formula/callable.hpp +++ b/src/formula/callable.hpp @@ -31,7 +31,7 @@ struct formula_input { }; //interface for objects that can have formulae run on them -class formula_callable : public reference_counted_object { +class formula_callable { public: explicit formula_callable(bool has_self=true) : type_(FORMULA_C), has_self_(has_self) {} @@ -102,14 +102,6 @@ class formula_callable : public reference_counted_object { bool has_self_; }; -class formula_callable_no_ref_count : public formula_callable { -public: - formula_callable_no_ref_count() { - turn_reference_counting_off(); - } - virtual ~formula_callable_no_ref_count() {} -}; - class formula_callable_with_backup : public formula_callable { const formula_callable& main_; const formula_callable& backup_; @@ -173,8 +165,8 @@ class map_formula_callable : public formula_callable { const formula_callable* fallback_; }; -typedef boost::intrusive_ptr map_formula_callable_ptr; -typedef boost::intrusive_ptr const_map_formula_callable_ptr; +typedef std::shared_ptr map_formula_callable_ptr; +typedef std::shared_ptr const_map_formula_callable_ptr; } diff --git a/src/formula/callable_fwd.hpp b/src/formula/callable_fwd.hpp index 61e658bab0f46..47eabb6f2044d 100644 --- a/src/formula/callable_fwd.hpp +++ b/src/formula/callable_fwd.hpp @@ -21,8 +21,8 @@ namespace game_logic { class formula_callable; class formula_debugger; -typedef boost::intrusive_ptr formula_callable_ptr; -typedef boost::intrusive_ptr const_formula_callable_ptr; +typedef std::shared_ptr formula_callable_ptr; +typedef std::shared_ptr const_formula_callable_ptr; } diff --git a/src/formula/debugger_fwd.hpp b/src/formula/debugger_fwd.hpp index 3949f8d1760f6..7a72db07caaaf 100644 --- a/src/formula/debugger_fwd.hpp +++ b/src/formula/debugger_fwd.hpp @@ -39,7 +39,7 @@ class formula_callable; class base_breakpoint; -typedef boost::shared_ptr breakpoint_ptr; +typedef std::shared_ptr breakpoint_ptr; formula_debugger* add_debug_info(formula_debugger *fdb, int arg_number, const std::string& f_name); diff --git a/src/formula/formula.cpp b/src/formula/formula.cpp index 91adcc85b9c65..7d0b61607ca34 100644 --- a/src/formula/formula.cpp +++ b/src/formula/formula.cpp @@ -548,7 +548,7 @@ class operator_expression : public formula_expression { }; typedef std::map expr_table; -typedef boost::shared_ptr expr_table_ptr; +typedef std::shared_ptr expr_table_ptr; typedef std::map exp_table_evaluated; class where_variables: public formula_callable { diff --git a/src/formula/formula.hpp b/src/formula/formula.hpp index ddcd9dad01e76..1df75d2cb01df 100644 --- a/src/formula/formula.hpp +++ b/src/formula/formula.hpp @@ -24,7 +24,7 @@ namespace game_logic class formula_callable; class formula_expression; class function_symbol_table; -typedef boost::shared_ptr expression_ptr; +typedef std::shared_ptr expression_ptr; class formula { public: diff --git a/src/formula/formula_fwd.hpp b/src/formula/formula_fwd.hpp index 97355afdc2b6c..dbee884670c45 100644 --- a/src/formula/formula_fwd.hpp +++ b/src/formula/formula_fwd.hpp @@ -22,8 +22,8 @@ namespace game_logic { class formula_debugger; class formula; -typedef boost::shared_ptr formula_ptr; -typedef boost::shared_ptr const_formula_ptr; +typedef std::shared_ptr formula_ptr; +typedef std::shared_ptr const_formula_ptr; } diff --git a/src/formula/function.cpp b/src/formula/function.cpp index 5422268e17052..46d49d1594525 100644 --- a/src/formula/function.cpp +++ b/src/formula/function.cpp @@ -66,10 +66,10 @@ class debug_function : public function_expression { {} private: variant execute(const formula_callable& variables, formula_debugger *fdb) const { - boost::shared_ptr fdbp; + std::shared_ptr fdbp; bool need_wrapper = false; if (fdb==nullptr) { - fdbp = boost::shared_ptr(new formula_debugger()); + fdbp = std::shared_ptr(new formula_debugger()); fdb = &*fdbp; need_wrapper = true; @@ -98,7 +98,6 @@ class dir_function : public function_expression { variant execute(const formula_callable& variables, formula_debugger *fdb) const { variant var = args()[0]->evaluate(variables, fdb); const formula_callable* callable = var.as_callable(); - callable->add_ref(); std::vector inputs = callable->inputs(); std::vector res; for(size_t i=0; ievaluate(variables, fdb).string_cast(); i_value = 1; } - + const variant value = args()[i_value]->evaluate(variables,fdb); long run_time = 0; for(int i = 1; i < 1000; i++) { @@ -767,7 +766,6 @@ class choose_function : public function_expression { } } else { map_formula_callable self_callable; - self_callable.add_ref(); const std::string self = args()[1]->evaluate(variables,fdb).as_string(); for(variant_iterator it = items.begin(); it != items.end(); ++it) { self_callable.add(self, *it); @@ -937,7 +935,6 @@ class filter_function : public function_expression { } } else { map_formula_callable self_callable; - self_callable.add_ref(); const std::string self = args()[1]->evaluate(variables,fdb).as_string(); for(variant_iterator it = items.begin(); it != items.end(); ++it) { self_callable.add(self, *it); @@ -975,7 +972,6 @@ class find_function : public function_expression { } } else { map_formula_callable self_callable; - self_callable.add_ref(); const std::string self = args()[1]->evaluate(variables,fdb).as_string(); for(variant_iterator it = items.begin(); it != items.end(); ++it){ self_callable.add(self, *it); @@ -1011,7 +1007,6 @@ class map_function : public function_expression { } } else { map_formula_callable self_callable; - self_callable.add_ref(); const std::string self = args()[1]->evaluate(variables,fdb).as_string(); for(variant_iterator it = items.begin(); it != items.end(); ++it) { self_callable.add(self, *it); @@ -1117,7 +1112,6 @@ class reduce_function : public function_expression { ++it; } map_formula_callable self_callable; - self_callable.add_ref(); for(; it != items.end(); ++it) { self_callable.add("a", res); self_callable.add("b", *it); @@ -1427,7 +1421,7 @@ class distance_between_function : public function_expression { explicit distance_between_function(const args_list& args) : function_expression("distance_between", args, 2, 2) {} - + private: variant execute(const formula_callable& variables, formula_debugger *fdb) const { const map_location loc1 = convert_variant(args()[0]->evaluate(variables,add_debug_info(fdb,0,"distance_between:location_A")))->loc(); @@ -1469,7 +1463,7 @@ void key_value_pair::get_inputs(std::vector* inputs) inputs->push_back(game_logic::formula_input("value", game_logic::FORMULA_READ_ONLY)); } - + void key_value_pair::serialize_to_string(std::string& str) const { str += "pair("; key_.serialize_to_string(str); @@ -1639,7 +1633,7 @@ expression_ptr create_function(const std::string& fn, return res; } } - + expression_ptr res(get_functions_map().create_function(fn, args)); if(!res) { throw formula_error("Unknown function: " + fn, "", "", 0); diff --git a/src/formula/function.hpp b/src/formula/function.hpp index 4d72351768f6a..632cf9d919d02 100644 --- a/src/formula/function.hpp +++ b/src/formula/function.hpp @@ -43,7 +43,7 @@ class formula_expression { friend class formula_debugger; }; -typedef boost::shared_ptr expression_ptr; +typedef std::shared_ptr expression_ptr; class function_expression : public formula_expression { public: @@ -95,7 +95,7 @@ class formula_function_expression : public function_expression { int star_arg_; }; -typedef boost::shared_ptr function_expression_ptr; +typedef std::shared_ptr function_expression_ptr; class formula_function { protected: @@ -130,7 +130,7 @@ class builtin_formula_function : public formula_function { } }; -typedef boost::shared_ptr formula_function_ptr; +typedef std::shared_ptr formula_function_ptr; typedef std::map functions_map; class function_symbol_table { diff --git a/src/formula/variant.cpp b/src/formula/variant.cpp index 4fdb80b55933e..b32f4550f5c37 100644 --- a/src/formula/variant.cpp +++ b/src/formula/variant.cpp @@ -280,30 +280,6 @@ struct variant_map { int refcount; }; -void variant::increment_refcount() -{ - switch(type_) { - case TYPE_LIST: - ++list_->refcount; - break; - case TYPE_STRING: - ++string_->refcount; - break; - case TYPE_MAP: - ++map_->refcount; - break; - case TYPE_CALLABLE: - intrusive_ptr_add_ref(callable_); - break; - - // These are not used here, add them to silence a compiler warning. - case TYPE_NULL: - case TYPE_DECIMAL: - case TYPE_INT : - break; - } -} - void variant::release() { switch(type_) { @@ -322,11 +298,8 @@ void variant::release() delete map_; } break; - case TYPE_CALLABLE: - intrusive_ptr_release(callable_); - break; - // These are not used here, add them to silence a compiler warning. + case TYPE_CALLABLE: case TYPE_NULL: case TYPE_DECIMAL: case TYPE_INT : @@ -350,9 +323,9 @@ variant::variant(int n, variant::DECIMAL_VARIANT_TYPE /*type*/) : type_(TYPE_DEC variant::variant(double n, variant::DECIMAL_VARIANT_TYPE /*type*/) : type_(TYPE_DECIMAL) { n *= 1000; decimal_value_ = static_cast(n); - + n -= decimal_value_; - + if(n > 0.5) decimal_value_++; else if(n < -0.5) @@ -363,7 +336,6 @@ variant::variant(const game_logic::formula_callable* callable) : type_(TYPE_CALLABLE), callable_(callable) { assert(callable_); - increment_refcount(); } variant::variant(std::vector* array) @@ -372,7 +344,6 @@ variant::variant(std::vector* array) assert(array); list_ = new variant_list; list_->elements.swap(*array); - increment_refcount(); } variant::variant(const std::string& str) @@ -380,7 +351,6 @@ variant::variant(const std::string& str) { string_ = new variant_string; string_->str = str; - increment_refcount(); } variant::variant(std::map* map) @@ -389,14 +359,12 @@ variant::variant(std::map* map) assert(map); map_ = new variant_map; map_->elements.swap(*map); - increment_refcount(); } variant::variant(const variant& v) : type_(v.type_) { memcpy(this, &v, sizeof(v)); - increment_refcount(); } variant::~variant() @@ -409,7 +377,6 @@ variant& variant::operator=(const variant& v) if(&v != this) { release(); memcpy(this, &v, sizeof(v)); - increment_refcount(); } return *this; } @@ -447,7 +414,7 @@ variant variant::operator[](const variant& v) const } else if(type_ == TYPE_LIST) { if(v.is_list()) { std::vector slice; - + for(size_t i = 0; i < v.num_elements(); ++i) { slice.push_back( (*this)[v[i]] ); } @@ -729,7 +696,7 @@ variant variant::operator%(const variant& v) const if(denominator == 0) { throw type_error((formatter() << "divide by zero error").str()); } - + return variant(numerator%denominator, DECIMAL_VARIANT); } else { const int numerator = as_int(); @@ -748,7 +715,7 @@ variant variant::operator^(const variant& v) const if( type_ == TYPE_DECIMAL || v.type_ == TYPE_DECIMAL ) { double res = pow( as_decimal()/1000.0 , v.as_decimal()/1000.0 ); - + if(res != res) return variant(); return variant(res, DECIMAL_VARIANT); @@ -970,18 +937,18 @@ variant variant::concatenate(const variant& v) const { if(type_ == TYPE_LIST) { v.must_be(TYPE_LIST); - + std::vector< variant > res; res.reserve(num_elements() + v.num_elements()); - + for(size_t i = 0; i < num_elements(); ++i) { res.push_back( (*this)[i] ); } - + for(size_t i = 0; i < v.num_elements(); ++i) { res.push_back( v[i] ); } - + return variant( &res ); } else if(type_ == TYPE_STRING) { v.must_be(TYPE_STRING); @@ -999,17 +966,17 @@ variant variant::concatenate(const variant& v) const variant variant::build_range(const variant& v) const { must_be(TYPE_INT); v.must_be(TYPE_INT); - + int lhs = as_int(), rhs = v.as_int(); int len = abs(rhs - lhs) + 1; - + std::vector< variant > res; res.reserve(len); - + for(size_t i = lhs; res.size() != res.capacity(); lhs < rhs ? ++i : --i) { res.push_back( variant(i) ); } - + return variant( &res ); } @@ -1021,7 +988,7 @@ bool variant::contains(const variant& v) const { << variant_type_to_string(type_) << " (" << to_debug_string() << ")").str()); } - + if(type_ == TYPE_LIST) { variant_iterator iter = std::find(begin(), end(), v); return iter != end(); @@ -1153,7 +1120,8 @@ int variant::refcount() const return map_->refcount; break; case TYPE_CALLABLE: - return callable_->refcount(); + return 0; + //return callable_->refcount(); break; default: return -1; diff --git a/src/formula/variant.hpp b/src/formula/variant.hpp index c44a455612761..316d5a29897c2 100644 --- a/src/formula/variant.hpp +++ b/src/formula/variant.hpp @@ -173,7 +173,6 @@ class variant { variant_map* map_; }; - void increment_refcount(); void release(); }; diff --git a/src/game_board.hpp b/src/game_board.hpp index 062136b993692..f5e39b1bbc747 100644 --- a/src/game_board.hpp +++ b/src/game_board.hpp @@ -58,7 +58,7 @@ class game_board : public display_context std::vector teams_; std::vector labels_; - boost::scoped_ptr map_; + std::unique_ptr map_; n_unit::id_manager unit_id_manager_; unit_map units_; diff --git a/src/game_config_manager.cpp b/src/game_config_manager.cpp index dc8e2dd44ac1a..b13beffcd9699 100644 --- a/src/game_config_manager.cpp +++ b/src/game_config_manager.cpp @@ -296,7 +296,7 @@ void game_config_manager::load_game_config(FORCE_RELOAD_CONFIG force_reload, set_unit_data(); terrain_builder::set_terrain_rules_cfg(game_config()); - tdata_ = boost::make_shared(game_config_); + tdata_ = std::make_shared(game_config_); ::init_strings(game_config()); theme::set_known_themes(&game_config()); } catch(game::error& e) { @@ -518,7 +518,7 @@ void game_config_manager::load_game_config_for_game( game_config::scoped_preproc_define mptest("MP_TEST", cmdline_opts_.mptest && classification.campaign_type == game_classification::CAMPAIGN_TYPE::MULTIPLAYER); - typedef boost::shared_ptr define; + typedef std::shared_ptr define; std::deque extra_defines; for (const std::string& extra_define : classification.campaign_xtra_defines) { define new_define(new game_config::scoped_preproc_define(extra_define)); @@ -554,7 +554,7 @@ void game_config_manager::load_game_config_for_create(bool is_mp) ///During an mp game the default difficuly define is also defined so better already load it now if we alreeady must reload config cache. game_config::scoped_preproc_define normal(DEFAULT_DIFFICULTY, !map_includes(old_defines_map_, cache_.get_preproc_map())); - typedef boost::shared_ptr define; + typedef std::shared_ptr define; try{ load_game_config_with_loadscreen(NO_INCLUDE_RELOAD); } diff --git a/src/game_display.cpp b/src/game_display.cpp index b72792e120bb6..1da82a427cf61 100644 --- a/src/game_display.cpp +++ b/src/game_display.cpp @@ -68,7 +68,7 @@ std::vector footsteps_images(const map_location& loc, const pathfin std::vector footsteps_images(const map_location& loc, const pathfind::marked_route & route_, const display_context * dc_); #endif -game_display::game_display(game_board& board, CVideo& video, boost::weak_ptr wb, +game_display::game_display(game_board& board, CVideo& video, std::weak_ptr wb, reports & reports_object, const tod_manager& tod, const config& theme_cfg, @@ -96,10 +96,10 @@ game_display* game_display::create_dummy_display(CVideo& video) { static config dummy_cfg; static config dummy_cfg2; - static game_board dummy_board(boost::make_shared(dummy_cfg), dummy_cfg2); + static game_board dummy_board(std::make_shared(dummy_cfg), dummy_cfg2); static tod_manager dummy_tod(dummy_cfg); static reports rep_; - return new game_display(dummy_board, video, boost::shared_ptr(), rep_, dummy_tod, + return new game_display(dummy_board, video, std::shared_ptr(), rep_, dummy_tod, dummy_cfg, dummy_cfg, true); } @@ -249,7 +249,7 @@ void game_display::scroll_to_leader(int side, SCROLL_TYPE scroll_type,bool force } void game_display::pre_draw() { - if (boost::shared_ptr w = wb_.lock()) { + if (std::shared_ptr w = wb_.lock()) { w->pre_draw(); } process_reachmap_changes(); @@ -262,7 +262,7 @@ void game_display::pre_draw() { void game_display::post_draw() { - if (boost::shared_ptr w = wb_.lock()) { + if (std::shared_ptr w = wb_.lock()) { w->post_draw(); } } @@ -375,7 +375,7 @@ void game_display::draw_hex(const map_location& loc) #endif } - if (boost::shared_ptr w = wb_.lock()) { + if (std::shared_ptr w = wb_.lock()) { w->draw_hex(loc); if (!(w->is_active() && w->has_temp_move())) @@ -497,7 +497,7 @@ void game_display::draw_movement_info(const map_location& loc) // Search if there is a mark here pathfind::marked_route::mark_map::iterator w = route_.marks.find(loc); - boost::shared_ptr wb = wb_.lock(); + std::shared_ptr wb = wb_.lock(); // Don't use empty route or the first step (the unit will be there) if(w != route_.marks.end() diff --git a/src/game_display.hpp b/src/game_display.hpp index 35a3a33965262..acb76b634281f 100644 --- a/src/game_display.hpp +++ b/src/game_display.hpp @@ -39,7 +39,7 @@ class game_display : public display { public: game_display(game_board& board, CVideo& video, - boost::weak_ptr wb, + std::weak_ptr wb, reports & reports_object, const tod_manager& tod_manager, const config& theme_cfg, @@ -253,7 +253,7 @@ class game_display : public display bool first_turn_, in_game_; - boost::scoped_ptr chat_man_; + std::unique_ptr chat_man_; tgame_mode game_mode_; diff --git a/src/game_events/handlers.hpp b/src/game_events/handlers.hpp index 945d2a9ed6664..0eaa4fd277d4a 100644 --- a/src/game_events/handlers.hpp +++ b/src/game_events/handlers.hpp @@ -44,7 +44,7 @@ namespace game_events class manager; /// Shared pointer to handler objects. - typedef boost::shared_ptr handler_ptr; + typedef std::shared_ptr handler_ptr; /// Storage of event handlers. typedef std::vector handler_vec; @@ -88,7 +88,7 @@ namespace game_events class handler_list { /// The weak pointers that are used internally. - typedef boost::weak_ptr internal_ptr; + typedef std::weak_ptr internal_ptr; /// The underlying list. typedef utils::smart_list list_t; diff --git a/src/game_events/manager.hpp b/src/game_events/manager.hpp index cc1549c8840f0..b36fd3e58c416 100644 --- a/src/game_events/manager.hpp +++ b/src/game_events/manager.hpp @@ -96,10 +96,10 @@ namespace game_events { game_data * gamedata_; }; - boost::scoped_ptr event_handlers_; + std::unique_ptr event_handlers_; std::set unit_wml_ids_; - boost::scoped_ptr pump_; + std::unique_ptr pump_; game_events::wmi_container wml_menu_items_; public: diff --git a/src/game_events/manager_impl.hpp b/src/game_events/manager_impl.hpp index 080ec01cf5013..7c9bb06b3abea 100644 --- a/src/game_events/manager_impl.hpp +++ b/src/game_events/manager_impl.hpp @@ -28,7 +28,7 @@ namespace game_events { //t_event_handlers is essentially the implementation details of the manager class t_event_handlers { typedef boost::unordered_map map_t; - typedef boost::unordered_map > id_map_t; + typedef boost::unordered_map > id_map_t; public: typedef handler_vec::iterator iterator; diff --git a/src/game_events/pump.hpp b/src/game_events/pump.hpp index 83c2456aa1b94..65b9162113483 100644 --- a/src/game_events/pump.hpp +++ b/src/game_events/pump.hpp @@ -64,7 +64,7 @@ namespace game_events class manager; class t_pump { - boost::scoped_ptr impl_; + std::unique_ptr impl_; public: t_pump(manager &); ~t_pump(); diff --git a/src/game_events/wmi_container.cpp b/src/game_events/wmi_container.cpp index 37d3ac1e95532..311d970fd2eeb 100644 --- a/src/game_events/wmi_container.cpp +++ b/src/game_events/wmi_container.cpp @@ -106,10 +106,10 @@ bool wmi_container::fire_item(const std::string & id, const map_location & hex, * @param[out] items Pointers to applicable menu items will be pushed onto @a items. * @param[out] descriptions Menu item text will be pushed onto @a descriptions (in the same order as @a items). */ -std::vector, std::string> > wmi_container::get_items(const map_location& hex, +std::vector, std::string> > wmi_container::get_items(const map_location& hex, game_data & gamedata, filter_context & fc, unit_map & units, const_iterator start, const_iterator finish) const { - std::vector, std::string> > ret; + std::vector, std::string> > ret; if ( empty() ) { // Nothing to do (skip setting game variables). return ret; diff --git a/src/game_events/wmi_container.hpp b/src/game_events/wmi_container.hpp index be73cec6fe6bf..2ccf5a4308bc0 100644 --- a/src/game_events/wmi_container.hpp +++ b/src/game_events/wmi_container.hpp @@ -43,7 +43,7 @@ class wml_menu_item; /// A container of wml_menu_item. class wmi_container{ /// Pointers to our elements. - typedef boost::shared_ptr item_ptr; + typedef std::shared_ptr item_ptr; /// The underlying storage type. typedef std::map map_t; /// The key for interaction with our iterators. @@ -78,10 +78,10 @@ class wmi_container{ /// Fires the menu item with the given @a id. bool fire_item(const std::string & id, const map_location & hex, game_data & gamedata, filter_context & fc, unit_map & units) const; /// Returns the menu items that can be shown for the given location. - std::vector, std::string> > get_items(const map_location& hex, + std::vector, std::string> > get_items(const map_location& hex, game_data & gamedata, filter_context & fc, unit_map & units, const_iterator start, const_iterator finish) const; /// Range over all items by default - std::vector, std::string> > get_items(const map_location& hex, game_data & gamedata, filter_context & fc, unit_map & units) const { + std::vector, std::string> > get_items(const map_location& hex, game_data & gamedata, filter_context & fc, unit_map & units) const { return get_items(hex, gamedata, fc, units, begin(), end()); } /// Initializes the implicit event handlers for inlined [command]s. diff --git a/src/game_initialization/connect_engine.hpp b/src/game_initialization/connect_engine.hpp index c79149299160f..f0a1036e44848 100644 --- a/src/game_initialization/connect_engine.hpp +++ b/src/game_initialization/connect_engine.hpp @@ -40,8 +40,8 @@ enum controller { class connect_engine; class side_engine; -typedef boost::scoped_ptr connect_engine_ptr; -typedef boost::shared_ptr side_engine_ptr; +typedef std::unique_ptr connect_engine_ptr; +typedef std::shared_ptr side_engine_ptr; typedef std::pair controller_option; class connect_engine diff --git a/src/game_initialization/create_engine.cpp b/src/game_initialization/create_engine.cpp index c3d138d34c9a7..1db32846e4c1f 100644 --- a/src/game_initialization/create_engine.cpp +++ b/src/game_initialization/create_engine.cpp @@ -995,7 +995,7 @@ void create_engine::init_all_levels() // Note that invalid maps should be displayed in order to // show error messages in the GUI. bool add_map = true; - boost::scoped_ptr map; + std::unique_ptr map; try { map.reset(new gamemap(game_config_manager::get()->terrain_types(), user_map_data["map_data"])); diff --git a/src/game_initialization/create_engine.hpp b/src/game_initialization/create_engine.hpp index b8125bf11fd9e..c946a4426d973 100644 --- a/src/game_initialization/create_engine.hpp +++ b/src/game_initialization/create_engine.hpp @@ -86,7 +86,7 @@ class scenario : public level protected: void set_sides(); - boost::scoped_ptr map_; + std::unique_ptr map_; surface minimap_img_; std::string map_hash_; @@ -191,13 +191,13 @@ class create_engine std::string description; }; - typedef boost::shared_ptr extras_metadata_ptr; + typedef std::shared_ptr extras_metadata_ptr; - typedef boost::shared_ptr level_ptr; - typedef boost::shared_ptr scenario_ptr; - typedef boost::shared_ptr user_map_ptr; - typedef boost::shared_ptr random_map_ptr; - typedef boost::shared_ptr campaign_ptr; + typedef std::shared_ptr level_ptr; + typedef std::shared_ptr scenario_ptr; + typedef std::shared_ptr user_map_ptr; + typedef std::shared_ptr random_map_ptr; + typedef std::shared_ptr campaign_ptr; void init_generated_level_data(); @@ -305,9 +305,9 @@ class create_engine CVideo& video_; //Never nullptr - boost::scoped_ptr dependency_manager_; + std::unique_ptr dependency_manager_; - boost::scoped_ptr generator_; + std::unique_ptr generator_; }; } // end namespace ng diff --git a/src/game_initialization/multiplayer_configure.hpp b/src/game_initialization/multiplayer_configure.hpp index d6bb26830873c..b2909f54efcb0 100644 --- a/src/game_initialization/multiplayer_configure.hpp +++ b/src/game_initialization/multiplayer_configure.hpp @@ -108,7 +108,7 @@ class configure : public mp::ui ng::configure_engine engine_; options::manager options_manager_; - boost::scoped_ptr nolock_settings_; + std::unique_ptr nolock_settings_; struct process_event_data { bool launch, quit; diff --git a/src/game_initialization/multiplayer_lobby.cpp b/src/game_initialization/multiplayer_lobby.cpp index ca9875cb2b561..91935533fdce1 100644 --- a/src/game_initialization/multiplayer_lobby.cpp +++ b/src/game_initialization/multiplayer_lobby.cpp @@ -616,7 +616,7 @@ void gamebrowser::populate_game_item_map_info(gamebrowser::game_item & item, con } if (!found) { // Parsing the map and generating the minimap are both cpu expensive - gamemap map(boost::make_shared(game_config), item.map_data); + gamemap map(std::make_shared(game_config), item.map_data); item.mini_map = image::getMinimap(minimap_size_, minimap_size_, map, 0); item.map_info_size = std::to_string(map.w()) + utils::unicode_multiplication_sign + std::to_string(map.h()); diff --git a/src/game_initialization/multiplayer_ui.hpp b/src/game_initialization/multiplayer_ui.hpp index dca862242eb03..9cab74f0ebfdf 100644 --- a/src/game_initialization/multiplayer_ui.hpp +++ b/src/game_initialization/multiplayer_ui.hpp @@ -256,7 +256,7 @@ class ui : public gui::widget, private events::chat_handler, private font::float }; protected: - boost::scoped_ptr plugins_context_; + std::unique_ptr plugins_context_; public: plugins_context * get_plugins_context(); }; diff --git a/src/game_initialization/playcampaign.hpp b/src/game_initialization/playcampaign.hpp index cf572e51fde62..aae5b6a4ac525 100644 --- a/src/game_initialization/playcampaign.hpp +++ b/src/game_initialization/playcampaign.hpp @@ -30,7 +30,7 @@ class saved_game; class terrain_type_data; class team; class playsingle_controller; -typedef boost::shared_ptr tdata_cache; +typedef std::shared_ptr tdata_cache; class config; diff --git a/src/game_launcher.hpp b/src/game_launcher.hpp index 48baee3681d49..5464dd175cba4 100644 --- a/src/game_launcher.hpp +++ b/src/game_launcher.hpp @@ -106,7 +106,7 @@ class game_launcher const commandline_options& cmdline_opts_; //Never null. - boost::scoped_ptr video_; + std::unique_ptr video_; const font::manager font_manager_; const preferences::manager prefs_manager_; diff --git a/src/game_state.hpp b/src/game_state.hpp index 03df263d7b9ab..c1eb4dc90ae95 100644 --- a/src/game_state.hpp +++ b/src/game_state.hpp @@ -48,14 +48,14 @@ class game_state : public filter_context game_data gamedata_; game_board board_; tod_manager tod_manager_; - boost::scoped_ptr pathfind_manager_; - boost::scoped_ptr reports_; - boost::scoped_ptr lua_kernel_; - boost::scoped_ptr events_manager_; + std::unique_ptr pathfind_manager_; + std::unique_ptr reports_; + std::unique_ptr lua_kernel_; + std::unique_ptr events_manager_; /// undo_stack_ is never nullptr. It is implemented as a pointer so that /// undo_list can be an incomplete type at this point (which reduces the /// number of files that depend on actions/undo.hpp). - boost::scoped_ptr undo_stack_; + std::unique_ptr undo_stack_; int player_number_; typedef boost::optional t_possible_end_level_data; diff --git a/src/gui/core/canvas.cpp b/src/gui/core/canvas.cpp index 2ed2ab69a9d6e..b2eda73c85280 100644 --- a/src/gui/core/canvas.cpp +++ b/src/gui/core/canvas.cpp @@ -1531,15 +1531,15 @@ void tcanvas::parse_cfg(const config& cfg) DBG_GUI_P << "Canvas: found shape of the type " << type << ".\n"; if(type == "line") { - shapes_.push_back(new tline(data)); + shapes_.push_back(std::make_shared(data)); } else if(type == "rectangle") { - shapes_.push_back(new trectangle(data)); + shapes_.push_back(std::make_shared(data)); } else if(type == "circle") { - shapes_.push_back(new tcircle(data)); + shapes_.push_back(std::make_shared(data)); } else if(type == "image") { - shapes_.push_back(new timage(data)); + shapes_.push_back(std::make_shared(data)); } else if(type == "text") { - shapes_.push_back(new ttext(data)); + shapes_.push_back(std::make_shared(data)); } else if(type == "pre_commit") { /* note this should get split if more preprocessing is used. */ diff --git a/src/gui/core/canvas.hpp b/src/gui/core/canvas.hpp index eb5996a6b61f2..1d0378e6b8dc8 100644 --- a/src/gui/core/canvas.hpp +++ b/src/gui/core/canvas.hpp @@ -50,7 +50,7 @@ class tcanvas * The other shapes are declared and defined in canvas.cpp, since the * implementation details are not interesting for users of the canvas. */ - class tshape : public reference_counted_object + class tshape { public: virtual ~tshape() @@ -71,8 +71,8 @@ class tcanvas = 0; }; - typedef boost::intrusive_ptr tshape_ptr; - typedef boost::intrusive_ptr const_tshape_ptr; + typedef std::shared_ptr tshape_ptr; + typedef std::shared_ptr const_tshape_ptr; tcanvas(); diff --git a/src/gui/core/widget_definition.hpp b/src/gui/core/widget_definition.hpp index 402732290067c..e1f30928cb413 100644 --- a/src/gui/core/widget_definition.hpp +++ b/src/gui/core/widget_definition.hpp @@ -27,7 +27,7 @@ namespace gui2 * * At the moment all states are the same so there is no need to use * inheritance. If that is needed at some point the containers should contain - * pointers and we should inherit from reference_counted_object. + * pointers */ struct tstate_definition { @@ -38,7 +38,7 @@ struct tstate_definition /** Base class of a resolution, contains the common keys for a resolution. */ -struct tresolution_definition_ : public reference_counted_object +struct tresolution_definition_ { explicit tresolution_definition_(const config& cfg); @@ -63,10 +63,10 @@ struct tresolution_definition_ : public reference_counted_object std::vector state; }; -typedef boost::intrusive_ptr +typedef std::shared_ptr tresolution_definition_ptr; -typedef boost::intrusive_ptr +typedef std::shared_ptr tresolution_definition_const_ptr; /** @@ -81,13 +81,12 @@ tresolution_definition_const_ptr; template const T& cast(tresolution_definition_const_ptr ptr) { - boost::intrusive_ptr conf - = boost::dynamic_pointer_cast(ptr); + std::shared_ptr conf = std::make_shared(ptr); assert(conf); return *conf; } -struct tcontrol_definition : public reference_counted_object +struct tcontrol_definition { explicit tcontrol_definition(const config& cfg); @@ -96,7 +95,7 @@ struct tcontrol_definition : public reference_counted_object { for (const auto & resolution : cfg.child_range("resolution")) { - resolutions.push_back(new T(resolution)); + resolutions.push_back(std::make_shared(resolution)); } } @@ -106,7 +105,7 @@ struct tcontrol_definition : public reference_counted_object std::vector resolutions; }; -typedef boost::intrusive_ptr tcontrol_definition_ptr; +typedef std::shared_ptr tcontrol_definition_ptr; } // namespace gui2 diff --git a/src/gui/core/window_builder.cpp b/src/gui/core/window_builder.cpp index b1b0cf082d39f..1d36c57802dbe 100644 --- a/src/gui/core/window_builder.cpp +++ b/src/gui/core/window_builder.cpp @@ -109,8 +109,8 @@ twindow* build(CVideo& video, const twindow_builder::tresolution* definition) window->set_click_dismiss(definition->click_dismiss); - boost::intrusive_ptr - conf = boost::dynamic_pointer_cast( + std::shared_ptr + conf = std::static_pointer_cast( window->config()); assert(conf); @@ -169,19 +169,19 @@ tbuilder_widget_ptr create_builder_widget(const config& cfg) } if(const config& c = cfg.child("grid")) { - return new tbuilder_grid(c); + return std::make_shared(c); } if(const config& instance = cfg.child("instance")) { - return new implementation::tbuilder_instance(instance); + return std::make_shared(instance); } if(const config& pane = cfg.child("pane")) { - return new implementation::tbuilder_pane(pane); + return std::make_shared(pane); } if(const config& viewport = cfg.child("viewport")) { - return new implementation::tbuilder_viewport(viewport); + return std::make_shared(viewport); } /* @@ -204,7 +204,8 @@ tbuilder_widget_ptr create_builder_widget(const config& cfg) #define TRY(name) \ do { \ if(const config& c = cfg.child(#name)) { \ - tbuilder_widget_ptr p = new implementation::tbuilder_##name(c); \ + tbuilder_widget_ptr p = \ + std::make_shared(c); \ assert(false); \ } \ } while(0) @@ -410,7 +411,7 @@ twindow_builder::tresolution::tresolution(const config& cfg) VALIDATE(c, _("No grid defined.")); - grid = new tbuilder_grid(c); + grid = std::make_shared(tbuilder_grid(c)); if(!automatic_placement) { VALIDATE(width.has_formula() || width(), diff --git a/src/gui/core/window_builder.hpp b/src/gui/core/window_builder.hpp index f15451ee3a923..7ed5861fcbae6 100644 --- a/src/gui/core/window_builder.hpp +++ b/src/gui/core/window_builder.hpp @@ -39,7 +39,7 @@ class twindow; twindow* build(CVideo& video, const std::string& type); /** Contains the info needed to instantiate a widget. */ -struct tbuilder_widget : public reference_counted_object +struct tbuilder_widget { public: /** @@ -50,7 +50,7 @@ struct tbuilder_widget : public reference_counted_object * using and `[instance]' widget this decision can be postponed until * instantiation. */ - typedef std::map > + typedef std::map > treplacements; explicit tbuilder_widget(const config& cfg); @@ -73,8 +73,8 @@ struct tbuilder_widget : public reference_counted_object #endif }; -typedef boost::intrusive_ptr tbuilder_widget_ptr; -typedef boost::intrusive_ptr const_tbuilder_widget_ptr; +typedef std::shared_ptr tbuilder_widget_ptr; +typedef std::shared_ptr const_tbuilder_widget_ptr; /** * Registers a widget to be build. @@ -115,7 +115,7 @@ tbuilder_widget_ptr create_builder_widget(const config& cfg); template tbuilder_widget_ptr build_widget(const config& cfg) { - return new T(cfg); + return std::make_shared(cfg); } struct tbuilder_grid : public tbuilder_widget @@ -147,8 +147,8 @@ struct tbuilder_grid : public tbuilder_widget void build(tgrid& grid, const treplacements& replacements) const; }; -typedef boost::intrusive_ptr tbuilder_grid_ptr; -typedef boost::intrusive_ptr tbuilder_grid_const_ptr; +typedef std::shared_ptr tbuilder_grid_ptr; +typedef std::shared_ptr tbuilder_grid_const_ptr; class twindow_builder { diff --git a/src/gui/dialogs/chat_log.cpp b/src/gui/dialogs/chat_log.cpp index 92f420d67d42c..46873991c6793 100644 --- a/src/gui/dialogs/chat_log.cpp +++ b/src/gui/dialogs/chat_log.cpp @@ -432,11 +432,11 @@ class tchat_log::view tchat_log::tchat_log(const vconfig& cfg, replay* r) : view_() { LOG_CHAT_LOG << "Entering tchat_log::tchat_log" << std::endl; - view_ = boost::shared_ptr(new view(cfg, r)); + view_ = std::shared_ptr(new view(cfg, r)); LOG_CHAT_LOG << "Exiting tchat_log::tchat_log" << std::endl; } -boost::shared_ptr tchat_log::get_view() +std::shared_ptr tchat_log::get_view() { return view_; } diff --git a/src/gui/dialogs/chat_log.hpp b/src/gui/dialogs/chat_log.hpp index f79deee5ae614..7fe2c6f06f4e4 100644 --- a/src/gui/dialogs/chat_log.hpp +++ b/src/gui/dialogs/chat_log.hpp @@ -39,13 +39,13 @@ class tchat_log : public tdialog /** Inherited from tdialog. */ void pre_show(twindow& window); - boost::shared_ptr get_view(); + std::shared_ptr get_view(); private: /** Inherited from tdialog, implemented by REGISTER_DIALOG. */ virtual const std::string& window_id() const; - boost::shared_ptr view_; + std::shared_ptr view_; }; } diff --git a/src/gui/dialogs/gamestate_inspector.cpp b/src/gui/dialogs/gamestate_inspector.cpp index 45dc36a7b8141..4e7652584999c 100644 --- a/src/gui/dialogs/gamestate_inspector.cpp +++ b/src/gui/dialogs/gamestate_inspector.cpp @@ -434,7 +434,7 @@ class event_mode_controller : public single_mode_controller // cycle efficiency. We use a vector of page content pointers/subpage // number pairs matching the UI layout to keep things simple. - typedef boost::shared_ptr shared_string_ptr; + typedef std::shared_ptr shared_string_ptr; typedef std::pair page_descriptor; HANDLER_TYPE handler_type_; @@ -682,19 +682,19 @@ class team_mode_controller : public single_mode_controller class tgamestate_inspector::controller { public: - typedef std::vector > + typedef std::vector > sm_controller_ptr_vector; controller(model& m) : model_(m), sm_controllers_() { - sm_controllers_.push_back(boost::shared_ptr( + sm_controllers_.push_back(std::shared_ptr( new variable_mode_controller("variables", model_))); - sm_controllers_.push_back(boost::shared_ptr( + sm_controllers_.push_back(std::shared_ptr( new event_mode_controller( "events", model_, event_mode_controller::EVENT_HANDLER))); - sm_controllers_.push_back(boost::shared_ptr( + sm_controllers_.push_back(std::shared_ptr( new event_mode_controller( "menu items", model_, event_mode_controller::WMI_HANDLER))); - sm_controllers_.push_back(boost::shared_ptr( + sm_controllers_.push_back(std::shared_ptr( new unit_mode_controller("units", model_))); // BOOST_FOREACHteam int sides = resources::teams @@ -702,13 +702,13 @@ class tgamestate_inspector::controller : 0; for(int side = 1; side <= sides; ++side) { std::string side_str = std::to_string(side); - sm_controllers_.push_back(boost::shared_ptr( + sm_controllers_.push_back(std::shared_ptr( new team_mode_controller( std::string("team ") + side_str, model_, side))); } } - boost::shared_ptr get_sm_controller() + std::shared_ptr get_sm_controller() { int selected = model_.stuff_types_list->get_selected_row(); if(selected == -1) { @@ -737,7 +737,7 @@ class tgamestate_inspector::controller void update_view_from_model() { - boost::shared_ptr c = get_sm_controller(); + std::shared_ptr c = get_sm_controller(); show_title(); c->update_view_from_model(); @@ -747,7 +747,7 @@ class tgamestate_inspector::controller void handle_stuff_list_item_clicked() { model_.set_inspect_window_text(""); - boost::shared_ptr c = get_sm_controller(); + std::shared_ptr c = get_sm_controller(); c->handle_stuff_list_selection(); } @@ -756,7 +756,7 @@ class tgamestate_inspector::controller { model_.clear_stuff_list(); model_.set_inspect_window_text(""); - boost::shared_ptr c = get_sm_controller(); + std::shared_ptr c = get_sm_controller(); c->update_view_from_model(); // TODO: 'activate' } @@ -884,7 +884,7 @@ tgamestate_inspector::tgamestate_inspector(const vconfig& cfg) { } -boost::shared_ptr tgamestate_inspector::get_view() +std::shared_ptr tgamestate_inspector::get_view() { return view_; } diff --git a/src/gui/dialogs/gamestate_inspector.hpp b/src/gui/dialogs/gamestate_inspector.hpp index 041a1c01da902..fc26e716176c4 100644 --- a/src/gui/dialogs/gamestate_inspector.hpp +++ b/src/gui/dialogs/gamestate_inspector.hpp @@ -31,7 +31,7 @@ class tgamestate_inspector : public tdialog class controller; explicit tgamestate_inspector(const vconfig& cfg); - boost::shared_ptr get_view(); + std::shared_ptr get_view(); private: /** Inherited from tdialog. */ @@ -40,7 +40,7 @@ class tgamestate_inspector : public tdialog /** Inherited from tdialog, implemented by REGISTER_DIALOG. */ virtual const std::string& window_id() const; - boost::shared_ptr view_; + std::shared_ptr view_; }; } diff --git a/src/gui/dialogs/loadscreen.hpp b/src/gui/dialogs/loadscreen.hpp index ae8efb6d5dee9..e5fb820b86833 100644 --- a/src/gui/dialogs/loadscreen.hpp +++ b/src/gui/dialogs/loadscreen.hpp @@ -62,8 +62,8 @@ class tloadscreen : public tdialog size_t timer_id_; int animation_counter_; std::function work_; - boost::scoped_ptr worker_; - boost::scoped_ptr cursor_setter_; + std::unique_ptr worker_; + std::unique_ptr cursor_setter_; twindow* build_window(CVideo& video) const; diff --git a/src/gui/dialogs/lobby/data.cpp b/src/gui/dialogs/lobby/data.cpp index 73fe7a6ecc8e1..1667c3f1bdd09 100644 --- a/src/gui/dialogs/lobby/data.cpp +++ b/src/gui/dialogs/lobby/data.cpp @@ -243,7 +243,7 @@ game_info::game_info(const config& game, const config& game_config) } else { try { - gamemap map(boost::make_shared(game_config), map_data); + gamemap map(std::make_shared(game_config), map_data); // mini_map = image::getMinimap(minimap_size_, minimap_size_, map, // 0); std::ostringstream msi; diff --git a/src/gui/dialogs/lua_interpreter.cpp b/src/gui/dialogs/lua_interpreter.cpp index 9846798c1243e..0bb9b9a0706ea 100644 --- a/src/gui/dialogs/lua_interpreter.cpp +++ b/src/gui/dialogs/lua_interpreter.cpp @@ -364,9 +364,9 @@ class tlua_interpreter::controller { ttext_box* text_entry; std::string text_entry_; - boost::scoped_ptr lua_model_; - boost::scoped_ptr input_model_; - boost::scoped_ptr view_; + std::unique_ptr lua_model_; + std::unique_ptr input_model_; + std::unique_ptr view_; void execute(); void tab(); diff --git a/src/gui/dialogs/lua_interpreter.hpp b/src/gui/dialogs/lua_interpreter.hpp index 58071d567901a..eb40c622a714b 100644 --- a/src/gui/dialogs/lua_interpreter.hpp +++ b/src/gui/dialogs/lua_interpreter.hpp @@ -44,7 +44,7 @@ class tlua_interpreter : public tdialog static void display(CVideo& video, lua_kernel_base * lk); static void display(CVideo& video, WHICH_KERNEL which); private: - boost::scoped_ptr controller_; + std::unique_ptr controller_; /** Inherited from tdialog, implemented by REGISTER_DIALOG. */ virtual const std::string& window_id() const; diff --git a/src/gui/dialogs/multiplayer/mp_change_control.cpp b/src/gui/dialogs/multiplayer/mp_change_control.cpp index 48f7c538d2bde..8f239ad2ced82 100644 --- a/src/gui/dialogs/multiplayer/mp_change_control.cpp +++ b/src/gui/dialogs/multiplayer/mp_change_control.cpp @@ -230,7 +230,7 @@ class side_controller class tmp_change_control::controller { public: - typedef std::vector > + typedef std::vector > side_controller_ptr_vector; controller(model& m) : model_(m), side_controllers_() { @@ -251,18 +251,18 @@ class tmp_change_control::controller side_str = font::span_color(team::get_side_color(side)) + side_str + ""; model_.add_side(side, side_str); - side_controllers_.push_back(boost::shared_ptr( + side_controllers_.push_back(std::shared_ptr( new side_controller(side_str, model_, side))); } } } - boost::shared_ptr get_side_controller() + std::shared_ptr get_side_controller() { int selected = model_.sides_list->get_selected_row(); if(selected < 0 || selected >= static_cast(side_controllers_.size())) - return boost::shared_ptr(); // null pointer + return std::shared_ptr(); // null pointer else return side_controllers_.at(selected); } @@ -397,7 +397,7 @@ tmp_change_control::tmp_change_control(events::menu_handler* mh) { } -boost::shared_ptr tmp_change_control::get_view() +std::shared_ptr tmp_change_control::get_view() { return view_; } diff --git a/src/gui/dialogs/multiplayer/mp_change_control.hpp b/src/gui/dialogs/multiplayer/mp_change_control.hpp index 679483eb77e38..a51b28ebe61bf 100644 --- a/src/gui/dialogs/multiplayer/mp_change_control.hpp +++ b/src/gui/dialogs/multiplayer/mp_change_control.hpp @@ -32,7 +32,7 @@ class tmp_change_control : public tdialog class controller; explicit tmp_change_control(events::menu_handler* mh); - boost::shared_ptr get_view(); + std::shared_ptr get_view(); private: /** Inherited from tdialog, implemented by REGISTER_DIALOG. */ @@ -43,7 +43,7 @@ class tmp_change_control : public tdialog void post_show(twindow& window); events::menu_handler* menu_handler_; - boost::shared_ptr view_; + std::shared_ptr view_; }; } diff --git a/src/gui/dialogs/unit_recruit.cpp b/src/gui/dialogs/unit_recruit.cpp index e318d48801ba7..b839cce42203c 100644 --- a/src/gui/dialogs/unit_recruit.cpp +++ b/src/gui/dialogs/unit_recruit.cpp @@ -83,7 +83,7 @@ void tunit_recruit::pre_show(twindow& window) int wb_gold = 0; if(resources::controller) { - if(const boost::shared_ptr& whiteb = resources::controller->get_whiteboard()) { + if(const std::shared_ptr& whiteb = resources::controller->get_whiteboard()) { wb::future_map future; // So gold takes into account planned spending wb_gold = whiteb->get_spent_gold_for(team_.side()); } diff --git a/src/gui/dialogs/wml_message.cpp b/src/gui/dialogs/wml_message.cpp index 7b3531ce72cb1..cbb995eed973e 100644 --- a/src/gui/dialogs/wml_message.cpp +++ b/src/gui/dialogs/wml_message.cpp @@ -162,7 +162,7 @@ int show_wml_message(const bool left_side, const std::vector& option_list, int* chosen_option) { - boost::shared_ptr dlg; + std::shared_ptr dlg; if(left_side) { dlg.reset(new twml_message_left(title, message, portrait, mirror)); } else { diff --git a/src/gui/widgets/container.cpp b/src/gui/widgets/container.cpp index 716ee662f0340..fb1a60df96158 100644 --- a/src/gui/widgets/container.cpp +++ b/src/gui/widgets/container.cpp @@ -206,7 +206,7 @@ bool tcontainer_::disable_click_dismiss() const } void -tcontainer_::init_grid(const boost::intrusive_ptr& grid_builder) +tcontainer_::init_grid(const std::shared_ptr& grid_builder) { log_scope2(log_gui_general, LOG_SCOPE_HEADER); diff --git a/src/gui/widgets/container.hpp b/src/gui/widgets/container.hpp index 66a5c828c6860..3871ce3949916 100644 --- a/src/gui/widgets/container.hpp +++ b/src/gui/widgets/container.hpp @@ -161,7 +161,7 @@ class tcontainer_ : public tcontrol * * @param grid_builder The builder for the grid. */ - void init_grid(const boost::intrusive_ptr& grid_builder); + void init_grid(const std::shared_ptr& grid_builder); /***** **** ***** ***** wrappers to the grid **** ********* *****/ diff --git a/src/gui/widgets/generator.hpp b/src/gui/widgets/generator.hpp index 87041c1b77720..6852780c252fa 100644 --- a/src/gui/widgets/generator.hpp +++ b/src/gui/widgets/generator.hpp @@ -26,7 +26,7 @@ namespace gui2 { struct tbuilder_grid; -typedef boost::intrusive_ptr tbuilder_grid_const_ptr; +typedef std::shared_ptr tbuilder_grid_const_ptr; class tgrid; diff --git a/src/gui/widgets/horizontal_scrollbar.cpp b/src/gui/widgets/horizontal_scrollbar.cpp index 40339d1248ee2..1882fcfeb1dbd 100644 --- a/src/gui/widgets/horizontal_scrollbar.cpp +++ b/src/gui/widgets/horizontal_scrollbar.cpp @@ -35,8 +35,8 @@ REGISTER_WIDGET(horizontal_scrollbar) unsigned thorizontal_scrollbar::minimum_positioner_length() const { - boost::intrusive_ptr - conf = boost::dynamic_pointer_cast + conf = std::static_pointer_cast(config()); assert(conf); @@ -45,8 +45,8 @@ unsigned thorizontal_scrollbar::minimum_positioner_length() const unsigned thorizontal_scrollbar::maximum_positioner_length() const { - boost::intrusive_ptr - conf = boost::dynamic_pointer_cast + conf = std::static_pointer_cast(config()); assert(conf); @@ -55,8 +55,8 @@ unsigned thorizontal_scrollbar::maximum_positioner_length() const unsigned thorizontal_scrollbar::offset_before() const { - boost::intrusive_ptr - conf = boost::dynamic_pointer_cast + conf = std::static_pointer_cast(config()); assert(conf); @@ -65,8 +65,8 @@ unsigned thorizontal_scrollbar::offset_before() const unsigned thorizontal_scrollbar::offset_after() const { - boost::intrusive_ptr - conf = boost::dynamic_pointer_cast + conf = std::static_pointer_cast(config()); assert(conf); diff --git a/src/gui/widgets/label.cpp b/src/gui/widgets/label.cpp index b5ffcb3d0e3fa..fb9309614d670 100644 --- a/src/gui/widgets/label.cpp +++ b/src/gui/widgets/label.cpp @@ -138,8 +138,8 @@ void tlabel::load_config_extra() { assert(config()); - boost::intrusive_ptr - conf = boost::dynamic_pointer_cast( + std::shared_ptr + conf = std::static_pointer_cast( config()); assert(conf); diff --git a/src/gui/widgets/listbox.cpp b/src/gui/widgets/listbox.cpp index 591c1ca5d3e4d..cb1900982b942 100644 --- a/src/gui/widgets/listbox.cpp +++ b/src/gui/widgets/listbox.cpp @@ -115,7 +115,7 @@ void tlistbox::remove_row(const unsigned row, unsigned count) width_reduced += generator_->item(row).get_width(); } else { - height_reduced += generator_->item(row).get_height(); + height_reduced += generator_->item(row).get_height(); } } generator_->delete_item(row); @@ -732,7 +732,7 @@ tlistbox_definition::tresolution::tresolution(const config& cfg) const config& child = cfg.child("grid"); VALIDATE(child, _("No grid defined.")); - grid = new tbuilder_grid(child); + grid = std::make_shared(child); } // }---------- BUILDER -----------{ @@ -847,17 +847,17 @@ tbuilder_listbox::tbuilder_listbox(const config& cfg) , has_maximum_(cfg["has_maximum"].to_bool(true)) { if(const config& h = cfg.child("header")) { - header = new tbuilder_grid(h); + header = std::make_shared(h); } if(const config& f = cfg.child("footer")) { - footer = new tbuilder_grid(f); + footer = std::make_shared(f); } const config& l = cfg.child("list_definition"); VALIDATE(l, _("No list defined.")); - list_builder = new tbuilder_grid(l); + list_builder = std::make_shared(l); assert(list_builder); VALIDATE(list_builder->rows == 1, _("A 'list_definition' should contain one row.")); @@ -940,8 +940,8 @@ twidget* tbuilder_listbox::build() const DBG_GUI_G << "Window builder: placed listbox '" << id << "' with definition '" << definition << "'.\n"; - boost::intrusive_ptr - conf = boost::dynamic_pointer_cast( + std::shared_ptr + conf = std::static_pointer_cast( widget->config()); assert(conf); @@ -1024,7 +1024,7 @@ tbuilder_horizontal_listbox::tbuilder_horizontal_listbox(const config& cfg) const config& l = cfg.child("list_definition"); VALIDATE(l, _("No list defined.")); - list_builder = new tbuilder_grid(l); + list_builder = std::make_shared(l); assert(list_builder); VALIDATE(list_builder->rows == 1, _("A 'list_definition' should contain one row.")); @@ -1078,8 +1078,8 @@ twidget* tbuilder_horizontal_listbox::build() const DBG_GUI_G << "Window builder: placed listbox '" << id << "' with definition '" << definition << "'.\n"; - boost::intrusive_ptr - conf = boost::dynamic_pointer_cast( + std::shared_ptr + conf = std::static_pointer_cast( widget->config()); assert(conf); diff --git a/src/gui/widgets/matrix.cpp b/src/gui/widgets/matrix.cpp index 41b0b55978fa6..96bb62c5c57a7 100644 --- a/src/gui/widgets/matrix.cpp +++ b/src/gui/widgets/matrix.cpp @@ -60,8 +60,8 @@ unsigned tstate_default::get_state() const tmatrix::tmatrix(const implementation::tbuilder_matrix& builder) : tbase(builder, get_control_type()), content_(), pane_(nullptr) { - boost::intrusive_ptr - cfg = boost::dynamic_pointer_cast( + std::shared_ptr + cfg = std::static_pointer_cast( config()); tbuilder_widget::treplacements replacements; @@ -286,19 +286,19 @@ tbuilder_matrix::tbuilder_matrix(const config& cfg) , builder_main(create_builder_widget(cfg.child("main", "[matrix]"))) { if(const config& top = cfg.child("top")) { - builder_top = new tbuilder_grid(top); + builder_top = std::make_shared(top); } if(const config& bottom = cfg.child("bottom")) { - builder_bottom = new tbuilder_grid(bottom); + builder_bottom = std::make_shared(bottom); } if(const config& left = cfg.child("left")) { - builder_left = new tbuilder_grid(left); + builder_left = std::make_shared(left); } if(const config& right = cfg.child("right")) { - builder_right = new tbuilder_grid(right); + builder_right = std::make_shared(right); } } diff --git a/src/gui/widgets/minimap.cpp b/src/gui/widgets/minimap.cpp index 35e5e093a6991..396680b9adfff 100644 --- a/src/gui/widgets/minimap.cpp +++ b/src/gui/widgets/minimap.cpp @@ -215,7 +215,7 @@ const surface tminimap::get_image(const int w, const int h) const try { - const gamemap map(boost::make_shared(*terrain_), map_data_); + const gamemap map(std::make_shared(*terrain_), map_data_); const surface surf = image::getMinimap(w, h, map, nullptr); cache.insert(std::make_pair(key, tvalue(surf))); #ifdef DEBUG_MINIMAP_CACHE diff --git a/src/gui/widgets/multi_page.cpp b/src/gui/widgets/multi_page.cpp index 3f8a5b1adf73a..c991444137d8f 100644 --- a/src/gui/widgets/multi_page.cpp +++ b/src/gui/widgets/multi_page.cpp @@ -215,7 +215,7 @@ tmulti_page_definition::tresolution::tresolution(const config& cfg) const config& child = cfg.child("grid"); VALIDATE(child, _("No grid defined.")); - grid = new tbuilder_grid(child); + grid = std::make_shared(child); } // }---------- BUILDER -----------{ @@ -272,7 +272,7 @@ tbuilder_multi_page::tbuilder_multi_page(const config& cfg) const config& page = cfg.child("page_definition"); VALIDATE(page, _("No page defined.")); - builder = new tbuilder_grid(page); + builder = std::make_shared(page); assert(builder); /** @todo This part is untested. */ @@ -312,9 +312,8 @@ twidget* tbuilder_multi_page::build() const DBG_GUI_G << "Window builder: placed multi_page '" << id << "' with definition '" << definition << "'.\n"; - boost::intrusive_ptr - conf = boost:: - dynamic_pointer_cast( + std::shared_ptr + conf = std::static_pointer_cast( widget->config()); assert(conf); diff --git a/src/gui/widgets/panel.cpp b/src/gui/widgets/panel.cpp index 6f080963cd9cd..9c3d5739fbc52 100644 --- a/src/gui/widgets/panel.cpp +++ b/src/gui/widgets/panel.cpp @@ -36,8 +36,8 @@ REGISTER_WIDGET(panel) SDL_Rect tpanel::get_client_rect() const { - boost::intrusive_ptr conf - = boost::dynamic_pointer_cast( + std::shared_ptr conf + = std::static_pointer_cast( config()); assert(conf); @@ -76,8 +76,8 @@ void tpanel::impl_draw_foreground(surface& frame_buffer, int x_offset, int y_off tpoint tpanel::border_space() const { - boost::intrusive_ptr conf - = boost::dynamic_pointer_cast( + std::shared_ptr conf + = std::static_pointer_cast( config()); assert(conf); @@ -196,7 +196,7 @@ tbuilder_panel::tbuilder_panel(const config& cfg) VALIDATE(c, _("No grid defined.")); - grid = new tbuilder_grid(c); + grid = std::make_shared(c); } twidget* tbuilder_panel::build() const diff --git a/src/gui/widgets/scroll_label.cpp b/src/gui/widgets/scroll_label.cpp index 62a8ffc075a1c..bcc105ea60eb1 100644 --- a/src/gui/widgets/scroll_label.cpp +++ b/src/gui/widgets/scroll_label.cpp @@ -188,7 +188,7 @@ tscroll_label_definition::tresolution::tresolution(const config& cfg) const config& child = cfg.child("grid"); VALIDATE(child, _("No grid defined.")); - grid = new tbuilder_grid(child); + grid = std::make_shared(child); } // }---------- BUILDER -----------{ @@ -248,9 +248,8 @@ twidget* tbuilder_scroll_label::build() const widget->set_vertical_scrollbar_mode(vertical_scrollbar_mode); widget->set_horizontal_scrollbar_mode(horizontal_scrollbar_mode); - boost::intrusive_ptr - conf = boost:: - dynamic_pointer_cast( + std::shared_ptr + conf = std::static_pointer_cast( widget->config()); assert(conf); diff --git a/src/gui/widgets/scrollbar_panel.cpp b/src/gui/widgets/scrollbar_panel.cpp index dae5e3469ad73..882d5f7069c4b 100644 --- a/src/gui/widgets/scrollbar_panel.cpp +++ b/src/gui/widgets/scrollbar_panel.cpp @@ -98,7 +98,7 @@ tscrollbar_panel_definition::tresolution::tresolution(const config& cfg) const config& child = cfg.child("grid"); VALIDATE(child, _("No grid defined.")); - grid = new tbuilder_grid(child); + grid = std::make_shared(child); } // }---------- BUILDER -----------{ @@ -146,7 +146,7 @@ tbuilder_scrollbar_panel::tbuilder_scrollbar_panel(const config& cfg) const config& definition = cfg.child("definition"); VALIDATE(definition, _("No list defined.")); - grid = new tbuilder_grid(definition); + grid = std::make_shared(definition); assert(grid); } @@ -162,8 +162,8 @@ twidget* tbuilder_scrollbar_panel::build() const DBG_GUI_G << "Window builder: placed scrollbar_panel '" << id << "' with definition '" << definition << "'.\n"; - boost::intrusive_ptr conf - = boost::dynamic_pointer_cast conf + = std::static_pointer_cast( widget->config()); assert(conf); diff --git a/src/gui/widgets/settings.hpp b/src/gui/widgets/settings.hpp index 594fe47ea8ae7..c3d26a880a10c 100644 --- a/src/gui/widgets/settings.hpp +++ b/src/gui/widgets/settings.hpp @@ -128,7 +128,7 @@ void load_widget_definitions(tgui_definition& gui_definition, cfg.child_range(key ? key : definition_type + "_definition")) { - definitions.push_back(new T(definition)); + definitions.push_back(std::make_shared(definition)); } load_widget_definitions(gui_definition, definition_type, definitions); diff --git a/src/gui/widgets/slider.cpp b/src/gui/widgets/slider.cpp index 32c2c4fded1a1..7953a0047dce7 100644 --- a/src/gui/widgets/slider.cpp +++ b/src/gui/widgets/slider.cpp @@ -60,8 +60,8 @@ tpoint tslider::calculate_best_size() const if(best_slider_length_ != 0) { // Override length. - boost::intrusive_ptr conf - = boost::dynamic_pointer_cast conf + = std::static_pointer_cast(config()); assert(conf); @@ -157,8 +157,8 @@ void tslider::child_callback_positioner_moved() unsigned tslider::minimum_positioner_length() const { - boost::intrusive_ptr - conf = boost::dynamic_pointer_cast( + std::shared_ptr + conf = std::static_pointer_cast( config()); assert(conf); return conf->minimum_positioner_length; @@ -166,8 +166,8 @@ unsigned tslider::minimum_positioner_length() const unsigned tslider::maximum_positioner_length() const { - boost::intrusive_ptr - conf = boost::dynamic_pointer_cast( + std::shared_ptr + conf = std::static_pointer_cast( config()); assert(conf); return conf->maximum_positioner_length; @@ -175,8 +175,8 @@ unsigned tslider::maximum_positioner_length() const unsigned tslider::offset_before() const { - boost::intrusive_ptr - conf = boost::dynamic_pointer_cast( + std::shared_ptr + conf = std::static_pointer_cast( config()); assert(conf); return conf->left_offset; @@ -184,8 +184,8 @@ unsigned tslider::offset_before() const unsigned tslider::offset_after() const { - boost::intrusive_ptr - conf = boost::dynamic_pointer_cast( + std::shared_ptr + conf = std::static_pointer_cast( config()); assert(conf); return conf->right_offset; diff --git a/src/gui/widgets/stacked_widget.cpp b/src/gui/widgets/stacked_widget.cpp index 4b4aa56de8a61..ea541ce66cc86 100644 --- a/src/gui/widgets/stacked_widget.cpp +++ b/src/gui/widgets/stacked_widget.cpp @@ -199,7 +199,7 @@ tstacked_widget_definition::tresolution::tresolution(const config& cfg) const config& child = cfg.child("grid"); VALIDATE(child, _("No grid defined.")); - grid = new tbuilder_grid(child); + grid = std::make_shared(child); } // }---------- BUILDER -----------{ @@ -236,7 +236,7 @@ tbuilder_stacked_widget::tbuilder_stacked_widget(const config& cfg) VALIDATE(s, _("No stack defined.")); for(const auto & layer : s.child_range("layer")) { - stack.push_back(new tbuilder_grid(layer)); + stack.push_back(std::make_shared(layer)); } } @@ -249,9 +249,8 @@ twidget* tbuilder_stacked_widget::build() const DBG_GUI_G << "Window builder: placed stacked widget '" << id << "' with definition '" << definition << "'.\n"; - boost::intrusive_ptr - conf = boost:: - dynamic_pointer_cast( + std::shared_ptr + conf = std::static_pointer_cast( widget->config()); assert(conf); diff --git a/src/gui/widgets/text_box.cpp b/src/gui/widgets/text_box.cpp index ac0f7b0888e51..06407aef5a441 100644 --- a/src/gui/widgets/text_box.cpp +++ b/src/gui/widgets/text_box.cpp @@ -245,8 +245,8 @@ void ttext_box::update_offsets() { assert(config()); - boost::intrusive_ptr - conf = boost::dynamic_pointer_cast( + std::shared_ptr + conf = std::static_pointer_cast( config()); assert(conf); @@ -328,8 +328,8 @@ void ttext_box::load_config_extra() { assert(config()); - boost::intrusive_ptr - conf = boost::dynamic_pointer_cast( + std::shared_ptr + conf = std::static_pointer_cast( config()); assert(conf); diff --git a/src/gui/widgets/toggle_panel.cpp b/src/gui/widgets/toggle_panel.cpp index c401e0456ce16..a9286d0aa93cd 100644 --- a/src/gui/widgets/toggle_panel.cpp +++ b/src/gui/widgets/toggle_panel.cpp @@ -141,8 +141,8 @@ unsigned ttoggle_panel::get_state() const SDL_Rect ttoggle_panel::get_client_rect() const { - boost::intrusive_ptr conf - = boost::dynamic_pointer_cast conf + = std::static_pointer_cast(config()); assert(conf); @@ -157,8 +157,8 @@ SDL_Rect ttoggle_panel::get_client_rect() const tpoint ttoggle_panel::border_space() const { - boost::intrusive_ptr conf - = boost::dynamic_pointer_cast conf + = std::static_pointer_cast(config()); assert(conf); @@ -189,8 +189,8 @@ void ttoggle_panel::set_state(const tstate state) state_ = state; set_is_dirty(true); - boost::intrusive_ptr conf - = boost::dynamic_pointer_cast conf + = std::static_pointer_cast(config()); assert(conf); } @@ -416,7 +416,7 @@ tbuilder_toggle_panel::tbuilder_toggle_panel(const config& cfg) VALIDATE(c, _("No grid defined.")); - grid = new tbuilder_grid(c); + grid = std::make_shared(c); } twidget* tbuilder_toggle_panel::build() const diff --git a/src/gui/widgets/tree_view.cpp b/src/gui/widgets/tree_view.cpp index 051718eb17d64..fbda6666b504f 100644 --- a/src/gui/widgets/tree_view.cpp +++ b/src/gui/widgets/tree_view.cpp @@ -190,7 +190,7 @@ void ttree_view::signal_handler_left_button_down(const event::tevent event) } template ttree_view_node* ttree_view::get_next_node() -{ +{ ttree_view_node* selected = selected_item(); if(!selected) { return nullptr; @@ -224,7 +224,7 @@ void ttree_view::handle_key_up_arrow(SDLMod modifier, bool& handled) handled = true; } else { - tscrollbar_container::handle_key_up_arrow(modifier, handled); + tscrollbar_container::handle_key_up_arrow(modifier, handled); } } @@ -234,7 +234,7 @@ void ttree_view::handle_key_down_arrow(SDLMod modifier, bool& handled) handled = true; } else { - tscrollbar_container::handle_key_down_arrow(modifier, handled); + tscrollbar_container::handle_key_down_arrow(modifier, handled); } } @@ -306,7 +306,7 @@ ttree_view_definition::tresolution::tresolution(const config& cfg) const config& child = cfg.child("grid"); VALIDATE(child, _("No grid defined.")); - grid = new tbuilder_grid(child); + grid = std::make_shared(child); } // }---------- BUILDER -----------{ @@ -403,9 +403,8 @@ twidget* tbuilder_tree_view::build() const DBG_GUI_G << "Window builder: placed tree_view '" << id << "' with definition '" << definition << "'.\n"; - boost::intrusive_ptr - conf = boost:: - dynamic_pointer_cast( + std::shared_ptr + conf = std::static_pointer_cast( widget->config()); assert(conf); @@ -429,7 +428,7 @@ ttree_node::ttree_node(const config& cfg) VALIDATE(node_definition, _("No node defined.")); - builder = new tbuilder_grid(node_definition); + builder = std::make_shared(node_definition); } } // namespace implementation diff --git a/src/gui/widgets/unit_preview_pane.cpp b/src/gui/widgets/unit_preview_pane.cpp index d929a5a8d56fd..82077e692a06a 100644 --- a/src/gui/widgets/unit_preview_pane.cpp +++ b/src/gui/widgets/unit_preview_pane.cpp @@ -245,7 +245,7 @@ tunit_preview_pane_definition::tresolution::tresolution(const config& cfg) const config& child = cfg.child("grid"); VALIDATE(child, _("No grid defined.")); - grid = new tbuilder_grid(child); + grid = std::make_shared(child); } // }---------- BUILDER -----------{ @@ -267,8 +267,8 @@ twidget* tbuilder_unit_preview_pane::build() const DBG_GUI_G << "Window builder: placed unit preview pane '" << id << "' with definition '" << definition << "'.\n"; - boost::intrusive_ptr conf - = boost::dynamic_pointer_cast< + std::shared_ptr conf + = std::static_pointer_cast< const tunit_preview_pane_definition::tresolution>(widget->config()); assert(conf); diff --git a/src/gui/widgets/vertical_scrollbar.cpp b/src/gui/widgets/vertical_scrollbar.cpp index a2bff01146fcc..4633967fba9d7 100644 --- a/src/gui/widgets/vertical_scrollbar.cpp +++ b/src/gui/widgets/vertical_scrollbar.cpp @@ -30,8 +30,8 @@ REGISTER_WIDGET(vertical_scrollbar) unsigned tvertical_scrollbar::minimum_positioner_length() const { - boost::intrusive_ptr conf - = boost::dynamic_pointer_cast conf + = std::static_pointer_cast(config()); assert(conf); return conf->minimum_positioner_length; @@ -39,8 +39,8 @@ unsigned tvertical_scrollbar::minimum_positioner_length() const unsigned tvertical_scrollbar::maximum_positioner_length() const { - boost::intrusive_ptr conf - = boost::dynamic_pointer_cast conf + = std::static_pointer_cast(config()); assert(conf); return conf->maximum_positioner_length; @@ -48,8 +48,8 @@ unsigned tvertical_scrollbar::maximum_positioner_length() const unsigned tvertical_scrollbar::offset_before() const { - boost::intrusive_ptr conf - = boost::dynamic_pointer_cast conf + = std::static_pointer_cast(config()); assert(conf); return conf->top_offset; @@ -57,8 +57,8 @@ unsigned tvertical_scrollbar::offset_before() const unsigned tvertical_scrollbar::offset_after() const { - boost::intrusive_ptr conf - = boost::dynamic_pointer_cast conf + = std::static_pointer_cast(config()); assert(conf); return conf->bottom_offset; diff --git a/src/gui/widgets/window.cpp b/src/gui/widgets/window.cpp index a1b6cebaaca71..f126b5a9b020c 100644 --- a/src/gui/widgets/window.cpp +++ b/src/gui/widgets/window.cpp @@ -1014,8 +1014,8 @@ void twindow::layout() { /***** Initialize. *****/ - boost::intrusive_ptr - conf = boost::dynamic_pointer_cast( + std::shared_ptr + conf = std::static_pointer_cast( config()); assert(conf); @@ -1298,7 +1298,7 @@ void swap_grid(tgrid* grid, } // namespace -void twindow::finalize(const boost::intrusive_ptr& content_grid) +void twindow::finalize(const std::shared_ptr& content_grid) { swap_grid(nullptr, &grid(), content_grid->build(), "_window_content_grid"); } @@ -1533,7 +1533,7 @@ twindow_definition::tresolution::tresolution(const config& cfg) /** @todo Evaluate whether the grid should become mandatory. */ if(child) { - grid = new tbuilder_grid(child); + grid = std::make_shared(child); } } diff --git a/src/gui/widgets/window.hpp b/src/gui/widgets/window.hpp index dc9dda9136c08..5a73fcda24795 100644 --- a/src/gui/widgets/window.hpp +++ b/src/gui/widgets/window.hpp @@ -683,7 +683,7 @@ class twindow : public tpanel, public cursor::setter * * @param content_grid The new contents for the content grid. */ - void finalize(const boost::intrusive_ptr& content_grid); + void finalize(const std::shared_ptr& content_grid); #ifdef DEBUG_WINDOW_LAYOUT_GRAPHS tdebug_layout_graph* debug_layout_; diff --git a/src/halo.cpp b/src/halo.cpp index 571e99e2ab7e2..36e8cf8058aa5 100644 --- a/src/halo.cpp +++ b/src/halo.cpp @@ -528,7 +528,7 @@ halo_record::halo_record() : my_manager_() {} -halo_record::halo_record(int id, const boost::shared_ptr & my_manager) : +halo_record::halo_record(int id, const std::shared_ptr & my_manager) : id_(id), my_manager_(my_manager) {} @@ -537,7 +537,7 @@ halo_record::~halo_record() { if (!valid()) return; - boost::shared_ptr man = my_manager_.lock(); + std::shared_ptr man = my_manager_.lock(); if (man) { try { diff --git a/src/halo.hpp b/src/halo.hpp index 8af8faea9df9c..9ee062c2b07af 100644 --- a/src/halo.hpp +++ b/src/halo.hpp @@ -33,7 +33,7 @@ class halo_impl; class halo_record; -typedef boost::shared_ptr handle; +typedef std::shared_ptr handle; enum ORIENTATION { NORMAL, HREVERSE, VREVERSE, HVREVERSE }; @@ -72,7 +72,7 @@ class manager void render(); private: - boost::shared_ptr impl_; + std::shared_ptr impl_; }; /** @@ -82,7 +82,7 @@ class halo_record : public boost::noncopyable { public: halo_record(); - halo_record(int id, const boost::shared_ptr & my_manager); + halo_record(int id, const std::shared_ptr & my_manager); ~halo_record(); bool valid() const { @@ -92,7 +92,7 @@ class halo_record : public boost::noncopyable friend class manager; private: int id_; - boost::weak_ptr my_manager_; + std::weak_ptr my_manager_; }; diff --git a/src/help/help_impl.hpp b/src/help/help_impl.hpp index 9800f74b1442e..0f43e6431fc55 100644 --- a/src/help/help_impl.hpp +++ b/src/help/help_impl.hpp @@ -47,7 +47,7 @@ class config; class unit_type; class terrain_type_data; -typedef boost::shared_ptr tdata_cache; +typedef std::shared_ptr tdata_cache; namespace help { struct section; } // lines 51-51 namespace help { diff --git a/src/hotkey/hotkey_handler.hpp b/src/hotkey/hotkey_handler.hpp index f24d8b8bf8639..2e016323f521d 100644 --- a/src/hotkey/hotkey_handler.hpp +++ b/src/hotkey/hotkey_handler.hpp @@ -58,7 +58,7 @@ class play_controller::hotkey_handler : public hotkey::command_executor_default // /// A smart pointer used when retrieving menu items. - typedef boost::shared_ptr const_item_ptr; + typedef std::shared_ptr const_item_ptr; // Expand AUTOSAVES in the menu items, setting the real savenames. void expand_autosaves(std::vector& items); @@ -70,7 +70,7 @@ class play_controller::hotkey_handler : public hotkey::command_executor_default */ void expand_wml_commands(std::vector& items); std::vector wml_commands_; - boost::scoped_ptr wml_command_pager_; + std::unique_ptr wml_command_pager_; int last_context_menu_x_; int last_context_menu_y_; diff --git a/src/hotkey/hotkey_handler_sp.cpp b/src/hotkey/hotkey_handler_sp.cpp index a6d4edf1bb4a4..f61fa242c90fe 100644 --- a/src/hotkey/hotkey_handler_sp.cpp +++ b/src/hotkey/hotkey_handler_sp.cpp @@ -309,7 +309,7 @@ void playsingle_controller::hotkey_handler::load_autosave(const std::string& fil error_log); return; } - boost::shared_ptr res(new config(savegame.child_or_empty("snapshot"))); + std::shared_ptr res(new config(savegame.child_or_empty("snapshot"))); throw reset_gamestate_exception(res, true); } else diff --git a/src/hotkey/hotkey_handler_sp.hpp b/src/hotkey/hotkey_handler_sp.hpp index 49f60ec8dbd9e..7434b7d7f12e0 100644 --- a/src/hotkey/hotkey_handler_sp.hpp +++ b/src/hotkey/hotkey_handler_sp.hpp @@ -33,7 +33,7 @@ class playsingle_controller::hotkey_handler : public play_controller::hotkey_han protected: playsingle_controller & playsingle_controller_; - boost::shared_ptr whiteboard_manager_; + std::shared_ptr whiteboard_manager_; bool is_observer() const; diff --git a/src/hotkey/hotkey_item.cpp b/src/hotkey/hotkey_item.cpp index 7c0f9fe125c6f..13baaa859cc71 100644 --- a/src/hotkey/hotkey_item.cpp +++ b/src/hotkey/hotkey_item.cpp @@ -163,7 +163,7 @@ hotkey_ptr create_hotkey(const std::string &id, SDL_Event &event) case SDL_KEYDOWN: case SDL_KEYUP: { hotkey_keyboard_ptr keyboard(new hotkey_keyboard()); - base = boost::dynamic_pointer_cast(keyboard); + base = std::dynamic_pointer_cast(keyboard); SDL_Scancode code; code = event.key.keysym.scancode; keyboard->set_scancode(code); @@ -172,7 +172,7 @@ hotkey_ptr create_hotkey(const std::string &id, SDL_Event &event) case SDL_MOUSEBUTTONDOWN: case SDL_MOUSEBUTTONUP: { hotkey_mouse_ptr mouse(new hotkey_mouse()); - base = boost::dynamic_pointer_cast(mouse); + base = std::dynamic_pointer_cast(mouse); mouse->set_button(event.button.button); break; } @@ -195,7 +195,7 @@ hotkey_ptr load_from_config(const config& cfg) const std::string& mouse_cfg = cfg["mouse"]; if (!mouse_cfg.empty()) { hotkey_mouse_ptr mouse(new hotkey_mouse()); - base = boost::dynamic_pointer_cast(mouse); + base = std::dynamic_pointer_cast(mouse); mouse->set_button(cfg["button"].to_int()); } // TODO: add joystick support back @@ -219,7 +219,7 @@ hotkey_ptr load_from_config(const config& cfg) const std::string& key_cfg = cfg["key"]; if (!key_cfg.empty()) { hotkey_keyboard_ptr keyboard(new hotkey_keyboard()); - base = boost::dynamic_pointer_cast(keyboard); + base = std::dynamic_pointer_cast(keyboard); SDL_Scancode scancode = SDL_GetScancodeFromName(key_cfg.c_str()); if (scancode == SDL_SCANCODE_UNKNOWN) { @@ -306,7 +306,7 @@ bool hotkey_keyboard::matches_helper(const SDL_Event &event) const bool hotkey_mouse::bindings_equal_helper(hotkey_ptr other) const { - hotkey_mouse_ptr other_m = boost::dynamic_pointer_cast(other); + hotkey_mouse_ptr other_m = std::dynamic_pointer_cast(other); if (other_m == hotkey_mouse_ptr()) { return false; @@ -335,7 +335,7 @@ bool has_hotkey_item(const std::string& command) bool hotkey_keyboard::bindings_equal_helper(hotkey_ptr other) const { - hotkey_keyboard_ptr other_k = boost::dynamic_pointer_cast( + hotkey_keyboard_ptr other_k = std::dynamic_pointer_cast( other); if (other_k == hotkey_keyboard_ptr()) { return false; diff --git a/src/hotkey/hotkey_item.hpp b/src/hotkey/hotkey_item.hpp index 154eaf9ea3e4e..8d1934be6be10 100644 --- a/src/hotkey/hotkey_item.hpp +++ b/src/hotkey/hotkey_item.hpp @@ -30,9 +30,9 @@ namespace hotkey { class hotkey_base; class hotkey_mouse; class hotkey_keyboard; -typedef boost::shared_ptr hotkey_ptr; -typedef boost::shared_ptr hotkey_mouse_ptr; -typedef boost::shared_ptr hotkey_keyboard_ptr; +typedef std::shared_ptr hotkey_ptr; +typedef std::shared_ptr hotkey_mouse_ptr; +typedef std::shared_ptr hotkey_keyboard_ptr; typedef std::vector hotkey_list; typedef std::vector::iterator hotkey_list_iter; diff --git a/src/log_windows.cpp b/src/log_windows.cpp index f603d095b6d22..917ce47faad82 100644 --- a/src/log_windows.cpp +++ b/src/log_windows.cpp @@ -439,7 +439,7 @@ void log_file_manager::enable_native_console_output() LOG_LS << "Console streams handover complete!\n"; } -boost::scoped_ptr lfm; +std::unique_ptr lfm; } // end anonymous namespace diff --git a/src/menu_events.cpp b/src/menu_events.cpp index 36f73f6217445..ef10169cc2605 100644 --- a/src/menu_events.cpp +++ b/src/menu_events.cpp @@ -614,7 +614,7 @@ void menu_handler::recall(int side_num, const map_location &last_hex) team ¤t_team = teams()[side_num - 1]; - boost::shared_ptr > recall_list_team = boost::make_shared >(); + std::shared_ptr > recall_list_team = std::make_shared >(); { wb::future_map future; // ensures recall list has planned recalls removed *recall_list_team = actions::get_recalls(side_num, last_hex); } @@ -749,7 +749,7 @@ namespace { // Helpers for menu_handler::end_turn() /** * Returns true if @a side_num has at least one unit that can still move. */ - bool partmoved_units(int side_num, const unit_map & units, const game_board & board, const boost::shared_ptr & whiteb) + bool partmoved_units(int side_num, const unit_map & units, const game_board & board, const std::shared_ptr & whiteb) { for ( unit_map::const_iterator un = units.begin(); un != units.end(); ++un ) { if ( un->side() == side_num ) { @@ -766,7 +766,7 @@ namespace { // Helpers for menu_handler::end_turn() * Returns true if @a side_num has at least one unit that (can but) has not * moved. */ - bool unmoved_units(int side_num, const unit_map & units, const game_board & board, const boost::shared_ptr & whiteb) + bool unmoved_units(int side_num, const unit_map & units, const game_board & board, const std::shared_ptr & whiteb) { for ( unit_map::const_iterator un = units.begin(); un != units.end(); ++un ) { if ( un->side() == side_num ) { @@ -2158,7 +2158,7 @@ void console_handler::do_toggle_draw_terrain_codes() { } void console_handler::do_toggle_whiteboard() { - if (const boost::shared_ptr & whiteb = menu_handler_.pc_.get_whiteboard()) { + if (const std::shared_ptr & whiteb = menu_handler_.pc_.get_whiteboard()) { whiteb->set_active(!whiteb->is_active()); if (whiteb->is_active()) { print(get_cmd(), _("Planning mode activated!")); diff --git a/src/movetype.cpp b/src/movetype.cpp index 89e7c381c8a1a..b43145aeb4894 100644 --- a/src/movetype.cpp +++ b/src/movetype.cpp @@ -568,7 +568,7 @@ void movetype::terrain_info::write(config & cfg, const std::string & child_name, /** * Returns a pointer to data the incorporates our fallback. */ -const boost::shared_ptr & +const std::shared_ptr & movetype::terrain_info::get_merged() const { // Create-on-demand. @@ -586,7 +586,7 @@ const boost::shared_ptr & // Need to merge data. config merged; write(merged, "", true); - merged_data_ = boost::make_shared(merged, data_->params()); + merged_data_ = std::make_shared(merged, data_->params()); } } return merged_data_; diff --git a/src/movetype.hpp b/src/movetype.hpp index 1503b2f46f0ee..74143f743cd1a 100644 --- a/src/movetype.hpp +++ b/src/movetype.hpp @@ -65,15 +65,15 @@ class movetype private: // Returns a pointer to data the incorporates our fallback. - const boost::shared_ptr & get_merged() const; + const std::shared_ptr & get_merged() const; // Ensures our data is not shared, and propagates to our cascade. void make_unique_cascade() const; // Ensures our data is not shared, and propagates to our fallback. void make_unique_fallback() const; private: - boost::shared_ptr data_; /// Never nullptr - mutable boost::shared_ptr merged_data_; /// Created as needed. + std::shared_ptr data_; /// Never nullptr + mutable std::shared_ptr merged_data_; /// Created as needed. const terrain_info * const fallback_; const terrain_info * const cascade_; }; diff --git a/src/network.cpp b/src/network.cpp index b6af362f51c4f..6905f3244ae37 100644 --- a/src/network.cpp +++ b/src/network.cpp @@ -986,7 +986,7 @@ static bandwidth_map::iterator add_bandwidth_entry(const std::string& packet_typ return inserted; } -typedef boost::shared_ptr bandwidth_stats_ptr; +typedef std::shared_ptr bandwidth_stats_ptr; struct bandwidth_stats_output { diff --git a/src/network.hpp b/src/network.hpp index 7281d1cca3ef7..0b29f9c3ce308 100644 --- a/src/network.hpp +++ b/src/network.hpp @@ -203,7 +203,7 @@ struct bandwidth_in { std::string type_; }; -typedef boost::shared_ptr bandwidth_in_ptr; +typedef std::shared_ptr bandwidth_in_ptr; /** diff --git a/src/play_controller.cpp b/src/play_controller.cpp index 9eeb30d4c5863..d333bfecd31c4 100644 --- a/src/play_controller.cpp +++ b/src/play_controller.cpp @@ -739,7 +739,7 @@ events::mouse_handler& play_controller::get_mouse_handler_base() return mouse_handler_; } -boost::shared_ptr play_controller::get_whiteboard() +std::shared_ptr play_controller::get_whiteboard() { return whiteboard_manager_; } diff --git a/src/play_controller.hpp b/src/play_controller.hpp index 4944f97c3e724..39b5bee76d7a4 100644 --- a/src/play_controller.hpp +++ b/src/play_controller.hpp @@ -198,7 +198,7 @@ class play_controller : public controller_base, public events::observer, public events::mouse_handler& get_mouse_handler_base(); events::menu_handler& get_menu_handler() { return menu_handler_; } - boost::shared_ptr get_whiteboard(); + std::shared_ptr get_whiteboard(); const mp_game_settings& get_mp_settings(); const game_classification& get_classification(); int get_server_request_number() const { return gamestate().server_request_number_; } @@ -308,35 +308,35 @@ class play_controller : public controller_base, public events::observer, public protected: //gamestate const tdata_cache& tdata_; - boost::scoped_ptr gamestate_; + std::unique_ptr gamestate_; config level_; saved_game& saved_game_; //managers - boost::scoped_ptr tooltips_manager_; + std::unique_ptr tooltips_manager_; //whiteboard manager - boost::shared_ptr whiteboard_manager_; + std::shared_ptr whiteboard_manager_; //plugins context - boost::scoped_ptr plugins_context_; + std::unique_ptr plugins_context_; //more managers font::floating_label_context labels_manager_; help::help_manager help_manager_; events::mouse_handler mouse_handler_; events::menu_handler menu_handler_; - boost::scoped_ptr hotkey_handler_; - boost::scoped_ptr soundsources_manager_; + std::unique_ptr hotkey_handler_; + std::unique_ptr soundsources_manager_; persist_manager persist_; //other objects - boost::scoped_ptr gui_; - boost::scoped_ptr xp_mod_; - boost::scoped_ptr statistics_context_; + std::unique_ptr gui_; + std::unique_ptr xp_mod_; + std::unique_ptr statistics_context_; actions::undo_list& undo_stack() { return *gamestate().undo_stack_; }; const actions::undo_list& undo_stack() const { return *gamestate().undo_stack_; }; - boost::scoped_ptr replay_; + std::unique_ptr replay_; bool skip_replay_; bool linger_; diff --git a/src/playmp_controller.cpp b/src/playmp_controller.cpp index 142cc365437ba..2ace9bb982cef 100644 --- a/src/playmp_controller.cpp +++ b/src/playmp_controller.cpp @@ -121,7 +121,7 @@ void playmp_controller::play_human_turn() LOG_NG << "playmp::play_human_turn...\n"; assert(!linger_); remove_blindfold(); - boost::scoped_ptr timer; + std::unique_ptr timer; if(saved_game_.mp_settings().mp_countdown) { timer.reset(new countdown_clock(current_team())); } diff --git a/src/playsingle_controller.cpp b/src/playsingle_controller.cpp index a1de790400294..4938d27d256ba 100644 --- a/src/playsingle_controller.cpp +++ b/src/playsingle_controller.cpp @@ -669,7 +669,7 @@ void playsingle_controller::reset_replay() void playsingle_controller::enable_replay(bool is_unit_test) { - replay_.reset(new replay_controller(*this, gamestate().has_human_sides(), boost::shared_ptr( new config(saved_game_.replay_start())), std::bind(&playsingle_controller::on_replay_end, this, is_unit_test))); + replay_.reset(new replay_controller(*this, gamestate().has_human_sides(), std::shared_ptr( new config(saved_game_.replay_start())), std::bind(&playsingle_controller::on_replay_end, this, is_unit_test))); if(is_unit_test) { replay_->play_replay(); } diff --git a/src/playsingle_controller.hpp b/src/playsingle_controller.hpp index bb9be6d4f1c15..8a075a8582769 100644 --- a/src/playsingle_controller.hpp +++ b/src/playsingle_controller.hpp @@ -29,8 +29,8 @@ class team; struct reset_gamestate_exception { - reset_gamestate_exception(boost::shared_ptr l, bool s = true) : level(l), start_replay(s) {} - boost::shared_ptr level; + reset_gamestate_exception(std::shared_ptr l, bool s = true) : level(l), start_replay(s) {} + std::shared_ptr level; bool start_replay; }; @@ -97,7 +97,7 @@ class playsingle_controller : public play_controller }; END_TURN_STATE end_turn_; bool skip_next_turn_; - boost::scoped_ptr replay_; + std::unique_ptr replay_; void linger(); void sync_end_turn(); void update_viewing_player(); diff --git a/src/replay_controller.cpp b/src/replay_controller.cpp index c3a9d992d0f41..6827e86026415 100644 --- a/src/replay_controller.cpp +++ b/src/replay_controller.cpp @@ -67,7 +67,7 @@ struct replay_play_side : public replay_controller::replay_stop_condition }; } -replay_controller::replay_controller(play_controller& controller, bool control_view, const boost::shared_ptr& reset_state, const std::function& on_end_replay) +replay_controller::replay_controller(play_controller& controller, bool control_view, const std::shared_ptr& reset_state, const std::function& on_end_replay) : controller_(controller) , stop_condition_(new replay_stop_condition()) , disabler_() diff --git a/src/replay_controller.hpp b/src/replay_controller.hpp index a05c018aa93d2..2a599a7bc010e 100644 --- a/src/replay_controller.hpp +++ b/src/replay_controller.hpp @@ -34,7 +34,7 @@ class replay_controller : public events::observer virtual ~replay_stop_condition(){} }; static void nop() {}; - replay_controller(play_controller& controller, bool control_view, const boost::shared_ptr& reset_state, const std::function& on_end_replay = nop); + replay_controller(play_controller& controller, bool control_view, const std::shared_ptr& reset_state, const std::function& on_end_replay = nop); ~replay_controller(); // void reset_replay(); @@ -50,7 +50,7 @@ class replay_controller : public events::observer bool can_execute_command(const hotkey::hotkey_command& cmd, int index) const; bool is_controlling_view() const { return vision_.is_initialized(); } bool allow_reset_replay() const { return reset_state_.get() != nullptr; } - const boost::shared_ptr& get_reset_state() { return reset_state_; }; + const std::shared_ptr& get_reset_state() { return reset_state_; }; void return_to_play_side(bool r = true) { return_to_play_side_ = r; } void replay_show_everything(); void replay_show_each(); @@ -82,7 +82,7 @@ class replay_controller : public events::observer play_turn_button() && play_side_button(); } play_controller& controller_; - boost::scoped_ptr stop_condition_; + std::unique_ptr stop_condition_; events::command_disabler disabler_; enum REPLAY_VISION @@ -92,7 +92,7 @@ class replay_controller : public events::observer SHOW_ALL, }; boost::optional vision_; - boost::shared_ptr reset_state_; + std::shared_ptr reset_state_; std::function on_end_replay_; bool return_to_play_side_; }; diff --git a/src/reports.cpp b/src/reports.cpp index e05a5dd54fa2c..917e02b00669c 100644 --- a/src/reports.cpp +++ b/src/reports.cpp @@ -1563,7 +1563,7 @@ REPORT_GENERATOR(report_countdown, rc) void reports::register_generator(const std::string &name, reports::generator *g) { - dynamic_generators_[name] = boost::shared_ptr(g); + dynamic_generators_[name] = std::shared_ptr(g); } config reports::generate_report(const std::string &name, reports::context & rc, bool only_static) diff --git a/src/reports.hpp b/src/reports.hpp index 11653079eee65..a8bc3502a096b 100644 --- a/src/reports.hpp +++ b/src/reports.hpp @@ -47,7 +47,7 @@ class reports class context { public: - context(const display_context & dc, display & disp, const tod_manager & tod, boost::shared_ptr wb, boost::optional mhb) : dc_(dc), disp_(disp), tod_(tod), wb_(wb), mhb_(mhb) {} + context(const display_context & dc, display & disp, const tod_manager & tod, std::shared_ptr wb, boost::optional mhb) : dc_(dc), disp_(disp), tod_(tod), wb_(wb), mhb_(mhb) {} const std::vector & teams() { return dc_.teams(); } const unit_map & units() { return dc_.units(); } @@ -56,14 +56,14 @@ class reports const display_context & dc() { return dc_; } display & screen() { return disp_; } const tod_manager & tod() { return tod_; } - boost::shared_ptr wb() { return wb_; } + std::shared_ptr wb() { return wb_; } boost::optional mhb() { return mhb_; } private: const display_context & dc_; display & disp_; const tod_manager & tod_; - boost::shared_ptr wb_; + std::shared_ptr wb_; boost::optional mhb_; }; @@ -81,7 +81,7 @@ class reports typedef config (*generator_function)(reports::context & ); - typedef std::map > dynamic_report_generators; + typedef std::map > dynamic_report_generators; private: diff --git a/src/resources.cpp b/src/resources.cpp index 742a38c903e01..eb52fcc091983 100644 --- a/src/resources.cpp +++ b/src/resources.cpp @@ -33,7 +33,7 @@ namespace resources pathfind::manager *tunnels = nullptr; actions::undo_list *undo_stack = nullptr; unit_map *units = nullptr; - boost::shared_ptr whiteboard = boost::shared_ptr(); + std::shared_ptr whiteboard = std::shared_ptr(); game_classification *classification = nullptr; const mp_game_settings *mp_settings = nullptr; bool simulation_ = false; diff --git a/src/resources.hpp b/src/resources.hpp index 216cc79d5350f..d5b130188e489 100644 --- a/src/resources.hpp +++ b/src/resources.hpp @@ -66,7 +66,7 @@ namespace resources extern pathfind::manager *tunnels; extern actions::undo_list *undo_stack; extern unit_map *units; - extern boost::shared_ptr whiteboard; + extern std::shared_ptr whiteboard; extern bool simulation_; } diff --git a/src/scripting/application_lua_kernel.cpp b/src/scripting/application_lua_kernel.cpp index 3ad51deb810e4..60b462891ab04 100644 --- a/src/scripting/application_lua_kernel.cpp +++ b/src/scripting/application_lua_kernel.cpp @@ -217,7 +217,7 @@ struct lua_context_backend { {} }; -static int impl_context_backend(lua_State * L, boost::shared_ptr backend, std::string req_name) +static int impl_context_backend(lua_State * L, std::shared_ptr backend, std::string req_name) { if (!backend->valid) { luaL_error(L , "Error, you tried to use an invalid context object in a lua thread"); @@ -231,7 +231,7 @@ static int impl_context_backend(lua_State * L, boost::shared_ptr backend, plugins_context::accessor_function func) +static int impl_context_accessor(lua_State * L, std::shared_ptr backend, plugins_context::accessor_function func) { if (!backend->valid) { luaL_error(L , "Error, you tried to use an invalid context object in a lua thread"); @@ -268,7 +268,7 @@ application_lua_kernel::request_list application_lua_kernel::thread::run_script( } // Now we have to create the context object. It is arranged as a table of boost functions. - boost::shared_ptr this_context_backend = boost::make_shared (lua_context_backend()); + std::shared_ptr this_context_backend = std::make_shared (lua_context_backend()); lua_newtable(T_); // this will be the context table for (const std::string & key : ctxt.callbacks_ | boost::adaptors::map_keys ) { lua_pushstring(T_, key.c_str()); diff --git a/src/scripting/game_lua_kernel.cpp b/src/scripting/game_lua_kernel.cpp index f613cf2a2622c..735cf0d9c3fab 100644 --- a/src/scripting/game_lua_kernel.cpp +++ b/src/scripting/game_lua_kernel.cpp @@ -1836,7 +1836,7 @@ static int impl_end_level_data_get(lua_State* L) return_bool_attrib("is_loss", !data.is_victory); return_cstring_attrib("result", data.is_victory ? "victory" : "loss"); // to match wesnoth.end_level() return_cfg_attrib("__cfg", data.to_config_full()); - + return 0; } @@ -1857,14 +1857,14 @@ int game_lua_kernel::impl_end_level_data_set(lua_State* L) end_level_data& data = *static_cast(lua_touserdata(L, 1)); const char* m = luaL_checkstring(L, 2); end_level_committer commit(data, play_controller_); - + modify_string_attrib("music", data.transient.custom_endlevel_music = value); modify_bool_attrib("linger_mode", data.transient.linger_mode = value); modify_bool_attrib("reveal_map", data.transient.reveal_map = value); modify_bool_attrib("carryover_report", data.transient.carryover_report = value); modify_bool_attrib("prescenario_save", data.prescenario_save = value); modify_bool_attrib("replay_save", data.replay_save = value); - + return 0; } @@ -3778,7 +3778,7 @@ namespace { // Types } }; recursion_preventer::t_counter recursion_preventer::counter_; - typedef boost::scoped_ptr recursion_preventer_ptr; + typedef std::unique_ptr recursion_preventer_ptr; } // end anonymouse namespace (types) int game_lua_kernel::intf_kill(lua_State *L) @@ -4251,7 +4251,7 @@ int game_lua_kernel::intf_set_time_of_day(lua_State * L) if(new_time < 0 || new_time >= num_times) { return luaL_argerror(L, 1, "invalid time of day index"); } - + if(area_id.empty()) { tod_man().set_current_time(new_time); } else { @@ -4473,7 +4473,7 @@ int game_lua_kernel::intf_log(lua_State *L) { const std::string& logger = lua_isstring(L, 2) ? luaL_checkstring(L, 1) : ""; const std::string& msg = lua_isstring(L, 2) ? luaL_checkstring(L, 2) : luaL_checkstring(L, 1); - + if(logger == "wml" || logger == "WML") { lg::wml_error() << msg << '\n'; } else { @@ -4536,7 +4536,7 @@ int game_lua_kernel::intf_toggle_fog(lua_State *L, const bool clear) } } } - + // Flag a screen update. game_display_->recalculate_minimap(); game_display_->invalidate_all(); diff --git a/src/scripting/lua_api.cpp b/src/scripting/lua_api.cpp index 65e05f7d26acb..e6a93d7e627af 100644 --- a/src/scripting/lua_api.cpp +++ b/src/scripting/lua_api.cpp @@ -198,7 +198,7 @@ unit_ptr luaW_tounit_ptr(lua_State *L, int index, bool only_on_map) unit_ptr luaW_checkunit_ptr(lua_State *L, int index, bool only_on_map) { - unit_ptr u = luaW_tounit(L, index, only_on_map); + unit_ptr u = luaW_tounit_ptr(L, index, only_on_map); if (!u) luaL_typerror(L, index, "unit"); return u; } @@ -216,4 +216,4 @@ lua_unit* luaW_pushlocalunit(lua_State *L, unit& u) lua_rawget(L, LUA_REGISTRYINDEX); lua_setmetatable(L, -2); return res; -} \ No newline at end of file +} diff --git a/src/scripting/lua_fileops.cpp b/src/scripting/lua_fileops.cpp index ac128155cfdf8..6f2b3777982d7 100644 --- a/src/scripting/lua_fileops.cpp +++ b/src/scripting/lua_fileops.cpp @@ -124,7 +124,7 @@ int intf_read_file(lua_State *L) if(p.empty()) { return luaL_argerror(L, -1, "file not found"); } - boost::scoped_ptr fs(filesystem::istream_file(p)); + std::unique_ptr fs(filesystem::istream_file(p)); fs->exceptions(std::ios_base::goodbit); size_t size = 0; fs->seekg(0, std::ios::end); @@ -186,7 +186,7 @@ class lua_filestream } private: char buff_[LUAL_BUFFERSIZE]; - boost::scoped_ptr pistream_; + std::unique_ptr pistream_; }; /** diff --git a/src/scripting/lua_formula_bridge.cpp b/src/scripting/lua_formula_bridge.cpp index 8486f9b6aaad7..d9776e159248d 100644 --- a/src/scripting/lua_formula_bridge.cpp +++ b/src/scripting/lua_formula_bridge.cpp @@ -214,7 +214,7 @@ int lua_formula_bridge::intf_eval_formula(lua_State *L) need_delete = true; form = new fwrapper(luaL_checkstring(L, 1)); } - boost::shared_ptr context, fallback; + std::shared_ptr context, fallback; if(unit* u = luaW_tounit(L, 2)) { context.reset(new unit_callable(*u)); } else if(lua_istable(L, 2)) { diff --git a/src/scripting/lua_formula_bridge.hpp b/src/scripting/lua_formula_bridge.hpp index 7fb4774dd986d..28ec5517b435c 100644 --- a/src/scripting/lua_formula_bridge.hpp +++ b/src/scripting/lua_formula_bridge.hpp @@ -34,7 +34,7 @@ namespace lua_formula_bridge { std::string register_metatables(lua_State*); class fwrapper { - boost::shared_ptr formula_ptr; + std::shared_ptr formula_ptr; public: fwrapper(const std::string& code, game_logic::function_symbol_table* functions = nullptr); std::string str() const; diff --git a/src/scripting/plugins/manager.cpp b/src/scripting/plugins/manager.cpp index 5e862b03cc659..3c172dc1ba94f 100644 --- a/src/scripting/plugins/manager.cpp +++ b/src/scripting/plugins/manager.cpp @@ -38,7 +38,7 @@ struct plugin { std::string name; std::string source; bool is_file; - boost::scoped_ptr thread; + std::unique_ptr thread; std::vector queue; }; @@ -166,8 +166,8 @@ void plugins_manager::play_slice(const plugins_context & ctxt) //this is to ensure the semantics that if a plugins context is left, then any pending requests //are discarded to prevent them from being executed at an improper time } - playing_ = boost::make_shared (true); - boost::shared_ptr local = playing_; //make a local copy of the pointer on the stack + playing_ = std::make_shared (true); + std::shared_ptr local = playing_; //make a local copy of the pointer on the stack for (size_t idx = 0; idx < size(); ++idx) { diff --git a/src/scripting/plugins/manager.hpp b/src/scripting/plugins/manager.hpp index 8692961d5be4c..844e8f1ea9341 100644 --- a/src/scripting/plugins/manager.hpp +++ b/src/scripting/plugins/manager.hpp @@ -71,8 +71,8 @@ class plugins_manager { private: boost::ptr_vector plugins_; - boost::shared_ptr playing_; - boost::scoped_ptr kernel_; + std::shared_ptr playing_; + std::unique_ptr kernel_; }; #endif diff --git a/src/server/ban.hpp b/src/server/ban.hpp index 3f56b8cb90264..6a8f030cdcaac 100644 --- a/src/server/ban.hpp +++ b/src/server/ban.hpp @@ -32,7 +32,7 @@ namespace wesnothd { std::ostream& operator<<(std::ostream& o, const banned& n); - typedef boost::shared_ptr banned_ptr; + typedef std::shared_ptr banned_ptr; /** We want to move the lowest value to the top. */ struct banned_compare { diff --git a/src/server/player_connection.cpp b/src/server/player_connection.cpp index f25774493fbe2..593d10dc50b1e 100644 --- a/src/server/player_connection.cpp +++ b/src/server/player_connection.cpp @@ -18,12 +18,12 @@ namespace wesnothd { -const boost::shared_ptr player_record::get_game() const +const std::shared_ptr player_record::get_game() const { return game_; } -boost::shared_ptr& player_record::get_game() +std::shared_ptr& player_record::get_game() { return game_; } @@ -33,7 +33,7 @@ int player_record::game_id() const return game_ ? game_->id() : 0; } -void player_record::set_game(player_record& record, boost::shared_ptr new_game) +void player_record::set_game(player_record& record, std::shared_ptr new_game) { record.game_ = new_game; } diff --git a/src/server/player_connection.hpp b/src/server/player_connection.hpp index f45709e792480..3e0da7b990d29 100644 --- a/src/server/player_connection.hpp +++ b/src/server/player_connection.hpp @@ -34,23 +34,23 @@ namespace wesnothd { -typedef boost::shared_ptr socket_ptr; +typedef std::shared_ptr socket_ptr; class player_record { const socket_ptr socket_; mutable player player_; - boost::shared_ptr game_; + std::shared_ptr game_; public: const socket_ptr socket() const { return socket_; } player& info() const { return player_; } const std::string& name() const { return player_.name(); } - const boost::shared_ptr get_game() const; - boost::shared_ptr& get_game(); + const std::shared_ptr get_game() const; + std::shared_ptr& get_game(); int game_id() const; - static void set_game(player_record&, boost::shared_ptr); + static void set_game(player_record&, std::shared_ptr); static void enter_lobby(player_record&); player_record(const socket_ptr socket, const player& player) : socket_(socket), player_(player) {} diff --git a/src/server/server.cpp b/src/server/server.cpp index 726e3a1335a8b..4274c8fd992aa 100644 --- a/src/server/server.cpp +++ b/src/server/server.cpp @@ -138,10 +138,10 @@ struct handle_doc boost::uint32_t size; char buf[4]; }; - boost::shared_ptr data_size; - boost::shared_ptr doc; + std::shared_ptr data_size; + std::shared_ptr doc; boost::shared_array buffer; - handle_doc(socket_ptr socket, Handler handler, ErrorHandler error_handler, boost::uint32_t size, boost::shared_ptr doc) : + handle_doc(socket_ptr socket, Handler handler, ErrorHandler error_handler, boost::uint32_t size, std::shared_ptr doc) : handler(handler), error_handler(error_handler), socket(socket), data_size(new DataSize), doc(doc) { data_size->size = htonl(size); @@ -164,7 +164,7 @@ template void async_send_doc(socket_ptr socket, simple_wml::document& doc, Handler handler, ErrorHandler error_handler) { try { - boost::shared_ptr doc_ptr(doc.clone()); + std::shared_ptr doc_ptr(doc.clone()); simple_wml::string_span s = doc_ptr->output_compressed(); std::vector buffers; @@ -723,7 +723,7 @@ void server::clean_user_handler(const time_t& now) { void server::serve() { - socket_ptr socket = boost::make_shared(boost::ref(io_service_)); + socket_ptr socket = std::make_shared(boost::ref(io_service_)); acceptor_.async_accept(*socket, boost::bind(&server::accept_connection, this, _1, socket)); } @@ -796,7 +796,7 @@ void server::handle_version(socket_ptr socket) ); } -void server::read_version(socket_ptr socket, boost::shared_ptr doc) +void server::read_version(socket_ptr socket, std::shared_ptr doc) { if (const simple_wml::node* const version = doc->child("version")) { const simple_wml::string_span& version_str_span = (*version)["version"]; @@ -855,7 +855,7 @@ void server::login(socket_ptr socket) ); } -void server::handle_login(socket_ptr socket, boost::shared_ptr doc) +void server::handle_login(socket_ptr socket, std::shared_ptr doc) { if(const simple_wml::node* const login = doc->child("login")) { // Check if the username is valid (all alpha-numeric plus underscore and hyphen) @@ -1108,7 +1108,7 @@ void server::read_from_player(socket_ptr socket) ); } -void server::handle_read_from_player(socket_ptr socket, boost::shared_ptr doc) +void server::handle_read_from_player(socket_ptr socket, std::shared_ptr doc) { read_from_player(socket); //DBG_SERVER << client_address(socket) << "\tWML received:\n" << doc->output() << std::endl; @@ -1133,7 +1133,7 @@ void server::handle_read_from_player(socket_ptr socket, boost::shared_ptr doc) { +void server::handle_player_in_lobby(socket_ptr socket, std::shared_ptr doc) { if(simple_wml::node* message = doc->child("message")) { handle_message(socket, *message); } @@ -1446,7 +1446,7 @@ void server::handle_join_game(socket_ptr socket, simple_wml::node& join) int game_id = join["id"].to_int(); auto g_iter = player_connections_.get().find(game_id); - const boost::shared_ptr g = g_iter->get_game(); + const std::shared_ptr g = g_iter->get_game(); static simple_wml::document leave_game_doc("[leave_game]\n[/leave_game]\n", simple_wml::INIT_COMPRESSED); if (g_iter == player_connections_.get().end()) { @@ -1514,7 +1514,7 @@ void server::handle_join_game(socket_ptr socket, simple_wml::node& join) } } -void server::handle_player_in_game(socket_ptr socket, boost::shared_ptr doc) { +void server::handle_player_in_game(socket_ptr socket, std::shared_ptr doc) { DBG_SERVER << "in process_data_game...\n"; auto p = player_connections_.find(socket); @@ -1839,7 +1839,7 @@ void server::handle_player_in_game(socket_ptr socket, boost::shared_ptr > > SendQueue; +typedef std::map > > SendQueue; SendQueue send_queue; void handle_send_to_player(socket_ptr socket); @@ -1853,7 +1853,7 @@ void send_to_player(socket_ptr socket, simple_wml::document& doc) handle_send_to_player ); } else { - send_queue[socket].push_back(boost::shared_ptr(doc.clone())); + send_queue[socket].push_back(std::shared_ptr(doc.clone())); } } @@ -1887,7 +1887,7 @@ void server::remove_player(socket_ptr socket) if(iter == player_connections_.end()) return; - const boost::shared_ptr g = iter->get_game(); + const std::shared_ptr g = iter->get_game(); if(g) g->remove_player(socket, true, false); @@ -2089,7 +2089,7 @@ void server::run() { char* buf_ptr = new char [buf.size()]; memcpy(buf_ptr, &buf[0], buf.size()); simple_wml::string_span compressed_buf(buf_ptr, buf.size()); - boost::scoped_ptr data_ptr; + std::unique_ptr data_ptr; try { data_ptr.reset(new simple_wml::document(compressed_buf)); // might throw a simple_wml::error data_ptr->take_ownership_of_buffer(buf_ptr); @@ -2941,7 +2941,7 @@ void server::dul_handler(const std::string& /*issuer_name*/, const std::string& } void server::delete_game(int gameid) { - const boost::shared_ptr& game_ptr = player_connections_.get().find(gameid)->get_game(); + const std::shared_ptr& game_ptr = player_connections_.get().find(gameid)->get_game(); // Set the availability status for all quitting users. for(const auto& user : player_connections_.get().equal_range(gameid)) { diff --git a/src/server/server.hpp b/src/server/server.hpp index 29d922d0b0f5d..f0d1bcf269788 100644 --- a/src/server/server.hpp +++ b/src/server/server.hpp @@ -52,18 +52,18 @@ class server void request_version(const boost::system::error_code& error, socket_ptr socket); void handle_version(socket_ptr socket); - void read_version(socket_ptr socket, boost::shared_ptr doc); + void read_version(socket_ptr socket, std::shared_ptr doc); void login(socket_ptr socket); - void handle_login(socket_ptr socket, boost::shared_ptr doc); + void handle_login(socket_ptr socket, std::shared_ptr doc); void send_password_request(socket_ptr socket, const std::string& msg, const std::string& user, const char* error_code = "", bool force_confirmation = false); void add_player(socket_ptr socket, const wesnothd::player&); void read_from_player(socket_ptr socket); - void handle_read_from_player(socket_ptr socket, boost::shared_ptr doc); - void handle_player_in_lobby(socket_ptr socket, boost::shared_ptr doc); - void handle_player_in_game(socket_ptr socket, boost::shared_ptr doc); + void handle_read_from_player(socket_ptr socket, std::shared_ptr doc); + void handle_player_in_lobby(socket_ptr socket, std::shared_ptr doc); + void handle_player_in_game(socket_ptr socket, std::shared_ptr doc); void handle_whisper(socket_ptr socket, simple_wml::node& whisper); void handle_query(socket_ptr socket, simple_wml::node& query); void handle_nickserv(socket_ptr socket, simple_wml::node& nickserv); @@ -114,12 +114,12 @@ class server std::deque failed_logins_; - boost::scoped_ptr user_handler_; + std::unique_ptr user_handler_; std::map seeds_; player_connections player_connections_; - std::deque> games() { - std::deque> result; + std::deque> games() { + std::deque> result; for(const auto& iter : player_connections_.get()) if(result.empty() || iter.get_game() != result.back()) result.push_back(iter.get_game()); diff --git a/src/side_filter.hpp b/src/side_filter.hpp index 26c5cd1366191..2726534822ddd 100644 --- a/src/side_filter.hpp +++ b/src/side_filter.hpp @@ -62,11 +62,11 @@ class side_filter { const filter_context * fc_; //!< The filter context for this filter. It should be a pointer because otherwise the default ctor doesn't work - mutable boost::scoped_ptr ufilter_; - mutable boost::scoped_ptr allied_filter_; - mutable boost::scoped_ptr enemy_filter_; - mutable boost::scoped_ptr has_ally_filter_; - mutable boost::scoped_ptr has_enemy_filter_; + mutable std::unique_ptr ufilter_; + mutable std::unique_ptr allied_filter_; + mutable std::unique_ptr enemy_filter_; + mutable std::unique_ptr has_ally_filter_; + mutable std::unique_ptr has_enemy_filter_; }; #endif diff --git a/src/storyscreen/controller.hpp b/src/storyscreen/controller.hpp index c4d4de8125a51..019b533509dd4 100644 --- a/src/storyscreen/controller.hpp +++ b/src/storyscreen/controller.hpp @@ -52,8 +52,8 @@ class controller STORY_RESULT show(START_POSITION startpos=START_BEGINNING); private: - typedef boost::shared_ptr< part > part_pointer_type; - typedef boost::shared_ptr< part_ui > render_pointer_type; + typedef std::shared_ptr< part > part_pointer_type; + typedef std::shared_ptr< part_ui > render_pointer_type; // Executes WML flow instructions and inserts parts. void resolve_wml(const vconfig& cfg); diff --git a/src/synced_context.cpp b/src/synced_context.cpp index bab2917e65620..79f7e51c44a99 100644 --- a/src/synced_context.cpp +++ b/src/synced_context.cpp @@ -255,16 +255,16 @@ void synced_context::send_user_choice() syncmp_registry::send_user_choice(); } -boost::shared_ptr synced_context::get_rng_for_action() +std::shared_ptr synced_context::get_rng_for_action() { const std::string& mode = resources::classification->random_mode; if(mode == "deterministic") { - return boost::shared_ptr(new random_new::rng_deterministic(resources::gamedata->rng())); + return std::shared_ptr(new random_new::rng_deterministic(resources::gamedata->rng())); } else { - return boost::shared_ptr(new random_new::synced_rng(generate_random_seed)); + return std::shared_ptr(new random_new::synced_rng(generate_random_seed)); } } diff --git a/src/synced_context.hpp b/src/synced_context.hpp index e3c9cf56e2c3e..3cf34ae4bf033 100644 --- a/src/synced_context.hpp +++ b/src/synced_context.hpp @@ -111,7 +111,7 @@ class synced_context /** @return a rng_deterministic if in determinsic mode otherwise a rng_synced. */ - static boost::shared_ptr get_rng_for_action(); + static std::shared_ptr get_rng_for_action(); /** @return whether we already sended data about the current action to other clients. which means we cannot undo it. returns is_simultaneously_ @@ -190,7 +190,7 @@ class set_scontext_synced_base set_scontext_synced_base(); ~set_scontext_synced_base(); protected: - boost::shared_ptr new_rng_; + std::shared_ptr new_rng_; random_new::rng* old_rng_; }; /* @@ -212,7 +212,7 @@ class set_scontext_synced : set_scontext_synced_base void init(); static checkup* generate_checkup(const std::string& tagname); checkup* old_checkup_; - boost::scoped_ptr new_checkup_; + std::unique_ptr new_checkup_; events::command_disabler disabler_; bool did_final_checkup_; }; @@ -240,7 +240,7 @@ class set_scontext_unsynced public: set_scontext_unsynced(); private: - boost::scoped_ptr leaver_; + std::unique_ptr leaver_; }; #endif diff --git a/src/team.hpp b/src/team.hpp index 0feca5ef9c5c8..349047c6e4478 100644 --- a/src/team.hpp +++ b/src/team.hpp @@ -379,7 +379,7 @@ class team static void clear_caches(); /** get the whiteboard planned actions for this team */ - boost::shared_ptr get_side_actions() const { return planned_actions_; } + std::shared_ptr get_side_actions() const { return planned_actions_; } config to_config() const; @@ -430,7 +430,7 @@ class team /** * Whiteboard planned actions for this team. */ - boost::shared_ptr planned_actions_; + std::shared_ptr planned_actions_; }; //function which will validate a side. Throws game::game_error diff --git a/src/teambuilder.hpp b/src/teambuilder.hpp index 7dcf59d9cac42..4a2dd479da31a 100644 --- a/src/teambuilder.hpp +++ b/src/teambuilder.hpp @@ -25,7 +25,7 @@ class gamemap; class team; class team_builder; class game_board; -typedef boost::shared_ptr team_builder_ptr; +typedef std::shared_ptr team_builder_ptr; //create an object responsible for creating and populating a team from a config team_builder_ptr create_team_builder(const config& side_cfg, diff --git a/src/terrain/filter.hpp b/src/terrain/filter.hpp index 5f421cd100721..a7d1736b488a7 100644 --- a/src/terrain/filter.hpp +++ b/src/terrain/filter.hpp @@ -87,7 +87,7 @@ class terrain_filter : public xy_pred { //adjacent_match_cache: optimize handling of [filter_adjacent_location] for match() std::vector< std::pair > > adjacent_match_cache; - boost::scoped_ptr ufilter_; + std::unique_ptr ufilter_; }; mutable terrain_filter_cache cache_; diff --git a/src/terrain/type_data.hpp b/src/terrain/type_data.hpp index ded47a4ee74a5..44450caa9e69b 100644 --- a/src/terrain/type_data.hpp +++ b/src/terrain/type_data.hpp @@ -88,5 +88,5 @@ class terrain_type_data { }; -typedef boost::shared_ptr tdata_cache; +typedef std::shared_ptr tdata_cache; #endif diff --git a/src/tests/gui/test_gui2.cpp b/src/tests/gui/test_gui2.cpp index c91c2b479d240..11c417aff2eed 100644 --- a/src/tests/gui/test_gui2.cpp +++ b/src/tests/gui/test_gui2.cpp @@ -162,7 +162,7 @@ namespace { for(const tresolution& resolution : resolutions) { CVideo& video = test_utils::get_fake_display(resolution.first, resolution.second).video(); - boost::scoped_ptr dlg(twrapper::create()); + std::unique_ptr dlg(twrapper::create()); BOOST_REQUIRE_MESSAGE(dlg.get(), "Failed to create a dialog."); const std::string id = gui2::unit_test_mark_as_tested(*(dlg.get())); @@ -200,7 +200,7 @@ namespace { for(const tresolution& resolution : resolutions) { CVideo& video = test_utils::get_fake_display(resolution.first, resolution.second).video(); - boost::scoped_ptr dlg(twrapper::create()); + std::unique_ptr dlg(twrapper::create()); BOOST_REQUIRE_MESSAGE(dlg.get(), "Failed to create a dialog."); const std::string id = gui2::unit_test_mark_popup_as_tested(*(dlg.get())); diff --git a/src/tests/gui/visitor.cpp b/src/tests/gui/visitor.cpp index 78b40a6439c58..8c0e77c7aadfd 100644 --- a/src/tests/gui/visitor.cpp +++ b/src/tests/gui/visitor.cpp @@ -47,7 +47,7 @@ static void test_control() //std::cerr << __func__ << ": " << typeid(T).name() << ".\n"; T control; - boost::scoped_ptr visitor(control.create_walker()); + std::unique_ptr visitor(control.create_walker()); BOOST_REQUIRE_NE(visitor.get(), static_cast(nullptr)); @@ -101,7 +101,7 @@ static void test_grid() add_widget(grid, new gui2::tlabel(), "(2,1)", 1, 0); add_widget(grid, new gui2::tlabel(), "(2,2)", 1, 1); - boost::scoped_ptr visitor(grid.create_walker()); + std::unique_ptr visitor(grid.create_walker()); /***** LABEL 1,1 *****/ diff --git a/src/tests/test_mp_connect.cpp b/src/tests/test_mp_connect.cpp index 0cc8f12a55b97..774bffaf7cdae 100644 --- a/src/tests/test_mp_connect.cpp +++ b/src/tests/test_mp_connect.cpp @@ -52,8 +52,8 @@ class test_connect_engine : public ng::connect_engine { namespace { -boost::scoped_ptr state; -boost::scoped_ptr rng; +std::unique_ptr state; +std::unique_ptr rng; } @@ -93,7 +93,7 @@ struct mp_connect_fixture { std::vector dummy_args; commandline_options cmdline_opts; hotkey::manager hotkey_manager; - boost::scoped_ptr config_manager; + std::unique_ptr config_manager; }; @@ -130,7 +130,7 @@ BOOST_AUTO_TEST_CASE( flg_map_settings ) // Set up side_engine and its dependencies. state->mp_settings().use_map_settings = true; state->mp_settings().saved_game = false; - boost::scoped_ptr + std::unique_ptr connect_engine(create_test_connect_engine()); ng::side_engine_ptr side_engine; config side; @@ -341,7 +341,7 @@ BOOST_AUTO_TEST_CASE( flg_no_map_settings ) // Set up side_engine and its dependencies. state->mp_settings().use_map_settings = false; state->mp_settings().saved_game = false; - boost::scoped_ptr + std::unique_ptr connect_engine(create_test_connect_engine()); ng::side_engine_ptr side_engine; config side; diff --git a/src/tests/test_rng.cpp b/src/tests/test_rng.cpp index 0a5dc4929ad61..58db183781583 100644 --- a/src/tests/test_rng.cpp +++ b/src/tests/test_rng.cpp @@ -309,7 +309,7 @@ BOOST_AUTO_TEST_CASE( validate_get_random_int ) rand_rng::mt_rng mt_(cfg); - boost::shared_ptr gen_ (new random_new::rng_deterministic(mt_)); + std::shared_ptr gen_ (new random_new::rng_deterministic(mt_)); int val = gen_->get_random_int(0, validation_get_random_int_max); BOOST_CHECK_EQUAL ( val , validation_get_random_int_correct_answer ); @@ -317,7 +317,7 @@ BOOST_AUTO_TEST_CASE( validate_get_random_int ) BOOST_AUTO_TEST_CASE( validate_get_random_int2 ) { - boost::shared_ptr gen_ (new random_new::synced_rng(validate_get_random_int_seed_generator)); + std::shared_ptr gen_ (new random_new::synced_rng(validate_get_random_int_seed_generator)); for (int i = 0; i < validation_get_random_int_num_draws; i++) { gen_->next_random(); diff --git a/src/tests/test_whiteboard_side_actions.cpp b/src/tests/test_whiteboard_side_actions.cpp index c6b6276031ec1..51f9bf37d2386 100644 --- a/src/tests/test_whiteboard_side_actions.cpp +++ b/src/tests/test_whiteboard_side_actions.cpp @@ -30,7 +30,7 @@ struct dummy_action: action{ // un-abstraction std::ostream& print(std::ostream& s) const { s< shared_from_this() { return boost::static_pointer_cast(action::shared_from_this()); } + std::shared_ptr shared_from_this() { return std::static_pointer_cast(action::shared_from_this()); } void execute(bool& success, bool& complete){ success=true; complete=true; } void apply_temp_modifier(unit_map&){} void remove_temp_modifier(unit_map&){} @@ -46,12 +46,12 @@ BOOST_AUTO_TEST_SUITE( whiteboard_side_actions_container ) BOOST_AUTO_TEST_CASE( test_insertion ) { side_actions_container sac; - boost::shared_ptr dact; + std::shared_ptr dact; // Basic insertions - boost::shared_ptr act1(new dummy_action(0, false, 1)); - boost::shared_ptr act2(new dummy_action(0, false, 2)); - boost::shared_ptr act3(new dummy_action(0, false, 3)); + std::shared_ptr act1(new dummy_action(0, false, 1)); + std::shared_ptr act2(new dummy_action(0, false, 2)); + std::shared_ptr act3(new dummy_action(0, false, 3)); sac.queue(0, act2); sac.queue(0, act3); @@ -62,16 +62,16 @@ BOOST_AUTO_TEST_CASE( test_insertion ) int tmp=0; for(action_ptr act : sac) { ++tmp; - BOOST_REQUIRE(dact = boost::dynamic_pointer_cast(act)); + BOOST_REQUIRE(dact = std::dynamic_pointer_cast(act)); BOOST_REQUIRE(dact->id_ == tmp); } // Multi-turn insertions - boost::shared_ptr act4(new dummy_action(0, false, 4)); - boost::shared_ptr act5(new dummy_action(0, false, 5)); - boost::shared_ptr act6(new dummy_action(0, false, 6)); - boost::shared_ptr act7(new dummy_action(0, false, 7)); - boost::shared_ptr act8(new dummy_action(0, false, 8)); + std::shared_ptr act4(new dummy_action(0, false, 4)); + std::shared_ptr act5(new dummy_action(0, false, 5)); + std::shared_ptr act6(new dummy_action(0, false, 6)); + std::shared_ptr act7(new dummy_action(0, false, 7)); + std::shared_ptr act8(new dummy_action(0, false, 8)); sac.queue(1, act5); sac.queue(2, act8); sac.queue(1, act7); @@ -83,14 +83,14 @@ BOOST_AUTO_TEST_CASE( test_insertion ) tmp=0; for(action_ptr act : sac) { ++tmp; - BOOST_REQUIRE(dact = boost::dynamic_pointer_cast(act)); + BOOST_REQUIRE(dact = std::dynamic_pointer_cast(act)); BOOST_REQUIRE(dact->id_ == tmp); } - BOOST_REQUIRE(dact = boost::dynamic_pointer_cast(*sac.turn_begin(1))); + BOOST_REQUIRE(dact = std::dynamic_pointer_cast(*sac.turn_begin(1))); BOOST_REQUIRE(dact->id_ == 5); - BOOST_REQUIRE(dact = boost::dynamic_pointer_cast(*(1+sac.turn_begin(1)))); + BOOST_REQUIRE(dact = std::dynamic_pointer_cast(*(1+sac.turn_begin(1)))); BOOST_REQUIRE(dact->id_ == 6); BOOST_REQUIRE(sac.turn_size(1) == 3); @@ -100,14 +100,14 @@ BOOST_AUTO_TEST_CASE( test_insertion ) BOOST_AUTO_TEST_CASE( test_removal ) { side_actions_container sac; - boost::shared_ptr dact; + std::shared_ptr dact; - boost::shared_ptr act1(new dummy_action(0, false, 1)); - boost::shared_ptr act2(new dummy_action(0, false, 2)); - boost::shared_ptr act3(new dummy_action(0, false, 3)); - boost::shared_ptr act4(new dummy_action(0, false, 4)); - boost::shared_ptr act5(new dummy_action(0, false, 5)); - boost::shared_ptr act6(new dummy_action(0, false, 6)); + std::shared_ptr act1(new dummy_action(0, false, 1)); + std::shared_ptr act2(new dummy_action(0, false, 2)); + std::shared_ptr act3(new dummy_action(0, false, 3)); + std::shared_ptr act4(new dummy_action(0, false, 4)); + std::shared_ptr act5(new dummy_action(0, false, 5)); + std::shared_ptr act6(new dummy_action(0, false, 6)); sac.queue(0, act1); side_actions::iterator ite2 = sac.queue(0, act2); @@ -123,7 +123,7 @@ BOOST_AUTO_TEST_CASE( test_removal ) BOOST_REQUIRE(sac.num_turns() == 2); side_actions::iterator it = sac.begin(); for(int i=1; i<6; i+=2, ++it){ - BOOST_REQUIRE(dact = boost::dynamic_pointer_cast(*it)); + BOOST_REQUIRE(dact = std::dynamic_pointer_cast(*it)); BOOST_REQUIRE(dact->id_ == i); } } diff --git a/src/tests/utils/fake_display.cpp b/src/tests/utils/fake_display.cpp index d4e8b059472cb..16cd98023656b 100644 --- a/src/tests/utils/fake_display.cpp +++ b/src/tests/utils/fake_display.cpp @@ -67,10 +67,10 @@ namespace test_utils { video_(CVideo::FAKE_TEST), dummy_cfg_(), dummy_cfg2_(), - dummy_board_(boost::make_shared(dummy_cfg_), dummy_cfg2_), + dummy_board_(std::make_shared(dummy_cfg_), dummy_cfg2_), dummy_tod_(dummy_cfg_), main_event_context_(), - disp_(dummy_board_, video_, boost::shared_ptr (), dummy_reports, dummy_tod_, + disp_(dummy_board_, video_, std::shared_ptr (), dummy_reports, dummy_tod_, dummy_cfg_, dummy_cfg_) { } diff --git a/src/thread.hpp b/src/thread.hpp index 0556dfe075376..ba63aaed6407b 100644 --- a/src/thread.hpp +++ b/src/thread.hpp @@ -201,7 +201,7 @@ class waiter { class async_operation; -typedef boost::shared_ptr async_operation_ptr; +typedef std::shared_ptr async_operation_ptr; typedef std::list active_operation_list; @@ -244,7 +244,7 @@ class async_operation bool is_aborted() const { return aborted_; } private: - boost::scoped_ptr thread_; + std::unique_ptr thread_; bool aborted_; condition finished_; bool finishedVar_; diff --git a/src/tstring.hpp b/src/tstring.hpp index bc7ceb346050d..f6fbd672f1c4c 100644 --- a/src/tstring.hpp +++ b/src/tstring.hpp @@ -180,7 +180,7 @@ class t_string void swap(t_string& other) { val_.swap(other.val_); } private: //never null - boost::shared_ptr val_; + std::shared_ptr val_; }; inline std::ostream& operator<<(std::ostream& os, const t_string& str) { return os << str.get(); } inline bool operator==(const std::string &a, const t_string &b) { return b == a; } diff --git a/src/units/animation_component.hpp b/src/units/animation_component.hpp index 3d128ffe00985..234cf508d52ca 100644 --- a/src/units/animation_component.hpp +++ b/src/units/animation_component.hpp @@ -112,7 +112,7 @@ class unit_animation_component private: const unit & u_; /**< A reference to the unit that owns this object. It does so with a scoped pointer, so this reference should not dangle. */ - boost::scoped_ptr anim_; /**< The current animation. */ + std::unique_ptr anim_; /**< The current animation. */ std::vector animations_; /**< List of registered animations for this unit. */ STATE state_; //!< animation state diff --git a/src/units/filter.cpp b/src/units/filter.cpp index 856947600e6db..83ebfff112b94 100644 --- a/src/units/filter.cpp +++ b/src/units/filter.cpp @@ -73,7 +73,7 @@ bool unit_filter::matches(const unit & u, const unit & u2) const { /// Forward declare the "construct" method which constructs an appropriate filter impl -static boost::shared_ptr construct(const vconfig & vcfg, const filter_context & fc, bool flat_tod); +static std::shared_ptr construct(const vconfig & vcfg, const filter_context & fc, bool flat_tod); /// Null unit filter is built when the input config is null class null_unit_filter_impl : public unit_filter_abstract_impl { @@ -192,15 +192,15 @@ class basic_unit_filter_impl : public unit_filter_abstract_impl { * */ -static boost::shared_ptr construct(const vconfig & vcfg, const filter_context & fc, bool flat_tod) +static std::shared_ptr construct(const vconfig & vcfg, const filter_context & fc, bool flat_tod) { if (vcfg.empty()) { - return boost::make_shared (fc); + return std::make_shared (fc); } if (vcfg.get_config().attribute_count() == 1 && vcfg.get_config().all_children_count() == 0 && vcfg.has_attribute("limit")) { - return boost::make_shared (fc); + return std::make_shared (fc); } - return boost::make_shared(vcfg, fc, flat_tod); + return std::make_shared(vcfg, fc, flat_tod); //TODO: Add more efficient implementations for special cases } @@ -569,7 +569,7 @@ bool basic_unit_filter_impl::internal_matches_filter(const unit & u, const map_l const unit_callable main(loc,u); game_logic::map_formula_callable callable(&main); if (u2) { - boost::intrusive_ptr secondary(new unit_callable(*u2)); + std::shared_ptr secondary(new unit_callable(*u2)); callable.add("other", variant(secondary.get())); // It's not destroyed upon scope exit because the variant holds a reference } diff --git a/src/units/filter.hpp b/src/units/filter.hpp index 2a77728b965fa..ca33833a1006f 100644 --- a/src/units/filter.hpp +++ b/src/units/filter.hpp @@ -105,7 +105,7 @@ class unit_filter { return impl_->empty(); } private: - boost::shared_ptr impl_; + std::shared_ptr impl_; unsigned max_matches_; }; diff --git a/src/units/formula_manager.cpp b/src/units/formula_manager.cpp index 6cd41d4a1ea3f..398f8d8949297 100644 --- a/src/units/formula_manager.cpp +++ b/src/units/formula_manager.cpp @@ -23,7 +23,7 @@ void unit_formula_manager::add_formula_var(std::string str, variant var) { - if(!formula_vars_) formula_vars_ = new game_logic::map_formula_callable; + if(!formula_vars_) formula_vars_ = std::make_shared(); formula_vars_->add(str, var); } @@ -35,7 +35,7 @@ void unit_formula_manager::read(const config & ai) if (const config &ai_vars = ai.child("vars")) { - formula_vars_ = new game_logic::map_formula_callable; + formula_vars_ = std::make_shared(); variant var; for (const config::attribute &i : ai_vars.attribute_range()) { diff --git a/src/units/formula_manager.hpp b/src/units/formula_manager.hpp index 370f3330fc3d5..45ff896e18199 100644 --- a/src/units/formula_manager.hpp +++ b/src/units/formula_manager.hpp @@ -31,7 +31,7 @@ class unit_formula_manager { unit_formula_(o.unit_formula_), unit_loop_formula_(o.unit_loop_formula_), unit_priority_formula_(o.unit_priority_formula_), - formula_vars_(o.formula_vars_ ? new game_logic::map_formula_callable(*o.formula_vars_) : o.formula_vars_) + formula_vars_(o.formula_vars_ ? std::make_shared(*o.formula_vars_) : o.formula_vars_) {} const game_logic::map_formula_callable_ptr& formula_vars() const { return formula_vars_; } diff --git a/src/units/udisplay.cpp b/src/units/udisplay.cpp index 42dc97ef4d7fa..66dd77d0daa80 100644 --- a/src/units/udisplay.cpp +++ b/src/units/udisplay.cpp @@ -805,8 +805,8 @@ void wml_animation_internal(unit_animator &animator, const vconfig &cfg, const m unit_animation::hit_type hits= unit_animation::INVALID; std::vector attacks = u->attacks(); std::vector::iterator itor; - boost::scoped_ptr dummy_primary; - boost::scoped_ptr dummy_secondary; + std::unique_ptr dummy_primary; + std::unique_ptr dummy_secondary; // death and victory animations are handled here because usually // the code iterates through all the unit's attacks diff --git a/src/units/unit.cpp b/src/units/unit.cpp index 302bb7dcf9dd3..d907f034c601b 100644 --- a/src/units/unit.cpp +++ b/src/units/unit.cpp @@ -237,7 +237,7 @@ const std::string& unit::leader_crown() } namespace { template - T* copy_or_null(const boost::scoped_ptr& ptr) + T* copy_or_null(const std::unique_ptr& ptr) { return ptr ? new T(*ptr) : nullptr; } diff --git a/src/units/unit.hpp b/src/units/unit.hpp index f6dd77ae88a53..bc7e4f8d29c4f 100644 --- a/src/units/unit.hpp +++ b/src/units/unit.hpp @@ -45,7 +45,7 @@ class vconfig; /// The things contained within a unit_ability_list. typedef std::pair unit_ability; namespace unit_detail { - template const T& get_or_default(const boost::scoped_ptr& v) + template const T& get_or_default(const std::unique_ptr& v) { if(v) { return *v; @@ -471,7 +471,7 @@ class unit fixed_t alpha_; - boost::scoped_ptr formula_man_; + std::unique_ptr formula_man_; int movement_; int max_movement_; @@ -514,7 +514,7 @@ class unit friend class unit_animation_component; private: - boost::scoped_ptr anim_comp_; + std::unique_ptr anim_comp_; bool getsHit_; mutable bool hidden_; @@ -524,9 +524,9 @@ class unit config abilities_; t_advancements advancements_; t_string description_; - boost::scoped_ptr usage_; - boost::scoped_ptr halo_; - boost::scoped_ptr ellipse_; + std::unique_ptr usage_; + std::unique_ptr halo_; + std::unique_ptr ellipse_; bool random_traits_; bool generate_name_; t_upkeep upkeep_; diff --git a/src/variable.cpp b/src/variable.cpp index 82a521b5bd0c9..981403272145c 100644 --- a/src/variable.cpp +++ b/src/variable.cpp @@ -65,7 +65,7 @@ vconfig::vconfig() : { } -vconfig::vconfig(const config & cfg, const boost::shared_ptr & cache) : +vconfig::vconfig(const config & cfg, const std::shared_ptr & cache) : cache_(cache), cfg_(&cfg) { } @@ -313,7 +313,7 @@ vconfig::all_children_iterator::all_children_iterator(const Itor &i) : { } -vconfig::all_children_iterator::all_children_iterator(const Itor &i, const boost::shared_ptr & cache) : +vconfig::all_children_iterator::all_children_iterator(const Itor &i, const std::shared_ptr & cache) : i_(i), inner_index_(0), cache_(cache) { } diff --git a/src/variable.hpp b/src/variable.hpp index a1ca805e14766..208fb399e87f5 100644 --- a/src/variable.hpp +++ b/src/variable.hpp @@ -48,7 +48,7 @@ class vconfig #endif vconfig(); - vconfig(const config & cfg, const boost::shared_ptr & cache); + vconfig(const config & cfg, const std::shared_ptr & cache); public: /// Constructor from a config. /// Equivalent to vconfig(cfg, false). @@ -103,7 +103,7 @@ class vconfig typedef const value_type reference; typedef config::all_children_iterator Itor; explicit all_children_iterator(const Itor &i); - all_children_iterator(const Itor &i, const boost::shared_ptr & cache); + all_children_iterator(const Itor &i, const std::shared_ptr & cache); all_children_iterator& operator++(); all_children_iterator operator++(int); @@ -133,7 +133,7 @@ class vconfig in this case inner_index_ points to the index in 'a' we are currently processing. */ int inner_index_; - boost::shared_ptr cache_; + std::shared_ptr cache_; }; struct recursion_error : public config::error { @@ -153,7 +153,7 @@ class vconfig /// Keeps a copy of our config alive when we manage our own memory. /// If this is not null, then cfg_ points to *cache_ or a child of *cache_. - mutable boost::shared_ptr cache_; + mutable std::shared_ptr cache_; /// Used to access our config (original or copy, as appropriate). mutable const config* cfg_; static const config default_empty_config; diff --git a/src/video.hpp b/src/video.hpp index e2e0505bf0715..fc6a1289d0102 100644 --- a/src/video.hpp +++ b/src/video.hpp @@ -214,7 +214,7 @@ class CVideo : private boost::noncopyable { private: static CVideo* singleton_; - boost::scoped_ptr window; + std::unique_ptr window; class video_event_handler : public events::sdl_handler { public: virtual void handle_event(const SDL_Event &) {} diff --git a/src/wesnoth.cpp b/src/wesnoth.cpp index 329e461d050b8..1c6553e823d98 100644 --- a/src/wesnoth.cpp +++ b/src/wesnoth.cpp @@ -582,7 +582,7 @@ static int do_gameloop(const std::vector& args) return finished; } - boost::scoped_ptr game( + std::unique_ptr game( new game_launcher(cmdline_opts,args[0].c_str())); const int start_ticks = SDL_GetTicks(); diff --git a/src/whiteboard/action.hpp b/src/whiteboard/action.hpp index 5c5609b4902b3..d1fe2800055ad 100644 --- a/src/whiteboard/action.hpp +++ b/src/whiteboard/action.hpp @@ -30,7 +30,7 @@ class visitor; /** * Abstract base class for all the whiteboard planned actions. */ -class action : public boost::enable_shared_from_this +class action : public std::enable_shared_from_this { public: action(size_t team_index, bool hidden); diff --git a/src/whiteboard/attack.hpp b/src/whiteboard/attack.hpp index 25474985d3e5e..32b2b3a25fbf6 100644 --- a/src/whiteboard/attack.hpp +++ b/src/whiteboard/attack.hpp @@ -62,8 +62,8 @@ class attack: public move protected: - boost::shared_ptr shared_from_this() { - return boost::static_pointer_cast(move::shared_from_this()); + std::shared_ptr shared_from_this() { + return std::static_pointer_cast(move::shared_from_this()); } private: diff --git a/src/whiteboard/highlighter.cpp b/src/whiteboard/highlighter.cpp index 6b75a364953fc..1620322bd0256 100644 --- a/src/whiteboard/highlighter.cpp +++ b/src/whiteboard/highlighter.cpp @@ -288,7 +288,7 @@ void highlighter::highlight_main_visitor::visit(move_ptr move) void highlighter::highlight_main_visitor::visit(attack_ptr attack) { ///@todo: highlight the attack indicator - visit(boost::static_pointer_cast(attack)); + visit(std::static_pointer_cast(attack)); } void highlighter::highlight_main_visitor::visit(recruit_ptr recruit) @@ -319,7 +319,7 @@ void highlighter::highlight_secondary_visitor::visit(move_ptr move) void highlighter::highlight_secondary_visitor::visit(attack_ptr attack) { - visit(boost::static_pointer_cast(attack)); + visit(std::static_pointer_cast(attack)); } void highlighter::unhighlight_visitor::visit(move_ptr move) @@ -336,7 +336,7 @@ void highlighter::unhighlight_visitor::visit(move_ptr move) void highlighter::unhighlight_visitor::visit(attack_ptr attack) { - visit(boost::static_pointer_cast(attack)); + visit(std::static_pointer_cast(attack)); } void highlighter::unhighlight_visitor::visit(recall_ptr recall) diff --git a/src/whiteboard/manager.cpp b/src/whiteboard/manager.cpp index 95fb4ecf70de2..a6b8974bc3e31 100644 --- a/src/whiteboard/manager.cpp +++ b/src/whiteboard/manager.cpp @@ -276,8 +276,8 @@ bool manager::allow_leader_to_move(unit const& leader) const //Look for planned recruits that depend on this leader for(action_const_ptr action : *viewer_actions()) { - recruit_const_ptr recruit = boost::dynamic_pointer_cast(action); - recall_const_ptr recall = boost::dynamic_pointer_cast(action); + recruit_const_ptr recruit = std::dynamic_pointer_cast(action); + recall_const_ptr recall = std::dynamic_pointer_cast(action); if(recruit || recall) { map_location const target_hex = recruit?recruit->get_recruit_hex():recall->get_recall_hex(); @@ -332,7 +332,7 @@ void manager::post_delete_action(action_ptr action) if(actor) { // The unit might have died following the execution of an attack side_actions::iterator action_it = side_actions->find_last_action_of(*actor); if(action_it != side_actions->end()) { - move_ptr move = boost::dynamic_pointer_cast(*action_it); + move_ptr move = std::dynamic_pointer_cast(*action_it); if(move && move->get_fake_unit()) { move->get_fake_unit()->anim_comp().set_standing(true); } @@ -1230,7 +1230,7 @@ future_map_if_active::~future_map_if_active() real_map::real_map(): initial_planned_unit_map_(resources::whiteboard && resources::whiteboard->has_planned_unit_map()), - unit_map_lock_(resources::whiteboard ? resources::whiteboard->unit_map_lock_ : boost::shared_ptr(new bool(false))) + unit_map_lock_(resources::whiteboard ? resources::whiteboard->unit_map_lock_ : std::shared_ptr(new bool(false))) { if (!resources::whiteboard) return; diff --git a/src/whiteboard/manager.hpp b/src/whiteboard/manager.hpp index dee9e46c3355c..e75a741cfbb80 100644 --- a/src/whiteboard/manager.hpp +++ b/src/whiteboard/manager.hpp @@ -167,7 +167,7 @@ class manager : private boost::noncopyable void contextual_bump_down_action(); /** Get the highlight visitor instance in use by the manager */ - boost::weak_ptr get_highlighter() { return highlighter_; } + std::weak_ptr get_highlighter() { return highlighter_; } /** Checks whether the whiteboard has any planned action on any team */ bool has_actions() const; @@ -221,16 +221,16 @@ class manager : private boost::noncopyable whiteboard_lock unit_map_lock_; - boost::scoped_ptr mapbuilder_; - boost::shared_ptr highlighter_; + std::unique_ptr mapbuilder_; + std::shared_ptr highlighter_; - boost::scoped_ptr route_; + std::unique_ptr route_; std::vector move_arrows_; std::vector fake_units_; size_t temp_move_unit_underlying_id_; - boost::scoped_ptr key_poller_; + std::unique_ptr key_poller_; std::vector hidden_unit_hexes_; @@ -258,7 +258,7 @@ struct future_map_if /** @param cond: If true, applies the planned unit map for the duration of the struct's life and reverts to real unit map on destruction. No effect if cond == false. */ - boost::scoped_ptr future_map_; + std::unique_ptr future_map_; future_map_if(bool cond) : future_map_(cond ? new future_map() : nullptr) {} diff --git a/src/whiteboard/mapbuilder.cpp b/src/whiteboard/mapbuilder.cpp index d0268328cf101..617e844bdadb0 100644 --- a/src/whiteboard/mapbuilder.cpp +++ b/src/whiteboard/mapbuilder.cpp @@ -135,7 +135,7 @@ void mapbuilder::process(side_actions &sa, side_actions::iterator action_it) if(erval != action::OK) { // We do not delete obstructed moves, nor invalid actions caused by obstructed moves. if(has_invalid_actions_.find(unit.get()) == has_invalid_actions_.end()) { - if(erval == action::TOO_FAR || (erval == action::LOCATION_OCCUPIED && boost::dynamic_pointer_cast(action))) { + if(erval == action::TOO_FAR || (erval == action::LOCATION_OCCUPIED && std::dynamic_pointer_cast(action))) { has_invalid_actions_.insert(unit.get()); invalid_actions_.push_back(action_it); } else { @@ -178,7 +178,7 @@ void mapbuilder::post_visit_team(size_t turn) // Go backwards through the actions of this turn to identify // which ones are moves that end a turn. for(action_ptr action : boost::adaptors::reverse(applied_actions_this_turn_)) { - move_ptr move = boost::dynamic_pointer_cast(action); + move_ptr move = std::dynamic_pointer_cast(action); if(move) { move->set_turn_number(0); if(move->get_route().steps.size() > 1 && seen.count(move->get_unit().get()) == 0) { diff --git a/src/whiteboard/move.cpp b/src/whiteboard/move.cpp index 0fe0705931fde..d37f942773baf 100644 --- a/src/whiteboard/move.cpp +++ b/src/whiteboard/move.cpp @@ -162,7 +162,7 @@ void move::init() side_actions::iterator action = side_actions->find_last_action_of(*(get_unit())); if (action != side_actions->end()) { - if (move_ptr move = boost::dynamic_pointer_cast(*action)) + if (move_ptr move = std::dynamic_pointer_cast(*action)) { if (move->fake_unit_) move->fake_unit_->anim_comp().set_disabled_ghosted(true); diff --git a/src/whiteboard/move.hpp b/src/whiteboard/move.hpp index 2f9e0008551a6..e4fe7c591b249 100644 --- a/src/whiteboard/move.hpp +++ b/src/whiteboard/move.hpp @@ -93,15 +93,15 @@ class move : public action protected: - boost::shared_ptr shared_from_this() { - return boost::static_pointer_cast(action::shared_from_this()); + std::shared_ptr shared_from_this() { + return std::static_pointer_cast(action::shared_from_this()); } void calculate_move_cost(); size_t unit_underlying_id_; std::string unit_id_; - boost::scoped_ptr route_; + std::unique_ptr route_; int movement_cost_; /// Turn end number to draw if greater than zero. Assigned by the map builder. int turn_number_; @@ -121,7 +121,7 @@ class move : public action void init(); void update_arrow_style(); - boost::scoped_ptr mover_; + std::unique_ptr mover_; bool fake_unit_hidden_; }; diff --git a/src/whiteboard/recall.hpp b/src/whiteboard/recall.hpp index 6134a541d6cc2..4229ea8658773 100644 --- a/src/whiteboard/recall.hpp +++ b/src/whiteboard/recall.hpp @@ -72,8 +72,8 @@ class recall: public action protected: - boost::shared_ptr shared_from_this() { - return boost::static_pointer_cast(action::shared_from_this()); + std::shared_ptr shared_from_this() { + return std::static_pointer_cast(action::shared_from_this()); } private: diff --git a/src/whiteboard/recruit.hpp b/src/whiteboard/recruit.hpp index 6756e65f48acc..18a91dc5751e6 100644 --- a/src/whiteboard/recruit.hpp +++ b/src/whiteboard/recruit.hpp @@ -77,8 +77,8 @@ class recruit: public action protected: - boost::shared_ptr shared_from_this() { - return boost::static_pointer_cast(action::shared_from_this()); + std::shared_ptr shared_from_this() { + return std::static_pointer_cast(action::shared_from_this()); } std::string unit_name_; diff --git a/src/whiteboard/side_actions.cpp b/src/whiteboard/side_actions.cpp index 4aaa1f540fb53..4fe3ad7d34e4d 100644 --- a/src/whiteboard/side_actions.cpp +++ b/src/whiteboard/side_actions.cpp @@ -273,7 +273,7 @@ void side_actions::get_numbers(const map_location& hex, numbers_t& result) std::vector& team_numbers = result.team_numbers; int& main_number = result.main_number; std::set& secondary_numbers = result.secondary_numbers; - boost::shared_ptr hlighter = resources::whiteboard->get_highlighter().lock(); + std::shared_ptr hlighter = resources::whiteboard->get_highlighter().lock(); for(const_iterator it = begin(); it != end(); ++it) { if((*it)->is_numbering_hex(hex)) { @@ -431,7 +431,7 @@ namespace } void visit(attack_ptr first) { - visit(boost::static_pointer_cast(first)); + visit(std::static_pointer_cast(first)); } void visit(recruit_ptr first) { @@ -493,7 +493,7 @@ side_actions::iterator side_actions::bump_earlier(side_actions::iterator positio return end(); } - if(move_ptr second = boost::dynamic_pointer_cast(*position)) { + if(move_ptr second = std::dynamic_pointer_cast(*position)) { swapable_with_move check(*this, position, second); (*previous)->accept(check); if(!check.valid()) { @@ -667,31 +667,31 @@ side_actions::iterator side_actions::safe_erase(iterator const& itor) } side_actions::iterator side_actions::queue_move(size_t turn, unit& mover, const pathfind::marked_route& route, arrow_ptr arrow, fake_unit_ptr fake_unit) { - move_ptr new_move(boost::make_shared(team_index(), hidden_, std::ref(mover), route, arrow, fake_unit)); + move_ptr new_move(std::make_shared(team_index(), hidden_, std::ref(mover), route, arrow, fake_unit)); return queue_action(turn, new_move); } side_actions::iterator side_actions::queue_attack(size_t turn, unit& mover, const map_location& target_hex, int weapon_choice, const pathfind::marked_route& route, arrow_ptr arrow, fake_unit_ptr fake_unit) { - attack_ptr new_attack(boost::make_shared(team_index(), hidden_, std::ref(mover), target_hex, weapon_choice, route, arrow, fake_unit)); + attack_ptr new_attack(std::make_shared(team_index(), hidden_, std::ref(mover), target_hex, weapon_choice, route, arrow, fake_unit)); return queue_action(turn, new_attack); } side_actions::iterator side_actions::queue_recruit(size_t turn, const std::string& unit_name, const map_location& recruit_hex) { - recruit_ptr new_recruit(boost::make_shared(team_index(), hidden_, unit_name, recruit_hex)); + recruit_ptr new_recruit(std::make_shared(team_index(), hidden_, unit_name, recruit_hex)); return queue_action(turn, new_recruit); } side_actions::iterator side_actions::queue_recall(size_t turn, const unit& unit, const map_location& recall_hex) { - recall_ptr new_recall(boost::make_shared(team_index(), hidden_, unit, recall_hex)); + recall_ptr new_recall(std::make_shared(team_index(), hidden_, unit, recall_hex)); return queue_action(turn, new_recall); } side_actions::iterator side_actions::queue_suppose_dead(size_t turn, unit& curr_unit, map_location const& loc) { - suppose_dead_ptr new_suppose_dead(boost::make_shared(team_index(), hidden_, std::ref(curr_unit), loc)); + suppose_dead_ptr new_suppose_dead(std::make_shared(team_index(), hidden_, std::ref(curr_unit), loc)); return queue_action(turn, new_suppose_dead); } diff --git a/src/whiteboard/side_actions.hpp b/src/whiteboard/side_actions.hpp index bcc657f87ebd7..cef95d64738c3 100644 --- a/src/whiteboard/side_actions.hpp +++ b/src/whiteboard/side_actions.hpp @@ -278,7 +278,7 @@ class side_actions_container * utility methods to create and manipulate them. * It also provides an interface to the underlying side_actions_container. */ -class side_actions: public boost::enable_shared_from_this +class side_actions: public std::enable_shared_from_this { public: typedef side_actions_container container; diff --git a/src/whiteboard/suppose_dead.hpp b/src/whiteboard/suppose_dead.hpp index 5f5c091ca4f72..a8a53f550166a 100644 --- a/src/whiteboard/suppose_dead.hpp +++ b/src/whiteboard/suppose_dead.hpp @@ -71,8 +71,8 @@ class suppose_dead: public action protected: - boost::shared_ptr shared_from_this() { - return boost::static_pointer_cast(action::shared_from_this()); + std::shared_ptr shared_from_this() { + return std::static_pointer_cast(action::shared_from_this()); } size_t unit_underlying_id_; diff --git a/src/whiteboard/typedefs.hpp b/src/whiteboard/typedefs.hpp index bdf437522786f..5d80bc6b4a10d 100644 --- a/src/whiteboard/typedefs.hpp +++ b/src/whiteboard/typedefs.hpp @@ -63,26 +63,26 @@ class recruit; class suppose_dead; class side_actions; -typedef boost::shared_ptr whiteboard_lock; +typedef std::shared_ptr whiteboard_lock; -typedef boost::shared_ptr arrow_ptr; +typedef std::shared_ptr arrow_ptr; -typedef boost::shared_ptr action_ptr; -typedef boost::shared_ptr action_const_ptr; -typedef boost::weak_ptr weak_action_ptr; +typedef std::shared_ptr action_ptr; +typedef std::shared_ptr action_const_ptr; +typedef std::weak_ptr weak_action_ptr; typedef std::deque action_queue; -typedef boost::shared_ptr side_actions_ptr; - -typedef boost::shared_ptr move_ptr; -typedef boost::shared_ptr move_const_ptr; -typedef boost::shared_ptr attack_ptr; -typedef boost::shared_ptr attack_const_ptr; -typedef boost::shared_ptr recruit_ptr; -typedef boost::shared_ptr recruit_const_ptr; -typedef boost::shared_ptr recall_ptr; -typedef boost::shared_ptr recall_const_ptr; -typedef boost::shared_ptr suppose_dead_ptr; -typedef boost::shared_ptr suppose_dead_const_ptr; +typedef std::shared_ptr side_actions_ptr; + +typedef std::shared_ptr move_ptr; +typedef std::shared_ptr move_const_ptr; +typedef std::shared_ptr attack_ptr; +typedef std::shared_ptr attack_const_ptr; +typedef std::shared_ptr recruit_ptr; +typedef std::shared_ptr recruit_const_ptr; +typedef std::shared_ptr recall_ptr; +typedef std::shared_ptr recall_const_ptr; +typedef std::shared_ptr suppose_dead_ptr; +typedef std::shared_ptr suppose_dead_const_ptr; } // end namespace wb diff --git a/src/widgets/combo_drag.hpp b/src/widgets/combo_drag.hpp index fd8c4ce4c2095..b046b6e5a7e10 100644 --- a/src/widgets/combo_drag.hpp +++ b/src/widgets/combo_drag.hpp @@ -22,7 +22,7 @@ class CVideo; namespace gui { class combo_drag; - typedef boost::shared_ptr combo_drag_ptr; + typedef std::shared_ptr combo_drag_ptr; class combo_drag : public combo, public drop_target, public events::pump_monitor { diff --git a/src/widgets/drop_target.hpp b/src/widgets/drop_target.hpp index 4f857978cd8b5..af4dd04f70864 100644 --- a/src/widgets/drop_target.hpp +++ b/src/widgets/drop_target.hpp @@ -24,11 +24,11 @@ namespace gui { class drop_target; - typedef boost::shared_ptr drop_target_ptr; + typedef std::shared_ptr drop_target_ptr; typedef int drop_target_group; class drop_group_manager; - typedef boost::shared_ptr drop_group_manager_ptr; + typedef std::shared_ptr drop_group_manager_ptr; /** * Handles droping for drag able ui items. diff --git a/src/wmi_pager.cpp b/src/wmi_pager.cpp index 85b220aba2813..aef82970c4997 100644 --- a/src/wmi_pager.cpp +++ b/src/wmi_pager.cpp @@ -35,23 +35,23 @@ struct map_location; static const char * next_id = "__wml_items_next_page"; static const char * prev_id = "__wml_items_prev_page"; -static void add_next_page_item( std::vector > & items, +static void add_next_page_item( std::vector > & items, std::vector & descriptions) { std::string desc = _("More Items"); config temp; temp["description"] = desc; - items.push_back(boost::make_shared(next_id, temp)); + items.push_back(std::make_shared(next_id, temp)); descriptions.push_back(desc); } -static void add_prev_page_item( std::vector > & items, +static void add_prev_page_item( std::vector > & items, std::vector & descriptions) { std::string desc = _("Previous Items"); config temp; temp["description"] = desc; - items.push_back(boost::make_shared(prev_id, temp)); + items.push_back(std::make_shared(prev_id, temp)); descriptions.push_back(desc); } @@ -67,7 +67,7 @@ bool wmi_pager::capture ( const game_events::wml_menu_item & item ) return false; } -typedef boost::shared_ptr wmi_ptr; +typedef std::shared_ptr wmi_ptr; typedef std::pair wmi_pair; typedef std::vector::iterator wmi_it; diff --git a/src/wmi_pager.hpp b/src/wmi_pager.hpp index 38369887373df..fefa60202f51f 100644 --- a/src/wmi_pager.hpp +++ b/src/wmi_pager.hpp @@ -49,7 +49,7 @@ class wmi_pager { /** Adds the currently paged range of menu items to the given lists */ void get_items(const map_location& hex, //!< Game hex related to this context menu game_data & gamedata, filter_context & fc, unit_map & units, //!< Data needed to create scoped objects when evaluating wml filters - std::vector > & items, //!< List of accumulated menu items so far. + std::vector > & items, //!< List of accumulated menu items so far. std::vector & descriptions); //!< List of menu item descriptions bool capture(const game_events::wml_menu_item & item); //!< Captures a page up / page down event in the case that it is fired.