<html><body style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class=""><blockquote type="cite" class="">On Jul 14, 2020, at 2:38 PM, Simon Fraser <<a href="mailto:simon.fraser@apple.com" class="">simon.fraser@apple.com</a>> wrote:<br class=""><br class="">Could someone educate me about <wtf/Forward.h>? When should I use this instead of individual wtf headers?<br class=""></blockquote><br class="">Forward.h is analogous to forward-declaring a class ('class IntPoint;' instead of ‘#include “IntPoint.h”'), but it works for many often-used classes and class templates in the WTF namespace, including class templates that would be difficult to correctly forward-declare due to their many arguments, such as WTF::Vector. And it includes “using WTF::String” and the like, as well, to import WTF namespace things into the global namespace.<div class=""><div class=""><br class=""></div><div class="">We can use it any time we need a forward-declaration, not an entire definition, of one of the items. For example, to compile a header that just takes and returns String objects, we only need a forward declaration of String. The easiest way to correctly do that is to include <wtf/Forward.h>. Including <wtf/WTFString.h> pulls in a lot more. For the specific case of String, I think you might be able to go further and write this instead:</div><div class=""><br class=""></div><div class=""><span style="font-style: normal; font-size: 11px;" class=""><font face="Menlo" class="">    namespace WTF {</font></span></div><div class=""><span style="font-style: normal; font-size: 11px;" class=""><font face="Menlo" class="">    class String;</font></span></div><div class=""><span style="font-style: normal; font-size: 11px;" class=""><font face="Menlo" class="">    }</font></span></div><div class=""><span style="font-style: normal; font-size: 11px;" class=""><font face="Menlo" class="">    using WTF::String;</font></span></div><div class=""><br class=""></div><div class="">But I have never tried it, and there might be some problem with that.<br class=""><div class=""><br class=""></div><div class="">— Darin</div></div></div></body></html>