gpt4 book ai didi

c++ - 在不同的文件中模板化模板实例化

转载 作者:行者123 更新时间:2023-11-30 03:47:57 24 4
gpt4 key购买 nike

<分区>

我知道以下工作:

测试.h

#pragma once

#include <string>

class testclass
{
private:
std::string _data;
public:

template<class T>
testclass(const T&);

};

测试.cpp

#include "test.h"

template testclass::testclass(const int&);
template testclass::testclass(const long&);

//function can be called only with `int` and `long`
template<class T>
testclass::testclass(const T &num)
: _data(std::to_string(num))
{}

所以这是一种成功的分离模板函数的声明和实现的方法,但它也有一些缺点。其中之一是必须对您希望调用函数的所有类型进行硬编码,这是一种拖累。如果函数非常小,您最终会编写比没有模板化时更多的代码...

我想知道这样的事情是否可能:

测试.cpp

#include "test.h"

template<class T2> //bogus syntax, but here the point of interest
template testclass::testclass(const T2&);

template<class T>
testclass::testclass(const T &num)
: _data(std::to_string(num))
{}

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