小编Fra*_*fka的帖子

如何使用模板制作 3D 对象的打印版本?(c++)

我想你已经看到了这个特殊的功能:

template<typename T> void print(const T& cont){
    for (auto &i: cont)
        std::cout << i << " ";
    std::cout << std::endl;
}
Run Code Online (Sandbox Code Playgroud)

它打印几乎所有类型的容器,如std::list. 现在我想创建一个打印(例如)3D 的std::vector,看看这个幻想:

template<typename T1, typename T2> void print(const T1<T2>&);
Run Code Online (Sandbox Code Playgroud)

但这当然不是模板的工作方式。怎么做?同样重要的是:在 c++17 和 pre-c++17 中这样做有什么区别吗?

c++ templates multidimensional-array

2
推荐指数
1
解决办法
41
查看次数

如何从另一个类获取 std::bitset 的大小?

我试图创建一个具有std::bitsetin的类,另一个类应该将它作为参数并创建一个从类中std::array获取 的大小std::bitset。像这样:

template<size_t size>
class Individual{
public:
    std::bitset<size> data;
};

template<typename Ind>
class Process {
public:
    Process() = default;
    std::array<OtherType, Ind::data.size()> individuals;//Size of array must be the size of the bitset!
};
Run Code Online (Sandbox Code Playgroud)

但是当然这不起作用(您可以猜到,因为data不是静态的)。如何从第二个类中获取 the 的大小std::bitset并将其放入std::array

c++ templates

1
推荐指数
1
解决办法
37
查看次数

标签 统计

c++ ×2

templates ×2

multidimensional-array ×1