www.digitalmars.com         C & C++   DMDScript  

c++.stlsoft - Problem with fixed_array copy constructor (gcc-3.4.6)

reply Neal Becker <ndbecker2 gmail.com> writes:
My code compiles fine with gcc-4.1.1, but chokes on gcc-3.4.6.  I'm not sure
what's going on here:

/usr/local/src/stlsoft/include/stlsoft/containers/fixed_array.hpp: In copy
constructor `stlsoft::fixed_array_3d<T, A, P, R>::fixed_array_3d(const
stlsoft::fixed_array_3d<T, A, P, R>&) [with T = double, A =
std::allocator<double>, P = stlsoft::do_construction<double>, bool R =  false]':
/usr/local/src/stlsoft/include/stlsoft/containers/fixed_array.hpp:1838: 
  instantiated from `typename stlsoft::fixed_array_4d<T, A, P,
R>::dimension_element_type stlsoft::fixed_array_4d<T, A, P,
R>::operator[](stlsoft::ss_size_t) [with T = double, A =
std::allocator<double>, P = stlsoft::do_construction<double>, bool R =  true]'
idma/turbo_dec_1_10_2.H:387: 
  instantiated from `void turbo_dec_1_10<flt_t>::compute_gamma(const
apriori_t&, const rec_enc_parity_t&, const rec_tail_t&, gamma_t&, gamma2_t&)
[with apriori_t = stlsoft::fixed_array_1d<double, std::allocator<double>,
stlsoft::do_initialisation_never,  true>, rec_enc_parity_t =
stlsoft::fixed_array_2d<double, std::allocator<double>,
stlsoft::do_construction<double>,  false>, rec_tail_t =
stlsoft::fixed_array_1d<double, std::allocator<double>,
stlsoft::do_construction<double>,  false>, gamma_t =
stlsoft::fixed_array_3d<double, std::allocator<double>,
stlsoft::do_construction<double>,  true>, gamma2_t =
stlsoft::fixed_array_4d<double, std::allocator<double>,
stlsoft::do_construction<double>,  true>, flt_t = double]'
idma/turbo_dec_1_10_2.H:342: 
  instantiated from `void turbo_dec_1_10<flt_t>::turbo_constituent_dec(const
apriori_t&, const rec_enc_parity_t&, const rec_tail_t&, info_extrinsic_t&,
parity_extrinsic_t&, tail_extrinsic_t&) [with apriori_t =
stlsoft::fixed_array_1d<double, std::allocator<double>,
stlsoft::do_initialisation_never,  true>, rec_enc_parity_t =
stlsoft::fixed_array_2d<double, std::allocator<double>,
stlsoft::do_construction<double>,  false>, rec_tail_t =
stlsoft::fixed_array_1d<double, std::allocator<double>,
stlsoft::do_construction<double>,  false>, info_extrinsic_t =
stlsoft::fixed_array_1d<double, std::allocator<double>,
stlsoft::do_construction<double>,  true>, parity_extrinsic_t =
stlsoft::fixed_array_2d<double, std::allocator<double>,
stlsoft::do_construction<double>,  false>, tail_extrinsic_t =
stlsoft::fixed_array_1d<double, std::allocator<double>,
stlsoft::do_construction<double>,  false>, flt_t = double]'
idma/turbo_dec_1_10_2.H:250:
   instantiated from `void turbo_dec_1_10<flt_t>::iter(const in_t&, flt_t)
[with in_t = boost::numeric::ublas::vector<double,
boost::numeric::ublas::unbounded_array<double, std::allocator<double> > >,
flt_t = double]'
idma/turbo_dec_1_10.cc:192:
   instantiated from here
/usr/local/src/stlsoft/include/stlsoft/containers/fixed_array.hpp:1441: error:
creating array with size zero (`0')

The line that triggered the error:
        gamma2[0][k][m][0] = gamma[k][m][1];

I'm sorry, but I can't post the source for this.  Perhaps someone has
encountered a similar problem?
Jan 22 2007
next sibling parent reply "Matthew Wilson" <matthew hat.stlsoft.dot.org> writes:
"Neal Becker" <ndbecker2 gmail.com> wrote in message
news:ep3233$11ba$1 digitaldaemon.com...
 My code compiles fine with gcc-4.1.1, but chokes on gcc-3.4.6.  I'm not

 /usr/local/src/stlsoft/include/stlsoft/containers/fixed_array.hpp: In copy

