// cl_as_error().
// General includes.
#include "cl_sysdep.h"
// Specification.
#include "cl_N.h"
// Implementation.
#include "cln/io.h"
#include "cln/abort.h"
namespace cln {
void cl_as_error (const cl_number& obj, const char * typestring, const char * filename, int line)
{
fprint(std::cerr, "Type assertion failed: in file ");
fprint(std::cerr, filename);
fprint(std::cerr, ", line ");
fprintdecimal(std::cerr, line);
fprint(std::cerr, ", not ");
fprint(std::cerr, typestring);
fprint(std::cerr, ": ");
#if 0 // This brings in a dependency from the complex and float printer and all the float stuff.
fprint(std::cerr, obj);
#else
fprint(std::cerr, "@0x");
fprinthexadecimal(std::cerr, (unsigned long)(void*)&obj);
fprint(std::cerr, ": 0x");
fprinthexadecimal(std::cerr, (unsigned long)obj.word);
#endif
fprint(std::cerr, "\n");
cl_abort();
}
} // namespace cln
syntax highlighted by Code2HTML, v. 0.9.1