Add a workaround for GCC 4.0 which doesn't extend friendship to nested classes.
See http://stackoverflow.com/questions/
3584385/friend-access-to-protected-nested-class for details.
git-svn-id: https://stp-fast-prover.svn.sourceforge.net/svnroot/stp-fast-prover/trunk/stp@1128
e59a4935-1847-0410-ae03-
e826735625c1
friend class STPMgr;
friend class ASTNodeHasher;
friend class ASTNodeEqual;
- friend class HashingNodeFactory;
+ friend BEEV::ASTNode HashingNodeFactory::CreateNode(const Kind kind, const BEEV::ASTVec & back_children);
private:
/******************************************************************
friend std::ostream& operator << (std::ostream& os, const PackedRow& m);
+#if defined(__GNUC__) && (__GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ == 0))
+// Workaround for GCC 4.0 which doesn't extend friendship to nested classes. See
+// http://stackoverflow.com/questions/3584385/friend-access-to-protected-nested-class
+// for details.
+public:
+#else
private:
friend class PackedMatrix;
+#endif
PackedRow(const uint32_t _size, uint64_t* const _mp) :
mp(_mp+1)
, is_true_internal(*_mp)
, size(_size)
{}
-
+
+private:
uint64_t* __restrict const mp;
uint64_t& is_true_internal;
const uint32_t size;