So given this header.
template <
QSTYPE type,
typename T,
template <typename ELEM, typename = std::allocator<ELEM> >
class CONT
>
CONT<T> quicksort(CONT<T>);
// inside the main file.
// I decided a function that takes vector of integer and returns a vector of integer.
typedef boost::function<std::vector<int>(std::vector<int>)> sortfunc;
// create a function list to hold the sorting function.
// bunch of number include.
#include <boost/assign/std/vector.hpp>
std::vector<sortfunc> function_list;
using boost::assign::operator+=;
std::vector<sortfunc> function_list;
// quicksort random
function_list += (&algocpw::quicksort<algocpw::QSTYPE(algocpw::RANDOM), int, std::vector>),
// quicksort median
(&algocpw::quicksort<algocpw::QSTYPE(algocpw::MEDIAN), int, std::vector>),
// quicksort mediantriple
(&algocpw::quicksort<algocpw::QSTYPE(algocpw::MEDIANTRIPLE), int, std::vector>),
// merge sort
(&algocpw::mergesort<int, std::vector>),
// heap sort
(&algocpw::heapsort<int, std::vector>),
// selection sort
(&algocpw::selection_sort<int, std::vector>),
// standard sort
(&algocpw::standard_sort<int, std::vector>);
I get the following errors.
./cs512/c++/sortingMain.cpp(63) : error C2896: 'boost::assign::list_inserter<boost::assign_detail::call_push_back<std::vector<_Ty,_Alloc>>,V> boost::assign::operator +=(std::vector<_Ty,_Alloc> &,V2)' : cannot use function template 'CONT<T> algocpw::mergesort(CONT<T>)' as a function argument
c:\cpw\msvc\cs512\c++\def\../sortingAlgo.hpp(32) : see declaration of 'algocpw::mergesort'
./cs512/c++/sortingMain.cpp(63) : error C2784: 'boost::assign::list_inserter<boost::assign_detail::call_push_back<std::deque<T,Allocator>>,V> boost::assign::operator +=(std::deque<T,Allocator> &,V2)' : could not deduce template argument for 'std::deque<T,Allocator> &' from 'std::vector<_Ty>'
with
[
_Ty=sortfunc
]
Where did "deque" come from.. i never included deque.