gpt4 book ai didi

C++ 模板专门化 - 只专门化一些方法,其余的使用默认的 impl

转载 作者:搜寻专家 更新时间:2023-10-31 01:42:39 25 4
gpt4 key购买 nike

我有一个这样的模板:

template <typename T>
class MyThing {
public:
static void Write(T value) { ... }
static void Flush() { ... }
}

对于特定类型,例如bool,我想专门化Write 方法而不修改其他方法。像这样的……

// Specialize Write() behavior for <bool> ...
// This won't work. Mything<bool> no longer has a Flush() method!
template <>
class MyThing<bool> {
public:
static void Write(bool value) { ... }
}

如何专门化模板类中的一个方法?

最佳答案

事实证明这个问题的修复很简单......

我需要做的就是在我的 .cc 文件中定义方法:

template <>
void MyThing<bool>::Write(bool value) { ... }

然后在我的.h文件中声明:

template <>
void MyThing<bool>::Write(bool value);

我花了一段时间才弄明白,所以我想我应该发布它。

关于C++ 模板专门化 - 只专门化一些方法,其余的使用默认的 impl,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26536711/

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