Change print_line() to use any number of Variants

This commit is contained in:
kobewi
2021-10-07 15:40:48 +02:00
parent 8afd2171d1
commit 31012fd060
3 changed files with 16 additions and 4 deletions

View File

@ -31,7 +31,7 @@
#ifndef PRINT_STRING_H
#define PRINT_STRING_H
#include "core/string/ustring.h"
#include "core/variant/variant.h"
extern void (*_print_func)(String);
@ -46,13 +46,21 @@ struct PrintHandlerList {
PrintHandlerList() {}
};
String stringify_variants(Variant p_var);
template <typename... Args>
String stringify_variants(Variant p_var, Args... p_args) {
return p_var.operator String() + " " + stringify_variants(p_args...);
}
void add_print_handler(PrintHandlerList *p_handler);
void remove_print_handler(PrintHandlerList *p_handler);
extern bool _print_line_enabled;
extern bool _print_error_enabled;
extern void print_line(String p_string);
extern void __print_line(String p_string);
extern void print_error(String p_string);
extern void print_verbose(String p_string);
#define print_line(...) __print_line(stringify_variants(__VA_ARGS__))
#endif // PRINT_STRING_H