私はこのコードを持っています:
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));
}
}
}
次に、それぞれ0 ~ 6と1 ~ 12for
に設定したループに注意してください。0 ~ 7と1 ~ 13でなければならないことがわかりました。最後の番号まで反復しますが、最後の番号自体は含まれません!
したがって、これは誤解を招く可能性があります。
http://www.boost.org/doc/libs/1_63_0/libs/range/doc/html/range/reference/ranges/counting_range.html
確認してください。