Loading TemplateTest/main.cpp +2026 −190 File changed.Preview size limit exceeded, changes collapsed. Show changes Unstructured_mesh/Unstructured_mesh.pro +4 −2 Original line number Original line Diff line number Diff line TEMPLATE = app TEMPLATE = app CONFIG += console c++14 CONFIG += console c++17 CONFIG -= app_bundle CONFIG -= app_bundle CONFIG -= qt CONFIG -= qt Loading @@ -17,6 +17,7 @@ HEADERS += \ ../src/NumericStaticArray/InlineArrayOperations.h \ ../src/NumericStaticArray/InlineArrayOperations.h \ ../src/Traits/CustomTypeTraits.h \ ../src/Traits/CustomTypeTraits.h \ ../src/Traits/MemberApproach/MemberApproach.h \ ../src/Traits/MemberApproach/MemberApproach.h \ ../src/Traits/TraitsAlgorithm/TraitsAlgorithm.h \ ../src/UnstructuredMesh/MeshDataContainer/MeshDataContainer.h \ ../src/UnstructuredMesh/MeshDataContainer/MeshDataContainer.h \ ../src/UnstructuredMesh/MeshDataContainer/MeshDataIO/VTKMeshDataReader.h \ ../src/UnstructuredMesh/MeshDataContainer/MeshDataIO/VTKMeshDataReader.h \ ../src/UnstructuredMesh/MeshDataContainer/MeshDataIO/VTKMeshDataWriter.h \ ../src/UnstructuredMesh/MeshDataContainer/MeshDataIO/VTKMeshDataWriter.h \ Loading @@ -26,12 +27,13 @@ HEADERS += \ ../src/UnstructuredMesh/MeshElements/CellConnection.h \ ../src/UnstructuredMesh/MeshElements/CellConnection.h \ ../src/UnstructuredMesh/MeshElements/ComputationalySignificantElement.h \ ../src/UnstructuredMesh/MeshElements/ComputationalySignificantElement.h \ ../src/UnstructuredMesh/MeshElements/MeshElement.h \ ../src/UnstructuredMesh/MeshElements/MeshElement.h \ ../src/UnstructuredMesh/MeshElements/MeshElements.h \ ../src/UnstructuredMesh/MeshFunctions/ComputeCenter.h \ ../src/UnstructuredMesh/MeshFunctions/ComputeCenter.h \ ../src/UnstructuredMesh/MeshFunctions/ComputeMeasures.h \ ../src/UnstructuredMesh/MeshFunctions/ComputeMeasures.h \ ../src/UnstructuredMesh/MeshFunctions/ComputeNormals.h \ ../src/UnstructuredMesh/MeshFunctions/ComputeNormals.h \ ../src/UnstructuredMesh/MeshFunctions/EdgesOrientation.h \ ../src/UnstructuredMesh/MeshFunctions/EdgesOrientation.h \ ../src/UnstructuredMesh/MeshFunctions/MeshApply.h \ ../src/UnstructuredMesh/MeshFunctions/MeshApply.h \ ../src/UnstructuredMesh/MeshFunctions/MeshColouring.h \ ../src/UnstructuredMesh/MeshFunctions/MeshColoring.h \ ../src/UnstructuredMesh/MeshFunctions/MeshConnections.h \ ../src/UnstructuredMesh/MeshFunctions/MeshConnections.h \ ../src/UnstructuredMesh/MeshFunctions/MeshFunctions.h \ ../src/UnstructuredMesh/MeshFunctions/MeshFunctions.h \ ../src/UnstructuredMesh/MeshFunctions/MeshFunctionsDefine.h \ ../src/UnstructuredMesh/MeshFunctions/MeshFunctionsDefine.h \ Loading src/Debug/CSVLogger.h +2 −2 Original line number Original line Diff line number Diff line Loading @@ -91,7 +91,7 @@ public: if (!logFile) create(logFileName.c_str()); if (!logFile) create(logFileName.c_str()); (*logFile) << groupIndex << ';' << line << ";\"" << cppFile << "\";\"" << name << "\";"; (*logFile) << groupIndex << ';' << line << ";\"" << cppFile << "\";\"" << name << "\";"; VariableExport::exportVariable(*logFile,value); VariableExport<>::exportVariable(*logFile,value); (*logFile) << "\n"; (*logFile) << "\n"; writeVar(line, cppFile, rest...); writeVar(line, cppFile, rest...); } } Loading @@ -104,7 +104,7 @@ public: if (!logFile) create(logFileName.c_str()); if (!logFile) create(logFileName.c_str()); (*logFile) << groupIndex << ';' << line << ";\"" << cppFile << "\";\"" << name << "\";"; (*logFile) << groupIndex << ';' << line << ";\"" << cppFile << "\";\"" << name << "\";"; VariableExport::exportVariable(*logFile,value); VariableExport<>::exportVariable(*logFile,value); (*logFile) << "\n"; (*logFile) << "\n"; groupIndex++; groupIndex++; Loading src/Debug/ConsoleLogger.h +100 −11 Original line number Original line Diff line number Diff line Loading @@ -3,13 +3,14 @@ #include "VariableExport.h" #include "VariableExport.h" #ifdef _WIN32 #ifdef _WIN32 #ifdef CONSOLE_COLOURED_OUTPUT #ifdef CONSOLE_COLORED_OUTPUT #include <windows.h> #include <windows.h> #endif #endif #endif #endif /** /** * @brief The ConsoleLogger class * @brief The ConsoleLogger class */ */ template <VARIABLE_EXPORT_METHOD method = VARIABLE_EXPORT_METHOD::ostream> class ConsoleLogger { class ConsoleLogger { public: public: Loading @@ -24,9 +25,25 @@ public: template<typename MSGTYPE> template<typename MSGTYPE> static void writeMessage(const char* prefix, int line, const char* sourceFile, const MSGTYPE& message) { static void writeMessage(const char* prefix, int line, const char* sourceFile, const MSGTYPE& message) { #ifdef CONSOLE_COLORED_OUTPUT #ifdef _WIN32 HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE); std::cerr << prefix << " " << sourceFile << " << " << line << " >> ==> "; SetConsoleTextAttribute(hConsole, FOREGROUND_RED | FOREGROUND_INTENSITY); VariableExport<>::exportVariable(std::cerr, message); SetConsoleTextAttribute(hConsole, FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE); std::cerr << " <==\n"; #else std::cerr << prefix << " " << sourceFile << " << " << line << " >> ==> \033[0;32m"; VariableExport<>::exportVariable(std::cerr, message); std::cerr << "\033[0m <==\n"; #endif #else std::cerr << prefix << " " << sourceFile << " << " << line << " >> ==> "; std::cerr << prefix << " " << sourceFile << " << " << line << " >> ==> "; VariableExport::exportVariable(std::cerr, message); VariableExport<>::exportVariable(std::cerr, message); std::cerr << " <==\n"; std::cerr << " <==\n"; #endif } } template<typename VAR_NAME, typename VAR, typename ... REST> template<typename VAR_NAME, typename VAR, typename ... REST> Loading @@ -46,7 +63,7 @@ public: template<typename VAR_NAME, typename VAR, typename ... REST> template<typename VAR_NAME, typename VAR, typename ... REST> static void writeVar(int line, const char* cppFile, VAR_NAME name,const VAR& value, REST ... rest){ static void writeVar(int line, const char* cppFile, const VAR_NAME& name,const VAR& value,const REST& ... rest){ writeVar(line, cppFile, name, value); writeVar(line, cppFile, name, value); writeVar(line, cppFile, rest...); writeVar(line, cppFile, rest...); Loading @@ -57,7 +74,7 @@ public: #ifdef CONSOLE_COLOURED_OUTPUT #ifdef CONSOLE_COLORED_OUTPUT #ifdef _WIN32 #ifdef _WIN32 HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE); HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE); std::cerr << "== " << cppFile << " << " << line << " >> [[ "; std::cerr << "== " << cppFile << " << " << line << " >> [[ "; Loading @@ -66,18 +83,18 @@ public: SetConsoleTextAttribute(hConsole, FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE); SetConsoleTextAttribute(hConsole, FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE); std::cerr << " ]] ==> "; std::cerr << " ]] ==> "; SetConsoleTextAttribute(hConsole, FOREGROUND_GREEN); SetConsoleTextAttribute(hConsole, FOREGROUND_GREEN); VariableExport::exportVariable(std::cerr, value); VariableExport<>::exportVariable(std::cerr, value); SetConsoleTextAttribute(hConsole, FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE); SetConsoleTextAttribute(hConsole, FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE); std::cerr << "\n"; std::cerr << "\n"; #else #else std::cerr << "== " << cppFile << " << " << line << " >> [[ \033[0;33m" << name << "\033[0m ]] ==> \033[0;32m"; std::cerr << "== " << cppFile << " << " << line << " >> [[ \033[0;33m" << name << "\033[0m ]] ==> \033[0;32m"; VariableExport::exportVariable(std::cerr, value); VariableExport<>::exportVariable(std::cerr, value); std::cerr << "\033[0m\n"; std::cerr << "\033[0m\n"; #endif #endif #else #else std::cerr << "== " << cppFile << " << " << line << " >> [[ " << name << " ]] ==> "; std::cerr << "== " << cppFile << " << " << line << " >> [[ " << name << " ]] ==> "; VariableExport::exportVariable(std::cerr, value); VariableExport<>::exportVariable(std::cerr, value); std::cerr << "\n"; std::cerr << "\n"; #endif #endif } } Loading @@ -85,7 +102,7 @@ public: template<typename VAR> template<typename VAR> static void writeVar(int line, const char* cppFile, const char* name,const std::initializer_list<VAR>& value){ static void writeVar(int line, const char* cppFile, const char* name,const std::initializer_list<VAR>& value){ #ifdef CONSOLE_COLOURED_OUTPUT #ifdef CONSOLE_COLORED_OUTPUT #ifdef _WIN32 #ifdef _WIN32 HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE); HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE); std::cerr << "== " << cppFile << " << " << line << " >> [[ "; std::cerr << "== " << cppFile << " << " << line << " >> [[ "; Loading @@ -94,22 +111,94 @@ public: SetConsoleTextAttribute(hConsole, FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE); SetConsoleTextAttribute(hConsole, FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE); std::cerr << " ]] ==> "; std::cerr << " ]] ==> "; SetConsoleTextAttribute(hConsole, FOREGROUND_GREEN); SetConsoleTextAttribute(hConsole, FOREGROUND_GREEN); VariableExport::exportVariable(std::cerr, value); VariableExport<>::exportVariable(std::cerr, value); SetConsoleTextAttribute(hConsole, FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE); SetConsoleTextAttribute(hConsole, FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE); std::cerr << "\n"; std::cerr << "\n"; #else #else std::cerr << "== " << cppFile << " << " << line << " >> [[ \033[0;33m" << name << "\033[0m ]] ==> \033[0;32m"; std::cerr << "== " << cppFile << " << " << line << " >> [[ \033[0;33m" << name << "\033[0m ]] ==> \033[0;32m"; VariableExport::exportVariable(std::cerr, value); VariableExport<>::exportVariable(std::cerr, value); std::cerr << "\033[0m\n"; std::cerr << "\033[0m\n"; #endif #endif #else #else std::cerr << "== " << cppFile << " << " << line << " >> [[ " << name << " ]] ==> "; std::cerr << "== " << cppFile << " << " << line << " >> [[ " << name << " ]] ==> "; VariableExport::exportVariable(std::cerr, value); VariableExport<>::exportVariable(std::cerr, value); std::cerr << "\n"; std::cerr << "\n"; #endif #endif } } }; }; template <> class ConsoleLogger<VARIABLE_EXPORT_METHOD::stdio> { public: template<typename MSGTYPE, typename... MSGTYPES> static void writeMessage(const char* prefix, int line, const char* sourceFile, const MSGTYPE& message, const MSGTYPES&... rest) { writeMessage(prefix, line, sourceFile, message); writeMessage(prefix, line, sourceFile, rest...); } template<typename MSGTYPE> static void writeMessage(const char* prefix, int line, const char* sourceFile, const MSGTYPE& message) { printf("%s %s << %i >> ==> %s <==\n", prefix, sourceFile, line, VariableExport<VARIABLE_EXPORT_METHOD::stdio>::exportVariable(message)); } template<typename VAR_NAME, typename VAR, typename ... REST> static void writeVar(VAR_NAME name, VAR value, REST ... rest){ writeVar(name, value); writeVar(rest...); } template<typename VAR_NAME, typename VAR> static void writeVar(VAR_NAME name, VAR value){ std::cerr << "variable " << name << " has value: " << value; } template<typename VAR_NAME, typename VAR, typename ... REST> static void writeVar(int line, const char* cppFile, const VAR_NAME& name,const VAR& value,const REST& ... rest){ writeVar(line, cppFile, name, value); writeVar(line, cppFile, rest...); } template<typename VAR> static void writeVar(int line, const char* cppFile, const char* name,const VAR& value){ printf("== %s << %i >> [[ %s ]] ==> %s\n", cppFile, line, name, VariableExport<VARIABLE_EXPORT_METHOD::stdio>::exportVariable(value)); } template<typename VAR> static void writeVar(int line, const char* cppFile, const char* name,const std::initializer_list<VAR>& value){ printf("== %s << %i >> [[ %s ]] ==> %s\n", cppFile, line, name, VariableExport<VARIABLE_EXPORT_METHOD::stdio>::exportVariable(value)); } }; #endif // CONSOLELOGGER_H #endif // CONSOLELOGGER_H src/Debug/Debug.h +4 −8 Original line number Original line Diff line number Diff line #ifndef DEBUG_H #ifndef DEBUG_H #define DEBUG_H #define DEBUG_H #ifndef UNDEBUG #ifndef UNDEBUG #include "../Macros/MacroForEach.h" #include "../Macros/MacroForEach.h" #include <iostream> #include <iostream> Loading @@ -29,15 +25,15 @@ namespace dbg { #define STRVAR(var) #var, var #define STRVAR(var) #var, var #define DBGVAR(...) ConsoleLogger::writeVar(__LINE__, __FILE__, FOR_EACH(STRVAR, __VA_ARGS__)) #define DBGVAR(...) ConsoleLogger<>::writeVar(__LINE__, __FILE__, FOR_EACH(STRVAR, __VA_ARGS__)) #define DBGVARCOND(condition, ...) if(condition) DBGVAR(__VA_ARGS__) #define DBGVARCOND(condition, ...) if(condition) DBGVAR(__VA_ARGS__) #define DBGMSG(...) ConsoleLogger::writeMessage("++", __LINE__, __FILE__, __VA_ARGS__) #define DBGMSG(...) ConsoleLogger<>::writeMessage("++", __LINE__, __FILE__, __VA_ARGS__) #define DBGTRY(code) \ #define DBGTRY(code) \ try{code;} \ try{code;} \ catch(const std::exception& e){ \ catch(const std::exception& e){ \ ConsoleLogger::writeMessage("!!", __LINE__, __FILE__, std::string("something went wrong in try block: ") + e.what()); \ ConsoleLogger<>::writeMessage("!!", __LINE__, __FILE__, std::string("something went wrong in try block: ") + e.what()); \ abort();} abort();} // Macros using html debug output // Macros using html debug output Loading @@ -49,7 +45,7 @@ abort();} #define DBGVARCOND_CSV(condition, ...) if(condition) DBGVAR_HTML(__VA_ARGS__) #define DBGVARCOND_CSV(condition, ...) if(condition) DBGVAR_HTML(__VA_ARGS__) #define DBGCHECK ConsoleLogger::writeMessage("--", __LINE__, __FILE__, "check line") #define DBGCHECK ConsoleLogger<>::writeMessage("--", __LINE__, __FILE__, "check line") #else #else Loading Loading
TemplateTest/main.cpp +2026 −190 File changed.Preview size limit exceeded, changes collapsed. Show changes
Unstructured_mesh/Unstructured_mesh.pro +4 −2 Original line number Original line Diff line number Diff line TEMPLATE = app TEMPLATE = app CONFIG += console c++14 CONFIG += console c++17 CONFIG -= app_bundle CONFIG -= app_bundle CONFIG -= qt CONFIG -= qt Loading @@ -17,6 +17,7 @@ HEADERS += \ ../src/NumericStaticArray/InlineArrayOperations.h \ ../src/NumericStaticArray/InlineArrayOperations.h \ ../src/Traits/CustomTypeTraits.h \ ../src/Traits/CustomTypeTraits.h \ ../src/Traits/MemberApproach/MemberApproach.h \ ../src/Traits/MemberApproach/MemberApproach.h \ ../src/Traits/TraitsAlgorithm/TraitsAlgorithm.h \ ../src/UnstructuredMesh/MeshDataContainer/MeshDataContainer.h \ ../src/UnstructuredMesh/MeshDataContainer/MeshDataContainer.h \ ../src/UnstructuredMesh/MeshDataContainer/MeshDataIO/VTKMeshDataReader.h \ ../src/UnstructuredMesh/MeshDataContainer/MeshDataIO/VTKMeshDataReader.h \ ../src/UnstructuredMesh/MeshDataContainer/MeshDataIO/VTKMeshDataWriter.h \ ../src/UnstructuredMesh/MeshDataContainer/MeshDataIO/VTKMeshDataWriter.h \ Loading @@ -26,12 +27,13 @@ HEADERS += \ ../src/UnstructuredMesh/MeshElements/CellConnection.h \ ../src/UnstructuredMesh/MeshElements/CellConnection.h \ ../src/UnstructuredMesh/MeshElements/ComputationalySignificantElement.h \ ../src/UnstructuredMesh/MeshElements/ComputationalySignificantElement.h \ ../src/UnstructuredMesh/MeshElements/MeshElement.h \ ../src/UnstructuredMesh/MeshElements/MeshElement.h \ ../src/UnstructuredMesh/MeshElements/MeshElements.h \ ../src/UnstructuredMesh/MeshFunctions/ComputeCenter.h \ ../src/UnstructuredMesh/MeshFunctions/ComputeCenter.h \ ../src/UnstructuredMesh/MeshFunctions/ComputeMeasures.h \ ../src/UnstructuredMesh/MeshFunctions/ComputeMeasures.h \ ../src/UnstructuredMesh/MeshFunctions/ComputeNormals.h \ ../src/UnstructuredMesh/MeshFunctions/ComputeNormals.h \ ../src/UnstructuredMesh/MeshFunctions/EdgesOrientation.h \ ../src/UnstructuredMesh/MeshFunctions/EdgesOrientation.h \ ../src/UnstructuredMesh/MeshFunctions/MeshApply.h \ ../src/UnstructuredMesh/MeshFunctions/MeshApply.h \ ../src/UnstructuredMesh/MeshFunctions/MeshColouring.h \ ../src/UnstructuredMesh/MeshFunctions/MeshColoring.h \ ../src/UnstructuredMesh/MeshFunctions/MeshConnections.h \ ../src/UnstructuredMesh/MeshFunctions/MeshConnections.h \ ../src/UnstructuredMesh/MeshFunctions/MeshFunctions.h \ ../src/UnstructuredMesh/MeshFunctions/MeshFunctions.h \ ../src/UnstructuredMesh/MeshFunctions/MeshFunctionsDefine.h \ ../src/UnstructuredMesh/MeshFunctions/MeshFunctionsDefine.h \ Loading
src/Debug/CSVLogger.h +2 −2 Original line number Original line Diff line number Diff line Loading @@ -91,7 +91,7 @@ public: if (!logFile) create(logFileName.c_str()); if (!logFile) create(logFileName.c_str()); (*logFile) << groupIndex << ';' << line << ";\"" << cppFile << "\";\"" << name << "\";"; (*logFile) << groupIndex << ';' << line << ";\"" << cppFile << "\";\"" << name << "\";"; VariableExport::exportVariable(*logFile,value); VariableExport<>::exportVariable(*logFile,value); (*logFile) << "\n"; (*logFile) << "\n"; writeVar(line, cppFile, rest...); writeVar(line, cppFile, rest...); } } Loading @@ -104,7 +104,7 @@ public: if (!logFile) create(logFileName.c_str()); if (!logFile) create(logFileName.c_str()); (*logFile) << groupIndex << ';' << line << ";\"" << cppFile << "\";\"" << name << "\";"; (*logFile) << groupIndex << ';' << line << ";\"" << cppFile << "\";\"" << name << "\";"; VariableExport::exportVariable(*logFile,value); VariableExport<>::exportVariable(*logFile,value); (*logFile) << "\n"; (*logFile) << "\n"; groupIndex++; groupIndex++; Loading
src/Debug/ConsoleLogger.h +100 −11 Original line number Original line Diff line number Diff line Loading @@ -3,13 +3,14 @@ #include "VariableExport.h" #include "VariableExport.h" #ifdef _WIN32 #ifdef _WIN32 #ifdef CONSOLE_COLOURED_OUTPUT #ifdef CONSOLE_COLORED_OUTPUT #include <windows.h> #include <windows.h> #endif #endif #endif #endif /** /** * @brief The ConsoleLogger class * @brief The ConsoleLogger class */ */ template <VARIABLE_EXPORT_METHOD method = VARIABLE_EXPORT_METHOD::ostream> class ConsoleLogger { class ConsoleLogger { public: public: Loading @@ -24,9 +25,25 @@ public: template<typename MSGTYPE> template<typename MSGTYPE> static void writeMessage(const char* prefix, int line, const char* sourceFile, const MSGTYPE& message) { static void writeMessage(const char* prefix, int line, const char* sourceFile, const MSGTYPE& message) { #ifdef CONSOLE_COLORED_OUTPUT #ifdef _WIN32 HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE); std::cerr << prefix << " " << sourceFile << " << " << line << " >> ==> "; SetConsoleTextAttribute(hConsole, FOREGROUND_RED | FOREGROUND_INTENSITY); VariableExport<>::exportVariable(std::cerr, message); SetConsoleTextAttribute(hConsole, FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE); std::cerr << " <==\n"; #else std::cerr << prefix << " " << sourceFile << " << " << line << " >> ==> \033[0;32m"; VariableExport<>::exportVariable(std::cerr, message); std::cerr << "\033[0m <==\n"; #endif #else std::cerr << prefix << " " << sourceFile << " << " << line << " >> ==> "; std::cerr << prefix << " " << sourceFile << " << " << line << " >> ==> "; VariableExport::exportVariable(std::cerr, message); VariableExport<>::exportVariable(std::cerr, message); std::cerr << " <==\n"; std::cerr << " <==\n"; #endif } } template<typename VAR_NAME, typename VAR, typename ... REST> template<typename VAR_NAME, typename VAR, typename ... REST> Loading @@ -46,7 +63,7 @@ public: template<typename VAR_NAME, typename VAR, typename ... REST> template<typename VAR_NAME, typename VAR, typename ... REST> static void writeVar(int line, const char* cppFile, VAR_NAME name,const VAR& value, REST ... rest){ static void writeVar(int line, const char* cppFile, const VAR_NAME& name,const VAR& value,const REST& ... rest){ writeVar(line, cppFile, name, value); writeVar(line, cppFile, name, value); writeVar(line, cppFile, rest...); writeVar(line, cppFile, rest...); Loading @@ -57,7 +74,7 @@ public: #ifdef CONSOLE_COLOURED_OUTPUT #ifdef CONSOLE_COLORED_OUTPUT #ifdef _WIN32 #ifdef _WIN32 HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE); HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE); std::cerr << "== " << cppFile << " << " << line << " >> [[ "; std::cerr << "== " << cppFile << " << " << line << " >> [[ "; Loading @@ -66,18 +83,18 @@ public: SetConsoleTextAttribute(hConsole, FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE); SetConsoleTextAttribute(hConsole, FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE); std::cerr << " ]] ==> "; std::cerr << " ]] ==> "; SetConsoleTextAttribute(hConsole, FOREGROUND_GREEN); SetConsoleTextAttribute(hConsole, FOREGROUND_GREEN); VariableExport::exportVariable(std::cerr, value); VariableExport<>::exportVariable(std::cerr, value); SetConsoleTextAttribute(hConsole, FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE); SetConsoleTextAttribute(hConsole, FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE); std::cerr << "\n"; std::cerr << "\n"; #else #else std::cerr << "== " << cppFile << " << " << line << " >> [[ \033[0;33m" << name << "\033[0m ]] ==> \033[0;32m"; std::cerr << "== " << cppFile << " << " << line << " >> [[ \033[0;33m" << name << "\033[0m ]] ==> \033[0;32m"; VariableExport::exportVariable(std::cerr, value); VariableExport<>::exportVariable(std::cerr, value); std::cerr << "\033[0m\n"; std::cerr << "\033[0m\n"; #endif #endif #else #else std::cerr << "== " << cppFile << " << " << line << " >> [[ " << name << " ]] ==> "; std::cerr << "== " << cppFile << " << " << line << " >> [[ " << name << " ]] ==> "; VariableExport::exportVariable(std::cerr, value); VariableExport<>::exportVariable(std::cerr, value); std::cerr << "\n"; std::cerr << "\n"; #endif #endif } } Loading @@ -85,7 +102,7 @@ public: template<typename VAR> template<typename VAR> static void writeVar(int line, const char* cppFile, const char* name,const std::initializer_list<VAR>& value){ static void writeVar(int line, const char* cppFile, const char* name,const std::initializer_list<VAR>& value){ #ifdef CONSOLE_COLOURED_OUTPUT #ifdef CONSOLE_COLORED_OUTPUT #ifdef _WIN32 #ifdef _WIN32 HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE); HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE); std::cerr << "== " << cppFile << " << " << line << " >> [[ "; std::cerr << "== " << cppFile << " << " << line << " >> [[ "; Loading @@ -94,22 +111,94 @@ public: SetConsoleTextAttribute(hConsole, FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE); SetConsoleTextAttribute(hConsole, FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE); std::cerr << " ]] ==> "; std::cerr << " ]] ==> "; SetConsoleTextAttribute(hConsole, FOREGROUND_GREEN); SetConsoleTextAttribute(hConsole, FOREGROUND_GREEN); VariableExport::exportVariable(std::cerr, value); VariableExport<>::exportVariable(std::cerr, value); SetConsoleTextAttribute(hConsole, FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE); SetConsoleTextAttribute(hConsole, FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE); std::cerr << "\n"; std::cerr << "\n"; #else #else std::cerr << "== " << cppFile << " << " << line << " >> [[ \033[0;33m" << name << "\033[0m ]] ==> \033[0;32m"; std::cerr << "== " << cppFile << " << " << line << " >> [[ \033[0;33m" << name << "\033[0m ]] ==> \033[0;32m"; VariableExport::exportVariable(std::cerr, value); VariableExport<>::exportVariable(std::cerr, value); std::cerr << "\033[0m\n"; std::cerr << "\033[0m\n"; #endif #endif #else #else std::cerr << "== " << cppFile << " << " << line << " >> [[ " << name << " ]] ==> "; std::cerr << "== " << cppFile << " << " << line << " >> [[ " << name << " ]] ==> "; VariableExport::exportVariable(std::cerr, value); VariableExport<>::exportVariable(std::cerr, value); std::cerr << "\n"; std::cerr << "\n"; #endif #endif } } }; }; template <> class ConsoleLogger<VARIABLE_EXPORT_METHOD::stdio> { public: template<typename MSGTYPE, typename... MSGTYPES> static void writeMessage(const char* prefix, int line, const char* sourceFile, const MSGTYPE& message, const MSGTYPES&... rest) { writeMessage(prefix, line, sourceFile, message); writeMessage(prefix, line, sourceFile, rest...); } template<typename MSGTYPE> static void writeMessage(const char* prefix, int line, const char* sourceFile, const MSGTYPE& message) { printf("%s %s << %i >> ==> %s <==\n", prefix, sourceFile, line, VariableExport<VARIABLE_EXPORT_METHOD::stdio>::exportVariable(message)); } template<typename VAR_NAME, typename VAR, typename ... REST> static void writeVar(VAR_NAME name, VAR value, REST ... rest){ writeVar(name, value); writeVar(rest...); } template<typename VAR_NAME, typename VAR> static void writeVar(VAR_NAME name, VAR value){ std::cerr << "variable " << name << " has value: " << value; } template<typename VAR_NAME, typename VAR, typename ... REST> static void writeVar(int line, const char* cppFile, const VAR_NAME& name,const VAR& value,const REST& ... rest){ writeVar(line, cppFile, name, value); writeVar(line, cppFile, rest...); } template<typename VAR> static void writeVar(int line, const char* cppFile, const char* name,const VAR& value){ printf("== %s << %i >> [[ %s ]] ==> %s\n", cppFile, line, name, VariableExport<VARIABLE_EXPORT_METHOD::stdio>::exportVariable(value)); } template<typename VAR> static void writeVar(int line, const char* cppFile, const char* name,const std::initializer_list<VAR>& value){ printf("== %s << %i >> [[ %s ]] ==> %s\n", cppFile, line, name, VariableExport<VARIABLE_EXPORT_METHOD::stdio>::exportVariable(value)); } }; #endif // CONSOLELOGGER_H #endif // CONSOLELOGGER_H
src/Debug/Debug.h +4 −8 Original line number Original line Diff line number Diff line #ifndef DEBUG_H #ifndef DEBUG_H #define DEBUG_H #define DEBUG_H #ifndef UNDEBUG #ifndef UNDEBUG #include "../Macros/MacroForEach.h" #include "../Macros/MacroForEach.h" #include <iostream> #include <iostream> Loading @@ -29,15 +25,15 @@ namespace dbg { #define STRVAR(var) #var, var #define STRVAR(var) #var, var #define DBGVAR(...) ConsoleLogger::writeVar(__LINE__, __FILE__, FOR_EACH(STRVAR, __VA_ARGS__)) #define DBGVAR(...) ConsoleLogger<>::writeVar(__LINE__, __FILE__, FOR_EACH(STRVAR, __VA_ARGS__)) #define DBGVARCOND(condition, ...) if(condition) DBGVAR(__VA_ARGS__) #define DBGVARCOND(condition, ...) if(condition) DBGVAR(__VA_ARGS__) #define DBGMSG(...) ConsoleLogger::writeMessage("++", __LINE__, __FILE__, __VA_ARGS__) #define DBGMSG(...) ConsoleLogger<>::writeMessage("++", __LINE__, __FILE__, __VA_ARGS__) #define DBGTRY(code) \ #define DBGTRY(code) \ try{code;} \ try{code;} \ catch(const std::exception& e){ \ catch(const std::exception& e){ \ ConsoleLogger::writeMessage("!!", __LINE__, __FILE__, std::string("something went wrong in try block: ") + e.what()); \ ConsoleLogger<>::writeMessage("!!", __LINE__, __FILE__, std::string("something went wrong in try block: ") + e.what()); \ abort();} abort();} // Macros using html debug output // Macros using html debug output Loading @@ -49,7 +45,7 @@ abort();} #define DBGVARCOND_CSV(condition, ...) if(condition) DBGVAR_HTML(__VA_ARGS__) #define DBGVARCOND_CSV(condition, ...) if(condition) DBGVAR_HTML(__VA_ARGS__) #define DBGCHECK ConsoleLogger::writeMessage("--", __LINE__, __FILE__, "check line") #define DBGCHECK ConsoleLogger<>::writeMessage("--", __LINE__, __FILE__, "check line") #else #else Loading