

我要完成这样一个效果:
#include <bits/stdc++.h>
using namespace std;
template <string mod, class... cls>
class Pack
{
//...大神编写...
};
Pack<"(int):(c),(23cd)", int, char, bool> getBit(int i, char c, bool b)
{
Pack<"(int):(c),(23cd)", int, char, bool> rsl_t;
rsl_t.setthing("int", i);
rsl_t.setthing("c", c);
rsl_t.setthing("23cd", b);
return rsl_t;
}
Pack<"(int)::(c),[NOT(ppt)];[LEN(els)]", int, char, bool, string> getByte(int i, char c, bool b, string els)
{
Pack<"(int)::(c),[NOT(ppt)];[LEN(els)]", int, char, bool, string> rsl_t;
//...略...
return rsl_t;
}
int main()
{
cout << getBit(2021, '+', true);
cout << endl << getByte(2022, '-', true, "something");
return 0;
}
期望输出:
2021:+,true
2022::-,false;9
Pack是一个模板类,我打算用它实现一个format功能:
首先string是模式字符串,后面是class(填充的东西的类型)
也可以改为:"(int:its)"这种类型:名称这种,就不用上面的后面class了,大神看那种好实现。
有两个内置函数(可以再添):
方法:"...[函数名(填入物品名称/物品类型:物品名称(两种选择,看那种好实现)]..."
针对bool类型的NOT函数:
"...[NOT(bool:ygbool)]..."或"...[NOT(ygbool)]..."
针对string的LEN函数:
"...[LEN(string:ygstring)]..."或"...[LEN(ygstring)]..."
NOT是取反,LEN是求长