orbitcpp/orb-cpp/*_seq.h member typedefs access control problem



Hi,

I believe something wrong with member typedef access control in orbitcpp/orb-cpp/*_seq.h headers.
Here is a situation in brief:
In all files we have template class *SeqBase<> wich usually (except CompoundSeqBase where it missed I guess) have protected typedefs for types like value_t, c_value_t, size_t etc wich finally for my undestanding should come to public in *{Bounded,Unbounded}Seq template. Unfortuanetely it's not true. This becomes a problem on systems with gcc 3.3.1 compiller (gcc 3.2 passes it through) while compilling code like String_var. Compiller complains that undelying value_t type is private in this context. I have patches against 1.3.7 version (not cvs) here. If it make sence I can fill full bug report with proposed patch against cvs few days later.

All the best,
Alexander.
--- orbitcpp/orb-cpp/orbitcpp_compound_seq.h.orig	Mon Aug 25 15:16:07 2003
+++ orbitcpp/orb-cpp/orbitcpp_compound_seq.h	Mon Aug 25 15:16:55 2003
@@ -70,6 +70,7 @@
 	typename SeqTraits::c_value_t,
         typename SeqTraits::c_seq_t>
     {
+    protected:
 	typedef SeqTraits  traits_t;
 	typedef typename traits_t::value_t   value_t;
 	typedef typename traits_t::c_value_t c_value_t;
@@ -126,6 +127,7 @@
     template<typename CPPElem, typename SeqTraits=typename CPPElem::SeqTraits>
     class CompoundUnboundedSeq: public CompoundSeqBase<CPPElem, SeqTraits>
     {
+    public:
 	typedef SeqTraits  traits_t;
 	typedef typename traits_t::c_value_t c_value_t;
 	typedef typename traits_t::c_seq_t   c_seq_t;
@@ -186,6 +188,7 @@
     template<typename CPPElem, CORBA::ULong max, typename SeqTraits=typename CPPElem::SeqTraits>
     class CompoundBoundedSeq: public CompoundSeqBase<CPPElem, SeqTraits>
     {
+    public:
 	typedef SeqTraits traits_t;
 	typedef typename traits_t::value_t  value_t;
 	typedef typename traits_t::c_value_t c_value_t;
--- orbitcpp/orb-cpp/orbitcpp_simple_seq.h.orig	Mon Aug 25 15:17:13 2003
+++ orbitcpp/orb-cpp/orbitcpp_simple_seq.h	Mon Aug 25 15:45:11 2003
@@ -92,8 +92,10 @@
     template<class Traits>
     class SimpleUnboundedSeq: public SimpleSeqBase<Traits>
     {
+    public:
 	typedef SimpleSeqBase<Traits>    Super;
 	
+	typedef typename Super::value_t  value_t;
 	typedef typename Super::size_t   size_t;
 	typedef typename Super::index_t  index_t;
 	typedef typename Super::buffer_t buffer_t;
@@ -146,8 +148,10 @@
     template<class Traits, CORBA::ULong max>
     class SimpleBoundedSeq: public SimpleSeqBase<Traits>
     {
+    public:
 	typedef SimpleSeqBase<Traits>    Super;
 
+	typedef typename Super::value_t  value_t;
 	typedef typename Super::size_t   size_t;
 	typedef typename Super::index_t  index_t;
 	typedef typename Super::buffer_t buffer_t;
--- orbitcpp/orb-cpp/orbitcpp_string_seq.h.orig	Mon Aug 25 15:18:19 2003
+++ orbitcpp/orb-cpp/orbitcpp_string_seq.h	Mon Aug 25 15:45:43 2003
@@ -90,8 +90,10 @@
 
     class StringUnboundedSeq: public StringSeqBase
     {
+    public:
 	typedef StringSeqBase            Super;
 	
+	typedef Super::value_t  value_t;
 	typedef Super::size_t   size_t;
 	typedef Super::index_t  index_t;
 	typedef Super::buffer_t buffer_t;
@@ -145,8 +147,10 @@
     template<CORBA::ULong max>
     class StringBoundedSeq: public StringSeqBase
     {
+    public:
 	typedef StringSeqBase   Super;
 
+	typedef Super::value_t  value_t;
 	typedef Super::size_t   size_t;
 	typedef Super::index_t  index_t;
 	typedef Super::buffer_t buffer_t;


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]