Пересадить enum как родной
От: Marty Пират https://www.youtube.com/channel/UChp5PpQ6T4-93HbNF-8vSYg
Дата: 29.04.19 20:51
Оценка:
Здравствуйте!

Хочу старый добрый enum пересадить хирургически в другое место, используя новомодные C++11 штуки типа using'ов.
Но так как плохо их знаю, что-то не выходит.
Возможно, может и старыми способами можно, но не соображу как.
Желание такое — есть старый добрый enum, объявленный где угодно. Хочу перетащить этот enum в другое место, в объявление структуры, так, чтобы имя типа было доступно через квалификацию структуры, а — константы — без квалификации имени, только через имя структуры. Само собой, хочется, чтобы оригинальный enum и перетащеный — были бы полностью совместимы

Что-то типа того — https://ideone.com/XE4N6Q
#include <iostream>
using namespace std;

namespace bla
{
    enum Direction
    {
        dirA,
        dirB
    };
}

namespace OtherNS
{
    struct SomeStruct
    {
        using bla::Direction ;
        
        Direction d;
        
        
    };
    
}

OtherNS::SomeStruct::Direction other = OtherNS::SomeStruct::dirB;

int main() {
    // your code goes here
    cout<<other<<"\n";
    return 0;
}


Подскажите плс
Маньяк Робокряк колесит по городу
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.