none
const T &で受けられない変数 RRS feed

  • 質問

  • template<typename T>
    void f(const T &v){}

    extern char *c[];

    int main(int argc, char *argv[]){

        f(argv);    //ok
        f(c);    //1 番目の引数を 'char *[]' から 'char *const (&)[1]' に変換できません

    }

    char *c[] = { "test0", "test1" };

    上記の関数fはどのような引数でも渡せるようにしたいのですが、サイズが未定の配列cを渡せませんでした。
    同じ型のように見えるargvは渡せました。
    その他のポインタや配列も渡せました。

    const T &v から const T v にすると、cも渡せたのですが、オブジェクトによっては無駄が大きいので、参照かポインタを渡すことは必須です。

    サイズが未定の配列を含む、どのような引数でも渡せる関数にするには、どのように書いたらよいですか?
    2012年2月3日 3:13

回答

  • https://connect.microsoft.com/VisualStudio/feedback/details/724314/t-const-char-t-const-cannot-receive-charconnectに投稿し直したので、こちらは閉めさせていただきます。
    
    • 回答としてマーク はぴぴ 2012年2月10日 3:43
    2012年2月10日 3:43