Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / C++ [игнор отключен] [закрыт для гостей] / Неполная конкретизация шаблона / 2 сообщений из 2, страница 1 из 1
10.07.2007, 11:19
    #34649602
Akh
Akh
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Неполная конкретизация шаблона
Вроде бы такого не существует... Тогда пытаюсь обойти это с помощью наследования.

Есть шаблон:
Код: plaintext
1.
2.
3.
    template<typename values_type__, unsigned int values_number__>
    class CfgValuesContainer {
    ...

Конкретизирую его:
Код: plaintext
1.
2.
    template<unsigned int values_number__>
    class CfgStringsContainer : public CfgValuesContainer<std::string, values_number__> {};

Теперь необходимо его передать сюда:
Код: plaintext
1.
2.
3.
            CfgStrings(Section const &section_,
                       CfgStringsContainer<values_number__> const &containerNames_,
                       CfgStringsContainer<values_number__> const &containerDefault_)

Передаю:
Код: plaintext
1.
2.
3.
4.
        CfgStrings< 2 >(s,
                   CfgStringsContainer< 2 >()("")(""),
                   CfgStringsContainer< 2 >()("")("")) {}


На что получаю:
ругань компилятора
c.cpp:45: error: no matching function for call to `cfg::CfgStrings<2>::
CfgStrings(const cfg::Section&,
cfg::CfgValuesContainer<std::basic_string<char, std::char_traits<char>,
std::allocator<char> >, 2>&, cfg::CfgValuesContainer<std::basic_string<char,
std::char_traits<char>, std::allocator<char> >, 2>&)'
/root/192.168.252.37/common/cfg/cfg.h:224: error: candidates are:
cfg::CfgStrings<2>::CfgStrings(const cfg::CfgStrings<2>&)
/root/192.168.252.37/common/cfg/cfg.h:231: error:
cfg::CfgStrings<values_number__>::CfgStrings(const cfg::Section&, const
cfg::CfgStringsContainer<values_number__>&, const
cfg::CfgStringsContainer<values_number__>&) [with unsigned int
values_number__ = 2]


Т.е. При передаче в качестве аргумента он приводит мой шаблон к предку, и поэтому происходит не соответсвие типов. Что х?
...
Рейтинг: 0 / 0
10.07.2007, 11:23
    #34649625
Akh
Akh
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Неполная конкретизация шаблона
А, блин, все врубился. В предке переопределен оператор (), который возвращает ссылку на себя. Походу прийдется переопределять подобные операторы в каждой конкретизации
...
Рейтинг: 0 / 0
Форумы / C++ [игнор отключен] [закрыт для гостей] / Неполная конкретизация шаблона / 2 сообщений из 2, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]