gpt4 book ai didi

c++ - template模板类的param怎么取

转载 作者:搜寻专家 更新时间:2023-10-31 00:19:26 25 4
gpt4 key购买 nike

我有一个类似 Type<Param> 的类型.我如何在 C++11 中检索参数?

可能是这样的:

// I know it's not correct but it conveys the idea very well
template
<
template <class Param> class Type
>
struct GetParam
{
typedef Param Result;
};

// e.g.
typedef GetParam<std::vector<double>>::Result X; // must return double
typedef GetParam<std::list<double>>::Result X; // double
typedef GetParam<std::vector<std::list<double>>::Result X; // std::list<double>

最佳答案

template<class Type>
struct GetParam;

template<template<typename ...> class Tmp, typename T1, typename ...Types>
struct GetParam<Tmp<T1, Types...>> {
typedef T1 type;
};

但是,您传递给 GetParam 的类模板特化只能有类型模板参数。所以你不能传递 std::array 例如。做一个完全通用的 GetParam 是不可能的,因为您必须征用所有可能的模板参数列表变体,而且基本上有无限多。

关于c++ - template模板类的param怎么取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8248331/

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