在C+;中包装C函数和函数指针的最佳方法是什么+;? 我正在用OpenGL做一个项目,我想用C++ STL和Boost来封装所有C函数、函数指针,并具有更高的抽象级别。我选中了boost::function,但它的设计目的是使用functor而不是函数指针。我想知道是否有一个C++习语帮助包装C函数调用而不是全局调用。有什么想法吗

在C+;中包装C函数和函数指针的最佳方法是什么+;? 我正在用OpenGL做一个项目,我想用C++ STL和Boost来封装所有C函数、函数指针,并具有更高的抽象级别。我选中了boost::function,但它的设计目的是使用functor而不是函数指针。我想知道是否有一个C++习语帮助包装C函数调用而不是全局调用。有什么想法吗,c++,C++,谢谢, Chanboost::function可以很好地与函数指针配合使用。它可以在任何类型上使用具有正确签名的运算符(),包括函数指针。Boost函数也可以与函数指针一起工作。请参见如果您告诉我们您到底想做什么,会更好。你在问题中提到的方法听起来很难闻。@dark_charlie:我还不清楚我想要实现什么。这个想法是因为我意识到glut使用了所有的C函数指针。无论如何,谢谢!那么,也许一些编写良好的框架,如Irrlicht或Ogre3D,可以更好地为您工作。你考虑过他们吗?@dark_char

谢谢,

Chan

boost::function
可以很好地与函数指针配合使用。它可以在任何类型上使用具有正确签名的
运算符()
,包括函数指针。

Boost函数也可以与函数指针一起工作。请参见如果您告诉我们您到底想做什么,会更好。你在问题中提到的方法听起来很难闻。@dark_charlie:我还不清楚我想要实现什么。这个想法是因为我意识到glut使用了所有的C函数指针。无论如何,谢谢!那么,也许一些编写良好的框架,如Irrlicht或Ogre3D,可以更好地为您工作。你考虑过他们吗?@dark_charlie:我的动机只是为了教育目的。因此,我想想出一种处理C函数的方法,而不是使用现有的C++框架。我想操作程序()和函子的全部要点是允许函数和函子的互换性。@基思:它在编译时。代码>boost::function在运行时启用它。