Click here to Skip to main content
65,938 articles
CodeProject is changing. Read more.
Articles / Languages / C#

Ideone.com pastebin and online compiler with support for 40 programming languages

5.00/5 (4 votes)
13 Dec 2011CPOL 24.6K  
Ideone.com pastebin and online compiler with support for 40 programming languages
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).

C++
namespace internal
{
  std::atomic<bool> g_log_level_status[4]; // DEBUG, INFO, WARNING, FATAL
}
 
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()
// .... etc etc

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?

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)