Example #1
0
std::size_t font_hasher::hash(const font& v) {
    std::size_t seed(0);

    combine(seed, v.family());
    combine(seed, v.style());
    combine(seed, v.name());

    return seed;
}
Example #2
0
XLNT_API bool operator==(const font &left, const font &right)
{
    if (left.bold() != right.bold())
    {
        return false;
    }

    if (left.has_color() != right.has_color())
    {
        return false;
    }

    if (left.has_color())
    {
        if (left.color() != right.color())
        {
            return false;
        }
    }

    if (left.has_family() != right.has_family())
    {
        return false;
    }

    if (left.has_family())
    {
        if (left.family() != right.family())
        {
            return false;
        }
    }

    if (left.italic() != right.italic())
    {
        return false;
    }

    if (left.name() != right.name())
    {
        return false;
    }

    if (left.has_scheme() != right.has_scheme())
    {
        return false;
    }

    if (left.has_scheme())
    {
        if (left.scheme() != right.scheme())
        {
            return false;
        }
    }

    if (std::fabs(left.size() - right.size()) != 0.0)
    {
        return false;
    }

    if (left.strikethrough() != right.strikethrough())
    {
        return false;
    }

    if (left.superscript() != right.superscript())
    {
        return false;
    }

    if (left.underline() != right.underline())
    {
        return false;
    }

    return true;
}