class const_buffer
{
public:
/// Construct an empty buffer.
const_buffer()
: data_(0),
size_(0)
{
}
/// Construct a buffer to represent a given memory range.
const_buffer(const void* data, std::size_t size)
: data_(data),
size_(size)
{
}
const void* data_;
std::size_t size_;
}
data_ は void* として定義され、size_ は std::size_t 型です。それらは関数ではありませんが、なぜ data_(data), size_(size) を実行できるのでしょうか? パラメータを取り、関数のように振る舞うように見えます。