stlsoft::fixed_array_3d<T, A, P, R>&) [with T = double, A = std::allocator<double>, P = stlsoft::do_construction<double>, bool R = false]':
 /usr/local/src/stlsoft/include/stlsoft/containers/fixed_array.hpp:1838:
   instantiated from `typename stlsoft::fixed_array_4d<T, A, P,

R>::operator[](stlsoft::ss_size_t) [with T = double, A = std::allocator<double>, P = stlsoft::do_construction<double>, bool R = true]'
 idma/turbo_dec_1_10_2.H:387:
   instantiated from `void turbo_dec_1_10<flt_t>::compute_gamma(const

[with apriori_t = stlsoft::fixed_array_1d<double, std::allocator<double>, stlsoft::do_initialisation_never, true>, rec_enc_parity_t = stlsoft::fixed_array_2d<double, std::allocator<double>, stlsoft::do_construction<double>, false>, rec_tail_t = stlsoft::fixed_array_1d<double, std::allocator<double>, stlsoft::do_construction<double>, false>, gamma_t = stlsoft::fixed_array_3d<double, std::allocator<double>, stlsoft::do_construction<double>, true>, gamma2_t = stlsoft::fixed_array_4d<double, std::allocator<double>, stlsoft::do_construction<double>, true>, flt_t = double]'
 idma/turbo_dec_1_10_2.H:342:
   instantiated from `void

rec_enc_parity_t&, const rec_tail_t&, info_extrinsic_t&, parity_extrinsic_t&, tail_extrinsic_t&) [with apriori_t = stlsoft::fixed_array_1d<double, std::allocator<double>, stlsoft::do_initialisation_never, true>, rec_enc_parity_t = stlsoft::fixed_array_2d<double, std::allocator<double>, stlsoft::do_construction<double>, false>, rec_tail_t = stlsoft::fixed_array_1d<double, std::allocator<double>, stlsoft::do_construction<double>, false>, info_extrinsic_t = stlsoft::fixed_array_1d<double, std::allocator<double>, stlsoft::do_construction<double>, true>, parity_extrinsic_t = stlsoft::fixed_array_2d<double, std::allocator<double>, stlsoft::do_construction<double>, false>, tail_extrinsic_t = stlsoft::fixed_array_1d<double, std::allocator<double>, stlsoft::do_construction<double>, false>, flt_t = double]'
 idma/turbo_dec_1_10_2.H:250:
    instantiated from `void turbo_dec_1_10<flt_t>::iter(const in_t&, flt_t)

boost::numeric::ublas::unbounded_array<double, std::allocator<double> > >, flt_t = double]'
 idma/turbo_dec_1_10.cc:192:
    instantiated from here
 /usr/local/src/stlsoft/include/stlsoft/containers/fixed_array.hpp:1441:

 The line that triggered the error:
         gamma2[0][k][m][0] = gamma[k][m][1];

 I'm sorry, but I can't post the source for this.  Perhaps someone has

It's a bit hard to tell from the report. Can you post a chopped down version, or a little sample that brings out the same bug? btw, did the fe.N mods fix your 64-bit build problem? If so, I'll try and get a new Pantheios release out asap. Cheers Matthew
Jan 22 2007
parent reply Neal Becker <ndbecker2 gmail.com> writes:
Matthew Wilson wrote:

 btw, did the fe.N mods fix your 64-bit build problem? If so, I'll try and
 get a new Pantheios release out asap.
 

Looks like it gets further. Now stops here: g++ -c -Wall -pedantic -Wno-long-long -Wno-unused-value -Werror -O1 -D_REENTRANT -D_DEBUG -UNDEBUG -Dunix -I../../include -I"/usr/local/src/stlsoft/include" -o test_api.debug.o ../../test/test_api/test_api.cpp ../../test/test_api/test_api.cpp: In function ‘stlsoft::basic_shim_string<char, 64ul, false, std::allocator<char>, stlsoft::stlsoft_char_traits<char> > stlsoft::c_str_data_a(const Thingy&)’: ../../test/test_api/test_api.cpp:142: error: cast from ‘const Thingy*’ to ‘unsigned int’ loses precision ../../test/test_api/test_api.cpp: In function ‘std::string Thingy_to_string(const Thingy*)’: ../../test/test_api/test_api.cpp:168: error: cast from ‘const Thingy**’ to ‘unsigned int’ loses precision make: *** [test_api.debug.o] Error 1
Jan 22 2007
parent reply "Matthew Wilson" <matthew hat.stlsoft.dot.org> writes:
"Neal Becker" <ndbecker2 gmail.com> wrote in message
news:ep3iho$1mp7$1 digitaldaemon.com...
 Matthew Wilson wrote:

 btw, did the fe.N mods fix your 64-bit build problem? If so, I'll try


 get a new Pantheios release out asap.

