我有一个带有两个重载的函数模板getDescriptor。它们具有以下签名:

template <class _DescriptorType>
typename _DescriptorType::FeatureType getDescriptor
(const View & view, const _DescriptorType & desc);




template <class _DescriptorType>
typename _DescriptorType::FeatureType getDescriptor
(const Instance & instance, const _DescriptorType & desc);


我有一个不同的功能模板getEncoding,其中我需要第一个getDescriptor函数的地址,而_DescriptorType来自getEncoding

template <class _DescriptorType>
Encoding getEncoding()
{
    auto ptr = static_cast<...>(getDescriptor);

    ...
}


static_cast设置为getDescriptor之一时,我需要放入_DescriptorType以获得第二个重载的getEncoding模板的地址吗?

最佳答案

你去了:

auto ptr = static_cast<
    typename _DescriptorType::FeatureType (*)(const Instance &, const _DescriptorType &)
>(getDescriptor<_DescriptorType>);

关于c++ - 获取重载功能模板的地址,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29844898/

10-11 22:38