Top Page > C++ �����W > ���󂳂ꂵ��


���󂳂ꂵ��


Boost�Ŋ��o���������߂ɕ��󂳂ꂽ���C�u�����B�BBoost�Ɉˑ����������Ȃ����ɖ��ɗ��c�����i�΁j�B�Ƃ������Ă���A�{���ɉۑ�̎��ɖ𗧂�����B

�����֐��I�u�W�F�N�g�@unified_functor

�֐��I�u�W�F�N�g��template�Ŏ󂯎�肽���Ȃ����ɁB���������^���߂�l�^�����Š֐��I�u�W�F�N�g���֐��|�C���^��1�‚̌^�ɑ���ł��܂��Bboost::function������Ƃقړ����B
�T���v���F
int Minus(int i, int j){return i-j;}

binary_unified_functor<int, int, int> func= Minus;
int r1= func(12, 7); //i.e. r1= 12-7;
func= plus<int>();
int r2= func(12, 7); //i.e. r2= 12+7;
gcc3/BCC�F�\�[�X�@�@VC7.0�ȉ��F��Ή�

�N���[�W���@closure

����̃I�u�W�F�N�g�̓���̃����o�֐��̌Ăяo�����A�֐��I�u�W�F�N�g�ɕϊ����܂��B�����֐��I�u�W�F�N�g�Ƒg�ݍ��킹��ƁABCB�̃N���[�W���������ł��܂��Bboost::bind�œ������������ł��܂��B
�T���v���F
struct A{
�@int f(int i){ ... }
};


A a;
unary_unified_functor<int, int> func= closure(&a, &A::f);
int j= func(3); //i.e. j= a.f(3);
gcc/BCC/VC7�F�\�[�X�@�@VC6�ȉ��F��Ή�

�`�F�b�N�t�����I�^�ϊ��@checked_cast & assert_cast

checked_cast:
�u����dynamic_cast�͐�������K�v������v�Ƃ������ɁB�|�C���^��dynamic_cast�����A�L���X�g�Ɏ��s�����std::bad_cast��O�𔭐�����Bboost::polymorphic_cast*3���R���ł��ˁB
assert_cast:
�u���̃L���X�g�����s����͂����Ȃ��v�Ƃ������ɁB�f�o�b�O����checked_cast�A�����[�X����static_cast�Ƃ��ē����B�f�o�b�O����_DEBUG��define���Ă����K�v������Bboost::polymorphic_downcast*3���R���ł��B
�T���v���F
Base* pb= ...
Derived* pd= checked_cast<Derived*>(pb);
BCC/VC�F�\�[�X�@�@gcc�F���m�F

*1�@�uBCC�v��BCB4 Lea�ABCB6 Pro�Ŋm�F�B�uVC�v��VC6 Std�AVC7 Std�Ŋm�F�B�ugcc�v��gcc 2.95�icygwin�j�Ŋm�F�B
*2�@�T���v���ł�using�A#include���Ȃ��Ă��܂��B
*3�@���O������Boost�ɏ������Ǝv���������̍��i�΁j�B������ɂ��������B
*4�@���ӌ���gimite@mx12.freecom.ne.jp�܂ŁB


�X�V����

2004/2/13 ���unified_functor���R�s�[�����NULL�A�N�Z�X���N����o�O���C���B
�N���[�W����������Ɖ��ǁB
2002/6/30 gcc�œ���m�F�B�u�����֐��I�u�W�F�N�g�vgcc�ł�UP�B
2002/6/28 �u�����֐��I�u�W�F�N�g�v��basic_*ary_call�ɉ��z�f�X�g���N�^��lj��B
2002/6/27 �u�`�F�b�N�t�����I�^�ϊ��v�lj��B���O��Ԃ�gstd����gimite�ɕύX�B
2002/4/18 �u�����֐��I�u�W�F�N�g�v�u�N���[�W���v���J�B


���󂳂ꂵ�� < C++ �����W < TopPage