samedi 4 février 2017

queue underlying c clear not support on vs2008

#include <queue>

struct model_shell_t 
{
    model_shell_t() {clear();}
    void    clear();
    void    Release() {clear(); model_pool._delete(this);}
    void    SetArgument(byte4 _type, byte4 _arg1, byte4 _arg2) 
    {
        switch( _type )
        {
        case 100:
            if( tail_enable && !_arg1 )
            {
                tail_queue.c.clear(); // Error C2248 Cannot access protected member of queue
            }
            tail_enable = _arg1;
            break;
        case 101:
            tail_interval = _arg1;
            tail_count = _arg2;
            break;
        }
    }

    queue<model_t>  tail_queue;
    byte4           tail_enable;
    byte4           tail_interval;
    byte4           tail_count;
};

Another :

for( byte4 i = 0; i < ms->tail_queue.size(); i++ )
        {
            ms->tail_queue.c[i].bind_model = &bind_ms->tail_queue.c[i];
        }

error C2248: 'std::queue<_Ty>::c' : cannot access protected member declared in class 'std::queue<_Ty>'

When i upgrade solution from VS2003 to VS2008 i cant use clear() function. How can i use it ? Thank you

Aucun commentaire:

Enregistrer un commentaire