Looks like it gets further. Now stops here:

ENTRANT -D_DEBUG -UNDEBUG -Dunix -I../../include -I"/usr/local/src/stlsof t/include" -o test_api.debug.o ../../test/test_api/test_api.cpp
 ../../test/test_api/test_api.cpp: In function

stlsoft::stlsoft_char_traits<char> > stlsoft::c_str_data_a(const Thingy&)':
 ../../test/test_api/test_api.cpp:142: error: cast from 'const Thingy*' to

 ../../test/test_api/test_api.cpp: In function 'std::string

 ../../test/test_api/test_api.cpp:168: error: cast from 'const Thingy**' to

 make: *** [test_api.debug.o] Error 1

Well, the good news is that we seem to be out of the libraries, and into the test programs (about which I'm less bothered). I'll check into it. A favour, if I may. Could you execute the following build targets on your 64-bit system: "make -f makefile.unix build.libs.core" "make -f makefile.unix build.libs.fe" "make -f makefile.unix build.libs.be" "make -f makefile.unix build.examples" and let me know which, if any, have any problems. Thanks Matthew
Jan 23 2007
parent reply Neal Becker <ndbecker2 gmail.com> writes:
Matthew Wilson wrote:

 
 "Neal Becker" <ndbecker2 gmail.com> wrote in message
 news:ep3iho$1mp7$1 digitaldaemon.com...
 Matthew Wilson wrote:

 btw, did the fe.N mods fix your 64-bit build problem? If so, I'll try


 get a new Pantheios release out asap.

Looks like it gets further. Now stops here:

-D_RE ENTRANT -D_DEBUG -UNDEBUG -Dunix -I../../include -I"/usr/local/src/stlsof t/include" -o test_api.debug.o ../../test/test_api/test_api.cpp
 ../../test/test_api/test_api.cpp: In function

stlsoft::stlsoft_char_traits<char> > stlsoft::c_str_data_a(const Thingy&)':
 ../../test/test_api/test_api.cpp:142: error: cast from 'const Thingy*' to

 ../../test/test_api/test_api.cpp: In function 'std::string

 ../../test/test_api/test_api.cpp:168: error: cast from 'const Thingy**'
 to

 make: *** [test_api.debug.o] Error 1

Well, the good news is that we seem to be out of the libraries, and into the test programs (about which I'm less bothered). I'll check into it. A favour, if I may. Could you execute the following build targets on your 64-bit system: "make -f makefile.unix build.libs.core" "make -f makefile.unix build.libs.fe" "make -f makefile.unix build.libs.be" "make -f makefile.unix build.examples" and let me know which, if any, have any problems.

No problems.
Jan 23 2007
parent "Matthew Wilson" <matthew hat.stlsoft.dot.org> writes:
"Neal Becker" <ndbecker2 gmail.com> wrote in message
news:ep4v24$e9v$1 digitaldaemon.com...
 Matthew Wilson wrote:

 "Neal Becker" <ndbecker2 gmail.com> wrote in message
 news:ep3iho$1mp7$1 digitaldaemon.com...
 Matthew Wilson wrote:

 btw, did the fe.N mods fix your 64-bit build problem? If so, I'll try


 get a new Pantheios release out asap.

Looks like it gets further. Now stops here:

-D_RE ENTRANT -D_DEBUG -UNDEBUG -Dunix -I../../include -I"/usr/local/src/stlsof t/include" -o test_api.debug.o ../../test/test_api/test_api.cpp
 ../../test/test_api/test_api.cpp: In function

stlsoft::stlsoft_char_traits<char> > stlsoft::c_str_data_a(const Thingy&)':
 ../../test/test_api/test_api.cpp:142: error: cast from 'const Thingy*'



 'unsigned int' loses precision
 ../../test/test_api/test_api.cpp: In function 'std::string

 ../../test/test_api/test_api.cpp:168: error: cast from 'const Thingy**'
 to

 make: *** [test_api.debug.o] Error 1

Well, the good news is that we seem to be out of the libraries, and into the test programs (about which I'm less bothered). I'll check into it. A favour, if I may. Could you execute the following build targets on


 64-bit system:
     "make -f makefile.unix build.libs.core"
     "make -f makefile.unix build.libs.fe"
     "make -f makefile.unix build.libs.be"
     "make -f makefile.unix build.examples"

 and let me know which, if any, have any problems.

No problems.

Cool. Thanks
Jan 23 2007
prev sibling next sibling parent Matthew Wilson <no-one nowhere.nohow> writes:
 The line that triggered the error:
         gamma2[0][k][m][0] = gamma[k][m][1];
 
 I'm sorry, but I can't post the source for this.  Perhaps someone has
encountered a similar problem?

I'm trying to have a go at this, but without knowing what gamma and gamm2 are, it's pretty near impossible. Can you tell me how they're defined? Thanks Matthew
Jan 22 2007
prev sibling parent reply "Matthew Wilson" <matthew hat.stlsoft.dot.org> writes:
Try this patch.

No guarantees ... ;-)

If it works, I'll release a beta 44.

Cheers

Matthew


"Neal Becker" <ndbecker2 gmail.com> wrote in message
news:ep3233$11ba$1 digitaldaemon.com...
 My code compiles fine with gcc-4.1.1, but chokes on gcc-3.4.6.  I'm not

 /usr/local/src/stlsoft/include/stlsoft/containers/fixed_array.hpp: In copy

stlsoft::fixed_array_3d<T, A, P, R>&) [with T = double, A = std::allocator<double>, P = stlsoft::do_construction<double>, bool R = false]':
 /usr/local/src/stlsoft/include/stlsoft/containers/fixed_array.hpp:1838:
   instantiated from `typename stlsoft::fixed_array_4d<T, A, P,

R>::operator[](stlsoft::ss_size_t) [with T = double, A = std::allocator<double>, P = stlsoft::do_construction<double>, bool R = true]'
 idma/turbo_dec_1_10_2.H:387:
   instantiated from `void turbo_dec_1_10<flt_t>::compute_gamma(const

[with apriori_t = stlsoft::fixed_array_1d<double, std::allocator<double>, stlsoft::do_initialisation_never, true>, rec_enc_parity_t = stlsoft::fixed_array_2d<double, std::allocator<double>, stlsoft::do_construction<double>, false>, rec_tail_t = stlsoft::fixed_array_1d<double, std::allocator<double>, stlsoft::do_construction<double>, false>, gamma_t = stlsoft::fixed_array_3d<double, std::allocator<double>, stlsoft::do_construction<double>, true>, gamma2_t = stlsoft::fixed_array_4d<double, std::allocator<double>, stlsoft::do_construction<double>, true>, flt_t = double]'
 idma/turbo_dec_1_10_2.H:342:
   instantiated from `void

rec_enc_parity_t&, const rec_tail_t&, info_extrinsic_t&, parity_extrinsic_t&, tail_extrinsic_t&) [with apriori_t = stlsoft::fixed_array_1d<double, std::allocator<double>, stlsoft::do_initialisation_never, true>, rec_enc_parity_t = stlsoft::fixed_array_2d<double, std::allocator<double>, stlsoft::do_construction<double>, false>, rec_tail_t = stlsoft::fixed_array_1d<double, std::allocator<double>, stlsoft::do_construction<double>, false>, info_extrinsic_t = stlsoft::fixed_array_1d<double, std::allocator<double>, stlsoft::do_construction<double>, true>, parity_extrinsic_t = stlsoft::fixed_array_2d<double, std::allocator<double>, stlsoft::do_construction<double>, false>, tail_extrinsic_t = stlsoft::fixed_array_1d<double, std::allocator<double>, stlsoft::do_construction<double>, false>, flt_t = double]'
 idma/turbo_dec_1_10_2.H:250:
    instantiated from `void turbo_dec_1_10<flt_t>::iter(const in_t&, flt_t)

boost::numeric::ublas::unbounded_array<double, std::allocator<double> > >, flt_t = double]'
 idma/turbo_dec_1_10.cc:192:
    instantiated from here
 /usr/local/src/stlsoft/include/stlsoft/containers/fixed_array.hpp:1441:

 The line that triggered the error:
         gamma2[0][k][m][0] = gamma[k][m][1];

 I'm sorry, but I can't post the source for this.  Perhaps someone has

Jan 23 2007
parent reply Neal Becker <ndbecker2 gmail.com> writes:
Matthew Wilson wrote:

 Try this patch.
 
 No guarantees ... ;-)
 
 If it works, I'll release a beta 44.

