kastnermario / yaml-cpp

Automatically exported from code.google.com/p/yaml-cpp
MIT License
0 stars 0 forks source link

compile warning related to forward declaration of emitter state and auto_ptr #76

Closed GoogleCodeExporter closed 8 years ago

GoogleCodeExporter commented 8 years ago
When I compile my source using mingw, I get the following warning, which I 
think is due to telling the compiler that YAML::EmitterState is a class which 
will be defined later - don't worry about it, but then asking auto_ptr to take 
care of the memory.  I'm not sure, because I don't use auto_ptrs myself and 
compiler errors are hard to parse.  

So here's the warning message as I interpret it, followed by the actual warning

---
emitter.h:16: warning: invalid use of undefined type `struct YAML::EmitterState'
warning: forward declaration of `struct YAML::EmitterState'
note: neither the destructor nor the class-specific operator delete will be 
called, even if they are declared when the class is defined.

---

c:/MinGW/bin/../lib/gcc/mingw32/3.4.5/../../../../include/c++/3.4.5/memory: In 
member function `void std::auto_ptr<_Tp>::reset(_Tp*) [with _Tp = 
YAML::EmitterState]':
c:/MinGW/bin/../lib/gcc/mingw32/3.4.5/../../../../include/c++/3.4.5/memory:226: 
  instantiated from `std::auto_ptr<_Tp>& 
std::auto_ptr<_Tp>::operator=(std::auto_ptr<_Tp>&) [with _Tp = 
YAML::EmitterState]'
../source code/TrackExtractor.cpp:271:   instantiated from here
c:/MinGW/bin/../lib/gcc/mingw32/3.4.5/../../../../include/c++/3.4.5/memory:334: 
warning: possible problem detected in invocation of delete operator:
c:/MinGW/bin/../lib/gcc/mingw32/3.4.5/../../../../include/c++/3.4.5/memory:334: 
warning: invalid use of undefined type `struct YAML::EmitterState'
../Necessary Libraries and Includes/YAML/Includes/emitter.h:16: warning: 
forward declaration of `struct YAML::EmitterState'
c:/MinGW/bin/../lib/gcc/mingw32/3.4.5/../../../../include/c++/3.4.5/memory:334: 
note: neither the destructor nor the class-specific operator delete will be 
called, even if they are declared when the class is defined.

Original issue reported on code.google.com by gers...@gmail.com on 13 Sep 2010 at 2:47

GoogleCodeExporter commented 8 years ago
Thanks, on it shortly!

Original comment by jbe...@gmail.com on 15 Sep 2010 at 2:16

GoogleCodeExporter commented 8 years ago
Fixed (r393)

Original comment by jbe...@gmail.com on 18 Oct 2010 at 7:24