c ++ 11如何将遗留类转换为模板

yannick818

我有一个遗留类,如:

class Wrapper{
public:
    Wrapper(void*);
    void* get();
};

我想创建一个类型安全的包装器,如:

template<class T>
class Wrapper{
public:
    Wrapper(T);
    T get();
};

由于 C++11,像这样的东西将不起作用:

template<class T = void*> //Here I would need <>
class Wrapper...

typedef Wrapper<void*> Wrapper; //This isn't allowed

有没有办法将 Wrapper 转换为模板类,而无需编辑它已经使用的所有地方?

RoQuOTriX

如果你不想在其他地方改变,你可以给你的模板类一个不同的名字(因为你甚至根本不使用它):

template<typename T>
class WrapperT
{
public:
    WrapperT(T t) : _T(t) {}
    T get() { return _T; }
private:
    T _T;
};

using Wrapper = WrapperT<void*>;

如果您随后删除了Wrapper您可以重命名的所有用法WrapperT

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何将C ++ 11循环转换为传统循环?

如何将WPF XAML控件模板及其内容转换为C#

如何将包含构造函数的C ++类转换为C结构?

如何将整数转换为std :: u16string(C ++ 11)?

C#-如何将json字符串转换为类

如何将具有ref =“ xs:schema”属性的xsd类型转换为c#类?

如何将具有 ref 属性的 Json 对象转换为 C# 类?

如何将Swift类转换为UnsafePointer,例如Objective-C中的__bridge

Unity C#:如何将类的数组转换为JSON

如何将系统类型(C Sharp)转换为Java lang类

如何将Json字符串转换为c#类对象?

.Net CORE的gRPC-如何将C#[DataContract]类转换为.proto文件的消息

如何将Json文件(包含数组)转换为(类对象的)列表C#Unity

如何将XML / JSON文件转换为C#类?

仅当变量在 C++ 中可转换时,如何将变量从 int 转换为模板参数

如何将以下 JSON 转换为 C# 类?

如何将C ++结构转换为等效的C#?

如何将C ++循环转换为C样式循环

如何将C ++代码转换为C#

如何将C#代码转换为C ++?

如何将编码从C转换为C ++?

c - 如何将long转换为c中的数组?

如何将XML转换为C ++字符串

如何将 createHmac 从节点转换为 C#?

如何将这段Java代码转换为C ++?

如何将动态JSON转换为C#对象

如何将c(a,b)转换为table(a,b)的参数?

c++ - 如何将for循环转换为while循环

如何将词典列表转换为IDictionary“ C#”