hui zhang hui zhang - 6 months ago 43
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)


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{}) {
        // ...