Package: fbdesk
Severity: normal
Tags: patch

When building 'fbdesk' on amd64 with gcc-4.0,
I get the following error:

g++ -DHAVE_CONFIG_H -I. -I. -I..    -IFbTk -g -O2     -I/usr/include/libpng12 
-c -o fbdesk-FbDesk.o `test -f FbDesk.cc || echo './'`FbDesk.cc
Resource.hh: In constructor 'Resource<T>::Resource(ResourceManager&, T, const 
std::string&, const std::string&)':
Resource.hh:74: error: invalid use of undefined type 'struct ResourceManager'
Resource.hh:59: error: forward declaration of 'struct ResourceManager'
Resource.hh: In destructor 'virtual Resource<T>::~Resource()':
Resource.hh:77: error: invalid use of undefined type 'struct ResourceManager'
Resource.hh:59: error: forward declaration of 'struct ResourceManager'
make[4]: *** [fbdesk-FbDesk.o] Error 1
make[4]: Leaving directory `/fbdesk-1.1.5/src'

With the attached patch 'fbdesk' can be compiled
on amd64 using gcc-4.0.

Regards
Andreas Jochens

diff -urN ../tmp-orig/fbdesk-1.1.5/src/Resource.hh ./src/Resource.hh
--- ../tmp-orig/fbdesk-1.1.5/src/Resource.hh    2003-01-14 22:45:53.000000000 
+0100
+++ ./src/Resource.hh   2005-03-19 21:44:34.252512284 +0100
@@ -56,41 +56,9 @@
     std::string m_altname; ///< alternative name 
 };
 
+template<typename T> class Resource;
 class ResourceManager;
 
-/**
-       Real resource class
-*/
-template <typename T>
-class Resource:public Resource_base
-{
-public:        
-    Resource(ResourceManager &rm, T val, 
-             const std::string &name, const std::string &altname):
-       Resource_base(name, altname),
-       m_value(val), m_defaultval(val),
-       m_rm(rm)
-       {
-            m_rm.addResource(*this); // add this to resource handler
-       }
-    virtual ~Resource() {
-        m_rm.removeResource(*this); // remove this from resource handler
-    }
-
-    inline void setDefaultValue() {  m_value = m_defaultval; }
-    void setFromString(const char *strval);
-    inline Resource<T>& operator = (const T& newvalue) { m_value = newvalue;  
return *this;}
-       
-    std::string getString();   
-    inline T& operator*() { return m_value; }
-    inline const T& operator*() const { return m_value; }
-    inline T *operator->() { return &m_value; }
-    inline const T *operator->() const { return &m_value; }
-private:
-    T m_value, m_defaultval;
-    ResourceManager &m_rm;
-};
-
 class ResourceManager
 {
 public:
@@ -129,4 +97,37 @@
     ResourceList m_resourcelist;
 };
 
+/**
+       Real resource class
+*/
+template <typename T>
+class Resource:public Resource_base
+{
+public:        
+    Resource(ResourceManager &rm, T val, 
+             const std::string &name, const std::string &altname):
+       Resource_base(name, altname),
+       m_value(val), m_defaultval(val),
+       m_rm(rm)
+       {
+            m_rm.addResource(*this); // add this to resource handler
+       }
+    virtual ~Resource() {
+        m_rm.removeResource(*this); // remove this from resource handler
+    }
+
+    inline void setDefaultValue() {  m_value = m_defaultval; }
+    void setFromString(const char *strval);
+    inline Resource<T>& operator = (const T& newvalue) { m_value = newvalue;  
return *this;}
+       
+    std::string getString();   
+    inline T& operator*() { return m_value; }
+    inline const T& operator*() const { return m_value; }
+    inline T *operator->() { return &m_value; }
+    inline const T *operator->() const { return &m_value; }
+private:
+    T m_value, m_defaultval;
+    ResourceManager &m_rm;
+};
+
 #endif //_RESOURCE_HH_


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

Reply via email to