虽然已临近CSP复赛,但我还在不务正业
更改缺省源
最近几天莫名其妙的的想改一下我的缺省源。
之前和现在的缺省源比较:
之前:
#include<stdio.h>
#include<string.h>
//#include<bits/stdc++.h>
//#include<iostream>
//using namespace std;
//using std::cin;
#define itn int
#define ll long long
//#define int ll
int max(int x,int y){return x>y?x:y;}
int min(int x,int y){return x<y?x:y;}
const int MAX_add=10;
const int MAX_N=1000;
const int MAX_M=1000;
const int N=MAX_N+MAX_add;
const int M=MAX_M+MAX_add;
现在... :
#include<stdio.h>
#include<ctype.h>
//#include<bits/stdc++.h>//不耐烦了
//#include<iostream>
//using namespace std;
#ifdef _GLIBCXX_IOSTREAM
#define endl '\n'
using std::cin;
using std::cout;
#define Fast_IO ios::sync_with_stdio(0),cin.tie(0)
#endif
namespace OI{//好长的缺省源
#define ct const
#define ctr constexpr
#define itn int //防手残
#define un unsigned
typedef long long ll;
typedef unsigned long long ull;
typedef const int CI;
#define rt register
#define _rep(i,st,n) for(rt int i=(st);i<(n);++i)
#define rep(i,st,n) for(rt int i=(st);i<=(n);++i)
#define _dwh(i,st,n) for(rt int i=(st);i>(n);--i)
#define dwh(i,st,n) for(rt int i=(st);i>=(n);--i)
#define dw(n) while(n--)
const int L=1<<15;
char buf[L],*p1,*p2;
int my_getchar(){return (p1==p2?(p2=buf+fread(p1=buf,1,L,stdin),p1==p2?EOF:*p1++):*p1++);}
#define getchar my_getchar
int read()
{
int x=0;
bool f=0;
char ch=getchar();
while(!isdigit(ch)){if(ch=='-') f=!f;ch=getchar();}
while(isdigit(ch)) x=x*10+(ch&15),ch=getchar();
if(f) return -x;
return x;
}
//#define int ll
int max(int x,int y){return x>y?x:y;}
int min(int x,int y){return x<y?x:y;}
int bmax(int &x,int y){return x=max(x,y);}
int bmin(int &x,int y){return x=min(x,y);}
template<class T,class U>
struct __is_same{static const int value=false;};
template<class T>
struct __is_same<T,T>{static const int value=true;};
#define is_same(T,U) (OI::__is_same<T,U>::value)
// C++ 11
template<class T>
T go_sum(T x){return x;}
template<class T,class ...Args>
T go_sum(T x,Args... args){return x+go_sum(args...);}
CI \
MAX_add=10,
MAX_N=1e7,
MAX_M=2e5,
N=MAX_N+MAX_add,
M=MAX_M+MAX_add;
};
注:此次发癫2024.10.14左右至2024.10.16
《存储变量类型的类》
rt,又是一次莫名其妙,想造的
然后,不出意外的,出了意外。
附最后的代码:
//已省略缺省源
template<class T=int>
struct VAR{
int use;
VAR(){use=0;}
template<class U>
bool operator ==(VAR<U> y){return is_same(T,U);}
template<class U>
bool operator !=(VAR<U> y){return!is_same(T,U);}
};
const VAR<int> _INT;
const VAR<long> _LONG;
const VAR<short> _SHORT;
const VAR<double> _DOUBLE;
template<class T=int/*,class U=int*/>
struct _VAR{
void *p;
_VAR(){p=new VAR<T>;((VAR<T>*)p)->use=1;}
template <class _T>
_VAR operator =(_VAR<_T> a){
p=a.p;
((VAR<_T>*)p)->use++;
return *this;
}
template <class _T>
bool operator ==(_VAR<_T> a){
return (*(VAR<>*)a.p)==(*(VAR<>*)p);
}
~_VAR()
{
((VAR<>*)p)->use--;
if(((VAR<>*)p)->use==0) delete (VAR<>*)p;
}
};
//#define
_VAR<int> a,c;
_VAR<double> b;
int main()
{
a=b;
if(a==c) printf("TRUE");
else printf("FALSE");
return 0;
}
这个东东给我到此为止!!!
当然你有改进建议的话,就更好了
标签:2024.10,return,int,18,template,VAR,const,发癫,define From: https://www.cnblogs.com/AC-13-13/p/18475031