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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Наиболее частое число в массиве http://www.cyberforum.ru/cpp/thread41996.html
Задан Массив m из Чисел. Найти число,наиболее часто встречающееся в этом массиве. // #include "stdafx.h" #include <iostream> #include <conio.h> #include <math.h> #include <stdio.h>
C++ Подключение библиотек c:\documents and settings\admin\рабочий стол\compressed_matrix\compressed_matrix\main.cpp(4) : fatal error C1083: Не удается открыть файл include: stdafx: No such file or directory С чем может быть связано? (#include <stdafx.h>) http://www.cyberforum.ru/cpp/thread41865.html
Лабиринт C++
Народ помогите! есть задание: Лабиринт представляет собой квадрат, состоящий из NxN сегментов. Каждый из сегментов может быть либо пустым, либо заполненным камнем. Гарантируется, что левый верхний и правый нижний сегменты пусты. Лабиринт обнесен сверху, снизу, слева и справа стенами, оставляющими свободными только левый верхний и правый нижний углы. Требуется покрасить стены лабиринта, ВИДИМЫЕ...
Логарифмическая спираль C++
Задание на картинке, есть аналогичный код, который строит УЛИТКУ ПАСКАЛЯ. подскажите как переделать его. #include <stdio.h> #include <stdlib.h> #include <conio.h> #include <math.h> #include <graphics.h> #include <dos.h> int main(){ int y0,x0,ymax,xmax;
C++ Литература по Win API http://www.cyberforum.ru/cpp/thread41543.html
Посоветуйте пожалуйсто книгу где изложены основы программирования с win API доступным языком с использованием C++
C++ Реализация суммы автоматом фон неймана Ребят, эту не сложную прогу мне дали на практику к курсовой, если у кого завалялась, киньте под visual, или codeblocks, буду весьма признателен!! заранее спасибо __ подробнее

Показать сообщение отдельно
rs4i
1 / 1 / 0
Регистрация: 25.06.2009
Сообщений: 13
25.06.2009, 22:12     Реализация идеомы UniqueType
Идея проста и стоит во главе идеологии 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. Кто-нибудь где-нибудь встречался с подобной идеомой?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 10:08. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru