我有一个与这个非常相似的 Typelist 实现。如果您不知道什么是类型列表:简而言之,它的行为类似于使用嵌套元组的可变参数模板。你可以在这里阅读更多关于它们的信息。
我想从这个类型列表的一个子集构建一个函数指针类型。该子集由索引列表(任何大小)定义,所需的操作在类型列表中查找这些索引,并使用这些类型作为参数定义函数上的指针类型。
API 看起来像:
#include "typelist.h"
// typelist definition
typedef Typelist<float, Typelist<double, Typelist<int, NullType>>> Pixel;
typedef FunctionFromFields<Pixel, 0, 2>::Type field_0_and_2;
// I want the definition above to be equivalent to:
// typedef void (*field_0_and_2)(float*, int*);
假设这是可能的似乎是合理的,因为在编译时一切都是已知的,但我还没有找到正确的语法。
我不想使用可变参数模板来替换类型列表,但是它们可以用来定义指针类型。
有没有人做过类似的事情?