Fix the ProcessContext copy-ctor stuff for older compilers, which don't support templ...
authorSakari Bergen <sakari.bergen@beatwaves.net>
Mon, 2 Jul 2012 15:48:29 +0000 (15:48 +0000)
committerSakari Bergen <sakari.bergen@beatwaves.net>
Mon, 2 Jul 2012 15:48:29 +0000 (15:48 +0000)
git-svn-id: svn://localhost/ardour2/branches/3.0@12983 d708f5d6-7413-0410-9779-e7cbd77b26cf

libs/audiographer/audiographer/process_context.h

index 576177ee14f18b80338dcb7d1b681caec65c6ac3..15128ab4ea54ea3298c260671d8da0978057c84b 100644 (file)
@@ -15,6 +15,7 @@
 namespace AudioGrapher
 {
 
+
 /**
  * Processing context. Constness only applies to data, not flags
  */
@@ -23,6 +24,9 @@ template <typename T = DefaultSampleType>
 class ProcessContext
   : public Throwing<>
 {
+       // Support older compilers that don't support template base class initialization without template parameters
+       // This will need to be modified if if it's modified above
+       static const ThrowLevel throwLevel = DEFAULT_THROW_LEVEL;
 
        BOOST_STATIC_ASSERT (boost::has_trivial_destructor<T>::value);
 
@@ -43,25 +47,25 @@ public:
        
        /// Normal copy constructor
        ProcessContext (ProcessContext<T> const & other)
-               : Throwing(), _data (other._data), _frames (other._frames), _channels (other._channels), _flags (other._flags)
+               : Throwing<throwLevel>(), _data (other._data), _frames (other._frames), _channels (other._channels), _flags (other._flags)
        { /* No need to validate data */ }
        
        /// "Copy constructor" with unique data, frame and channel count, but copies flags
        template<typename Y>
        ProcessContext (ProcessContext<Y> const & other, T * data, framecnt_t frames, ChannelCount channels)
-               : Throwing(), _data (data), _frames (frames), _channels (channels), _flags (other.flags())
+               : Throwing<throwLevel>(), _data (data), _frames (frames), _channels (channels), _flags (other.flags())
        { validate_data(); }
        
        /// "Copy constructor" with unique data and frame count, but copies channel count and flags
        template<typename Y>
        ProcessContext (ProcessContext<Y> const & other, T * data, framecnt_t frames)
-               : Throwing(), _data (data), _frames (frames), _channels (other.channels()), _flags (other.flags())
+               : Throwing<throwLevel>(), _data (data), _frames (frames), _channels (other.channels()), _flags (other.flags())
        { validate_data(); }
        
        /// "Copy constructor" with unique data, but copies frame and channel count + flags
        template<typename Y>
        ProcessContext (ProcessContext<Y> const & other, T * data)
-               : Throwing(), _data (data), _frames (other.frames()), _channels (other.channels()), _flags (other.flags())
+               : Throwing<throwLevel>(), _data (data), _frames (other.frames()), _channels (other.channels()), _flags (other.flags())
        { /* No need to validate data */ }
        
        /// Make new Context out of the beginning of this context