fix(debug): print type in lean_assert, print bool correctly
- use typeinfo to print out a type of value when an assertion fails. need to use "c++filt --types" to demangle names for non-basic types. - use std::boolalpha and std::noboolalpha to control the printed values for "true" and "false"
This commit is contained in:
parent
4602dfd209
commit
841a1fb20c
1 changed files with 5 additions and 1 deletions
|
@ -6,6 +6,7 @@ Author: Leonardo de Moura
|
||||||
*/
|
*/
|
||||||
#pragma once
|
#pragma once
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
|
#include <typeinfo>
|
||||||
#include "util/exception.h"
|
#include "util/exception.h"
|
||||||
|
|
||||||
#ifndef __has_builtin
|
#ifndef __has_builtin
|
||||||
|
@ -106,6 +107,9 @@ public:
|
||||||
virtual char const * what() const noexcept { return "'unreachable' code was reached"; }
|
virtual char const * what() const noexcept { return "'unreachable' code was reached"; }
|
||||||
};
|
};
|
||||||
namespace debug {
|
namespace debug {
|
||||||
template<typename T> void display_var(char const * name, T const & value) { std::cerr << name << " := " << value << "\n"; }
|
template<typename T> void display_var(char const * name, T const & value) {
|
||||||
|
std::cerr << name << " : " << typeid(value).name() << " := "
|
||||||
|
<< std::boolalpha << value << std::noboolalpha
|
||||||
|
<< std::endl; }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue