gpt4 book ai didi

C++ boost 模板参数特征

转载 作者:太空宇宙 更新时间:2023-11-04 12:24:38 24 4
gpt4 key购买 nike

我相信我在boost中看到过恢复模板模板参数的宏,例如:

template<class>
struct parameters;

#define parameters(T) template<class A> \
struct parameters<T<A> > { typedef A type1; };

有没有这样的,还是我错了?

谢谢

最佳答案

delctype 在 C++0x 中的支持使得实现起来相当简单:

template<template <typename> class Parent, typename Param1>
Param1 get_type(Parent<Param1> const &input) { return Param1(); }

SomeTpl<int> some_obj;
delctype(get_type(some_obj)) x;

(尽管您需要为具有 2、3、4 等参数的模板单独定义 get_type。)

不幸的是,我不认为没有 decltype 就可以做到这一点,因为这样做需要自动进行函数模板提供的类型推导(这不适用于类模板),所以没有办法使这样的类型定义。

我不知道 boost 是否已经有类似的东西,但如果他们这样做了,它仍然需要你的编译器支持 decltype,但由于 decltype 太新了,所以没有boost 中的很多东西都在使用它(尽管有一些)。

关于C++ boost 模板参数特征,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3168607/

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