<html><head><meta http-equiv="Content-Type" content="text/html charset=windows-1252"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;"><br><div><blockquote type="cite"><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin: 0px 0px 0px 0.8ex; border-left-width: 1px; border-left-color: rgb(204, 204, 204); border-left-style: solid; padding-left: 1ex; position: static; z-index: auto;"><div style="word-wrap:break-word"><div><div class=""><div><br></div></div><div>What’s unexpected to me is that changing a header whose contents are not usually visible may still require rebuilding all of my .cpp files.</div><div>module Foo { module One { header “One.h” } module Two { header “Two.h” } }</div>
<div><br></div><div>// One.cpp - I don’t want to rebuild when Two.h changes</div><div>#import <Foo/One.h></div><div><br></div><div>Do we agree that this is unnecessary if submodules cannot accidentally be affected by changes in other submodules they don’t import (and we have some way to get the set of dependency files for just the submodule)?</div>
</div></div></blockquote><div><br></div><div>No, I don't agree with that. One.cpp might inline some function definitions from Two.h, for instance. Or it might fail to build because it declares something that conflicts with something in Two.h.</div></div></div></div></blockquote><div><br></div><div>I feel like I”m missing something - how is that different from One.cpp having conflicts with some completely different header or module that is not imported into that particular TU?</div><div><br></div><div>Ben</div></div></body></html>