- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
template <typename IdType, class Tag>
class id {
public:
typedef IdType value_type;
explicit id(value_type val)
: value(val)
{}
bool operator==(id rhs)
{
return rhs.value == value;
}
bool operator!=(id rhs)
{
return rhs.value != value;
}
value_type value;
};
#define HASKELL_NEWTYPE(type_name, value_type) struct __##type_name##_tag__ {}; \
typedef ::id<value_type, __##type_name##_tag__> type_name
Когда newtype нет, но очень хочется.
http://ideone.com/VRu56j
Простите за синтетику
defecate-plusplus 14.02.2013 15:31 # +3
roman-kashitsyn 14.02.2013 15:33 # 0
defecate-plusplus 14.02.2013 15:40 # 0
ну и в реализации явно есть проблемы
http://ideone.com/BEBK7Z
absolut 14.02.2013 15:47 # 0
>никогда такого нужно не было
не сошлись во мнениях.
Почему данные public? И проверку неравенства может надо через проверку равенства, не?
3.14159265 14.02.2013 15:40 # 0
Не пойму - какой от этого профит?
roman-kashitsyn 14.02.2013 15:48 # +3
Конкретно в текущем проекте нам это могло бы пригодится, ибо много числовых идентификаторов, которые иногда путаются друг с другом.
@Yuuri по этому поводу вздыхал по хаскелевским newtype, за пять минут было придумано решение. Но, думаю, профит от этого не превышает возникающих проблем, внедрять не будем, разумеется.
myaut 14.02.2013 15:50 # +2
defecate-plusplus 14.02.2013 15:56 # 0
Yuuri 14.02.2013 16:04 # 0
bormand 04.08.2014 10:40 # 0
bormand 04.08.2014 10:44 # 0
bormand 04.08.2014 10:53 # 0
roman-kashitsyn 04.08.2014 11:01 # 0
Нам было нужно что-то вроде
bormand 04.08.2014 11:17 # 0
А так - согласен, генератор лучше отдельный сделать.
bormand 04.08.2014 11:21 # 0
roman-kashitsyn 04.08.2014 11:38 # 0
roman-kashitsyn 14.02.2013 16:05 # +4
roman-kashitsyn 14.02.2013 16:15 # 0
К сожалению, макрос, как правильно указал @defecate-plusplus, страдает от непреодолимых (?) преблем для типов в неймспесах или шаблонных типов.
defecate-plusplus 14.02.2013 16:33 # 0
трудный день
roman-kashitsyn 03.08.2014 23:04 # +3
3.14159265 04.08.2014 00:54 # 0
Перечитал тред: то ли сон клонит, то ли от плотность крестоблядства на один пост, но аж голова кругом идёт.