boost counting_range не включает повторение последнего значения

У меня есть этот код:

void CMeetingScheduleAssistantApp::InitDateTransArrays()
{
    if (theApp.UseTranslationINI() || theApp.GetProgramLanguage() == LANGUAGE_MALAGASY)
    {
        CString strKey;

        // Days of the week
        for (auto const &i : boost::counting_range(0, 7))
        //for (int i = 0; i <= 6; i++)
        {
            strKey.Format(_T("Day%d"), i);
            // AJT v17.1.3 Now use our own methods
            m_aryDateTrans[DATE_TRANS_DAY].Add(GetStringFromTranslationINI(_T("Days"), strKey));
            m_aryDateTrans[DATE_TRANS_DAY_SHORT].Add(GetStringFromTranslationINI(_T("DaysAbbreviated"), strKey));
        }

        // Months of the year
        for (auto const &i : boost::counting_range(1, 13))
        //for(int i = 1; i <= 12; i++)
        {
            strKey.Format(_T("Month%d"), i);
            // AJT v17.1.3 Now use our own methods
            m_aryDateTrans[DATE_TRANS_MONTH].Add(GetStringFromTranslationINI(_T("Months"), strKey));
            m_aryDateTrans[DATE_TRANS_MONTH_SHORT].Add(GetStringFromTranslationINI(_T("MonthsAbbreviated"), strKey));
        }
    }
}

Обратите внимание на for петли я тогда установил на 0 - 6 и 1 - 12 соответственно. Я узнал, что они должны быть 0 - 7 и 1 - 13. Он повторяет до последнего номера, он не включает самого последнего номера!

Так что это вводит в заблуждение:

http://www.boost.org/doc/libs/1_63_0/libs/range/doc/html/range/reference/ranges/counting_range.html

Пожалуйста подтвердите.

0 ответов

Другие вопросы по тегам