Использование пространств имен во встроенной сборке - PullRequest
1 голос
/ 04 сентября 2011

Допустим, у меня есть следующий встроенный код ассемблера ...

_asm {
    fst  dword ptr [eax]mystruct1.mymember
    fstp dword ptr [ebx]mystruct2.mymember
}

... но, к сожалению, mystruct1 и mystruct2 имеют одинаковое имя и находятся в разных пространствах имен.Я пытался вот так ...

_asm {
    fst  dword ptr [eax]mynamespace1::mystruct.mymember
    fstp dword ptr [ebx]mynamespace2::mystruct.mymember
}

... но это не работает.Можно ли как-то указать пространство имен без оператора c ++ using (это все равно не сработает, потому что вам нужно каким-то образом изменить пространство имен, используемое между операциями)?И нет, я не могу изменить пространство имен, структуру или имена членов.

1 Ответ

2 голосов
/ 04 сентября 2011

Одним из решений является создание ссылки и использование этого вместо:

MyStruct& ms = mynamespace1::mystruct;

_asm {
    fst  dword ptr [eax]ms.mymember
    fstp dword ptr [ebx]ms.mymember
}

Я не знаю, возможно ли это в вашей ситуации.

...