What C++ templates issue is going on with this error? -


Running GCC v3.4.6 on Botan v1.8.8 I get the following compile time error, which successfully creates my application after creating a Botan I run my own test:

  ../../ src / Botan-1.8 .8 / build / include / botan / secmem.h: In the member function `Botan :: MemoryVector & lt; T & gt; & Amp; Botan :: Memorandector & lt; T & gt; :: Operator = (Cont Boatan :: Memorandian & lt; T & gt; & amp;): ../../src/Botan-1.8.8/build/include/botan/secmem.h:310: Error: The template arguments are missing before 'tonken'? What is this compiler error told me? Here is a snippet of decimal that includes line 310:  
  [...] / ** * This square represents the variable length buffers that do not use memory locking. * / Template & lt; Typename T & gt; Class MemoryVector: public MemoryRegion & lt; T & gt; {Public: / ** * Copy the content of any other buffer into this buffer. * To copy the contents in buffer, get a reference for * @param * * * * * * * * Memory = Vector & lt; T & gt; Operator = (Const Memory Region & lt; T & gt; & amp; amp; amp; amp; in;) (in this! = & Amp; in) set (in); Return (* this);} // This line is 310! [...]  

Change it to:

 < Code> {if (=! & Amp; amp; amp; in) this- & gt; Set); Return (* this); }  

I suspect that the set function is defined in base-class? Numerous names are not seen in a base class which depends on the template parameter. So in this case, the name is related to the set probably the std :: set template, which requires template logic.

If you qualify the name with this-> , then the compiler is clearly asked to see the scope of the class, and the dependent base in that lookup Includes sections


Comments