gpt4 book ai didi

c++ - 模板模板参数,内部参数不固定

转载 作者:行者123 更新时间:2023-11-28 01:48:19 24 4
gpt4 key购买 nike

我有一个名为 MATRIX 的模板类,它采用单个参数 T。我想编写一个采用 MATRIX 并返回 T 值输出的函数。 MATRIX typedefs T 在其实现中为 elem_type。我最初的尝试是:

template<template<typename> class MATRIX>
class MyClass
{
...
MATRIX<>::elem_type myfun(const MATRIX<>& m1);
}

这会导致错误“模板模板参数“MATRIX”的参数列表丢失”,这看起来很有意义。问题是我不知道该放什么。例如,我可以指定 float,但我希望无论 MATRIX 的参数是 float、double、uint_16 还是其他任何参数,该函数都能正常工作。是否可以在不具体枚举 MATRIX 的所有可能参数的情况下执行此操作?

最佳答案

解决此问题的最简单方法是让 MyClass 采用单个模板参数,然后将其显式特化到 MATRIX 上。

template <typename>
class MyClass;

template <template <typename> class MATRIX, typename T>
class MyClass<MATRIX<T>>
{
// ...
typename MATRIX<T>::elem_type myfun(const MATRIX<T>& m1);
};

live example on wandbox

关于c++ - 模板模板参数,内部参数不固定,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43988168/

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