Ну и передаёшь в свой шаблон в качестве параметра MAKE_NSPC_PAIR( className )
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re: Параметр шаблона как класс в другом неймспейсе
Здравствуйте, slavo, Вы писали:
S>Есть такая задача:
S> template<class _T>
S> class CPool: public NFw::_T
...скип...
S>Как объявить параметр _Т, чтобы этой проблемы не возникало?
Это не правильно. Хоть темплейты являются заменой макросов, все же это не макросы. Вот с последними и надо шаманить. Правда я не могу придумать достойный способ, надоб пример по-полнее раскрыть..
Здравствуйте, Аноним, Вы писали:
А>P.S. Имена, начинающиеся с подчеркивания зарезервированы для разработчиков компиляторов. Не стоит их использовать
Только те, в которых после подчеркивания идет заглавная буква или еще одно подчеркивание.
С уважением, Александр
Re[2]: Параметр шаблона как класс в другом неймспейсе
Здравствуйте, Аноним, Вы писали:
А>А что ты хочешь сделать? _T — это не имя класса, это сам класс! Нельзя писать NFw::_T, нужно писать:
А>
А>template<class _T>
А>class CPool: public _T
А>....
А>// using
А>CPool<NFw::A>
А>
А>P.S. Имена, начинающиеся с подчеркивания зарезервированы для разработчиков компиляторов. Не стоит их использовать
Дело в том, что в текущем неймспейсе (не NFw тоже есть класс с таким же именем, котороя я пытаюсь передать через параметр). По моему замыслу _Т должен обозначать и N1::Class и N2::Class
template<class _T>
class CPool: public N1::_T
{
// а в других местах шаблона как-будто N2::_T
Re[3]: Параметр шаблона как класс в другом неймспейсе
От:
Аноним
Дата:
24.08.07 10:52
Оценка:
Здравствуйте, slavo, Вы писали:
S>Дело в том, что в текущем неймспейсе (не NFw тоже есть класс с таким же именем, котороя я пытаюсь передать через параметр). По моему замыслу _Т должен обозначать и N1::Class и N2::Class S>
S>template<class _T>
S>class CPool: public N1::_T
S>{
S> // а в других местах шаблона как-будто N2::_T
S>
Ну что же, пошаманим.
Итак делаем N1 и N2 классами, а не неймспейсами
class N1
{
public:
class A
{..};
};
template<class N>// обращаю внимание, сюда передаем типа неймспейс, а не классclass CPool: public N::A
{
...
};
Re[4]: Параметр шаблона как класс в другом неймспейсе
Здравствуйте, Аноним, Вы писали:
А>Здравствуйте, slavo, Вы писали:
S>>Дело в том, что в текущем неймспейсе (не NFw тоже есть класс с таким же именем, котороя я пытаюсь передать через параметр). По моему замыслу _Т должен обозначать и N1::Class и N2::Class S>>
S>>template<class _T>
S>>class CPool: public N1::_T
S>>{
S>> // а в других местах шаблона как-будто N2::_T
S>>
А>Ну что же, пошаманим. А>Итак делаем N1 и N2 классами, а не неймспейсами А>
А>class N1
А>{
А>public:
А> class A
А> {..};
А>};
А>template<class N>// обращаю внимание, сюда передаем типа неймспейс, а не класс
А>class CPool: public N::A
А>{
А>...
А>};
А>
Перечитай исходный код и свой
Re[2]: Параметр шаблона как класс в другом неймспейсе
Здравствуйте, slavo, Вы писали:
S>Небольшой редизайн и все работает.
Обычно это самый удачный выход и есть!!!
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском