使用boost::callable_traits库的qualified_class_of_t函数进行测试
在C++11标准中,我们得到了一个叫做std::function的功能强大的函数对象。然而,关于这个函数对象的类型,我们却知之甚少。所以,许多C++爱好者们就开始寻找办法去获得这个函数对象的类型及其相关信息。
幸运的是,有这么一位C++爱好者写了一个叫做callable_traits的库来帮我们解决这个问题。这个库中有一些可提供给我们使用的类型,如函数类型、类成员函数类型等等,还有一些可提供给我们使用的函数,如is_member_function_pointer、is_functor等等。
其中一个非常有用的函数是qualifed_class_of_t。这个函数可以获取某个函数对象的类类型,并且保留它的cv限定符(const或volatile)。
下面是一个使用boost::callable_traits库的qualified_class_of_t函数进行测试的程序:
#include <iostream>
#include <type_traits>