Question

Avoir le code:

Date::Date(const char* day, const char* month, const char* year):is_leap__(false)
{
    my_day_ = lexical_cast<int>(day);


    my_month_ = static_cast<Month>(lexical_cast<int>(month));

    /*Have to check month here, other ctor assumes month is correct*/
    if (my_month_ < 1 || my_month_ > 12)
    {
        throw std::exception("Incorrect month.");
    }
    my_year_ = lexical_cast<int>(year);

    if (!check_range_year_(my_year_))
    {
        throw std::exception("Year out of range.");
    }

    if (check_leap_year_(my_year_))//SKIPS THIS LINE
    {
        is_leap__ = true;
    }
    if (!check_range_day_(my_day_, my_month_))
    {
        throw std::exception("Day out of range.");
    }

}

bool Date::check_leap_year_(int year)const//IF I MARK THIS LINE WITH BREAKPOINT I'M GETTING MSG THAT THERE IS NO EXECUTABLE CODE IS ASSOSIATED WITH THIS LINE
{
    if (!(year%400) || (year%100 && !(year%4)))
    {
        return true;
    }
    else
    {
        return false;
    }
}

Ce qui est très étrange à mon avis. Il y a appel à cette fnc dans mon code, pourquoi compilateur ignore que.
Post-scriptum Je suis en train de déboguer dans la version.

Était-ce utile?

La solution

Essayer de débogage dans la version conduit à la douleur. La fonction est inline, de sorte que vous ne pouvez pas briser sur elle. Ce genre d'optimisation qui va se passer partout, les valeurs des variables semblera hors, etc. Meilleur déboguer dans le débogage.

Par ailleurs, il suffit de faire: return !(year%400) || (year%100 && !(year%4));


Ce que je veux dire par « il s'inline » est que votre code, à cette partie, est devenu:

if (!(my_year_%400) || (my_year_%100 && !(my_year_%4)))
{
    is_leap__ = true;
}

Il est pas appel de fonction, et rien à briser sur.

Autres conseils

Un en-tête de la fonction ne fait pas compiler tout code exécutable. Essayez de régler le point d'arrêt sur l'accolade ouverte, ou la première instruction dans la fonction.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top