Opened 12 years ago

Closed 12 years ago

#4777 closed Bugs (fixed)

tr1 random tests don't compile: private typedef in boost::random::discard_block

Reported by: Jim Bell <jim@…> Owned by: No-Maintainer
Milestone: Boost 1.45.0 Component: random
Version: Boost Development Trunk Severity: Regression
Keywords: result_type random compile error TR1 Cc:

Description

All the tr1 random tests fail to compile

error C2248: 'boost::random::discard_block<URNG,p,r>::result_type' : cannot access private typedef declared in class 'boost::random::discard_block<URNG,p,r>'
..\boost/random/discard_block.hpp(199) : see declaration of 'boost::random::discard_block<URNG,p,r>::result_type'

Doesn't seem like a compiler error: the typedef really is private in discard_block.hpp line 199.

The base class, discard_block_engine, has the typedef public, so it seems that discard_block should follow suit.

Affects 4 tests from these two places in the test code: ..\libs\tr1\test\test_random.cpp(151) ..\libs\tr1\test\run_random.cpp(21)

Change History (5)

comment:1 by Jim Bell <jim@…>, 12 years ago

Severity: ShowstopperRegression

comment:2 by Marshall Clow, 12 years ago

Just tried this on the trunk [66302], release branch [66302] and the 1.44 release. No errors here - Mac OS X 10.6.2, gcc 4.2.1

On the release test matrix, http://www.boost.org/development/tests/release/developer/random.html, I'm seeing two compilers (Pathscale and Qcc) having trouble, and all the rest are green.

I'm guessing, from the "C2248" error number, that this is Visual Studio - but what version, etc?

comment:3 by Marshall Clow, 12 years ago

Ok - so I'm looking at the tr1 tests instead. ;-)

In the test matrix, http://www.boost.org/development/tests/release/developer/tr1.html the tests are failing for run_random and std_run_random, but they are run-time failures, not compile time errors.

For VC9, some of the tr1/random tests are marked as "expected failure".

More information, please.

comment:4 by Jim Bell <jim@…>, 12 years ago

Trunk: http://www.boost.org/development/tests/trunk/developer/tr1.html

Each row involving random: run_random, std_run_random, std_test_random, test_random

Each row fails to compile on > 50% of the platforms, citing private typedefs as above. E.g., MinGW-32.

comment:5 by Steven Watanabe, 12 years ago

Resolution: fixed
Status: newclosed

(In [66803]) Make result_type public. Fixes #4777.

Note: See TracTickets for help on using tickets.