Search code examples
c++classtemplatesstatictypename

static template functions in a class


How do I make the following function inside a class and then access this function from main? My class is just a collection of a bunch of static functions.

template<typename T> double foo(vector<T> arr);

Solution

  • Define the function in the .h file.

    Works fine for me

    a.h

    #include <vector>
    #include <iostream>
    
    using namespace std;
    class A {
    public:
    template< typename T>
        static double foo( vector<T> arr );
    
    };
    
    template< typename T>
    double A::foo( vector<T> arr ){ cout << arr[0]; }
    

    main.cpp

    #include "a.h"
    int main(int argc, char *argv[])
    {
        A a;
        vector<int> arr;
        arr.push_back(1);
        A::foo<int> ( arr );
    }