条件付きデバッグを使用してプロジェクトをセットアップしようとしています。私が欲しいのはdebug
、デバッグモードで実行しているときにある種の printf/cout/anything に #defined であり、プロダクションモードで実行しているときに null ステートメントに #defined であるマクロを持つことです。これどうやってするの:
マクロを使用してみました_DEBUG
が、実行中のモードに関係なく、常に引数が出力されます。
struct debugger{template<typename T> debugger& operator ,(const T& v){std::cerr<<v<<" ";return *this;}}dbg;
#if _DEBUG
#define debug(...) {dbg,__VA_ARGS__;std::cerr<<std::endl;}
#else
#define debug(...) // Just strip off all debug tokens
#endif
私のメインでは:
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
int a=1,b=2,c=3;
debug(a,b,c);
cin>>a;
}
それが役立つ場合、私はVisual Studio 2012を使用しています