Hello everybody!!!
I need help... I think this could have a simple solution, but i'm not getting ...
I have this following code:
Code:
#define PRINT_ME
//(...)
#ifdef PRINT_ME
#define PRINT1(s1,s2) printf(s1,s2)
#define PRINT2(s1,s2,s3) printf(s1,s2,s3)
#else
#define PRINT1(s1,s2)
#define PRINT2(s1,s2,s3)
#endif
this works fine when i need to use like this
Code:
void test()
{
PRINT1("Hello number: %d", 1);
PRINT2("Hello both: %d and %d", 1, 2);
}
But, now I need to forget the '#defined' and use a global variable to control the PRINT_ME state (because during the execution of my application, i need to change the state of the #define...therefore i can't use #define anymore...i need to use a global variable). And change the PRINT1, and PRINT2 to functions.
Something like this:
Code:
bool print_me = false;
void setPrint(bool status)
{
print_me = status;
}
bool getPrint()
{
return print_me;
}
template < typename T >
void PRINT1(char *s1, T s2)
{
printf(s1,s2);
}
template <class T, class U>
void PRINT2(char *s1, T s2, U s3)
{
printf(s1,s2,s3);
}
void test()
{
if(getPrint() == true)
{
PRINT2("number: %d and %d", 1, 2); //don't work:-(
}
}
I was trying to use templates...because the "printf" function allows any type of variable (%d, %s, %x, %f, etc)..
Any ideias, or a tutorial that can help me accomplish this?
Thanks :-)