diff options
Diffstat (limited to 'lib/kross')
-rw-r--r-- | lib/kross/python/cxx/Config.hxx | 41 | ||||
-rw-r--r-- | lib/kross/python/cxx/Extensions.hxx | 10 | ||||
-rw-r--r-- | lib/kross/python/cxx/Objects.hxx | 54 |
3 files changed, 32 insertions, 73 deletions
diff --git a/lib/kross/python/cxx/Config.hxx b/lib/kross/python/cxx/Config.hxx index 65bbc2d3..7959c403 100644 --- a/lib/kross/python/cxx/Config.hxx +++ b/lib/kross/python/cxx/Config.hxx @@ -30,45 +30,4 @@ # define random_access_iterator_parent(itemtype) std::random_access_iterator<itemtype, int> #endif -// -// Which C++ standard is in use? -// -#if defined( _MSC_VER ) -# if _MSC_VER <= 1200 -// MSVC++ 6.0 -# define PYCXX_ISO_CPP_LIB 0 -# define STR_STREAM <strstream> -# define TEMPLATE_TYPENAME class -# else -# define PYCXX_ISO_CPP_LIB 1 -# define STR_STREAM <sstream> -# define TEMPLATE_TYPENAME typename -# endif -#elif defined( __GNUC__ ) -# if __GNUC__ >= 3 -# define PYCXX_ISO_CPP_LIB 1 -# define STR_STREAM <sstream> -# define TEMPLATE_TYPENAME typename -# else -# define PYCXX_ISO_CPP_LIB 0 -# define STR_STREAM <strstream> -# define TEMPLATE_TYPENAME class -# endif -#endif - -#if PYCXX_ISO_CPP_LIB -# define STR_STREAM <sstream> -# define OSTRSTREAM ostringstream -# define EXPLICIT_TYPENAME typename -# define EXPLICIT_CLASS class -# define TEMPLATE_TYPENAME typename -#else -# define STR_STREAM <strstream> -# define OSTRSTREAM ostrstream -# define EXPLICIT_TYPENAME -# define EXPLICIT_CLASS -# define TEMPLATE_TYPENAME class -#endif - - #endif // __PyCXX_config_hh__ diff --git a/lib/kross/python/cxx/Extensions.hxx b/lib/kross/python/cxx/Extensions.hxx index 69ce9a14..99889ec7 100644 --- a/lib/kross/python/cxx/Extensions.hxx +++ b/lib/kross/python/cxx/Extensions.hxx @@ -158,7 +158,7 @@ namespace Py extern "C" void do_not_dealloc( void * ); - template<TEMPLATE_TYPENAME T> + template<typename T> class ExtensionModule : public ExtensionModuleBase { public: @@ -213,7 +213,7 @@ namespace Py // so that we get called back at the function in T. // method_map_t &mm = methods(); - EXPLICIT_TYPENAME method_map_t::iterator i; + typename method_map_t::iterator i; for( i=mm.begin(); i != mm.end(); ++i ) { @@ -434,7 +434,7 @@ namespace Py static PyObject *method_call_handler( PyObject *self, PyObject *args ); }; - template<TEMPLATE_TYPENAME T> + template<typename T> class PythonExtension: public PythonExtensionBase { public: @@ -548,7 +548,7 @@ namespace Py { List methods; - for( EXPLICIT_TYPENAME method_map_t::iterator i = mm.begin(); i != mm.end(); ++i ) + for( typename method_map_t::iterator i = mm.begin(); i != mm.end(); ++i ) methods.append( String( (*i).first ) ); return methods; @@ -701,7 +701,7 @@ namespace Py // // ExtensionObject<T> is an Object that will accept only T's. // - template<TEMPLATE_TYPENAME T> + template<typename T> class ExtensionObject: public Object { public: diff --git a/lib/kross/python/cxx/Objects.hxx b/lib/kross/python/cxx/Objects.hxx index 41648320..28662d4f 100644 --- a/lib/kross/python/cxx/Objects.hxx +++ b/lib/kross/python/cxx/Objects.hxx @@ -17,7 +17,7 @@ #include <iostream> -#include STR_STREAM +#include <sstream> #include <string> #include <iterator> #include <utility> @@ -30,10 +30,10 @@ namespace Py // Forward declarations class Object; class Type; - template<TEMPLATE_TYPENAME T> class SeqBase; + template<typename T> class SeqBase; class String; class List; - template<TEMPLATE_TYPENAME T> class MapBase; + template<typename T> class MapBase; // new_reference_to also overloaded below on Object inline PyObject* new_reference_to(PyObject* p) @@ -837,7 +837,7 @@ namespace Py // Changing them to Object(x[i]) helps the compiler to understand that the // conversion of a seqref to an Object is wanted. - template<TEMPLATE_TYPENAME T> + template<typename T> class seqref { protected: @@ -1027,7 +1027,7 @@ namespace Py // class SeqBase<T> // ...the base class for all sequence types - template<TEMPLATE_TYPENAME T> + template<typename T> class SeqBase: public Object { public: @@ -1289,7 +1289,7 @@ namespace Py std::string diagnose() const { - std::OSTRSTREAM oss; + std::ostringstream oss; oss << "iterator diagnosis " << seq << ", " << count << std::ends; return std::string(oss.str()); } @@ -1436,19 +1436,19 @@ namespace Py // Here's an important typedef you might miss if reading too fast... typedef SeqBase<Object> Sequence; - template <TEMPLATE_TYPENAME T> bool operator==(const EXPLICIT_TYPENAME SeqBase<T>::iterator& left, const EXPLICIT_TYPENAME SeqBase<T>::iterator& right); - template <TEMPLATE_TYPENAME T> bool operator!=(const EXPLICIT_TYPENAME SeqBase<T>::iterator& left, const EXPLICIT_TYPENAME SeqBase<T>::iterator& right); - template <TEMPLATE_TYPENAME T> bool operator< (const EXPLICIT_TYPENAME SeqBase<T>::iterator& left, const EXPLICIT_TYPENAME SeqBase<T>::iterator& right); - template <TEMPLATE_TYPENAME T> bool operator> (const EXPLICIT_TYPENAME SeqBase<T>::iterator& left, const EXPLICIT_TYPENAME SeqBase<T>::iterator& right); - template <TEMPLATE_TYPENAME T> bool operator<=(const EXPLICIT_TYPENAME SeqBase<T>::iterator& left, const EXPLICIT_TYPENAME SeqBase<T>::iterator& right); - template <TEMPLATE_TYPENAME T> bool operator>=(const EXPLICIT_TYPENAME SeqBase<T>::iterator& left, const EXPLICIT_TYPENAME SeqBase<T>::iterator& right); + template <typename T> bool operator==(const typename SeqBase<T>::iterator& left, const typename SeqBase<T>::iterator& right); + template <typename T> bool operator!=(const typename SeqBase<T>::iterator& left, const typename SeqBase<T>::iterator& right); + template <typename T> bool operator< (const typename SeqBase<T>::iterator& left, const typename SeqBase<T>::iterator& right); + template <typename T> bool operator> (const typename SeqBase<T>::iterator& left, const typename SeqBase<T>::iterator& right); + template <typename T> bool operator<=(const typename SeqBase<T>::iterator& left, const typename SeqBase<T>::iterator& right); + template <typename T> bool operator>=(const typename SeqBase<T>::iterator& left, const typename SeqBase<T>::iterator& right); - template <TEMPLATE_TYPENAME T> bool operator==(const EXPLICIT_TYPENAME SeqBase<T>::const_iterator& left, const EXPLICIT_TYPENAME SeqBase<T>::const_iterator& right); - template <TEMPLATE_TYPENAME T> bool operator!=(const EXPLICIT_TYPENAME SeqBase<T>::const_iterator& left, const EXPLICIT_TYPENAME SeqBase<T>::const_iterator& right); - template <TEMPLATE_TYPENAME T> bool operator< (const EXPLICIT_TYPENAME SeqBase<T>::const_iterator& left, const EXPLICIT_TYPENAME SeqBase<T>::const_iterator& right); - template <TEMPLATE_TYPENAME T> bool operator> (const EXPLICIT_TYPENAME SeqBase<T>::const_iterator& left, const EXPLICIT_TYPENAME SeqBase<T>::const_iterator& right); - template <TEMPLATE_TYPENAME T> bool operator<=(const EXPLICIT_TYPENAME SeqBase<T>::const_iterator& left, const EXPLICIT_TYPENAME SeqBase<T>::const_iterator& right); - template <TEMPLATE_TYPENAME T> bool operator>=(const EXPLICIT_TYPENAME SeqBase<T>::const_iterator& left, const EXPLICIT_TYPENAME SeqBase<T>::const_iterator& right); + template <typename T> bool operator==(const typename SeqBase<T>::const_iterator& left, const typename SeqBase<T>::const_iterator& right); + template <typename T> bool operator!=(const typename SeqBase<T>::const_iterator& left, const typename SeqBase<T>::const_iterator& right); + template <typename T> bool operator< (const typename SeqBase<T>::const_iterator& left, const typename SeqBase<T>::const_iterator& right); + template <typename T> bool operator> (const typename SeqBase<T>::const_iterator& left, const typename SeqBase<T>::const_iterator& right); + template <typename T> bool operator<=(const typename SeqBase<T>::const_iterator& left, const typename SeqBase<T>::const_iterator& right); + template <typename T> bool operator>=(const typename SeqBase<T>::const_iterator& left, const typename SeqBase<T>::const_iterator& right); extern bool operator==(const Sequence::iterator& left, const Sequence::iterator& right); @@ -1916,7 +1916,7 @@ namespace Py // Mappings // ================================================== - template<TEMPLATE_TYPENAME T> + template<typename T> class mapref { protected: @@ -2085,7 +2085,7 @@ namespace Py return true; // not completed. } - template<TEMPLATE_TYPENAME T> + template<typename T> class MapBase: public Object { protected: @@ -2372,7 +2372,7 @@ namespace Py std::string diagnose() const { - std::OSTRSTREAM oss; + std::ostringstream oss; oss << "iterator diagnosis " << map << ", " << pos << std::ends; return std::string(oss.str()); } @@ -2477,10 +2477,10 @@ namespace Py typedef MapBase<Object> Mapping; - template <TEMPLATE_TYPENAME T> bool operator==(const EXPLICIT_TYPENAME MapBase<T>::iterator& left, const EXPLICIT_TYPENAME MapBase<T>::iterator& right); - template <TEMPLATE_TYPENAME T> bool operator!=(const EXPLICIT_TYPENAME MapBase<T>::iterator& left, const EXPLICIT_TYPENAME MapBase<T>::iterator& right); - template <TEMPLATE_TYPENAME T> bool operator==(const EXPLICIT_TYPENAME MapBase<T>::const_iterator& left, const EXPLICIT_TYPENAME MapBase<T>::const_iterator& right); - template <TEMPLATE_TYPENAME T> bool operator!=(const EXPLICIT_TYPENAME MapBase<T>::const_iterator& left, const EXPLICIT_TYPENAME MapBase<T>::const_iterator& right); + template <typename T> bool operator==(const typename MapBase<T>::iterator& left, const typename MapBase<T>::iterator& right); + template <typename T> bool operator!=(const typename MapBase<T>::iterator& left, const typename MapBase<T>::iterator& right); + template <typename T> bool operator==(const typename MapBase<T>::const_iterator& left, const typename MapBase<T>::const_iterator& right); + template <typename T> bool operator!=(const typename MapBase<T>::const_iterator& left, const typename MapBase<T>::const_iterator& right); extern bool operator==(const Mapping::iterator& left, const Mapping::iterator& right); extern bool operator!=(const Mapping::iterator& left, const Mapping::iterator& right); @@ -2787,13 +2787,13 @@ namespace Py -template<TEMPLATE_TYPENAME T> +template<typename T> String seqref<T>::str () const { return the_item.str(); } -template<TEMPLATE_TYPENAME T> +template<typename T> String seqref<T>::repr () const { return the_item.repr(); |