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?
Enjoying Colorado! Family and intense software development.
Kjell is a driven developer with a passion for software development. His focus is on coding, boosting software development, improving development efficiency and turning bad projects into good projects.
Kjell was twice national champion in WUKO and semi-contact Karate and now he focuses his kime towards software engineering, everyday challenges and moose hunting while not being (almost constantly) amazed by his daughter and sons.