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

标签 c++

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

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/

相关文章:

python - 如何使用 pybind11 为可变参数模板可调用对象提供 Python 绑定(bind)?

c++ - 为什么我的中位数中位数快速选择算法段错误?

c++ - gcc 警告未使用的静态函数,但不是静态内联 : is there a practical distinction?

c++ - 在 Eclipse 中使用定制的 makefile

c++ - 如果未实例化成员模板,是否要评估 static_asserts?

c++ - CORBA/OMG C++11 语言映射

c++ - Qt4:访问父类的最佳方式(1级,2级......)

c++ - 改进背景扣除

c++ - 对 `mtm::operator<<(std::ostream&, mtm::DateWrap const&)' 的 undefined reference

c++ - Windows 10 中 Qt 桌面应用程序的不当缩放