how to do initialization in range-based for loop










-2















I'm trying to use indexes in range-based for loop, so I created code as follow. I refer to this website http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0614r0.html



#include <vector>

int main(void)

std::vector<double> vector1(100);

for (std::size_t _index = 0; auto& _value : vector1)

_value = 10 + 5; //This code is for test.
++_index;


return 0;



However, it gives me several error messages (cannot deduce type of auto, cannot use uninitialized _value, etc. / Sorry, my language is not English and so are the error messages)



Why does this happen? When I use if statement with initialization like this,



if (bool is_valid = false; is_valid)

//do something



it worked just as fine.










share|improve this question

















  • 1





    The document you linked is a proposal for a future change in the standard. I am not aware of any compiler currently allowing that syntax.

    – Swordfish
    Nov 13 '18 at 16:06






  • 1





    Initialization in range-for is supposedly coming in future C++20 standard..

    – Some programmer dude
    Nov 13 '18 at 16:06












  • Where did you get C++20- conformant compiler?

    – SergeyA
    Nov 13 '18 at 16:07






  • 1





    @SergeyA Back alley. From an old guy with a flying Delorean.

    – user4581301
    Nov 13 '18 at 16:13











  • @user4581301 sharing would be caring :'(

    – Swordfish
    Nov 13 '18 at 16:15















-2















I'm trying to use indexes in range-based for loop, so I created code as follow. I refer to this website http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0614r0.html



#include <vector>

int main(void)

std::vector<double> vector1(100);

for (std::size_t _index = 0; auto& _value : vector1)

_value = 10 + 5; //This code is for test.
++_index;


return 0;



However, it gives me several error messages (cannot deduce type of auto, cannot use uninitialized _value, etc. / Sorry, my language is not English and so are the error messages)



Why does this happen? When I use if statement with initialization like this,



if (bool is_valid = false; is_valid)

//do something



it worked just as fine.










share|improve this question

















  • 1





    The document you linked is a proposal for a future change in the standard. I am not aware of any compiler currently allowing that syntax.

    – Swordfish
    Nov 13 '18 at 16:06






  • 1





    Initialization in range-for is supposedly coming in future C++20 standard..

    – Some programmer dude
    Nov 13 '18 at 16:06












  • Where did you get C++20- conformant compiler?

    – SergeyA
    Nov 13 '18 at 16:07






  • 1





    @SergeyA Back alley. From an old guy with a flying Delorean.

    – user4581301
    Nov 13 '18 at 16:13











  • @user4581301 sharing would be caring :'(

    – Swordfish
    Nov 13 '18 at 16:15













-2












-2








-2








I'm trying to use indexes in range-based for loop, so I created code as follow. I refer to this website http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0614r0.html



#include <vector>

int main(void)

std::vector<double> vector1(100);

for (std::size_t _index = 0; auto& _value : vector1)

_value = 10 + 5; //This code is for test.
++_index;


return 0;



However, it gives me several error messages (cannot deduce type of auto, cannot use uninitialized _value, etc. / Sorry, my language is not English and so are the error messages)



Why does this happen? When I use if statement with initialization like this,



if (bool is_valid = false; is_valid)

//do something



it worked just as fine.










share|improve this question














I'm trying to use indexes in range-based for loop, so I created code as follow. I refer to this website http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0614r0.html



#include <vector>

int main(void)

std::vector<double> vector1(100);

for (std::size_t _index = 0; auto& _value : vector1)

_value = 10 + 5; //This code is for test.
++_index;


return 0;



However, it gives me several error messages (cannot deduce type of auto, cannot use uninitialized _value, etc. / Sorry, my language is not English and so are the error messages)



Why does this happen? When I use if statement with initialization like this,



if (bool is_valid = false; is_valid)

//do something



it worked just as fine.







c++ for-loop foreach compiler-errors






share|improve this question













share|improve this question











share|improve this question




share|improve this question










asked Nov 13 '18 at 16:03









Gi Hun NamGi Hun Nam

75




75







  • 1





    The document you linked is a proposal for a future change in the standard. I am not aware of any compiler currently allowing that syntax.

    – Swordfish
    Nov 13 '18 at 16:06






  • 1





    Initialization in range-for is supposedly coming in future C++20 standard..

    – Some programmer dude
    Nov 13 '18 at 16:06












  • Where did you get C++20- conformant compiler?

    – SergeyA
    Nov 13 '18 at 16:07






  • 1





    @SergeyA Back alley. From an old guy with a flying Delorean.

    – user4581301
    Nov 13 '18 at 16:13











  • @user4581301 sharing would be caring :'(

    – Swordfish
    Nov 13 '18 at 16:15












  • 1





    The document you linked is a proposal for a future change in the standard. I am not aware of any compiler currently allowing that syntax.

    – Swordfish
    Nov 13 '18 at 16:06






  • 1





    Initialization in range-for is supposedly coming in future C++20 standard..

    – Some programmer dude
    Nov 13 '18 at 16:06












  • Where did you get C++20- conformant compiler?

    – SergeyA
    Nov 13 '18 at 16:07






  • 1





    @SergeyA Back alley. From an old guy with a flying Delorean.

    – user4581301
    Nov 13 '18 at 16:13











  • @user4581301 sharing would be caring :'(

    – Swordfish
    Nov 13 '18 at 16:15







1




1





The document you linked is a proposal for a future change in the standard. I am not aware of any compiler currently allowing that syntax.

– Swordfish
Nov 13 '18 at 16:06





The document you linked is a proposal for a future change in the standard. I am not aware of any compiler currently allowing that syntax.

– Swordfish
Nov 13 '18 at 16:06




1




1





Initialization in range-for is supposedly coming in future C++20 standard..

