Mark more classes are final.

Fixes #42.

* bench/stutter/stutter_invariance_formulas.cc, bin/autfilt.cc,
bin/common_output.cc, bin/dstar2tgba.cc, bin/ltl2tgba.cc,
bin/ltl2tgta.cc, bin/ltlcross.cc, bin/ltldo.cc, bin/ltlfilt.cc,
bin/ltlgrind.cc, spot/misc/intvcmp2.cc, spot/misc/intvcomp.cc,
spot/taalgos/dot.cc, spot/taalgos/statessetbuilder.cc,
spot/taalgos/stats.cc, spot/tl/relabel.cc, spot/tl/simplify.cc,
spot/tl/snf.cc, spot/twa/bdddict.cc, spot/twa/twaproduct.cc,
spot/twaalgos/degen.cc, spot/twaalgos/determinize.cc,
spot/twaalgos/dot.cc, spot/twaalgos/emptiness.cc,
spot/twaalgos/gtec/ce.cc, spot/twaalgos/ltl2tgba_fm.cc,
spot/twaalgos/magic.cc, spot/twaalgos/neverclaim.cc,
spot/twaalgos/se05.cc, spot/twaalgos/simulation.cc,
spot/twaalgos/tau03.cc, spot/twaalgos/tau03opt.cc: Add final.
This commit is contained in:
Alexandre Duret-Lutz 2016-03-13 16:03:39 +01:00
parent 8814f16637
commit 2402c2141d
32 changed files with 78 additions and 76 deletions

View file

