`

c++ 函数指针模板

    博客分类:
  • C++
c++ 
阅读更多
直接按如下定义是不行的,会报错!!!
typedef  template<class T> bool (*templateFunc)(const T& t1,const T& t2); //编译不通过!!!


但是不意味着不可以以模板函数作为函数的参数!!!回顾函数指针时http://cherishlc.iteye.com/blog/1274062
发现了返回函数指针的函数可以如下声明:
int (*fff(int a))(int ,int){//从函数名开始向外读  
    return sub;  
}  


经过测试,以下函数中的可以传递函数指针的模板了~~~~~

#include <iostream>

using namespace std;

template<class T> inline bool isEqual(const T& t1,const T& t2){
	return t1==t2;
}

//typedef  template<class T> bool (*templateFunc)(const T& t1,const T& t2); //编译不通过!!!

//第三个参数为以T为参数的函数,不可按上述方法定义!!!但直接写就没问题
template<class T> bool isEqual2(T t1,T t2,bool (*isCompatible)(const T&,const T&)=isEqual<T>){
	return isCompatible(t1,t2);
}

void main(){
	bool (*isIntEqual)(int,int);
	//isIntEqual=isEqual2<int>; //不行,真悲催
	bool not=isEqual2<int>(1,2);
	bool yes=isEqual2<double>(1.0,1.0);
	cout<<"1==2? "<<not<<"\n1.0==1.0? "<<yes<<endl;
}




另外转载两个其他的方法:
1、
http://topic.csdn.net/u/20120418/00/64c2d59b-151b-450e-a7aa-39ff6bf941a5.html?seed=380167928&r=78289909
template <typename PktType>
struct Wrapper
{
typedef int (* CallbackFunPtrType) (const PktType& CurPkt);
};
这样不就行了
用的时候就
Wrapper<int>::CallbackFunPtrType callback=....


2、C++中用模板函数指针实现委托http://tangfeng.iteye.com/blog/602680
分享到:
评论

相关推荐

    c++ 函数指针和回调的使用

    在C++编程中,函数指针是一个非常重要的概念,它允许我们存储函数的地址并可以在之后的代码中调用。这种技术在很多场景下都非常有用,例如回调函数、事件处理或者设计模式中的策略模式等。下面我们将深入探讨普通...

    函数指针万能打印_C++_VS_

    在C++编程中,函数指针是一个非常强大的工具,它允许我们将函数作为其他函数的参数或者存储在变量中。在本示例中,“函数指针万能打印”着重讲解如何利用函数指针实现一个通用的打印系统,可以适应各种数据类型的...

    C++ 一般(普通)函数指针、类成员函数指针,用法区别,以及强制转换

    在实际编程中,理解函数指针的这些概念至关重要,因为它们是许多高级C++技术的基础,如回调、事件处理和模板元编程。`函数指针.cpp`、`StdAfx.cpp`、`函数指针.dsp`、`函数指针.dsw`和`StdAfx.h`等文件可能包含示例...

    c++ 成员函数指针

    C++中的成员函数指针是一种特殊的指针类型,它可以指向类的成员函数。在C++中,函数本身不是对象,因此不能直接赋值给普通指针。但是,成员函数指针允许我们存储对特定对象成员函数的引用,以便稍后调用。这种机制在...

    函数指针与指针函数应用程序

    文档可能还会涵盖一些高级主题,如回调函数、函数指针数组、以及与C++模板和STL容器的结合使用。 总之,理解和掌握函数指针和指针函数对于提升C/C++编程技能至关重要,它们能让你编写出更高效、更灵活的代码,应对...

    成员函数指针与高性能的C++委托

    ### 成员函数指针与高性能的C++委托 在C++中实现类似C#或Java等面向对象语言中的委托功能是一项挑战但也极具价值的技术实践。本文将深入探讨如何利用成员函数指针来创建高效的C++委托,并分析其背后的原理和技术...

    C、C++函数辞典.chm

    《C、C++函数辞典》是一份宝贵的编程资源,主要涵盖了C和C++两种编程语言中的函数使用和解释。这份CHM( Compiled HTML Help)文件是程序员在学习和工作中查询函数用法的重要参考工具。下面,我们将深入探讨C和C++...

    c++函数指针和回调函数示例

    - 宏和模板元编程:函数指针可以与宏和模板元编程结合,生成更复杂的代码结构。 总结,C++中的函数指针和回调函数是强大的工具,它们提供了对程序流程的动态控制和高度的灵活性。理解和熟练掌握这些概念对于编写...

    深入理解C语言指针的奥秘 C和C++中函数指针的含义(上).pdf

    在C++中,函数指针同样可以使用,但多被重载函数、虚函数和模板函数等机制所覆盖。 函数指针的一个典型应用就是实现事件驱动编程,比如在图形用户界面(GUI)编程中。在这种情况下,将函数指针赋值给控件的事件处理...

    函数指针的使用实例

    函数指针的使用,主要用到typedef,其实现功能跟模板类差不多

    c调用C++函数

    2. **纯C接口**:C++函数需要提供一个不依赖于C++特性的接口,这意味着不能使用C++特有的类型(如类、模板)和特性。可以定义一个C风格的函数原型,然后在C++代码中实现它。 3. **链接器支持**:确保C和C++编译器...

    详解了C++中的模板,位运算,虚函数表 方面的东西

    当一个类声明了虚函数,编译器就会为这个类生成一张虚函数表,其中包含了该类及其继承类的所有虚函数指针。对象实例在内存中会包含一个指向虚函数表的指针,使得通过基类指针调用虚函数时,能够动态绑定到正确的派生...

    C++中回调函数及函数指针的实例详解

    同时,需要注意的是,由于C++支持模板和STL,现代C++倾向于使用函数对象(functors)和lambda表达式来代替原始的函数指针,因为它们提供了更强的类型安全性和更简洁的语法。不过,理解函数指针和回调函数的基础对于...

    C++day16-函数指针-模版

    在C++编程语言中,函数指针和模板是两个非常重要的概念,它们分别提供了不同的功能增强和代码复用机制。让我们深入探讨这两个主题,并通过源码分析来理解它们的应用。 首先,函数指针允许我们将函数作为其他函数的...

    c++函数文档!!!!!

    本篇将深入探讨C++函数的各个方面,包括定义、调用、参数传递、返回值、重载以及函数模板等关键知识点。 一、函数定义与声明 1. 函数定义:定义函数包括指定函数名、返回类型(如果有的话)以及参数列表。例如,一...

    几个关于c++函数实例

    在这个"几个关于C++函数实例"的压缩包中,我们可能会看到一些典型的C++函数用法,帮助初学者深入理解和掌握函数在实际编程中的应用。 首先,C++中的函数可以分为两类:内置(或库)函数和自定义函数。内置函数是由...

    C++函数编程20道习题汇总含其详细程序解答_C++_

    这里,我们聚焦于"20道C++函数编程习题及其详细程序解答",这些习题旨在帮助学习者深入理解C++中的函数使用、参数传递、返回值以及函数模板等核心概念。 1. **函数定义与调用**:基础的函数定义包含函数名、返回...

    c++学习笔记(c++ 线程 指针 调试 编码)

    在这些文档中,你可能会找到关于C++内存管理、对象生命周期、模板、STL容器(如vector、list、map)的使用、智能指针(`std::unique_ptr`、`std::shared_ptr`)、多态、继承、封装等更多主题的深入讨论。每个主题都...

    C C++标准函数库和模板库

    本主题聚焦于"C C++标准函数库和模板库",这对于初学者来说是至关重要的知识领域。标准函数库(也称为C库)和模板库(主要是C++ STL)提供了大量的预定义函数和数据结构,极大地简化了编程工作,提高了代码的可读性...

    C++智能指针 功能强大,高效

    它使用一个模板类SmartP来实现智能指针的功能。这个类具有构造函数、拷贝构造函数、赋值运算符和析构函数等成员函数。这些成员函数的作用是: * 构造函数:用于初始化智能指针对象,并将引用计数器的值设置为1。 * ...

Global site tag (gtag.js) - Google Analytics