python/test/pointer_vector.cpp
Jürgen Hunold 63f8e9f3d7 Merged revisions 41544-41546,41549-41551,41558-41561,41564,41567,41570,41573,41576-41579,41581,41583-41586,41589,41591,41594-41612,41614-41620,41622-41624,41628,41630-41635,41637,41640-41641,41643,41649-41650 via svnmerge from
https://svn.boost.org/svn/boost/trunk

........
  r41544 | jhunold | 2007-12-01 20:27:06 +0100 (Sa, 01 Dez 2007) | 2 lines
  
  Silence compiler by adding cosmetic virtual destructors.
........
  r41549 | jhunold | 2007-12-01 21:24:51 +0100 (Sa, 01 Dez 2007) | 2 lines
  
  Silence compiler by adding cosmetic virtual destructors.
........
  r41550 | jhunold | 2007-12-01 21:26:37 +0100 (Sa, 01 Dez 2007) | 3 lines
  
  Remove unused paramters.
  Add -Wextra to gcc flags to enable more warnings.
........
  r41577 | jhunold | 2007-12-02 12:51:08 +0100 (So, 02 Dez 2007) | 3 lines
  
  Revert revisions 41544 and 41549.
  See http://lists.boost.org/Archives/boost/2007/12/131116.php for details.
........
  r41649 | jhunold | 2007-12-03 19:47:17 +0100 (Mo, 03 Dez 2007) | 2 lines
  
  Silence unused paramter warning in release mode.
........
  r41650 | jhunold | 2007-12-03 19:51:26 +0100 (Mo, 03 Dez 2007) | 2 lines
  
  Add cosmetic virtual detructors to silence compile warnings.
........


[SVN r42094]
2007-12-16 10:12:07 +00:00

53 lines
1.1 KiB
C++

// Copyright Joel de Guzman 2005-2006. Distributed under the Boost
// Software License, Version 1.0. (See accompanying
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
#include <boost/python.hpp>
#include <boost/python/suite/indexing/vector_indexing_suite.hpp>
#include <vector>
using namespace boost::python;
class Abstract
{
public:
virtual ~Abstract() {}; // silence compiler warningsa
virtual std::string f() =0;
};
class Concrete1 : public Abstract
{
public:
virtual std::string f() { return "harru"; }
};
typedef std::vector<Abstract*> ListOfObjects;
class DoesSomething
{
public:
DoesSomething() {}
ListOfObjects returnList()
{
ListOfObjects lst;
lst.push_back(new Concrete1()); return lst;
}
};
BOOST_PYTHON_MODULE(pointer_vector_ext)
{
class_<Abstract, boost::noncopyable>("Abstract", no_init)
.def("f", &Abstract::f)
;
class_<ListOfObjects>("ListOfObjects")
.def( vector_indexing_suite<ListOfObjects>() )
;
class_<DoesSomething>("DoesSomething")
.def("returnList", &DoesSomething::returnList)
;
}