heres the code.

template <class T>
class next
{
   public:
           next(const int& k) : k_(k), count(0) {}
        std::complex<T> operator()()
        {
            return std::complex<T>((( 2.0*PI*k_/Random::randint(k_, 2*k_))*(++count)), 0);
        }
       private:
           static const double PI = 3.141592654;
           int k_;
           int count;
};

when i tried to do
boost::assign::list_of<std::complex<T> >.repeat_func(num_elems, next<T>(num_elems));

I get an error about insuffiecnet contextual information to determine type.