Yes, it seems to compile now (at least). In response to your other question, stlsoft::fixed_array_3d<flt_t> gamma (MSG_BITS + CONST_LEN, DEC_STATES, 2); stlsoft::fixed_array_4d<flt_t> gamma2 (E, MSG_BITS + CONST_LEN, DEC_STATES, 2);
 
 Cheers
 
 Matthew
 
 
 "Neal Becker" <ndbecker2 gmail.com> wrote in message
 news:ep3233$11ba$1 digitaldaemon.com...
 My code compiles fine with gcc-4.1.1, but chokes on gcc-3.4.6.  I'm not

 /usr/local/src/stlsoft/include/stlsoft/containers/fixed_array.hpp: In
 copy

stlsoft::fixed_array_3d<T, A, P, R>&) [with T = double, A = std::allocator<double>, P = stlsoft::do_construction<double>, bool R = false]':
 /usr/local/src/stlsoft/include/stlsoft/containers/fixed_array.hpp:1838:
   instantiated from `typename stlsoft::fixed_array_4d<T, A, P,

R>::operator[](stlsoft::ss_size_t) [with T = double, A = std::allocator<double>, P = stlsoft::do_construction<double>, bool R = true]'
 idma/turbo_dec_1_10_2.H:387:
   instantiated from `void turbo_dec_1_10<flt_t>::compute_gamma(const

gamma2_t&) [with apriori_t = stlsoft::fixed_array_1d<double, std::allocator<double>, stlsoft::do_initialisation_never, true>, rec_enc_parity_t = stlsoft::fixed_array_2d<double, std::allocator<double>, stlsoft::do_construction<double>, false>, rec_tail_t = stlsoft::fixed_array_1d<double, std::allocator<double>, stlsoft::do_construction<double>, false>, gamma_t = stlsoft::fixed_array_3d<double, std::allocator<double>, stlsoft::do_construction<double>, true>, gamma2_t = stlsoft::fixed_array_4d<double, std::allocator<double>, stlsoft::do_construction<double>, true>, flt_t = double]'
 idma/turbo_dec_1_10_2.H:342:
   instantiated from `void

rec_enc_parity_t&, const rec_tail_t&, info_extrinsic_t&, parity_extrinsic_t&, tail_extrinsic_t&) [with apriori_t = stlsoft::fixed_array_1d<double, std::allocator<double>, stlsoft::do_initialisation_never, true>, rec_enc_parity_t = stlsoft::fixed_array_2d<double, std::allocator<double>, stlsoft::do_construction<double>, false>, rec_tail_t = stlsoft::fixed_array_1d<double, std::allocator<double>, stlsoft::do_construction<double>, false>, info_extrinsic_t = stlsoft::fixed_array_1d<double, std::allocator<double>, stlsoft::do_construction<double>, true>, parity_extrinsic_t = stlsoft::fixed_array_2d<double, std::allocator<double>, stlsoft::do_construction<double>, false>, tail_extrinsic_t = stlsoft::fixed_array_1d<double, std::allocator<double>, stlsoft::do_construction<double>, false>, flt_t = double]'
 idma/turbo_dec_1_10_2.H:250:
    instantiated from `void turbo_dec_1_10<flt_t>::iter(const in_t&,
    flt_t)

boost::numeric::ublas::unbounded_array<double, std::allocator<double> > >, flt_t = double]'
 idma/turbo_dec_1_10.cc:192:
    instantiated from here
 /usr/local/src/stlsoft/include/stlsoft/containers/fixed_array.hpp:1441:

 The line that triggered the error:
         gamma2[0][k][m][0] = gamma[k][m][1];

 I'm sorry, but I can't post the source for this.  Perhaps someone has


Jan 23 2007
parent "Matthew Wilson" <matthew hat.stlsoft.dot.org> writes:
"Neal Becker" <ndbecker2 gmail.com> wrote in message
news:ep4vdu$end$1 digitaldaemon.com...
 Matthew Wilson wrote:

 Try this patch.

 No guarantees ... ;-)

 If it works, I'll release a beta 44.

Yes, it seems to compile now (at least).

Good. Don't forget to let me know if it run. :-)
Jan 23 2007