– Some programmer dude
Nov 13 '18 at 16:06






Initialization in range-for is supposedly coming in future C++20 standard..

– Some programmer dude
Nov 13 '18 at 16:06














Where did you get C++20- conformant compiler?

– SergeyA
Nov 13 '18 at 16:07





Where did you get C++20- conformant compiler?

– SergeyA
Nov 13 '18 at 16:07




1




1





@SergeyA Back alley. From an old guy with a flying Delorean.

– user4581301
Nov 13 '18 at 16:13





@SergeyA Back alley. From an old guy with a flying Delorean.

– user4581301
Nov 13 '18 at 16:13













@user4581301 sharing would be caring :'(

– Swordfish
Nov 13 '18 at 16:15





@user4581301 sharing would be caring :'(

– Swordfish
Nov 13 '18 at 16:15












1 Answer
1






active

oldest

votes


















0














This syntax is supposedly part of upcoming C++20 standard, see https://en.cppreference.com/w/cpp/language/range-for



There are currently no C++20-conformant compilers, so it is no wonder you are getting compilation errors.






share|improve this answer























    Your Answer






    StackExchange.ifUsing("editor", function ()
    StackExchange.using("externalEditor", function ()
    StackExchange.using("snippets", function ()
    StackExchange.snippets.init();
    );
    );
    , "code-snippets");

    StackExchange.ready(function()
    var channelOptions =
    tags: "".split(" "),
    id: "1"
    ;
    initTagRenderer("".split(" "), "".split(" "), channelOptions);

    StackExchange.using("externalEditor", function()
    // Have to fire editor after snippets, if snippets enabled
    if (StackExchange.settings.snippets.snippetsEnabled)
    StackExchange.using("snippets", function()
    createEditor();
    );

    else
    createEditor();

    );

    function createEditor()
    StackExchange.prepareEditor(
    heartbeatType: 'answer',
    autoActivateHeartbeat: false,
    convertImagesToLinks: true,
    noModals: true,
    showLowRepImageUploadWarning: true,
    reputationToPostImages: 10,
    bindNavPrevention: true,
    postfix: "",
    imageUploader:
    brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
    contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
    allowUrls: true
    ,
    onDemand: true,
    discardSelector: ".discard-answer"
    ,immediatelyShowMarkdownHelp:true
    );



    );













    draft saved

    draft discarded


















    StackExchange.ready(
    function ()
    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53284939%2fhow-to-do-initialization-in-range-based-for-loop%23new-answer', 'question_page');

    );

    Post as a guest















    Required, but never shown

























    1 Answer
    1






    active

    oldest

    votes








    1 Answer
    1






    active

    oldest

    votes









    active

    oldest

    votes






    active

    oldest

    votes









    0














    This syntax is supposedly part of upcoming C++20 standard, see https://en.cppreference.com/w/cpp/language/range-for



    There are currently no C++20-conformant compilers, so it is no wonder you are getting compilation errors.






    share|improve this answer



























      0














      This syntax is supposedly part of upcoming C++20 standard, see https://en.cppreference.com/w/cpp/language/range-for



      There are currently no C++20-conformant compilers, so it is no wonder you are getting compilation errors.






      share|improve this answer

























        0












        0








        0







        This syntax is supposedly part of upcoming C++20 standard, see https://en.cppreference.com/w/cpp/language/range-for



        There are currently no C++20-conformant compilers, so it is no wonder you are getting compilation errors.






        share|improve this answer













        This syntax is supposedly part of upcoming C++20 standard, see https://en.cppreference.com/w/cpp/language/range-for



        There are currently no C++20-conformant compilers, so it is no wonder you are getting compilation errors.







        share|improve this answer












        share|improve this answer



        share|improve this answer










        answered Nov 13 '18 at 16:08









        SergeyASergeyA

        44.6k53990




        44.6k53990





























            draft saved

            draft discarded
















































            Thanks for contributing an answer to Stack Overflow!


            • Please be sure to answer the question. Provide details and share your research!

            But avoid


            • Asking for help, clarification, or responding to other answers.

            • Making statements based on opinion; back them up with references or personal experience.

            To learn more, see our tips on writing great answers.




            draft saved


            draft discarded














            StackExchange.ready(
            function ()
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53284939%2fhow-to-do-initialization-in-range-based-for-loop%23new-answer', 'question_page');

            );

            Post as a guest















            Required, but never shown





















































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown

































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown







            Popular posts from this blog

            𛂒𛀶,𛀽𛀑𛂀𛃧𛂓𛀙𛃆𛃑𛃷𛂟𛁡𛀢𛀟𛁤𛂽𛁕𛁪𛂟𛂯,𛁞𛂧𛀴𛁄𛁠𛁼𛂿𛀤 𛂘,𛁺𛂾𛃭𛃭𛃵𛀺,𛂣𛃍𛂖𛃶 𛀸𛃀𛂖𛁶𛁏𛁚 𛂢𛂞 𛁰𛂆𛀔,𛁸𛀽𛁓𛃋𛂇𛃧𛀧𛃣𛂐𛃇,𛂂𛃻𛃲𛁬𛃞𛀧𛃃𛀅 𛂭𛁠𛁡𛃇𛀷𛃓𛁥,𛁙𛁘𛁞𛃸𛁸𛃣𛁜,𛂛,𛃿,𛁯𛂘𛂌𛃛𛁱𛃌𛂈𛂇 𛁊𛃲,𛀕𛃴𛀜 𛀶𛂆𛀶𛃟𛂉𛀣,𛂐𛁞𛁾 𛁷𛂑𛁳𛂯𛀬𛃅,𛃶𛁼

            Edmonton

            Crossroads (UK TV series)