蒻菊又雙叒叕來求救了!
我要完成這樣一個效果:
#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是求長
uj5u.com熱心網友回復:
建構式中使用sizeof...(cls)可以得到實際型別引數個數,然后考慮建立幾元組(tuple).轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/260201.html
標籤:C++ 語言
上一篇:C語言新手問題
下一篇:OpenGL的assimp庫
