diff --git a/include/dynamic-graph/logger.h b/include/dynamic-graph/logger.h index 0a62dc1626cbe77715642a86f0e8f2b33cd50a54..884c943ed3512c93bfe3ade9ef6c2a090f46837e 100644 --- a/include/dynamic-graph/logger.h +++ b/include/dynamic-graph/logger.h @@ -61,7 +61,7 @@ namespace dynamicgraph { #define SEND_WARNING_STREAM_MSG(msg) SEND_MSG(msg, MSG_TYPE_WARNING_STREAM) #define SEND_ERROR_STREAM_MSG(msg) SEND_MSG(msg, MSG_TYPE_ERROR_STREAM) -/*template<typename T> +template<typename T> std::string toString(const T& v, const int precision=3, const int width=-1) { std::stringstream ss; @@ -70,20 +70,20 @@ std::string toString(const T& v, const int precision=3, const int width=-1) else ss<<std::fixed<<std::setprecision(precision)<<v; return ss.str(); -}*/ +} template <typename T> std::string toString(const std::vector<T> &v, const int precision = 3, const int width = -1, const std::string separator = ", ") { std::stringstream ss; if (width > precision) { - for (int i = 0; i < v.size() - 1; i++) + for (unsigned int i = 0; i < v.size() - 1; i++) ss << std::fixed << std::setw(width) << std::setprecision(precision) << v[i] << separator; ss << std::fixed << std::setw(width) << std::setprecision(precision) << v[v.size() - 1]; } else { - for (int i = 0; i < v.size() - 1; i++) + for (unsigned int i = 0; i < v.size() - 1; i++) ss << std::fixed << std::setprecision(precision) << v[i] << separator; ss << std::fixed << std::setprecision(precision) << v[v.size() - 1]; } @@ -96,13 +96,13 @@ std::string toString(const Eigen::MatrixBase<T> &v, const int precision = 3, const int width = -1, const std::string separator = ", ") { std::stringstream ss; if (width > precision) { - for (int i = 0; i < v.size() - 1; i++) + for (unsigned int i = 0; i < v.size() - 1; i++) ss << std::fixed << std::setw(width) << std::setprecision(precision) << v[i] << separator; ss << std::fixed << std::setw(width) << std::setprecision(precision) << v[v.size() - 1]; } else { - for (int i = 0; i < v.size() - 1; i++) + for (unsigned int i = 0; i < v.size() - 1; i++) ss << std::fixed << std::setprecision(precision) << v[i] << separator; ss << std::setprecision(precision) << v[v.size() - 1]; } diff --git a/tests/debug-logger.cpp b/tests/debug-logger.cpp index d6b9ed91a8cf9677dc3a4f5d01ce34135fb22e81..db15ee05b0c7a6d46e13a6d039b5217548050658 100644 --- a/tests/debug-logger.cpp +++ b/tests/debug-logger.cpp @@ -50,7 +50,16 @@ public: MSG_TYPE_WARNING_STREAM); sendMsg("This is a message of level MSG_TYPE_ERROR_STREAM", MSG_TYPE_ERROR_STREAM); - + /* Add test toString */ + double q=1.0; + sendMsg("Value to display: "+toString(q)); + std::vector<double> vq; + vq.resize(3); + vq[0] = 1.0; vq[1] = 2.0; vq[2] = 3.0; + sendMsg("Value to display: "+toString(vq)); + Eigen::Matrix<double,3,3> an_eig_m; + an_eig_m.Ones(); + sendMsg("Value to display: "+toString(an_eig_m)); logger_.countdown(); } };