<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Jul 30, 2015 at 6:42 PM, Alex Rousskov <span dir="ltr"><<a href="mailto:rousskov@measurement-factory.com" target="_blank">rousskov@measurement-factory.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="">On 07/30/2015 01:44 AM, Kinkie wrote:<br>
<br>
> headerDescription: a std::vector keyed by header ID containing header type<br>
<br>
</span>HeaderDescriptions (plural) then.<br></blockquote><div><br></div><div>Ok, will change.<br></div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<span class="">> template <typename EnumType><br>
> typedef struct LookupTableRecord<br>
> {<br>
>    const char *name;<br>
>    EnumType id;<br>
> }<br>
<br>
</span>Please avoid "struct" whenever possible. Typing "public:" once is better<br>
that always remembering whether to search for and forward-declare a<br>
"struct Foo" or a "class Foo".<br></blockquote><div><br></div><div>Sure.<br></div><div> <br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="">
> template<typename Enumtype, typename RecordType =<br>
> LookupTableRecord<EnumType> ><br>
> class LookupTable<br>
> {<br>
>    //...<br>
> }<br>
><br>
> This would make it so that someone could define a custom Record type,<br>
> and as long as that record type matches the signature of<br>
> LookupTableRecord, LookupTable won't care.<br>
<br>
</span>Do not add that template parameter until you actually need to customize<br>
the record type. If you end up using this design, just typedef Record to<br>
be LookupTableRecord.<br></blockquote><div><br></div><div>Need is already present; it's done exactly as you say.<br></div><div>Thanks! <br></div></div><br>-- <br><div class="gmail_signature">    Francesco</div>
</div></div>