none
關於 C2625 union 中使用 reference RRS feed

  • 問題

  • 我們有一些舊的程式碼在 VS2015 之後的編譯器上會出現 C2625 的錯誤,表示禁止在 union 中使用 reference? 我看不出來錯誤的理由是什麼,有人能為我解惑嗎?

    class CVectorReference2BYTE {

    public:

    union {

    struct { BYTE &m_x,&m_y; };

    struct { BYTE &m_s,&m_t; };

    };

    }

    我只是讓同一塊記憶體空間允許不同的名稱,而不用佔用兩份參考為什麼要被報錯?


    2019年9月26日 下午 02:17

所有回覆

  • 您的union宣告是一個型態, 可以宣告在class的外面, 像這樣:

    union utype {
    	struct a{ int& m_x, & m_y; };
    	struct b{ int& m_s, & m_t; };
    };
    
    class CVectorReference2BYTE {
    public:
    	union utype u;
    };

    2019年9月27日 上午 12:46