This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: RFC: attaching functions to types


On Mon, Mar 23, 2015 at 11:32 AM, Shawn Landden <shawnlandden@gmail.com> wrote:
> On Fri, Mar 20, 2015 at 6:36 PM, Andrew Pinski <pinskia@gmail.com> wrote:
>> 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++.
> This is still C, unlike C++. I was influenced by Go.


Have you read about C with classes and the history around C++?  C with
classes was still a super-set of C in the first couple of years, only
later becoming C++ when it started to become a language in its own
rights.  Again what is the difference between your ideas and C with
classes?

Thanks,
Andrew

>>
>> 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
>
>
>
> --
> Liberty equality fraternity or death,
>
> Shawn Landden
> ChurchOfGit.com


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]