Форум программистов, компьютерный форум, киберфорум
Наши страницы

шаблоны - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ [BMP] HEX (из HEX-редактора) в DEC http://www.cyberforum.ru/cpp-beginners/thread337689.html
Имеется файл *.bmp (который нельзя вложить в сообщение). В самом файле есть его свойства (размер и т.д.). Как их перевести из HEX в DEC? Размер - ce 6b 0e 00 (байт) - 922 КБ (945,102 байт) X x Y...
C++ Создание SAVE файла. Запись и чтение. Доброго времени суток! Хочу обратиться за мудрым советом к профессионалам. Мне необходимо реализовать в своем приложении создание SAVE файла. Запись и чтение из него. У меня есть массив объектов.... http://www.cyberforum.ru/cpp-beginners/thread337673.html
мужики , какая функция отвечает за "глюк" раб.стола? C++
скинул себе программу "прикол", а там есть такая менюшка глюк экрана, поле установки которой текст становится неразборчив. ну вот как программно отключить это посредством си / с++(лучше в си)?
Кодировка вывода в консоль C++
Здравствуйте, у меня Windows Xp sp 3, не подскажите кодировку вывода на консоль русского текста, текст выводит системное приложение rasdial.exe, которое используется для подключение интернета
C++ Пересечение отрезков. http://www.cyberforum.ru/cpp-beginners/thread337603.html
Решал задачу на acmp про пересечение отрезков, завалился на 20 тесте. Долго просидел, решил прочитать комментарии. Объясните мне, если задать два одинаковых отрезка, разве они будут пересекаться?...
C++ Ошибка Всем привет! #include<iostream.h> #include<conio.h> #include<string.h> enum Shape{prizm,parallelepiped,cube,pyramid,cone,cylinder}; class Body { подробнее

Показать сообщение отдельно
LosAngeles
Заблокирован

шаблоны - C++

31.07.2011, 11:36. Просмотров 3096. Ответов 61
Метки (Все метки)

возник вопрос, а как можно сделать так, чтобы различные экземпляры шаблона класса вели себя по разному в зависимости от того, что было передано в аргументах - класс или некласс. Приведу пример

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
template<typename T>
class Class {
  private:
 
    template<typename C> bool func(C const& x, C const& y, int C::*)
    {
        return true;
    }
 
    template<typename C> bool func(...)
    {
        return false;
    }
 
  public:
    bool operator()(T const& lhs, T const& rhs)
    {
        return func<T>(lhs, rhs, 0);
    }
};
пример конечно неважный, но суть ясна - в зависимости от того, что подставлять заместо Т этот недофунктор ведёт себя по разному. Пользователь не видит ужасного быдлокода между строками 5-13 и это радует, но не совсем. Я тут подумал может как то присобачить можно этот пример из книжки по шаблонам:
C++
1
2
3
4
5
6
7
8
9
10
11
12
template<typename T>
class IsClassT {
  private:
    typedef char One;
    typedef struct { char a[2]; } Two;
    template<typename C> static One test(int C::*);
 
    template<typename C> static Two test(...);
  public:
    enum { Yes = sizeof(IsClassT<T>::test<T>(0)) == 1 };
    enum { No = !Yes };
};
вдруг я ещё захочу пятьсот классов написать, а такой синтаксис нагоняет тоску... Можно как-то эти Yes и No присобачить заместо int C::*?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru