如何在golang中实现c ++模板<t>

时间:2016-11-23 06:51:10

标签: c++ templates go

如何将此cpp代码翻译为golang?

template<T> class CppTemp {
    T  a;
    T* pa;
    T foo(T &t);
};

template<T> T foo2(const T &t)

1 个答案:

答案 0 :(得分:4)

Go不支持模板或泛型。你可以做三件事:

  • 在适用的情况下使用非空接口
  • 使用go generate
  • 生成代码
  • 使用interface{}

    type GoTemp struct {
        a interface{}
    }
    
    func (gt *GoTemp) foo(v interface{}) {
        // ...
    }
    
    func foo2(v interface{}) {
        // ...
    }