我正在尝试做类似的事情:
#pragma once
#include <memory>
#include <type_traits>
#include <vector>
class B{}
template <class T>
class A
{
private:
std::vector<std::shared_ptr<T>> ptrVector;
public:
A<T>();
void pushBack(std::shared_ptr<T> t);
if(std::is_same<T, B>::value)
{
void doSth();
}
~A<T>(){};
};
Run Code Online (Sandbox Code Playgroud)
不管怎么说,甚至有可能做到这样的条件吗?不,我不能继承这个类,并且只有A<B>doSth()不存在时才需要doSth()A<C>.