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]