#include <iostream>
#include <stdio.h>
#include <tuple>
using namespace std;
class T {
public:
string a;
string b;
};
#define CONFIG_FUNCTION(...) int SetValue(T t){\
int arg_len = tuple_size<decltype(make_tuple(__VA_ARGS__))>::value;\
auto t = make_tuple(__VA_ARGS__);\
int i = 0;\
cout << arg_len << endl;\
while (i < arg_len) {\
// I need to get every value of __VA_ARGS__
// t.a = "assigntment"
}\
cout << get<1>(t) << endl;\
}
CONFIG_FUNCTION("a", "b", "c", "d", "e");
int main()
{
T t;
SetValue(t);
return 0;
}
として引数の数( "A"、 "B"、 "C"、 "D"、 "E")は可変で、マクロ内の引数のすべての値を取得しようどうすれば値をトラバースできますか?
あなたは本当に何をしようとしていますか?あなたのマクロは何も役に立たない、それがまだなくてはできないことを私が探します。また、実行時インデックスを持つ特定のタプル要素にアクセスすることもできません。むしろ 'std :: initializer_list'をチェックしてください。 –
パラメータ "a" "b"をT.aのようなクラスTのメンバとして使う必要があります。変数として渡すことはできません。 – Titus
だから、私は 'std :: initializer_list'を言及しています。また、今日は可変的なテンプレートパラメータを持っています。 –