orbitcpp/orb-cpp/*_seq.h member typedefs access control problem
- From: Alexander Nedotsukov <bland mail ru>
- To: orbitcpp-list gnome org
- Subject: orbitcpp/orb-cpp/*_seq.h member typedefs access control problem
- Date: Mon, 25 Aug 2003 16:41:20 +0900
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]