gpt4 book ai didi

c++ - 模板模板函数实例化

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:15:05 26 4
gpt4 key购买 nike

template < typename T >
class CLASS_TEMPLATE { } ;

template < template < typename T > class CLASS >
void funcI ( ) { }

template void funcI < CLASS_TEMPLATE > () ;

如果编译器没有任何关于 CLASS_TEMPLATE 模板参数的提示,他如何实例化函数?


我对模板模板的假设是错误的。

funcI 的正式模板参数 是模板,只有一个模板参数。

template < template < typename... > class CONTAINER >
void funcII ( )
{
CONTAINER< int > container0 ;
CONTAINER< float > container1 ;
/* ... */
}

template void funcII < std::vector > () ;将实例化 funcII模板为 { std::vector< int > container0 ; std::vector< float > container1 ; /* ... */ } ;

最佳答案

通过显式实例化

template void func < CLASS_TEMPLATE > () ;

您正在有效地执行此操作:

template <>
void func<CLASS_TEMPLATE>() { }

不需要 CLASS_TEMPLATE 的模板参数来做到这一点。

关于c++ - 模板模板函数实例化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34698725/

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