你會寫下面的簡單容器任何其他方式,或者是完全合理的,因爲它是:這個容器的實現是否完全合理?
template <typename T, bool small_>
struct TransType
{
typedef const T& param_type;
};
template <typename T>
struct TransType<T, true>
{
typedef const T param_type;
};
template <class T>
class Container:public TransType<T,sizeof(T)<=sizeof(void*)> {
public:
param_type getVal(){
return obj;
}
void setVal(param_type input){
containment=input;
}
private:
T containment;
};
`template void UB(){TransType * x = new Container ;刪除x; //未定義行爲}`:P(Base類或者需要公共虛擬析構函數或者受保護的非虛擬析構函數) –
GManNickG
2010-11-23 17:56:51
一個缺點是不能編譯;) – sth 2010-11-23 18:02:48