@ -1,5 +1,5 @@
// -*- coding: utf-8 -*- // -*- coding: utf-8 -*-
// Copyright (C) 2014, 2015 Laboratoire de Recherche et // Copyright (C) 2014, 2015, 2016 Laboratoire de Recherche et
// Développement de l'Epita (LRDE). // Développement de l'Epita (LRDE).
// //
// This file is part of Spot, a model checking library. // This file is part of Spot, a model checking library.
@ -40,7 +40,7 @@ const struct argp_child children[] =
namespace namespace
{ {
class stut_processor: public job_processor class stut_processor final: public job_processor
{ {
public: public:
spot::translator& trans; spot::translator& trans;

View file

@ -601,7 +601,7 @@ parse_opt(int key, char* arg, struct argp_state*)
namespace namespace
{ {
class hoa_processor: public job_processor class hoa_processor final: public job_processor
{ {
private: private:
spot::postprocessor& post; spot::postprocessor& post;

View file

@ -153,7 +153,7 @@ namespace
const char* suffix; const char* suffix;
}; };
class printable_formula: class printable_formula final:
public spot::printable_value<const formula_with_location*> public spot::printable_value<const formula_with_location*>
{ {
public: public:
@ -171,7 +171,7 @@ namespace
} }
}; };
class formula_printer: protected spot::formater class formula_printer final: protected spot::formater
{ {
public: public:
formula_printer(std::ostream& os, const char* format) formula_printer(std::ostream& os, const char* format)

View file

@ -1,5 +1,5 @@
// -*- coding: utf-8 -*- // -*- coding: utf-8 -*-
// Copyright (C) 2013, 2014, 2015 Laboratoire de Recherche et // Copyright (C) 2013, 2014, 2015, 2016 Laboratoire de Recherche et
// Développement de l'Epita (LRDE). // Développement de l'Epita (LRDE).
// //
// This file is part of Spot, a model checking library. // This file is part of Spot, a model checking library.
@ -106,7 +106,7 @@ parse_opt(int key, char* arg, struct argp_state*)
namespace namespace
{ {
class dstar_processor: public job_processor class dstar_processor final: public job_processor
{ {
public: public:
spot::postprocessor& post; spot::postprocessor& post;

View file

@ -109,7 +109,7 @@ parse_opt(int key, char* arg, struct argp_state*)
namespace namespace
{ {
class trans_processor: public job_processor class trans_processor final: public job_processor
{ {
public: public:
spot::translator& trans; spot::translator& trans;

View file

@ -1,6 +1,6 @@
// -*- coding: utf-8 -*- // -*- coding: utf-8 -*-
// Copyright (C) 2012, 2013, 2014, 2015 Laboratoire de Recherche et // Copyright (C) 2012, 2013, 2014, 2015, 2016 Laboratoire de Recherche
// Développement de l'Epita (LRDE). // et Développement de l'Epita (LRDE).
// //
// This file is part of Spot, a model checking library. // This file is part of Spot, a model checking library.
// //
@ -159,7 +159,7 @@ parse_opt(int key, char* arg, struct argp_state*)
namespace namespace
{ {
class trans_processor: public job_processor class trans_processor final: public job_processor
{ {
public: public:
spot::translator& trans; spot::translator& trans;

View file

@ -485,7 +485,7 @@ parse_opt(int key, char* arg, struct argp_state*)
namespace namespace
{ {
class xtranslator_runner: public translator_runner class xtranslator_runner final: public translator_runner
{ {
public: public:
xtranslator_runner(spot::bdd_dict_ptr dict) xtranslator_runner(spot::bdd_dict_ptr dict)
@ -821,7 +821,7 @@ namespace
typedef typedef
std::unordered_set<spot::formula> fset_t; std::unordered_set<spot::formula> fset_t;
class processor: public job_processor class processor final: public job_processor
{ {
spot::bdd_dict_ptr dict = spot::make_bdd_dict(); spot::bdd_dict_ptr dict = spot::make_bdd_dict();
xtranslator_runner runner; xtranslator_runner runner;

View file

@ -125,7 +125,7 @@ parse_opt(int key, char* arg, struct argp_state*)
namespace namespace
{ {
class xtranslator_runner: public translator_runner class xtranslator_runner final: public translator_runner
{ {
public: public:
xtranslator_runner(spot::bdd_dict_ptr dict) xtranslator_runner(spot::bdd_dict_ptr dict)
@ -209,7 +209,7 @@ namespace
}; };
class processor: public job_processor class processor final: public job_processor
{ {
spot::bdd_dict_ptr dict = spot::make_bdd_dict(); spot::bdd_dict_ptr dict = spot::make_bdd_dict();
xtranslator_runner runner; xtranslator_runner runner;

View file

@ -465,7 +465,7 @@ std::unordered_set<spot::formula> fset_t;
namespace namespace
{ {
class ltl_processor: public job_processor class ltl_processor final: public job_processor
{ {
public: public:
spot::tl_simplifier& simpl; spot::tl_simplifier& simpl;

View file

@ -1,6 +1,6 @@
// -*- coding: utf-8 -*- // -*- coding: utf-8 -*-
// Copyright (C) 2014, 2015 Laboratoire de Recherche et Développement de // Copyright (C) 2014, 2015, 2016 Laboratoire de Recherche et
// l'Epita (LRDE). // Développement de l'Epita (LRDE).
// //
// This file is part of Spot, a model checking library. // This file is part of Spot, a model checking library.
// //
@ -108,7 +108,7 @@ static const argp_child children[] = {
namespace namespace
{ {
class mutate_processor: public job_processor class mutate_processor final: public job_processor
{ {
public: public:
int int

View file

@ -1,6 +1,6 @@
// -*- coding: utf-8 -*- // -*- coding: utf-8 -*-
// Copyright (C) 2011, 2013, 2014, 2015 Laboratoire de Recherche et // Copyright (C) 2011, 2013, 2014, 2015, 2016 Laboratoire de Recherche
// Développement de l'Epita (LRDE). // et Développement de l'Epita (LRDE).
// //
// This file is part of Spot, a model checking library. // This file is part of Spot, a model checking library.
// //
@ -326,7 +326,7 @@ namespace spot
}; };
class int_array_array_compression: class int_array_array_compression final:
public stream_compression_base<int_array_array_compression> public stream_compression_base<int_array_array_compression>
{ {
public: public:
@ -497,7 +497,7 @@ namespace spot
}; };
class int_array_array_decompression: class int_array_array_decompression final:
public stream_decompression_base<int_array_array_decompression> public stream_decompression_base<int_array_array_decompression>
{ {
public: public:

View file

@ -1,5 +1,5 @@
// -*- coding: utf-8 -*- // -*- coding: utf-8 -*-
// Copyright (C) 2011, 2013, 2014 Laboratoire de Recherche et // Copyright (C) 2011, 2013, 2014, 2016 Laboratoire de Recherche et
// Développement de l'Epita (LRDE). // Développement de l'Epita (LRDE).
// //
// This file is part of Spot, a model checking library. // This file is part of Spot, a model checking library.
@ -184,7 +184,7 @@ namespace spot
unsigned int bits_left_; unsigned int bits_left_;
}; };
class int_array_vector_compression: class int_array_vector_compression final:
public stream_compression_base<int_array_vector_compression> public stream_compression_base<int_array_vector_compression>
{ {
public: public:
@ -233,7 +233,7 @@ namespace spot
std::vector<unsigned int>* result_; std::vector<unsigned int>* result_;
}; };
class int_vector_vector_compression: class int_vector_vector_compression final:
public stream_compression_base<int_vector_vector_compression> public stream_compression_base<int_vector_vector_compression>
{ {
public: public:
@ -277,7 +277,7 @@ namespace spot
std::vector<unsigned int>& output_; std::vector<unsigned int>& output_;
}; };
class int_array_array_compression: class int_array_array_compression final:
public stream_compression_base<int_array_array_compression> public stream_compression_base<int_array_array_compression>
{ {
public: public:
@ -521,7 +521,7 @@ namespace spot
unsigned int buffer_bits_; unsigned int buffer_bits_;
}; };
class int_vector_vector_decompression: class int_vector_vector_decompression final:
public stream_decompression_base<int_vector_vector_decompression> public stream_decompression_base<int_vector_vector_decompression>
{ {
public: public:
@ -572,7 +572,7 @@ namespace spot
size_t size_; size_t size_;
}; };
class int_vector_array_decompression: class int_vector_array_decompression final:
public stream_decompression_base<int_vector_array_decompression> public stream_decompression_base<int_vector_array_decompression>
{ {
public: public:
@ -622,7 +622,7 @@ namespace spot
size_t size_; size_t size_;
}; };
class int_array_array_decompression: class int_array_array_decompression final:
public stream_decompression_base<int_array_array_decompression> public stream_decompression_base<int_array_array_decompression>
{ {
public: public:

View file

@ -30,7 +30,7 @@ namespace spot
{ {
namespace namespace
{ {
class dotty_bfs : public ta_reachable_iterator_breadth_first class dotty_bfs final: public ta_reachable_iterator_breadth_first
{ {
void void
parse_opts(const char* options) parse_opts(const char* options)

View file

@ -1,5 +1,5 @@
// -*- coding: utf-8 -*- // -*- coding: utf-8 -*-
// Copyright (C) 2010, 2014 Laboratoire de Recherche et Développement // Copyright (C) 2010, 2014, 2016 Laboratoire de Recherche et Développement
// de l'Epita (LRDE). // de l'Epita (LRDE).
// //
// This file is part of Spot, a model checking library. // This file is part of Spot, a model checking library.
@ -26,7 +26,8 @@ namespace spot
{ {
namespace namespace
{ {
class states_set_builder_bfs : public ta_reachable_iterator_breadth_first class states_set_builder_bfs final:
public ta_reachable_iterator_breadth_first
{ {
public: public:
states_set_builder_bfs(const const_ta_ptr& a) : states_set_builder_bfs(const const_ta_ptr& a) :

View file

@ -1,5 +1,5 @@
// -*- coding: utf-8 -*- // -*- coding: utf-8 -*-
// Copyright (C) 2008, 2014, 2015 Laboratoire de Recherche et // Copyright (C) 2008, 2014, 2015, 2016 Laboratoire de Recherche et
// Développement de l'Epita (LRDE). // Développement de l'Epita (LRDE).
// Copyright (C) 2004 Laboratoire d'Informatique de Paris 6 (LIP6), // Copyright (C) 2004 Laboratoire d'Informatique de Paris 6 (LIP6),
// département Systèmes Répartis Coopératifs (SRC), Université Pierre // département Systèmes Répartis Coopératifs (SRC), Université Pierre
@ -29,7 +29,7 @@ namespace spot
{ {
namespace namespace
{ {
class stats_bfs : public ta_reachable_iterator_breadth_first class stats_bfs final: public ta_reachable_iterator_breadth_first
{ {
public: public:
stats_bfs(const const_ta_ptr a, ta_statistics& s) : stats_bfs(const const_ta_ptr a, ta_statistics& s) :

View file

@ -229,7 +229,7 @@ namespace spot
// Convert the formula's syntax tree into an undirected graph // Convert the formula's syntax tree into an undirected graph
// labeled by subformulas. // labeled by subformulas.
class formula_to_fgraph final class formula_to_fgraph
{ {
public: public:
fgraph& g; fgraph& g;

View file

@ -39,7 +39,7 @@ namespace spot
typedef std::vector<formula> vec; typedef std::vector<formula> vec;
// The name of this class is public, but not its contents. // The name of this class is public, but not its contents.
class tl_simplifier_cache class tl_simplifier_cache final
{ {
typedef std::unordered_map<formula, formula> f2f_map; typedef std::unordered_map<formula, formula> f2f_map;
typedef std::unordered_map<formula, bdd> f2b_map; typedef std::unordered_map<formula, bdd> f2b_map;

View file

@ -1,5 +1,5 @@
// -*- coding: utf-8 -*- // -*- coding: utf-8 -*-
// Copyright (C) 2012, 2014, 2015 Laboratoire de Recherche et // Copyright (C) 2012, 2014, 2015, 2016 Laboratoire de Recherche et
// Developpement de l'Epita (LRDE). // Developpement de l'Epita (LRDE).
// //
// This file is part of Spot, a model checking library. // This file is part of Spot, a model checking library.
@ -26,7 +26,7 @@ namespace spot
// E° if bounded=false // E° if bounded=false
// E^□ if nounded=true // E^□ if nounded=true
template<bool bounded> template<bool bounded>
class snf_visitor class snf_visitor final
{ {
protected: protected:
formula result_; formula result_;

View file

@ -1,6 +1,6 @@
// -*- coding: utf-8 -*- // -*- coding: utf-8 -*-
// Copyright (C) 2009, 2012, 2013, 2014, 2015 Laboratoire de Recherche // Copyright (C) 2009, 2012, 2013, 2014, 2015, 2016 Laboratoire de
// et Développement de l'Epita (LRDE). // Recherche et Développement de l'Epita (LRDE).
// Copyright (C) 2003, 2004, 2005, 2006 Laboratoire d'Informatique de // Copyright (C) 2003, 2004, 2005, 2006 Laboratoire d'Informatique de
// Paris 6 (LIP6), département Systèmes Répartis Coopératifs (SRC), // Paris 6 (LIP6), département Systèmes Répartis Coopératifs (SRC),
// Université Pierre et Marie Curie. // Université Pierre et Marie Curie.
@ -39,7 +39,7 @@ namespace spot
{ {
} }
class bdd_dict_priv: public bdd_allocator class bdd_dict_priv final: public bdd_allocator
{ {
public: public:

View file

@ -147,7 +147,8 @@ namespace spot
/// \brief Iterate over the successors of a product computed on the fly. /// \brief Iterate over the successors of a product computed on the fly.
class twa_succ_iterator_product: public twa_succ_iterator_product_common class twa_succ_iterator_product final:
public twa_succ_iterator_product_common
{ {
public: public:
twa_succ_iterator_product(twa_succ_iterator* left, twa_succ_iterator_product(twa_succ_iterator* left,
@ -212,7 +213,7 @@ namespace spot
/// Iterate over the successors of a product computed on the fly. /// Iterate over the successors of a product computed on the fly.
/// This one assumes that LEFT is an iterator over a Kripke structure /// This one assumes that LEFT is an iterator over a Kripke structure
class twa_succ_iterator_product_kripke: class twa_succ_iterator_product_kripke final:
public twa_succ_iterator_product_common public twa_succ_iterator_product_common
{ {
public: public:

View file

@ -57,7 +57,7 @@ namespace spot
// Acceptance set common to all outgoing edges (of the same // Acceptance set common to all outgoing edges (of the same
// SCC -- we do not care about the other) of some state. // SCC -- we do not care about the other) of some state.
class outgoing_acc class outgoing_acc final
{ {
const_twa_graph_ptr a_; const_twa_graph_ptr a_;
typedef std::tuple<acc_cond::mark_t, typedef std::tuple<acc_cond::mark_t,
@ -125,7 +125,7 @@ namespace spot
}; };
// Order of accepting sets (for one SCC) // Order of accepting sets (for one SCC)
class acc_order class acc_order final
{ {
std::vector<unsigned> order_; std::vector<unsigned> order_;
acc_cond::mark_t found_; acc_cond::mark_t found_;
@ -162,7 +162,7 @@ namespace spot
}; };
// Accepting order for each SCC // Accepting order for each SCC
class scc_orders class scc_orders final
{ {
std::map<int, acc_order> orders_; std::map<int, acc_order> orders_;
bool skip_levels_; bool skip_levels_;

View file

@ -46,7 +46,7 @@ namespace spot
std::vector<size_t>& nb_braces); std::vector<size_t>& nb_braces);
}; };
class safra_state class safra_state final
{ {
public: public:
using state_t = unsigned; using state_t = unsigned;

View file

@ -44,7 +44,7 @@ namespace spot
{ {
constexpr int MAX_BULLET = 20; constexpr int MAX_BULLET = 20;
class dotty_output class dotty_output final
{ {
std::ostream& os_; std::ostream& os_;
bool opt_force_acc_trans_ = false; bool opt_force_acc_trans_ = false;

View file

@ -280,7 +280,7 @@ namespace spot
namespace namespace
{ {
class shortest_path: public bfs_steps class shortest_path final: public bfs_steps
{ {
public: public:
shortest_path(const const_twa_ptr& a) shortest_path(const const_twa_ptr& a)

View file

@ -28,7 +28,7 @@ namespace spot
{ {
namespace namespace
{ {
class shortest_path: public bfs_steps class shortest_path final: public bfs_steps
{ {
public: public:
shortest_path(const state_set* t, shortest_path(const state_set* t,

View file

@ -102,7 +102,7 @@ namespace spot
class translate_dict; class translate_dict;
class ratexp_to_dfa class ratexp_to_dfa final
{ {
typedef twa_graph::namer<formula> namer; typedef twa_graph::namer<formula> namer;
public: public:
@ -129,7 +129,7 @@ namespace spot
// "a" variables are promises (written "a" in the paper) // "a" variables are promises (written "a" in the paper)
// "next" variables are X's operands (the "r_X" variables from the paper) // "next" variables are X's operands (the "r_X" variables from the paper)
// "var" variables are atomic propositions. // "var" variables are atomic propositions.
class translate_dict class translate_dict final
{ {
public: public:
@ -1063,7 +1063,7 @@ namespace spot
// Duret-Lutz's paper "LTL Translation Improvements in Spot 1.0" // Duret-Lutz's paper "LTL Translation Improvements in Spot 1.0"
// (IJCCBS 2014), for the optimization. The PSL stuff is // (IJCCBS 2014), for the optimization. The PSL stuff is
// unpublished yet. // unpublished yet.
class ltl_trad_visitor class ltl_trad_visitor final
{ {
public: public:
ltl_trad_visitor(translate_dict& dict, bool mark_all = false, ltl_trad_visitor(translate_dict& dict, bool mark_all = false,
@ -1663,7 +1663,7 @@ namespace spot
// Check whether a formula can be part of a fair loop. // Check whether a formula can be part of a fair loop.
// Cache the result for efficiency. // Cache the result for efficiency.
class possible_fair_loop_checker class possible_fair_loop_checker final
{ {
public: public:
bool bool
@ -1680,7 +1680,7 @@ namespace spot
pfl_map pfl_; pfl_map pfl_;
}; };
class formula_canonizer class formula_canonizer final
{ {
public: public:
formula_canonizer(translate_dict& d, formula_canonizer(translate_dict& d,

View file

@ -47,7 +47,7 @@ namespace spot
/// \brief Emptiness checker on spot::tgba automata having at most one /// \brief Emptiness checker on spot::tgba automata having at most one
/// acceptance condition (i.e. a TBA). /// acceptance condition (i.e. a TBA).
template <typename heap> template <typename heap>
class magic_search_ : public emptiness_check, public ec_statistics class magic_search_ final : public emptiness_check, public ec_statistics
{ {
public: public:
/// \brief Initialize the Magic Search algorithm on the automaton \a a /// \brief Initialize the Magic Search algorithm on the automaton \a a
@ -424,12 +424,12 @@ namespace spot
}; };
}; };
class explicit_magic_search_heap class explicit_magic_search_heap final
{ {
public: public:
enum { Safe = 1 }; enum { Safe = 1 };
class color_ref class color_ref final
{ {
public: public:
color_ref(color* c) :p(c) color_ref(color* c) :p(c)
@ -507,12 +507,12 @@ namespace spot
state_map<color> h; state_map<color> h;
}; };
class bsh_magic_search_heap class bsh_magic_search_heap final
{ {
public: public:
enum { Safe = 0 }; enum { Safe = 0 };
class color_ref class color_ref final
{ {
public: public:
color_ref(unsigned char *b, unsigned char o): base(b), offset(o*2) color_ref(unsigned char *b, unsigned char o): base(b), offset(o*2)

View file

@ -1,6 +1,6 @@
// -*- coding: utf-8 -*- // -*- coding: utf-8 -*-
// Copyright (C) 2009, 2011, 2012, 2014, 2015 Laboratoire de Recherche et // Copyright (C) 2009, 2011, 2012, 2014, 2015, 2016 Laboratoire de
// Développement de l'Epita (LRDE). // Recherche et Développement de l'Epita (LRDE).
// Copyright (C) 2004 Laboratoire d'Informatique de Paris 6 (LIP6), // Copyright (C) 2004 Laboratoire d'Informatique de Paris 6 (LIP6),
// département Systèmes Répartis Coopératifs (SRC), Université Pierre // département Systèmes Répartis Coopératifs (SRC), Université Pierre
// et Marie Curie. // et Marie Curie.
@ -33,7 +33,7 @@ namespace spot
{ {
namespace namespace
{ {
class never_claim_output class never_claim_output final
{ {
public: public:
std::ostream& os_; std::ostream& os_;

View file

@ -325,7 +325,7 @@ namespace spot
return false; return false;
} }
class result_from_stack: public emptiness_check_result, class result_from_stack final: public emptiness_check_result,
public acss_statistics public acss_statistics
{ {
public: public:
@ -436,14 +436,14 @@ namespace spot
}; };
}; };
class explicit_se05_search_heap class explicit_se05_search_heap final
{ {
typedef state_set hcyan_type; typedef state_set hcyan_type;
typedef state_map<color> hash_type; typedef state_map<color> hash_type;
public: public:
enum { Safe = 1 }; enum { Safe = 1 };
class color_ref class color_ref final
{ {
public: public:
color_ref(hash_type* h, hcyan_type* hc, const state* s) color_ref(hash_type* h, hcyan_type* hc, const state* s)
@ -569,7 +569,7 @@ namespace spot
hcyan_type hc; // associate to each cyan state its weight hcyan_type hc; // associate to each cyan state its weight
}; };
class bsh_se05_search_heap class bsh_se05_search_heap final
{ {
private: private:
typedef std::unordered_set<const state*, typedef std::unordered_set<const state*,
@ -577,7 +577,7 @@ namespace spot
public: public:
enum { Safe = 0 }; enum { Safe = 0 };
class color_ref class color_ref final
{ {
public: public:
color_ref(hcyan_type* h, const state* st, color_ref(hcyan_type* h, const state* st,

View file

@ -1,6 +1,6 @@
// -*- coding: utf-8 -*- // -*- coding: utf-8 -*-
// Copyright (C) 2012, 2013, 2014, 2015 Laboratoire de Recherche et // Copyright (C) 2012, 2013, 2014, 2015, 2016 Laboratoire de Recherche
// Développement de l'Epita (LRDE). // et Développement de l'Epita (LRDE).
// //
// This file is part of Spot, a model checking library. // This file is part of Spot, a model checking library.
// //
@ -155,7 +155,7 @@ namespace spot
// The direct_simulation. If Cosimulation is true, we are doing a // The direct_simulation. If Cosimulation is true, we are doing a
// cosimulation. // cosimulation.
template <bool Cosimulation, bool Sba> template <bool Cosimulation, bool Sba>
class direct_simulation class direct_simulation final
{ {
protected: protected:
// Shortcut used in update_po and go_to_next_it. // Shortcut used in update_po and go_to_next_it.

View file

@ -276,10 +276,10 @@ namespace spot
}; };
class explicit_tau03_search_heap class explicit_tau03_search_heap final
{ {
public: public:
class color_ref class color_ref final
{ {
public: public:
color_ref(color* c, acc_cond::mark_t* a) :p(c), acc(a) color_ref(color* c, acc_cond::mark_t* a) :p(c), acc(a)

View file

@ -395,12 +395,12 @@ namespace spot
}; };
class explicit_tau03_opt_search_heap class explicit_tau03_opt_search_heap final
{ {
typedef state_map<std::pair<weight, acc_cond::mark_t>> hcyan_type; typedef state_map<std::pair<weight, acc_cond::mark_t>> hcyan_type;
typedef state_map<std::pair<color, acc_cond::mark_t>> hash_type; typedef state_map<std::pair<color, acc_cond::mark_t>> hash_type;
public: public:
class color_ref class color_ref final
{ {
public: public:
color_ref(hash_type* h, hcyan_type* hc, const state* s, color_ref(hash_type* h, hcyan_type* hc, const state* s,