Sorry about the misspellings...
This is what I'm trying to do:
Write a template class that stores a list of boost::shared_p tr<Twith
a index and is thread safe, where T would be that template <class T>
stuff..
I got the getitem function compiling by using typename, tanks.. but
I've discovered some compile problems with my insert code.
#include <stdint.h>
#include <vector>
#include <boost/thread/mutex.hpp>
#include <boost/shared_ptr.hpp>
#include <boost/tuple/tuple.hpp>
template <class T>
class list{
boost::mutex m_lock;
std::vector<boo st::tuple<uint3 2_t, boost::shared_p tr<T >
m_vector;
uint32_t m_nextid;
uint32_t insert(boost::s hared_ptr<T>);
}
template <class T>
uint32_t list<T>::insert (boost::shared_ ptr<T>)
{
typename boost::tuples:: tuple<uint32_t, boost::shared_p tr<T
add_item(m_next id, item);
typename std::vector<boo st::tuple<uint3 2_t, boost::shared_p tr<T
m_vector;
boost::mutex::s coped_lock lock(m_lock);
m_vector.insert ( add_item );
return m_nextid++;
};
I get the following error:
list.h: In member function 'uint32_t
stdtools::list< T>::insert(boos t::shared_ptr<T >) [with T = int]':
tester_a.cpp:10 : instantiated from here
list.h:90: error: no matching function for call to
'std::vector<bo ost::tuples::tu ple<uint32_t, boost::shared_p tr<int>,
boost::tuples:: null_type, boost::tuples:: null_type,
boost::tuples:: null_type, boost::tuples:: null_type,
boost::tuples:: null_type, boost::tuples:: null_type,
boost::tuples:: null_type, boost::tuples:: null_type>,
std::allocator< boost::tuples:: tuple<uint32_t, boost::shared_p tr<int>,
boost::tuples:: null_type, boost::tuples:: null_type,
boost::tuples:: null_type, boost::tuples:: null_type,
boost::tuples:: null_type, boost::tuples:: null_type,
boost::tuples:: null_type, boost::tuples:: null_type
>::insert(boost ::tuples::tuple <uint32_t, boost::shared_p tr<int>,
boost::tuples:: null_type, boost::tuples:: null_type,
boost::tuples:: null_type, boost::tuples:: null_type,
boost::tuples:: null_type, boost::tuples:: null_type,
boost::tuples:: null_type, boost::tuples:: null_type>&)'
/usr/include/c++/4.0.0/bits/vector.tcc:93: note: candidates are:
typename std::vector<_Tp , _Alloc>::iterat or std::vector<_Tp ,
_Alloc>::insert (__gnu_cxx::__n ormal_iterator< typename _Alloc::pointer ,
std::vector<_Tp , _Alloc, const _Tp&) [with _Tp =
boost::tuples:: tuple<uint32_t, boost::shared_p tr<int>,
boost::tuples:: null_type, boost::tuples:: null_type,
boost::tuples:: null_type, boost::tuples:: null_type,
boost::tuples:: null_type, boost::tuples:: null_type,
boost::tuples:: null_type, boost::tuples:: null_type>, _Alloc =
std::allocator< boost::tuples:: tuple<uint32_t, boost::shared_p tr<int>,
boost::tuples:: null_type, boost::tuples:: null_type,
boost::tuples:: null_type, boost::tuples:: null_type,
boost::tuples:: null_type, boost::tuples:: null_type,
boost::tuples:: null_type, boost::tuples:: null_type]
/usr/include/c++/4.0.0/bits/stl_vector.h:65 7: note:
void std::vector<_Tp ,
_Alloc>::insert (__gnu_cxx::__n ormal_iterator< typename _Alloc::pointer ,
std::vector<_Tp , _Alloc, size_t, const _Tp&) [with _Tp =
boost::tuples:: tuple<uint32_t, boost::shared_p tr<int>,
boost::tuples:: null_type, boost::tuples:: null_type,
boost::tuples:: null_type, boost::tuples:: null_type,
boost::tuples:: null_type, boost::tuples:: null_type,
boost::tuples:: null_type, boost::tuples:: null_type>, _Alloc =
std::allocator< boost::tuples:: tuple<uint32_t, boost::shared_p tr<int>,
boost::tuples:: null_type, boost::tuples:: null_type,
boost::tuples:: null_type, boost::tuples:: null_type,
boost::tuples:: null_type, boost::tuples:: null_type,
boost::tuples:: null_type, boost::tuples:: null_type]
Anybody??