Nov. 22nd, 2010

sab123: (Default)
А вот такой вопрос, кто-нибудь тут Перл и Си скрещивал? Интересует вопрос о том, чтобы сделать на Си реализацию перловых объектов. Чего-то я маны читал, так и не нашел. Как минимум, чтоб конструктор мог вернуть некий токен (который содержит указатель), который нельзя было бы случайно испортить, и который потом можно было бы передавать другим методам. Пока что из манов вырисовывается перловая обертка над обычными сишными функциями, типа:

package  COjbect;
use cobject;

sub new # (class, args...)
{
	my $class = shift;
	my $self = \&cobject_new(@_);
	bless($self, $class);
	return $self;
};

sub DESTROY  # (self)
{
	my $self = shift;
	&cobject_destroy($$self);
};

sub method # (self, args...)
{
	my $self = shift;
	&cobject_method($$self, @_);
}


Для пущей надежности можно еще ссылку упрятать в closure, которое и возвращать в качестве self, но при дальнейшем размышлении оно выглядит как-то избыточным.

Но может как-то более напрямую можно сделать?

July 2025

S M T W T F S
  1 2345
678 9101112
131415 1617 1819
202122 23 242526
2728293031  

Most Popular Tags

Page Summary

Style Credit

Expand Cut Tags

No cut tags
Page generated Jul. 26th, 2025 12:28 am
Powered by Dreamwidth Studios