gpt4 book ai didi

C++ 有没有办法根据 type_traits 进行模板重载?

转载 作者:行者123 更新时间:2023-11-28 05:19:37 25 4
gpt4 key购买 nike

是否可以根据 type_traits 信息重载函数/类模板?

例子:

#include <type_traits>

template<typename Object>
class object_worker
{
public:
object_worker(Object&& o) // o - is not POD
{
// do something
}
};

template<typename Object>
class object_worker<std::is_pod<Object>::value == true> // how to make this thing work?
{
public:
object_worker(Object &&o) // o - is POD
{
// do something different
}
};
  • 它是否必须使用某种技术来做某事?像部分模板特化
  • 如果可以实现,它的名称是什么? (例如,部分模板特化概念)

最佳答案

是的,你可以这样做。它的使用非常广泛。

template<typename T, bool = is_pod<T>::value>>
class foo
{
};

// This is a partial template specialization.
// Triggered only when is_pod<T>::value is true
template<typename T>
class foo<T, true> // T can be only a POD type
{
};

关于C++ 有没有办法根据 type_traits 进行模板重载?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41795549/

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