我不确定,但我想我曾经见过一个看起来像这样的方法签名(在构造函数中):
class Buffer {
Buffer(char_with_size *data) { ... };
Buffer(char *data, size_t len) { ... };
};
在第一个构造函数调用中,可以传递一个数组/指针参数,编译器自动知道它的大小。所以,我总是知道传递的 char 缓冲区的大小。
有谁知道这是否真的存在于 c++ 中?
最佳答案
只有模板化的版本才可能有意义:
Buffer(char * data, std::size_t len) { /* ... */ }
template <std::size_t N> Buffer(char (&data)[N]) : Buffer(data, N) { }
(请注意,委派构造函数是新的,还没有得到广泛支持。我在这里仅使用一个作为示例。)
关于C++ 大小感知数据类型/参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10820329/