Несколько видео с AVPlayer

Только мои 2 цента:

std::vector<bool>::reference является typedef для struct _Bit_reference, который определяется как

typedef unsigned long _Bit_type;

struct _Bit_reference
  {
    _Bit_type * _M_p;
    _Bit_type _M_mask;

    // constructors, operators, etc...

    operator bool() const
    { return !!(*_M_p & _M_mask); }
  };

. Меняя функцию, подобную этой, она работает (ну, компилирует, по крайней мере, не проверял):

template< typename T >
void callIfToggled( bool v1, std::vector<bool>::reference v2, T & t )
{
    bool b = v2;  
    if ( v1 != b )
    {
        v2 = v1;
        t.foo();
    }
}

EDIT: я изменил условие от (v1! = v2), что не было хорошей идеей, к (v1! = b).

38
задан Peter 1 February 2013 в 12:22
поделиться