mirror of
https://github.com/HChaZZY/Stockfish.git
synced 2025-12-27 12:36:15 +08:00
Retire struct OptionsMap
Directly use the underlying std::map instead and avoid a useless inheritance. As a nice side-effect Options global object has now a default c'tor avoiding possible issues with globals initializations. Suggested by Rein Halbersma. No functional change. Signed-off-by: Marco Costalba <mcostalba@gmail.com>
This commit is contained in:
@@ -25,7 +25,15 @@
|
||||
#include <map>
|
||||
#include <string>
|
||||
|
||||
struct OptionsMap;
|
||||
class UCIOption;
|
||||
|
||||
/// Custom comparator because UCI options should be case insensitive
|
||||
struct CaseInsensitiveLess {
|
||||
bool operator() (const std::string&, const std::string&) const;
|
||||
};
|
||||
|
||||
/// Our options container is actually a std::map
|
||||
typedef std::map<std::string, UCIOption, CaseInsensitiveLess> OptionsMap;
|
||||
|
||||
/// UCIOption class implements an option as defined by UCI protocol
|
||||
class UCIOption {
|
||||
@@ -59,19 +67,8 @@ private:
|
||||
Fn* on_change;
|
||||
};
|
||||
|
||||
|
||||
/// Custom comparator because UCI options should be case insensitive
|
||||
struct CaseInsensitiveLess {
|
||||
bool operator() (const std::string&, const std::string&) const;
|
||||
};
|
||||
|
||||
|
||||
/// Our options container is actually a map with a customized c'tor
|
||||
struct OptionsMap : public std::map<std::string, UCIOption, CaseInsensitiveLess> {
|
||||
OptionsMap();
|
||||
};
|
||||
|
||||
extern std::ostream& operator<<(std::ostream&, const OptionsMap&);
|
||||
extern OptionsMap Options;
|
||||
|
||||
namespace UCIOptions { void init(OptionsMap&); }
|
||||
|
||||
#endif // !defined(UCIOPTION_H_INCLUDED)
|
||||
|
||||
Reference in New Issue
Block a user