The following works :
    
    
    # Bar.h
    #include <iostream>
    
    template<typename K, typename V>
    class Bar {
      public:
        Bar() {
          std::cout << "Bar " << std::endl;
        }
        
        void doWithBar() {
          std::cout << "doWithBar " << std::endl;
        }
        
        ~Bar() {}
    
    };
    
    
    
    
    Run
    
    
    {.push header: "bar.h".}
    
    proc test() {.importcpp: "test".}
    
    type
      Bar[K, V] {.importcpp: "Bar".} = object
    
    proc makeBar*[K, V]() : Bar[K, V] {.importcpp: "'0()", constructor, cdecl.}
    
    proc doWithBar*[K, V](self: Bar[K, V]) {.importcpp: "doWithBar", cdecl.}
    
    {.pop.}
    
    
    
    Run

Reply via email to