- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
template<class... Bases>
struct MaminVisitor: public boost::static_visitor<>, public Bases... {
MaminVisitor(Bases&&... bases) : Bases(std::move(bases))... { }
};
template<class Variant, class... F>
void match(Variant &&v, F &&... functors) {
typedef MaminVisitor<typename std::decay<F>::type...> visitor_t;
boost::apply_visitor(visitor_t(std::move(functors)...), std::forward<Variant>(v));
}
int main() {
boost::variant<int, double, std::string> v = "ololo";
match(v,
[&](auto x) {
std::cout << "auto branch " << x << std::endl;
},
[&](double x) {
std::cout << "double branch " << x << std::endl;
}
);
return 0;
}
Сделал няшный матч, а на гцц не конпелируется.
http://ideone.com/J9ulsr
Dummy00001 05.07.2016 20:42 # +4
Xom94ok 05.07.2016 20:56 # +7
вроде, на гк проскакивала ссылка, повторю
kurwa-nextgen 05.07.2016 21:00 # +2
bormand 05.07.2016 21:07 # 0
Да банальный оператор сдвига в поток, которому передали что-то левое, по-моему килобайт 20-30 высирает...
Dummy00001 05.07.2016 21:13 # 0
Dummy00001 05.07.2016 21:09 # 0
порадоволо.
Antervis 05.07.2016 21:10 # +2
bormand 05.07.2016 21:12 # +1
Antervis 05.07.2016 21:36 # 0
CHayT 05.07.2016 21:24 # +3
bormand 05.07.2016 21:26 # 0
CHayT 05.07.2016 21:34 # +3
http://ideone.com/fzOpIv
gost 06.07.2016 07:22 # 0
Поясните анскиллябрам заедушным - отчего такой странный результат?
CHayT 06.07.2016 10:32 # +1
С помощью TemplateHaskell можно произвольный код в compile time выполнять.
Dummy00001 05.07.2016 23:27 # 0
CHayT 05.07.2016 20:46 # +3
Dummy00001 05.07.2016 21:15 # +1
очепятка очевидно, но не пойму что хотели написать. maiming the visitor? или просто motherfucker?
guesto 05.07.2016 21:24 # +3
вдруг из маминой из спальни
Dummy00001 05.07.2016 22:53 # 0
guesto 05.07.2016 23:17 # +1
сейчас Сёма придет
Dummy00001 05.07.2016 23:23 # 0
Неумытому, дадут -
Прямо в Мойку,
Прямо в Мойку
kurwa-nextgen 06.07.2016 14:34 # 0
Век живи - век учи с++.
Работающий матч http://ideone.com/yEd2vD
Dummy00001 06.07.2016 19:11 # 0