Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > C++ > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail


Донат для форума - использовать для поднятия настроения себе и модераторам

А ещё здесь можно купить рекламу за 15 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru

Ответ
 
Опции темы
Старый 15.05.2013, 18:50   #1
220Volt
Участник клуба
 
Регистрация: 14.12.2012
Адрес: Россия
Сообщений: 683
Репутация: 199
По умолчанию Частичная специализация функции внутри шаблона

Здравствуйте!
Безуспешно пытаюсь частично специализировать шаблонную функцию внутри шаблонного класса на MINGW.
Код:
template <typename _A>
    struct Q2
    {
        template <typename _T>
            void f() {}

	template <>
	    void f<int>() {}    // В MSVC можно, в mingw нет.
    };
Вынести частичную специализацию наружу не получается (может руки кривые), что делать? Хочется без волшебства – доп. функции, f() вынести из Q2 и т.п.. Просто взять и сделать, аналогично MSVC.
UPD:
Наверное, в приведенном примере - явная специализация.

Последний раз редактировалось 220Volt; 15.05.2013 в 18:59.
220Volt вне форума   Ответить с цитированием
Старый 15.05.2013, 18:52   #2
_Bers
Профессионал
 
Регистрация: 16.12.2011
Адрес: Москва
Сообщений: 2,317
Репутация: 1138
По умолчанию

в рамках 2008 стандарта не получится. Делегируй статик-хелперам.
Писать не оч удобно, но код эффективен
_Bers вне форума   Ответить с цитированием
Старый 15.05.2013, 20:31   #3
220Volt
Участник клуба
 
Регистрация: 14.12.2012
Адрес: Россия
Сообщений: 683
Репутация: 199
По умолчанию

Спасибо. Жаль.
220Volt вне форума   Ответить с цитированием
Старый 15.05.2013, 22:00   #4
220Volt
Участник клуба
 
Регистрация: 14.12.2012
Адрес: Россия
Сообщений: 683
Репутация: 199
По умолчанию

Можно ли вызвать функцию член класса из сторонней функции? Передать нужный this вручную.
Псевдокод:
Код:
void f(class Q *_this);

struct Q
{
    void method() {}
};

void f(Q *_this)
{
    Q::method(_this);
}
220Volt вне форума   Ответить с цитированием
Старый 15.05.2013, 22:30   #5
pproger
C++ hater
СуперМодератор
 
Аватар для pproger
 
Регистрация: 19.07.2009
Сообщений: 3,317
Репутация: 1437

skype: vvviperrr00
По умолчанию

2220Volt
Код:
void f(Q *_this) {
    _this->method();
}
заучился?
__________________
I invented the term Object-Oriented, and I can tell you I did not have C++ in mind. (c)Alan Kay

My other car is cdr.

Q: Whats the object-oriented way to become wealthy?
A: Inheritance
pproger вне форума   Ответить с цитированием
Старый 16.05.2013, 04:01   #6
220Volt
Участник клуба
 
Регистрация: 14.12.2012
Адрес: Россия
Сообщений: 683
Репутация: 199
По умолчанию

Да, что-то заклинило )))
220Volt вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Специализация шаблона 220Volt Общие вопросы C/C++ 5 11.04.2013 18:03
получение ссылки на функцию из класса шаблона и передача ее как параметр шаблона pror0ck Общие вопросы C/C++ 7 17.06.2012 15:06
шаблонные методы шаблона. Специализация. _Bers Общие вопросы C/C++ 5 08.02.2012 01:38
Специализация шаблона Bubaleh Общие вопросы C/C++ 6 09.09.2011 12:01
C++ Специализация шаблона opensuse2008 Помощь студентам 7 07.06.2009 18:00


18:55.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.