[HN Gopher] Building a runtime reflection system for Rust (Part 3)
___________________________________________________________________
Building a runtime reflection system for Rust (Part 3)
Author : lukastyrychtr
Score : 18 points
Date : 2021-01-09 21:03 UTC (1 hours ago)
(HTM) web link (www.osohq.com)
(TXT) w3m dump (www.osohq.com)
| RcouF1uZ4gsC wrote:
| tuple_impls! {} tuple_impls! { A } tuple_impls! {
| A B } tuple_impls! { A B C } // .. more macro
| invocations follow // we support method arities up to 16
| tuple_impls! { A B C D E F G H I J K L M N O P }
|
| Rust really needs the equivalent of C++ variadic templates. Is
| there any work ongoing on it?
| Rangi42 wrote:
| From the article:
|
| > There's an open issue for something like this: Variadic
| generics[1]. But so far every attempt at an RFC has been closed
| or postponed.
|
| [1]: https://github.com/rust-lang/rfcs/issues/376
| RcouF1uZ4gsC wrote:
| Thanks, I somehow missed that part when reading.
|
| I would guess that two big issues for that are lack of
| function overloading and that macros are pretty good.
|
| A lot of the patterns of working with variadics in c++ take
| advantage of function overloading. Without function
| overloading, those patterns can become harder.
|
| Secondly, Rust macro system is crazily powerful especially
| procedural macros. That power disincentivizes developing
| other approaches to meta programming. In C++ macros are
| clunky and dangerous, and that has incentivized developing
| more type based meta programming techniques to get away from
| C macros.
___________________________________________________________________
(page generated 2021-01-09 23:00 UTC)