Improve k_print_line support

This commit is contained in:
Baptiste Wicht 2013-11-09 21:09:42 +01:00
parent d4bc8e490e
commit af50f683ce
3 changed files with 26 additions and 14 deletions

View File

@ -23,7 +23,15 @@ void k_print(const char* string, uint64_t end);
void k_print(uint64_t number); void k_print(uint64_t number);
void k_printf(const char* fmt, ...); void k_printf(const char* fmt, ...);
void k_print_line(); template<typename... Arguments>
void k_print_line(const char* string); typename enable_if<(sizeof...(Arguments) == 0), void>::type k_print_line(Arguments... args){
k_print('\n');
}
template<typename... Arguments>
typename enable_if<(sizeof...(Arguments) > 0), void>::type k_print_line(Arguments... args){
k_print(args...);
k_print('\n');
}
#endif #endif

View File

@ -0,0 +1,16 @@
#ifndef ENABLE_IF_H
#define ENABLE_IF_H
template<bool B, class T = void>
struct enable_if {};
template<class T>
struct enable_if<true, T> { typedef T type; };
template<bool B, class T = void>
struct dsable_if {};
template<class T>
struct disable_if<false, T> { typedef T type; };
#endif

View File

@ -62,18 +62,6 @@ long get_line(){
return current_line; return current_line;
} }
void k_print_line(){
current_column = 0;
++current_line;
}
void k_print_line(const char* string){
k_print(string);
current_column = 0;
++current_line;
}
uint64_t digits(uint64_t number){ uint64_t digits(uint64_t number){
if(number < 10){ if(number < 10){
return 1; return 1;