6
void func(char**& arg1);
int main() {
char* container[3] = { "First", "Second", "Third" };
char** pCon = &container[0];
func(pCon); // This works
func(&container[0]); // no known conversion from char** to char**&
}
私は明らかに何かが不足しています。私の論理は、これら2つは同じものでなければならないと言います。char **&議論の混乱
同じことをする必要がありますか? AFAIK、 '&'は、変数/オブジェクトを宣言しているときの参照に過ぎません。それ以外の場合は、 "address of"を意味します。 – olevegard
一時的な参照は非一時的な左辺参照を必要とする関数に渡しています。 – WhozCraig
ところで、 'char *'ポインタを初期化することを許す文字列リテラルの緩和は、C++ 11では削除されています(コンパイラはそれを受け入れる可能性が高いですが)。つまり、あなたの初期定義は実際には 'char const * container [3] = {...};'でなければなりません。 –