0

よくわかりませんが、(コンストラクターで)次のようなメソッドシグネチャを見たことがあると思います。

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

最初のコンストラクター呼び出しでは、配列/ポインター・パラメーターを渡すことができ、コンパイラーはそのサイズを自動的に認識します。だから、私は常に渡されたcharバッファのサイズを知っています。

これが本当にC++に存在するかどうか誰かが知っていますか?

4

2 に答える 2

4

テンプレート化されたバージョンだけがおそらく意味をなすことができます:

Buffer(char * data, std::size_t len) { /* ... */ }

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

(委任コンストラクターは新しく、まだあまり広くサポートされていないことに注意してください。ここでは、たとえば1つだけ使用します。)

于 2012-05-30T16:26:50.267 に答える
0

確かに、Buffer(std::vector<char> data)。(IOW、使用しないでくださいchar*。)

于 2012-05-30T16:26:57.373 に答える