Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.c > #149495
| From | Manfred <noname@add.invalid> |
|---|---|
| Newsgroups | comp.lang.c |
| Subject | Re: is there a way to ask a variable what it is? |
| Date | 2020-01-29 17:47 +0100 |
| Organization | Aioe.org NNTP Server |
| Message-ID | <r0scuu$1v1t$1@gioia.aioe.org> (permalink) |
| References | <r0qtkb$3qj$1@dont-email.me> <ar223fdb4s1n4tgks99ni798ftjuot4i12@4ax.com> <r0r38m$r04$2@dont-email.me> <r0rteo$1ep6$1@gioia.aioe.org> <r0rvgj$9bq$1@dont-email.me> |
On 1/29/2020 1:57 PM, David Brown wrote: > On 29/01/2020 13:22, Manfred wrote: >> On 1/29/2020 5:55 AM, T wrote: >>> On 2020-01-28 20:36, Robert Wessel wrote: >>>> On Tue, 28 Jan 2020 19:19:38 -0800, T <T@invalid.invalid> wrote: >>>> >>>>> Hi All, >>>>> >>>>> Trivia question: >>>>> >>>>> In C, after you declare a variable, is there a way >>>>> to turn around and ask it what that variable is? >>>>> >>>>> Some thing like Raku's >>>>> >>>>> > my uint $u; say $u.^name >>>>> Int >>>>> >>>>> only correct? >>>> >>>> >>>> As Ben mentioned, there's no such feature in C. Reflection was >>>> considered for C++20, but was deferred until the next major revision. >>>> >>> >>> Dang! >> >> It may be worth noting (as Bart mentioned) that C has a static type >> system, so the type of each variable is always known. For this reason C >> does not need reflection. >> The type system of C++ is statically checked as well, however, being >> considerably richer than C, it features RTTI, and may have some use for >> reflection. No urge for it though, as it can be deduced from Robert's >> comment. > > Actually, there are many good uses for reflection even in a statically > typed language. In particular, it allows more generic coding. A clear > example would be a JSON encoder/decoder - with reflection, you could > write templated functions that take a struct and do the encoding or > decoding, without needing the details of the type. At first thought it looks like encoding is a possibility, but decoding would substantially require the struct to be assembled at runtime, i.e. dynamic type support, I believe. Another common > example would be matching database tables to type structures. Also requiring dynamic support as above. Now, a runtime supporting dynamic type checking and reflection can be implemented in a statically typed language (in fact I believe that Java, C#, Perl and friends do implement it in C - or C++) so it may as well end up in the standard library at some point in some form. When I wrote "some use" I was also thinking of e.g. template code that may enumerate members of a template argument (your JSON encoder). However a static type system cannot anticipate type information that is not available until run time (e.g. in a JSON stream), hence my tepid attitude. > > The two main reasons reflection haven't made it into C++ yet are not > about lack of interest, lack of use-cases, or lack of urgency in getting > it into the language. The first reason is that it is hard to design the > feature - there are just so many complications and corner cases. The > second is that the next big step is to combine it with code generation, > and even if that takes another few years to appear, it is important that > reflection is made in a way that will work with the code generation later. My thought is that it is going to require substantial runtime support anyway, and the similarity with GC comes to mind. > > But this is mainly a C++ idea - C does not have the same kind of generic > coding support. >
Back to comp.lang.c | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
is there a way to ask a variable what it is? T <T@invalid.invalid> - 2020-01-28 19:19 -0800
Re: is there a way to ask a variable what it is? Ben Bacarisse <ben.usenet@bsb.me.uk> - 2020-01-29 03:47 +0000
Re: is there a way to ask a variable what it is? T <T@invalid.invalid> - 2020-01-28 20:20 -0800
Re: is there a way to ask a variable what it is? Ben Bacarisse <ben.usenet@bsb.me.uk> - 2020-01-29 19:18 +0000
Re: is there a way to ask a variable what it is? Bart <bc@freeuk.com> - 2020-01-29 20:58 +0000
Re: is there a way to ask a variable what it is? nobody@example.org (Scott) - 2020-01-30 15:59 +0000
Re: is there a way to ask a variable what it is? scott@slp53.sl.home (Scott Lurndal) - 2020-01-30 16:35 +0000
Re: is there a way to ask a variable what it is? Siri Cruise <chine.bleu@yahoo.com> - 2020-01-28 21:55 -0800
Re: is there a way to ask a variable what it is? Ben Bacarisse <ben.usenet@bsb.me.uk> - 2020-01-30 00:24 +0000
solved: Re: is there a way to ask a variable what it is? T <T@invalid.invalid> - 2020-01-29 21:51 -0800
Re: solved: Re: is there a way to ask a variable what it is? fir <profesor.fir@gmail.com> - 2020-01-30 03:16 -0800
Re: is there a way to ask a variable what it is? Ian Collins <ian-news@hotmail.com> - 2020-01-29 17:28 +1300
Re: is there a way to ask a variable what it is? T <T@invalid.invalid> - 2020-01-28 20:55 -0800
Re: is there a way to ask a variable what it is? Jorgen Grahn <grahn+nntp@snipabacken.se> - 2020-01-29 06:49 +0000
Re: is there a way to ask a variable what it is? Bonita Montero <Bonita.Montero@gmail.com> - 2020-01-29 08:08 +0100
Re: is there a way to ask a variable what it is? Ben Bacarisse <ben.usenet@bsb.me.uk> - 2020-01-30 00:14 +0000
solved: Re: is there a way to ask a variable what it is? T <T@invalid.invalid> - 2020-01-29 21:51 -0800
Re: is there a way to ask a variable what it is? Robert Wessel <robertwessel2@yahoo.com> - 2020-01-28 22:36 -0600
Re: is there a way to ask a variable what it is? T <T@invalid.invalid> - 2020-01-28 20:55 -0800
Re: is there a way to ask a variable what it is? Manfred <noname@add.invalid> - 2020-01-29 13:22 +0100
Re: is there a way to ask a variable what it is? David Brown <david.brown@hesbynett.no> - 2020-01-29 13:57 +0100
Re: is there a way to ask a variable what it is? Manfred <noname@add.invalid> - 2020-01-29 17:47 +0100
Re: is there a way to ask a variable what it is? David Brown <david.brown@hesbynett.no> - 2020-01-30 12:06 +0100
Re: is there a way to ask a variable what it is? scott@slp53.sl.home (Scott Lurndal) - 2020-01-29 15:10 +0000
Re: is there a way to ask a variable what it is? Manfred <noname@add.invalid> - 2020-01-29 17:07 +0100
Re: is there a way to ask a variable what it is? Siri Cruise <chine.bleu@yahoo.com> - 2020-01-28 21:52 -0800
Re: is there a way to ask a variable what it is? Bart <bc@freeuk.com> - 2020-01-29 11:11 +0000
Re: is there a way to ask a variable what it is? Bonita Montero <Bonita.Montero@gmail.com> - 2020-01-29 13:30 +0100
Re: is there a way to ask a variable what it is? Bart <bc@freeuk.com> - 2020-01-29 12:44 +0000
Re: is there a way to ask a variable what it is? Bonita Montero <Bonita.Montero@gmail.com> - 2020-01-29 14:03 +0100
Re: is there a way to ask a variable what it is? gazelle@shell.xmission.com (Kenny McCormack) - 2020-01-29 14:03 +0000
Re: is there a way to ask a variable what it is? Bart <bc@freeuk.com> - 2020-01-29 14:30 +0000
Re: is there a way to ask a variable what it is? Bonita Montero <Bonita.Montero@gmail.com> - 2020-01-29 15:45 +0100
Re: is there a way to ask a variable what it is? Bonita Montero <Bonita.Montero@gmail.com> - 2020-01-29 16:28 +0100
Re: is there a way to ask a variable what it is? T <T@invalid.invalid> - 2020-01-29 08:35 -0800
Re: is there a way to ask a variable what it is? Bart <bc@freeuk.com> - 2020-01-29 17:34 +0000
Re: is there a way to ask a variable what it is? Bonita Montero <Bonita.Montero@gmail.com> - 2020-01-29 18:48 +0100
Re: is there a way to ask a variable what it is? Thiago Adams <thiago.adams@gmail.com> - 2020-01-29 04:43 -0800
Re: is there a way to ask a variable what it is? David Brown <david.brown@hesbynett.no> - 2020-01-29 14:46 +0100
Re: is there a way to ask a variable what it is? Jorgen Grahn <grahn+nntp@snipabacken.se> - 2020-01-29 15:15 +0000
Re: is there a way to ask a variable what it is? fir <profesor.fir@gmail.com> - 2020-01-29 08:11 -0800
Re: is there a way to ask a variable what it is? T <T@invalid.invalid> - 2020-01-29 08:38 -0800
Re: is there a way to ask a variable what it is? Bart <bc@freeuk.com> - 2020-01-29 11:23 +0000
Re: is there a way to ask a variable what it is? John Bode <jfbode1029@gmail.com> - 2020-01-29 11:55 -0800
csiph-web