小编Tob*_*bba的帖子

Visual C++ 2012中的编译器错误?(搞砸了跳转地址)

无需优化即可完全编译

void Add(T data)
{
    node<T> *pNode = new node<T>;
    pNode->m_pNext = NULL;
    pNode->m_data = data;

    uint32_t cPushes;
    uint32_t cPops;
    node<T> *pTail;

    while (true)
    {
        cPushes = m_cPushes;
        cPops = m_cPops;
        pTail = (node<T>*)m_pTail;
        if (cPushes != m_cPushes)
            continue;

        if (!pTail)
            if (CAS2(&m_pTail, NULL, cPushes, (uint32_t)pNode, cPushes +1))
                break;
        else if (CAS(&pTail->m_pNext, NULL, (uint32_t)pNode))
                break;
        else
            CAS2(&m_pTail, (uint32_t)pTail, cPushes, (uint32_t)pTail->m_pNext, cPushes + 1);
    }

    CAS2(&m_pHead, NULL, cPops, (uint32_t)pNode, cPops + 1);
    CAS2(&m_pTail, (uint32_t)pTail, cPushes, (uint32_t)pNode, cPushes + 1);
}
Run Code Online (Sandbox Code Playgroud)

反汇编: …

c++ compiler-construction visual-studio visual-c++

3
推荐指数
1
解决办法
149
查看次数