Я использую два сторонних фреймворка. Я хочу получить доступ к новому классу из обеих платформ.
Первый фреймворк использует вложенное пространство имен, например:
namespace space1 {
namespace space2 {
class 3rdparty{
}
}
}
второй фреймворк не использует пространства имен.
Если я попытаюсь вызвать свой собственный класс из первого фреймворка, который использует пространство имен, я просто не смогу сделать это правильно. В лучшем случае я получаю ошибки связывания.
Мой класс выглядит так:
PlugIn_Processor.h:
class PlugIn_Processor{
public:
//constructor
PlugIn_Processor();
};
PlugIn_Processor.cpp:
#include "PlugIn_Processor.h"
PlugIn_Processor::PlugIn_Processor(){
};
Файл cpp, который использует первый фреймворк, выглядит следующим образом:
namespace space1 {
namespace space2 {
3rdparty::3rdparty{
PlugIn_Processor * plugIn_Processor;
plugIn_Processor = new PlugIn_Processor();
}
}
}
Однако, что бы я ни делал, я получаю ошибки компоновщика при вызове конструктора.
Решением было бы поместить все под пространство имен сторонней платформы, но, поскольку я хочу получить доступ к этому классу из разных структур, я не хочу помещать все в это пространство имен.
Что я мог сделать, чтобы обойти это? Все, что я пробовал, просто провалилось.