传递 std::数组变量作为参数
passing std::array variable as argument
我需要帮助来解决我面临的问题。
我想要一个函数原型,它在两个实例中接受两种不同类型的参数。
例如如下所示: 我有一个如下所示的结构:
typedef struct BufferStruct
{
unsigned long BufferType;
unsigned long TheAddress;
} Buffer;
我有一个名为 Test 的函数,这个函数应该接受两种不同类型的参数
1) std::array<Buffer, 2> axBuffer;
2) Buffer axBuffer;
void Test(??)/* function argument ?*/
These are C functions and not C++.
Can someone please help me in getting the appropriate function prototype for the function named "Test"?
Advanced thanks.
C 没有函数重载。 使用单个函数解决此问题的最简单方法是采用指向Buffer
的指针和长度:
void Test(Buffer *buffer, size_t length);
使用单个Buffer
调用此函数时:
Buffer buf = ...;
Test(&buf, 1);
使用std::array
调用它时:
std::array<Buffer, 2> buffers = ...;
Test(buffers.data(), buffers.size());
如果您希望 length 参数是可选的,则有两个使用两个不同名称的函数,不幸的是:
void TestOne(Buffer *);
void TestMany(Buffer *, size_t);
相关文章:
- lambda参数转换为constexpr技巧,然后获取带链接的数组
- 将数组作为参数传递给函数安全吗?作为第三方职能部门,可以探索他们想要的之外的其他元素
- C++中的高效循环缓冲区,它将被传递给C样式数组函数参数
- 如何使用Visual Studio 2017在C++中为参数化对象数组使用唯一指针
- 为 NewObjectA() 函数创建 jvalues 的参数数组时出错 - JNI Invocation API
- 估计函数参数数组的维度
- 温度参数数组的内存泄漏
- 如何将值附加到命令行参数数组?
- libpqxx:如何绑定参数数组
- 如何在德尔福中C++参数数组指针算术
- C++函数参数或参数数组
- 将 std::function 代理为需要参数数组的 C 函数
- 分析字符串参数数组
- Pro*C传递参数数组
- OpenCV错误:cvGetSize中的错误参数(数组应该是CvMat或IplImage)
- c++无限参数数组
- 查找命令行参数数组中的元素数
- 如何将目录中所有具有完整路径的文件传递到execv中的参数数组
- ODBC:参数数组-忽略参数
- 使用lambda参数数组