crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

> как избавиться от / "обнулить" пространство имён?
Litkevich Yuriy
  опции профиля:
сообщение 14.1.2014, 12:10
Сообщение #1


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Есть много кода, где используется пространство имён описывающее используемую библиотеку, например:
Lib::Type var;

И есть код (заголовочник), где объявлены все эти Type библиотеки, но без пространства имён.
Можно ли как-то избавиться от пространства имён Lib, не правя кучу кода?

Я знаю, что можно сделать так:
namespace Lib {
# include "header.h"
}

Но может есть и другой вариант?

П.С.
Два толстых куска кода достались от студийного компилятора из разных проектов в одном доступ был непосредственный, а в другом через пространство имён. Но по логике их работы им следует быть в одном месте.
в частности пространство имён введено автоматически.
Как я понял это расширение студийного компилятора - директива import:
#import "Path\to\lib\lib.dll" rename_namespace("Lib")
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
ViGOur
  опции профиля:
сообщение 14.1.2014, 15:04
Сообщение #2


Мастер
******

Группа: Модератор
Сообщений: 3296
Регистрация: 9.10.2007
Из: Москва
Пользователь №: 4

Спасибо сказали: 231 раз(а)




Репутация:   40  


Не сразу тебя понял...

Как я понимаю, обы куска ты где-то взял и совместил вместе, правильно?
Если так, то для второго куска тебе нужно просто сделать обертку, вроде:
#ifdef MY_LIB
namespace Lib {
#endif  // MY_LIB

// 2 Кусок

#ifdef MY_LIB
}
#endif  // MY_LIB
Ну и добавь в
#define MY_LIB
в заголовочник, где объявлена твоя Lib

После чего все будет работать...
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме


Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


3 чел. читают эту тему (гостей: 3, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 22.11.2024, 9:12