From: Marco Costalba Date: Sun, 10 May 2009 16:58:53 +0000 (+0100) Subject: Use string instead of std::string X-Git-Url: https://git.sesse.net/?p=stockfish;a=commitdiff_plain;h=27619830d428693b4871ce58770705b30ba84c99;hp=78eecbf6d704cf178fb0310f7e1c180d2d2f3d4d Use string instead of std::string And others small code style touches. No functional change. Signed-off-by: Marco Costalba --- diff --git a/src/benchmark.cpp b/src/benchmark.cpp index 27517f4f..02037689 100644 --- a/src/benchmark.cpp +++ b/src/benchmark.cpp @@ -30,12 +30,13 @@ #include "thread.h" #include "ucioption.h" +using namespace std; //// //// Variables //// -const std::string BenchmarkPositions[] = { +const string BenchmarkPositions[] = { "rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1", "r4rk1/1b2qppp/p1n1p3/1p6/1b1PN3/3BRN2/PP3PPP/R2Q2K1 b - - 7 16", "4r1k1/ppq3pp/3b4/2pP4/2Q1p3/4B1P1/PP5P/R5K1 b - - 0 20", @@ -67,25 +68,25 @@ const std::string BenchmarkPositions[] = { /// format (default are the BenchmarkPositions defined above). /// The analysis is written to a file named bench.txt. -void benchmark(const std::string& commandLine) { +void benchmark(const string& commandLine) { - std::istringstream csVal(commandLine); - std::istringstream csStr(commandLine); - std::string ttSize, threads, fileName, limitType; + istringstream csVal(commandLine); + istringstream csStr(commandLine); + string ttSize, threads, fileName, limitType; int val, secsPerPos, maxDepth, maxNodes; csStr >> ttSize; csVal >> val; if (val < 4 || val > 1024) { - std::cerr << "The hash table size must be between 4 and 1024" << std::endl; + cerr << "The hash table size must be between 4 and 1024" << endl; Application::exit_with_failure(); } csStr >> threads; csVal >> val; if (val < 1 || val > THREAD_MAX) { - std::cerr << "The number of threads must be between 1 and " << THREAD_MAX << std::endl; + cerr << "The number of threads must be between 1 and " << THREAD_MAX << endl; Application::exit_with_failure(); } set_option_value("Hash", ttSize); @@ -107,30 +108,30 @@ void benchmark(const std::string& commandLine) { else maxNodes = val; - std::vector positions; + vector positions; if (fileName != "default") { - std::ifstream fenFile(fileName.c_str()); + ifstream fenFile(fileName.c_str()); if (!fenFile.is_open()) { - std::cerr << "Unable to open positions file " << fileName << std::endl; + cerr << "Unable to open positions file " << fileName << endl; Application::exit_with_failure(); } - std::string pos; + string pos; while (fenFile.good()) { - std::getline(fenFile, pos); + getline(fenFile, pos); if (!pos.empty()) positions.push_back(pos); } fenFile.close(); } else for (int i = 0; i < 16; i++) - positions.push_back(std::string(BenchmarkPositions[i])); + positions.push_back(string(BenchmarkPositions[i])); int startTime = get_system_time(); - std::vector::iterator it; + vector::iterator it; int cnt = 1; int64_t totalNodes = 0; for (it = positions.begin(); it != positions.end(); ++it, ++cnt) @@ -138,13 +139,12 @@ void benchmark(const std::string& commandLine) { Move moves[1] = {MOVE_NONE}; int dummy[2] = {0, 0}; Position pos(*it); - std::cout << "\nProcessing position " << cnt << '/' << positions.size() << std::endl << std::endl; + cout << "\nProcessing position " << cnt << '/' << positions.size() << endl << endl; if (!think(pos, true, false, 0, dummy, dummy, 0, maxDepth, maxNodes, secsPerPos, moves)) break; totalNodes += nodes_searched(); } - std::cout << "\nProcessing time (ms) " << get_system_time() - startTime << std::endl - << "Nodes searched " << totalNodes << std::endl - << "Press any key to exit" << std::endl; - std::cin >> fileName; + cout << "\nProcessing time (ms) " << get_system_time() - startTime + << "\nNodes searched " << totalNodes << "\nPress any key to exit" << endl; + cin >> fileName; } diff --git a/src/color.h b/src/color.h index 283d59b4..50c05bd7 100644 --- a/src/color.h +++ b/src/color.h @@ -37,7 +37,6 @@ enum Color { //// Inline functions //// -inline Color operator+ (Color c, int i) { return Color(int(c) + i); } inline void operator++ (Color &c, int) { c = Color(int(c) + 1); } inline Color opposite_color(Color c) { diff --git a/src/material.cpp b/src/material.cpp index 69588c8c..c1c3c3c2 100644 --- a/src/material.cpp +++ b/src/material.cpp @@ -29,6 +29,7 @@ #include "material.h" +using std::string; //// //// Local definitions @@ -59,9 +60,9 @@ public: EndgameScalingFunctionBase* getESF(Key key, Color* c) const; private: - void add(const std::string& keyCode, EndgameEvaluationFunctionBase* f); - void add(const std::string& keyCode, Color c, EndgameScalingFunctionBase* f); - Key buildKey(const std::string& keyCode); + void add(const string& keyCode, EndgameEvaluationFunctionBase* f); + void add(const string& keyCode, Color c, EndgameScalingFunctionBase* f); + Key buildKey(const string& keyCode); struct ScalingInfo { @@ -352,7 +353,7 @@ EndgameFunctions::EndgameFunctions() { add("KRPKRPP", BLACK, &ScaleKRPKRPP); } -Key EndgameFunctions::buildKey(const std::string& keyCode) { +Key EndgameFunctions::buildKey(const string& keyCode) { assert(keyCode.length() > 0 && keyCode[0] == 'K'); assert(keyCode.length() < 8); @@ -373,12 +374,12 @@ Key EndgameFunctions::buildKey(const std::string& keyCode) { return Position(s.str()).get_material_key(); } -void EndgameFunctions::add(const std::string& keyCode, EndgameEvaluationFunctionBase* f) { +void EndgameFunctions::add(const string& keyCode, EndgameEvaluationFunctionBase* f) { EEFmap.insert(std::pair(buildKey(keyCode), f)); } -void EndgameFunctions::add(const std::string& keyCode, Color c, EndgameScalingFunctionBase* f) { +void EndgameFunctions::add(const string& keyCode, Color c, EndgameScalingFunctionBase* f) { ScalingInfo s = {c, f}; ESFmap.insert(std::pair(buildKey(keyCode), s)); diff --git a/src/misc.cpp b/src/misc.cpp index ea872f88..ba4da568 100644 --- a/src/misc.cpp +++ b/src/misc.cpp @@ -81,6 +81,8 @@ static const string AppTag = ""; //// Variables //// +bool Chess960; + uint64_t dbg_cnt0 = 0; uint64_t dbg_cnt1 = 0; diff --git a/src/misc.h b/src/misc.h index d954f0a3..5c619bb3 100644 --- a/src/misc.h +++ b/src/misc.h @@ -40,6 +40,13 @@ #define Max(x, y) (((x) < (y))? (y) : (x)) +//// +//// Variables +//// + +extern bool Chess960; + + //// //// Prototypes //// diff --git a/src/move.cpp b/src/move.cpp index 8118273e..e7b9257d 100644 --- a/src/move.cpp +++ b/src/move.cpp @@ -27,7 +27,6 @@ #include "move.h" #include "piece.h" #include "position.h" -#include "ucioption.h" //// diff --git a/src/position.cpp b/src/position.cpp index 1c1ceed2..c121c497 100644 --- a/src/position.cpp +++ b/src/position.cpp @@ -35,6 +35,8 @@ #include "san.h" #include "ucioption.h" +using std::string; + //// //// Variables @@ -63,7 +65,7 @@ Position::Position(const Position& pos) { copy(pos); } -Position::Position(const std::string& fen) { +Position::Position(const string& fen) { from_fen(fen); } @@ -72,9 +74,9 @@ Position::Position(const std::string& fen) { /// string. This function is not very robust - make sure that input FENs are /// correct (this is assumed to be the responsibility of the GUI). -void Position::from_fen(const std::string& fen) { +void Position::from_fen(const string& fen) { - static const std::string pieceLetters = "KQRBNPkqrbnp"; + static const string pieceLetters = "KQRBNPkqrbnp"; static const Piece pieces[] = { WK, WQ, WR, WB, WN, WP, BK, BQ, BR, BB, BN, BP }; clear(); @@ -98,7 +100,7 @@ void Position::from_fen(const std::string& fen) { continue; } size_t idx = pieceLetters.find(fen[i]); - if (idx == std::string::npos) + if (idx == string::npos) { std::cout << "Error in FEN at character " << i << std::endl; return; @@ -219,10 +221,10 @@ void Position::from_fen(const std::string& fen) { /// Position::to_fen() converts the position object to a FEN string. This is /// probably only useful for debugging. -const std::string Position::to_fen() const { +const string Position::to_fen() const { - static const std::string pieceLetters = " PNBRQK pnbrqk"; - std::string fen; + static const string pieceLetters = " PNBRQK pnbrqk"; + string fen; int skip; for (Rank rank = RANK_8; rank >= RANK_1; rank--) @@ -272,7 +274,7 @@ const std::string Position::to_fen() const { void Position::print(Move m) const { - static const std::string pieceLetters = " PNBRQK PNBRQK ."; + static const string pieceLetters = " PNBRQK PNBRQK ."; // Check for reentrancy, as example when called from inside // MovePicker that is used also here in move_to_san() @@ -284,7 +286,7 @@ void Position::print(Move m) const { std::cout << std::endl; if (m != MOVE_NONE) { - std::string col = (color_of_piece_on(move_from(m)) == BLACK ? ".." : ""); + string col = (color_of_piece_on(move_from(m)) == BLACK ? ".." : ""); std::cout << "Move is: " << col << move_to_san(*this, m) << std::endl; } for (Rank rank = RANK_8; rank >= RANK_1; rank--) diff --git a/src/san.cpp b/src/san.cpp index 3f706b20..ecba7ab3 100644 --- a/src/san.cpp +++ b/src/san.cpp @@ -31,6 +31,7 @@ #include "movepick.h" #include "san.h" +using std::string; //// //// Local definitions @@ -51,8 +52,8 @@ namespace { /// Functions Ambiguity move_ambiguity(const Position& pos, Move m); - const std::string time_string(int milliseconds); - const std::string score_string(Value v); + const string time_string(int milliseconds); + const string score_string(Value v); } @@ -64,7 +65,7 @@ namespace { /// that the move is a legal move from the position. The return value is /// a string containing the move in short algebraic notation. -const std::string move_to_san(const Position& pos, Move m) { +const string move_to_san(const Position& pos, Move m) { assert(pos.is_ok()); assert(move_is_ok(m)); @@ -76,7 +77,7 @@ const std::string move_to_san(const Position& pos, Move m) { to = move_to(m); pt = type_of_piece(pos.piece_on(move_from(m))); - std::string san = ""; + string san = ""; if (m == MOVE_NONE) return "(none)"; @@ -138,7 +139,7 @@ const std::string move_to_san(const Position& pos, Move m) { /// the move is returned. On failure (i.e. if the string is unparsable, or /// if the move is illegal or ambiguous), MOVE_NONE is returned. -Move move_from_san(const Position& pos, const std::string& movestr) { +Move move_from_san(const Position& pos, const string& movestr) { assert(pos.is_ok()); @@ -166,7 +167,7 @@ Move move_from_san(const Position& pos, const std::string& movestr) { // Normal moves. We use a simple FSM to parse the san string. enum { START, TO_FILE, TO_RANK, PROMOTION_OR_CHECK, PROMOTION, CHECK, END }; - static const std::string pieceLetters = "KQRBN"; + static const string pieceLetters = "KQRBN"; PieceType pt = NO_PIECE_TYPE, promotion = NO_PIECE_TYPE; File fromFile = FILE_NONE, toFile = FILE_NONE; Rank fromRank = RANK_NONE, toRank = RANK_NONE; @@ -176,7 +177,7 @@ Move move_from_san(const Position& pos, const std::string& movestr) { for (size_t i = 0; i < movestr.length(); i++) { char type, c = movestr[i]; - if (pieceLetters.find(c) != std::string::npos) + if (pieceLetters.find(c) != string::npos) type = 'P'; else if (c >= 'a' && c <= 'h') type = 'F'; @@ -292,11 +293,11 @@ Move move_from_san(const Position& pos, const std::string& movestr) { /// length of 80 characters. After a line break, 'startColumn' spaces are /// inserted at the beginning of the new line. -const std::string line_to_san(const Position& pos, Move line[], int startColumn, bool breakLines) { +const string line_to_san(const Position& pos, Move line[], int startColumn, bool breakLines) { StateInfo st; std::stringstream s; - std::string moveStr; + string moveStr; size_t length = 0; size_t maxLength = 80 - startColumn; Position p(pos); @@ -325,8 +326,8 @@ const std::string line_to_san(const Position& pos, Move line[], int startColumn, /// It is used to write search information to the log file (which is created /// when the UCI parameter "Use Search Log" is "true"). -const std::string pretty_pv(const Position& pos, int time, int depth, - uint64_t nodes, Value score, Move pv[]) { +const string pretty_pv(const Position& pos, int time, int depth, + uint64_t nodes, Value score, Move pv[]) { std::stringstream s; // Depth @@ -396,7 +397,7 @@ namespace { } - const std::string time_string(int milliseconds) { + const string time_string(int milliseconds) { std::stringstream s; s << std::setfill('0'); @@ -413,7 +414,7 @@ namespace { } - const std::string score_string(Value v) { + const string score_string(Value v) { std::stringstream s; diff --git a/src/ucioption.cpp b/src/ucioption.cpp index 25fbe956..a478a0cb 100644 --- a/src/ucioption.cpp +++ b/src/ucioption.cpp @@ -33,13 +33,7 @@ #include "thread.h" #include "ucioption.h" - -//// -//// Variables -//// - -bool Chess960; - +using std::string; //// //// Local definitions @@ -53,11 +47,11 @@ namespace { enum OptionType { SPIN, COMBO, CHECK, STRING, BUTTON }; - typedef std::vector ComboValues; + typedef std::vector ComboValues; struct Option { - std::string name, defaultValue, currentValue; + string name, defaultValue, currentValue; OptionType type; size_t idx; int minValue, maxValue; @@ -71,7 +65,7 @@ namespace { bool operator<(const Option& o) const { return this->idx < o.idx; } }; - typedef std::map Options; + typedef std::map Options; /// /// Constants @@ -155,7 +149,7 @@ namespace { // stringify converts a value of type T to a std::string template - std::string stringify(const T& v) { + string stringify(const T& v) { std::ostringstream ss; ss << v; @@ -168,7 +162,7 @@ namespace { // type changes a template seems a proper solution. template - T get_option_value(const std::string& optionName) { + T get_option_value(const string& optionName) { T ret = T(); if (options.find(optionName) == options.end()) @@ -245,9 +239,7 @@ void print_uci_options() { std::cout << " default " << it->defaultValue; if (it->type == SPIN) - std::cout << " min " << it->minValue - << " max " << it->maxValue; - + std::cout << " min " << it->minValue << " max " << it->maxValue; else if (it->type == COMBO) for (ComboValues::const_iterator itc = it->comboValues.begin(); itc != it->comboValues.end(); ++itc) @@ -260,7 +252,7 @@ void print_uci_options() { /// get_option_value_bool() returns the current value of a UCI parameter of /// type "check". -bool get_option_value_bool(const std::string& optionName) { +bool get_option_value_bool(const string& optionName) { return get_option_value(optionName); } @@ -271,7 +263,7 @@ bool get_option_value_bool(const std::string& optionName) { /// it could also be used with a "combo" parameter, where all the available /// values are integers. -int get_option_value_int(const std::string& optionName) { +int get_option_value_int(const string& optionName) { return get_option_value(optionName); } @@ -280,9 +272,9 @@ int get_option_value_int(const std::string& optionName) { /// get_option_value_string() returns the current value of a UCI parameter as /// a string. It is used with parameters of type "combo" and "string". -const std::string get_option_value_string(const std::string& optionName) { +string get_option_value_string(const string& optionName) { - return get_option_value(optionName); + return get_option_value(optionName); } @@ -290,28 +282,27 @@ const std::string get_option_value_string(const std::string& optionName) { /// the function does not check that the new value is legal for the given /// parameter: This is assumed to be the responsibility of the GUI. -void set_option_value(const std::string& optionName, - const std::string& newValue) { +void set_option_value(const string& name, const string& value) { // UCI protocol uses "true" and "false" instead of "1" and "0", so convert - // newValue according to standard C++ convention before to store it. - std::string v(newValue); + // value according to standard C++ convention before to store it. + string v(value); if (v == "true") v = "1"; else if (v == "false") v = "0"; - if (options.find(optionName) != options.end()) - options[optionName].currentValue = v; + if (options.find(name) != options.end()) + options[name].currentValue = v; else - std::cout << "No such option: " << optionName << std::endl; + std::cout << "No such option: " << name << std::endl; } /// push_button() is used to tell the engine that a UCI parameter of type /// "button" has been selected: -void push_button(const std::string& buttonName) { +void push_button(const string& buttonName) { set_option_value(buttonName, "true"); } @@ -321,7 +312,7 @@ void push_button(const std::string& buttonName) { /// been selected since the last time the function was called, in this case /// it also resets the button. -bool button_was_pressed(const std::string& buttonName) { +bool button_was_pressed(const string& buttonName) { if (!get_option_value(buttonName)) return false; diff --git a/src/ucioption.h b/src/ucioption.h index e9f4b158..96b83fc5 100644 --- a/src/ucioption.h +++ b/src/ucioption.h @@ -27,27 +27,18 @@ #include - -//// -//// Variables -//// - -extern bool Chess960; - - //// //// Prototypes //// extern void init_uci_options(); extern void print_uci_options(); -extern bool get_option_value_bool(const std::string &optionName); -extern int get_option_value_int(const std::string &optionName); -extern const std::string get_option_value_string(const std::string &optionName); -extern bool button_was_pressed(const std::string &buttonName); -extern void set_option_value(const std::string &optionName, - const std::string &newValue); -extern void push_button(const std::string &buttonName); +extern bool get_option_value_bool(const std::string& optionName); +extern int get_option_value_int(const std::string& optionName); +extern std::string get_option_value_string(const std::string& optionName); +extern bool button_was_pressed(const std::string& buttonName); +extern void set_option_value(const std::string& optionName,const std::string& newValue); +extern void push_button(const std::string& buttonName); #endif // !defined(UCIOPTION_H_INCLUDED)