+ inline size_t size() const
+ {
+ return empty() ? 0 : last - first;
+ }
+
+
+ inline FontSpan intersect(FontSpan const & f) const
+ {
+ FontSpan result = FontSpan();
+ if (contains(f.first))
+ result.first = f.first;
+ else if (f.contains(first))
+ result.first = first;
+ else
+ return result;
+ if (contains(f.last))
+ result.last = f.last;
+ else if (f.contains(last))
+ result.last = last;
+ return result;
+ }
+
+ inline bool empty() const
+ {
+ return first > last;
+ }