What to do when you want to test a code snippet and you do not have the development environment at hand? Or if you just want to try out stuff shown here at CodeProject in a language that you do not normally use?
Well, recently when I was fiddling with my current article (
g2log) I wanted to try out std::atomic but all I had at hand was basically a borrowed computer with www access.
Well, just pure Google luck gave way to
ideone.com and I could try out
std::atomic
. I chose C++0x as language and quickly I could try out this (click
here for the full code).
namespace internal
{
std::atomic<bool> g_log_level_status[4]; }
void setLogLevel(int level, bool enabled)
{
assert((level >= DEBUG) && (level <= FATAL));
(internal::g_log_level_status[level]).store(enabled, std::memory_order_release);
}
bool logLevel(int level)
{
assert((level >= DEBUG) && (level <= FATAL));
bool status = (internal::g_log_level_status[level]).load(std::memory_order_acquire);
return status;
}
#define G2_LOG_INFO LogMessage(__FILE__,__LINE__,__PRETTY_FUNCTION__, "INFO")
#define LOG(level) if(logLevel(level)) G2_LOG_##level.messageStream()
int main()
{
setLogLevel(INFO, true);
LOG(INFO)<< "TEST asf" << std::endl;
setLogLevel(INFO, false);
LOG(INFO) << "TEST asf 2 (should not be shown)" << std::endl;
setLogLevel(INFO, true);
LOG(INFO) << "TEST asf 3 (SHOULD be shown)" << std::endl;
return 0;
}
<quote>With ideone.com output
TEST asf
TEST asf 3 (SHOULD be shown)
Real nice. Now I will try some C#, what about you?