C++大小感知数据类型/参数



我不确定,但我想我曾经见过一个看起来像这样的方法签名(在构造函数中):

class Buffer {
    Buffer(char_with_size *data) { ... };
    Buffer(char *data, size_t len) { ... };
};

在第一个构造函数调用中,可以传递数组/指针参数,编译器会自动知道其大小。所以,我总是知道传递的字符缓冲区的大小。

有谁知道这是否真的存在于 c++ 中?

只有模板化版本才有意义:

Buffer(char * data, std::size_t len) { /* ... */ }
template <std::size_t N> Buffer(char (&data)[N]) : Buffer(data, N) { }

(请注意,委托构造函数是新的,尚未得到广泛支持。例如,为了方便起见,我只是在这里使用一个。

当然,Buffer(std::vector<char> data).(IOW,不要使用char*

最新更新