Форум программистов, компьютерный форум CyberForum.ru

Реализация идеомы UniqueType - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Литература по Win API http://www.cyberforum.ru/cpp/thread41543.html
Посоветуйте пожалуйсто книгу где изложены основы программирования с win API доступным языком с использованием C++
C++ C:\Dev-Cpp\Makefile.win [Build Error] [Безымянный1.o] Error 1 C:\Dev-Cpp\Makefile.win Error 1 компилятор стал показывать такую ошибку, после того как я открыл эту папку редактором и удалил от туда текст. Но это не главное. удалил этот компилятор, закачал такой-же, а ошибка осталась ((( http://www.cyberforum.ru/cpp/thread41323.html
pow: OVERFLOW error...Floating Point: Overflow C++
Помогите разобраться почему в программе выводятся эти ошибки после ввода значений ----------------------- pow: OVERFLOW error Floating Point: Overflow ----------------------- #include <stdlib.h> #include <math.h> #include <iostream.h>
C++ System::AnsiString для VC++
Имеется программа написанная Borland, которая динамически загружает dll. Ищет метод с прототипом void Name(System::AnsiString &) и получает имя. Как реализовать такую dll на VC++, чтобы программа схавала?
C++ СДВИГ http://www.cyberforum.ru/cpp/thread40488.html
люби помогите пожалуста завтра прогу сдавать очень надо дан массив unsigned short mas нужно вывести числа в которых четное количество единичных бит препод сказал что надо использовать сдвиг завтра в 9 надо сдать плиз помогите или обьясните как очень надеюсь на помощь!!
C++ Определить IP-адрес PPTP-адаптера под Windows? Не сочтите за дерзость: создавал тему в разделе для чайников - никто не ответил.. Может здесь правильные люди наткнутся.. :) Доброго времени суток.. Придумал себе задачу - узнать IP-адрес, который приплывает на локальный windows-компьютер в рамках PPTP-подключения. Эту информацию можно получить, например, выполнив ipconfig в командной строчке. Но не выдачу же парсить? Гугл ничего толкового... подробнее

Показать сообщение отдельно
rs4i
1 / 1 / 0
Регистрация: 25.06.2009
Сообщений: 13

Реализация идеомы UniqueType - C++

25.06.2009, 22:12. Просмотров 686. Ответов 5
Метки (Все метки)

Идея проста и стоит во главе идеологии C++:
C++
1
2
std::string password, login;
unsigned short TCPport, YearOfBirth;
Компилятор запрещает бессмысленные присвоения:
C++
1
login = TCPport; // error
Однако не менее бессмысленные:
C++
1
password = login; TCPport = YearOfBirth; // ok
запретить не может.
Писать класс для каждого подобного типа не реально.
Возникла идея написать шаблон прокси класса:
C++
1
2
3
4
5
6
7
template< class ContainType >class UniqueType{
  ContainType value;
public:
  UniqueType( ContainType value ): value( value ){}
  operator ContainType(){ return value; }
  // При необходимости перегружаем еще что-нибудь.
};
Вопрос как обеспечить уникальность типа.
Очевидное решение слегка не удобно:
C++
1
2
3
template< class ContainType, class Name >class UniqueType;
struct myPasword{}; // каждый раз определять новые бесполезные именные типы
UniqueType< std::string, myPasword > password; // уникальный тип
Пытался сделать так:
C++
1
2
3
template< class ContainType, int n >class UniqueType;
UniqueType< std::string, 1 > password; // уникальный тип
UniqueType< std::string, 2 > login; // уникальный тип
только вместо чисел подставить некий шаблон счетчик,
однако реализовать его не смог Мозг ушел в глубокую рекурсию
Бегло просмотрев кое-что по лиспу, стал подозревать что это не возможно.
Остались вопросы:
1. Как реализовать шаблон UniqueType?
2. Можно ли здесь обойтись без макросов?
3. Возможно ли в принципе реализовать шаблон счетчик или иной генератор?
4. Кто-нибудь где-нибудь встречался с подобной идеомой?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru