Created
November 21, 2022 02:55
-
-
Save toxdes/6dd67efd06e3738c796c09291fb9c43c to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#include <iostream> | |
using namespace std; | |
void __print(int x) { cerr << x; } | |
void __print(long x) { cerr << x; } | |
void __print(long long x) { cerr << x; } | |
void __print(unsigned x) { cerr << x; } | |
void __print(unsigned long x) { cerr << x; } | |
void __print(unsigned long long x) { cerr << x; } | |
void __print(float x) { cerr << x; } | |
void __print(double x) { cerr << x; } | |
void __print(long double x) { cerr << x; } | |
void __print(char x) { cerr << '\'' << x << '\''; } | |
void __print(const char *x) { cerr << '\"' << x << '\"'; } | |
void __print(const string &x) { cerr << '\"' << x << '\"'; } | |
void __print(bool x) { cerr << (x ? "true" : "false"); } | |
template <typename T, typename V> | |
void __print(const pair<T, V> &x) { | |
cerr << '{'; | |
__print(x.first); | |
cerr << ','; | |
__print(x.second); | |
cerr << '}'; | |
} | |
template <typename T> | |
void __print(const T &x) { | |
int f = 0; | |
cerr << '{'; | |
for (auto &i : x) cerr << (f++ ? "," : ""), __print(i); | |
cerr << "}"; | |
} | |
void _print() { cerr << "]\n"; } | |
template <typename T, typename... V> | |
void _print(T t, V... v) { | |
__print(t); | |
if (sizeof...(v)) cerr << ", "; | |
_print(v...); | |
} | |
#ifndef ONLINE_JUDGE | |
#define dd(x...) \ | |
cerr << "[L" << __LINE__ << "] " \ | |
<< "[" << #x << "] = ["; \ | |
_print(x) | |
#else | |
#define dd(x...) | |
#endif |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment