mirror of
https://github.com/opelly27/Stockfish.git
synced 2026-05-20 08:37:44 +00:00
Avoid "using namespace std"
This is a cleanup PR that prepares the automatic checking of missing or superfluous #include directives via the include-what-you-use (IWYU) tool on the CI. Unfortunately, IWYU proposes additional includes for "namespace std" although we don't need them. To avoid the problem, the commit removes all "using namespace std" statements from the code and directly uses the std:: prefix instead. Alternatively, we could add specific usings (e.g. "using std::string") foreach used type. Also, a mix of both approaches would be possible. I decided for the prefix approach because most of the files were already using the std:: prefixes despite the "using namespace std". closes https://github.com/official-stockfish/Stockfish/pull/4772 No functional change
This commit is contained in:
committed by
Disservin
parent
b25d68f6ee
commit
a8b4fd1671
+23
-25
@@ -67,14 +67,12 @@ using fun8_t = bool(*)(HANDLE, BOOL, PTOKEN_PRIVILEGES, DWORD, PTOKEN_PRIVILEGES
|
||||
#include <stdlib.h>
|
||||
#endif
|
||||
|
||||
using namespace std;
|
||||
|
||||
namespace Stockfish {
|
||||
|
||||
namespace {
|
||||
|
||||
/// Version number or dev.
|
||||
constexpr string_view version = "dev";
|
||||
constexpr std::string_view version = "dev";
|
||||
|
||||
/// Our fancy logging facility. The trick here is to replace cin.rdbuf() and
|
||||
/// cout.rdbuf() with two Tie objects that tie cin and cout to a file stream. We
|
||||
@@ -82,16 +80,16 @@ constexpr string_view version = "dev";
|
||||
/// usual I/O functionality, all without changing a single line of code!
|
||||
/// Idea from http://groups.google.com/group/comp.lang.c++/msg/1d941c0f26ea0d81
|
||||
|
||||
struct Tie: public streambuf { // MSVC requires split streambuf for cin and cout
|
||||
struct Tie: public std::streambuf { // MSVC requires split streambuf for cin and cout
|
||||
|
||||
Tie(streambuf* b, streambuf* l) : buf(b), logBuf(l) {}
|
||||
Tie(std::streambuf* b, std::streambuf* l) : buf(b), logBuf(l) {}
|
||||
|
||||
int sync() override { return logBuf->pubsync(), buf->pubsync(); }
|
||||
int overflow(int c) override { return log(buf->sputc((char)c), "<< "); }
|
||||
int underflow() override { return buf->sgetc(); }
|
||||
int uflow() override { return log(buf->sbumpc(), ">> "); }
|
||||
|
||||
streambuf *buf, *logBuf;
|
||||
std::streambuf *buf, *logBuf;
|
||||
|
||||
int log(int c, const char* prefix) {
|
||||
|
||||
@@ -106,10 +104,10 @@ struct Tie: public streambuf { // MSVC requires split streambuf for cin and cout
|
||||
|
||||
class Logger {
|
||||
|
||||
Logger() : in(cin.rdbuf(), file.rdbuf()), out(cout.rdbuf(), file.rdbuf()) {}
|
||||
Logger() : in(std::cin.rdbuf(), file.rdbuf()), out(std::cout.rdbuf(), file.rdbuf()) {}
|
||||
~Logger() { start(""); }
|
||||
|
||||
ofstream file;
|
||||
std::ofstream file;
|
||||
Tie in, out;
|
||||
|
||||
public:
|
||||
@@ -119,23 +117,23 @@ public:
|
||||
|
||||
if (l.file.is_open())
|
||||
{
|
||||
cout.rdbuf(l.out.buf);
|
||||
cin.rdbuf(l.in.buf);
|
||||
std::cout.rdbuf(l.out.buf);
|
||||
std::cin.rdbuf(l.in.buf);
|
||||
l.file.close();
|
||||
}
|
||||
|
||||
if (!fname.empty())
|
||||
{
|
||||
l.file.open(fname, ifstream::out);
|
||||
l.file.open(fname, std::ifstream::out);
|
||||
|
||||
if (!l.file.is_open())
|
||||
{
|
||||
cerr << "Unable to open debug log file " << fname << endl;
|
||||
std::cerr << "Unable to open debug log file " << fname << std::endl;
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
|
||||
cin.rdbuf(&l.in);
|
||||
cout.rdbuf(&l.out);
|
||||
std::cin.rdbuf(&l.in);
|
||||
std::cout.rdbuf(&l.out);
|
||||
}
|
||||
}
|
||||
};
|
||||
@@ -153,9 +151,9 @@ public:
|
||||
/// For releases (non dev builds) we only include the version number:
|
||||
/// Stockfish version
|
||||
|
||||
string engine_info(bool to_uci) {
|
||||
stringstream ss;
|
||||
ss << "Stockfish " << version << setfill('0');
|
||||
std::string engine_info(bool to_uci) {
|
||||
std::stringstream ss;
|
||||
ss << "Stockfish " << version << std::setfill('0');
|
||||
|
||||
if constexpr (version == "dev")
|
||||
{
|
||||
@@ -163,12 +161,12 @@ string engine_info(bool to_uci) {
|
||||
#ifdef GIT_DATE
|
||||
ss << stringify(GIT_DATE);
|
||||
#else
|
||||
constexpr string_view months("Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec");
|
||||
string month, day, year;
|
||||
stringstream date(__DATE__); // From compiler, format is "Sep 21 2008"
|
||||
constexpr std::string_view months("Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec");
|
||||
std::string month, day, year;
|
||||
std::stringstream date(__DATE__); // From compiler, format is "Sep 21 2008"
|
||||
|
||||
date >> month >> day >> year;
|
||||
ss << year << setw(2) << setfill('0') << (1 + months.find(month) / 4) << setw(2) << setfill('0') << day;
|
||||
ss << year << std::setw(2) << std::setfill('0') << (1 + months.find(month) / 4) << std::setw(2) << std::setfill('0') << day;
|
||||
#endif
|
||||
|
||||
ss << "-";
|
||||
@@ -741,12 +739,12 @@ void bindThisThread(size_t idx) {
|
||||
|
||||
namespace CommandLine {
|
||||
|
||||
string argv0; // path+name of the executable binary, as given by argv[0]
|
||||
string binaryDirectory; // path of the executable directory
|
||||
string workingDirectory; // path of the working directory
|
||||
std::string argv0; // path+name of the executable binary, as given by argv[0]
|
||||
std::string binaryDirectory; // path of the executable directory
|
||||
std::string workingDirectory; // path of the working directory
|
||||
|
||||
void init([[maybe_unused]] int argc, char* argv[]) {
|
||||
string pathSeparator;
|
||||
std::string pathSeparator;
|
||||
|
||||
// extract the path+name of the executable binary
|
||||
argv0 = argv[0];
|
||||
|
||||
Reference in New Issue
Block a user