This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: RFC: attaching functions to types
- From: Andrew Pinski <pinskia at gmail dot com>
- To: Shawn Landden <shawnlandden at gmail dot com>
- Cc: GCC Mailing List <gcc at gcc dot gnu dot org>
- Date: Fri, 20 Mar 2015 18:36:55 -0700
- Subject: Re: RFC: attaching functions to types
- Authentication-results: sourceware.org; auth=none
- References: <CAJusiZX-_OMfy+cD6LSQOUOK7R4u-_8LQEaFVia2DAb9NOw9mA at mail dot gmail dot com>
On Fri, Mar 20, 2015 at 6:05 PM, Shawn Landden <shawnlandden@gmail.com> wrote:
> direct-declarator:
> ( type-qualifier[opt] type-specifier *[opt] identifier[opt] ) .
> function-definition
>
>
> call like so:
>
>
> type.foo(baz);
> typep->foo(baz);
Wait you are re-inventing C with classes and C++.
Thanks,
Andrew
>
> type automatically becomes first parameter, (when used as a function
> pointer) and as a pointer to if that was included in definition. if
> type is a typedef of void and not a pointer then parameters are passed
> the same.
>
>
> This would be implemented with function name mangling:
>
>
> __tf_type_identifier(...)
>
>
> example:
>
>
> struct foo {
> int a
> }
>
> int (struct foo *b).add(int f) {
> return b->a + f;
> }
>
> int main(void) {
>
> struct foo bar;
>
>
> baz.a = 4;
>
> return baz.add(6);
>
> }
>
>
> I have been hacking at the source, but it is far from functional.
> --
> Liberty equality fraternity or death,
>
> Shawn Landden
> ChurchOfGit.com