gpt4 book ai didi

c++ - 是否可以转换参数包中的类型?

转载 作者:IT老高 更新时间:2023-10-28 22:36:37 25 4
gpt4 key购买 nike

是否可以转换参数包的类型并传递它?

例如给定以下内容:

template<class... Args> struct X {};
template<class T> struct make_pointer { typedef T* type; };
template<class T> struct make_pointer<T*> { typedef T* type; };

我们能否定义一个模板 magic 或类似的东西,以便以下断言成立:

typedef magic<X, make_pointer, int, char>::type A;
typedef X<int*, char*> B;
static_assert(is_same<A, B>::value, ":(");

最佳答案

是的,我们可以做到这一点

template<template<typename...> class List, 
template<typename> class Mod,
typename ...Args>
struct magic {
typedef List<typename Mod<Args>::type...> type;
};

关于c++ - 是否可以转换参数包中的类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3273504/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com