|
|
@ -108,7 +108,7 @@ class OBTypeM<Func,O1,O...>: public OBTypeM<Func,O...> |
|
|
|
return true; |
|
|
|
return true; |
|
|
|
} |
|
|
|
} |
|
|
|
template<class... Args> |
|
|
|
template<class... Args> |
|
|
|
auto operator ()(Args... args) -> decltype(Func<O1>()(dynamic_cast<const O1*>(this->P()),args...)) const |
|
|
|
auto operator ()(Args... args) const -> decltype(Func<O1>()(dynamic_cast<const O1*>(this->P()),args...)) |
|
|
|
{ |
|
|
|
{ |
|
|
|
typedef decltype(Func<O1>()(dynamic_cast<const O1*>(this->P()),args...)) T; |
|
|
|
typedef decltype(Func<O1>()(dynamic_cast<const O1*>(this->P()),args...)) T; |
|
|
|
if(right) return Func<O1>()(dynamic_cast<const O1*>(OBTypeM<Func,O...>::P()),args...); |
|
|
|
if(right) return Func<O1>()(dynamic_cast<const O1*>(OBTypeM<Func,O...>::P()),args...); |
|
|
|