Re: SFINAE question 2

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 08/22/2012 11:43 PM, Jonathan Wakely wrote:
On 22 August 2012 22:15, Onay Urfalioglu wrote:
I wonder whether it is possible to overload the operator*() to have two
versions:
   - one for all T_VECTOR - types having operator[]
   - one for all T_VECTOR - types not having operator[] but providing say a
forward iterator, like std::list

(This is just a toy requirement, I am aware that one can implement this in
other ways too...)

You see I am painfully missing some C++11 concepts functionality here...
Instead of your TransformationTrait (which defines a nested type)
define a UnaryTypeTrait (which defines a boolean constant) for "has
operator[]" and another UnaryTypeTrait for "has forward iterator" then
selectively enable one overload with
enable_if<has_index_operator<T>::value>::type and the other with
enable_if<!has_index_operator<T>::value &&
has_forward_iterator<T>::value>::type.


This is not the right list to learn how to do that though.
Right. Thanks a lot for the input Jonathan.

Onay


[Index of Archives]     [Linux C Programming]     [Linux Kernel]     [eCos]     [Fedora Development]     [Fedora Announce]     [Autoconf]     [The DWARVES Debugging Tools]     [Yosemite Campsites]     [Yosemite News]     [Linux GCC]

  Powered by Linux