hui zhang hui zhang - 13 days ago 5
C++ Question

How to implement c++ template<T> in golang

How to translate this cpp code to golang ?

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

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

Answer

Go doesn't support templates or generics. There are three things you can do:

  • use non-empty interfaces where applicable
  • generate code with go generate
  • use interface{}:

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