C++ boost::bind 函数参数对数组、指针的支持不够好?欢迎指教
来源:互联网 发布:部落冲突气球升级数据 编辑:程序博客网 时间:2024/05/10 07:22
我们先看看下面一段代码:直接使用数组,即StreamConfigTable数组作为bind函数参数,PersistentStreamSettingsToDevice函数的第一个参数为数组形式StreamSetting_t StreamConfigTable[]。大家知道,数组名作为函数参数时候,实际退化为一个指针。
ReturnStatus CServiceEngine::SaveStreamConfigurations(StreamSetting_t StreamConfigTable[], int resourceStreamId , int VideoSourceIndex, PelcoStreamSetting_type_e SettingType){TRACE("%s, %d, Start a thread to save stream configurations:%d", __FUNCTION__, __LINE__,resourceStreamId);boost::thread boost_thread( boost::bind(&CServiceEngine::PersistentStreamSettingsToDevice, this, StreamConfigTable, resourceStreamId ,VideoSourceIndex ) );boost_thread.detach(); return SYS_OK;}
测试结果,当在PersistentStreamSettingsToDevice函数中直接以StreamConfigtable[i],即数组下表引用时,编译可以通过,但运行时出现段错误。
于是猜测:boost::bind函数的参数对对象数组这种指针参数的支持不够好。
为了验证,将PersistentStreamSettingsToDevice函数的第一个参数又数组形式改为容器形式:vector<PelcoStreamSetting_t> StreamConfigTable。
同时上述代码调整为:
ReturnStatus CServiceEngine::SaveStreamConfigurations(StreamSetting_t StreamConfigTable[], int resourceStreamId , int VideoSourceIndex, PelcoStreamSetting_type_e SettingType){int i =0;vector<PelcoStreamSetting_t> ConfigTable;for ( i= SETTING_ENCODING; i<SETTING_END; i++ ) {ConfigTable.push_back(StreamConfigTable[i]);}TRACE("%s, %d, Start a thread to save stream configurations:%d", __FUNCTION__, __LINE__,resourceStreamId);boost::thread boost_thread( boost::bind(&CServiceEngine::PersistentStreamSettingsToDevice, this,ConfigTable, resourceStreamId ,VideoSourceIndex ) );boost_thread.detach(); return SYS_OK;}
测试结果:程序编译通过,运行也正常。
难道boost::bind函数对数组的支持真的不够好?
欢迎知情者指教!
- C++ boost::bind 函数参数对数组、指针的支持不够好?欢迎指教
- C库中对函数的可变参数的支持
- Boost Bind 类成员函数指针
- 对C/C++函数中指针与数组的研究.
- C 指针和数组及函数参数
- 带指针参数的函数指针数组
- 指针数组&数组指针的分配内存及函数参数 C语言版
- GNU C中对void指针和函数指针的算术操作支持
- 对指针数组,数组指针,函数指针数组,函数数组指针的一些简单理解
- 对指针数组 数组指针 函数指针 函数指针数组 指向函数指针数组的指针的理解
- 对指针数组 数组指针 函数指针 函数指针数组 指向函数指针数组的指针的理解
- 对指针数组,数组指针,函数指针, 函数指针数组,指向函数指针数组的指针的理解
- 指针, 指针的指针, 数组, 指针数组, 数组指针, 指针函数, 函数指针 C/C++中函数指针的含义
- C语言中的指针(指针数组 数组指针 函数指针 函数指针数组 指向函数指针数组的指针)
- 指针数组 和 数组指针分析 main函数的参数
- Boost关于bind的使用以及函数对象和传递参数的问题
- Thinking in C++: 数组指针及数组作为函数的参数
- 函数指针&绑定: boost::functoin/std::function/bind
- C#与c++参数传递(-)
- Windows API一日一练(59)CreateFileMapping和MapViewOfFile函数
- 2013 ACM/ICPC 长沙网络赛-Goldbach
- 静态变量和普通变量
- 将Ubuntu等linux系统安装到移动硬盘
- C++ boost::bind 函数参数对数组、指针的支持不够好?欢迎指教
- Linux常用网络命令整理
- UVA 10269 Adventure of Super Mario floyd dp
- WPF动态添加按钮并相应事件。
- VtigerCRM 点击拨号和来电弹屏 PBX Manager Module
- [各种面试题] N皇后问题非递归版
- nyoj79-拦截导弹
- 计算几何札记-高斯消元
- 同余定理