[ http://issues.apache.org/jira/browse/STDCXX-83?page=all ] Martin Sebor closed STDCXX-83: ------------------------------
> std::generate_n() assumes Size can be decremented > ------------------------------------------------- > > Key: STDCXX-83 > URL: http://issues.apache.org/jira/browse/STDCXX-83 > Project: STDCXX > Type: Bug > Components: 25. Algorithms > Versions: 4.1.2 > Environment: all > Reporter: Martin Sebor > Assignee: Martin Sebor > Priority: Minor > Fix For: 4.1.3 > > The requirement on the Size template argument to std::generate_n() in > lib.alg.generate, p2 is that it be convertible to an integral type which does > not imply that it be possible to decrement or otherwise modify its value. > I.e., the program below is expected to compile successfully. > $ cat t.cpp && nice make t > #include <algorithm> > struct Size { > operator int() { return 0; } > private: > void operator=(Size&); > }; > template void std::generate_n (int*, Size, int (*)()); > int main () { } > eccp -c -I/build/sebor/dev/stdlib/include/ansi -D_RWSTDDEBUG > -D_RWSTD_USE_CONFIG -I/build/sebor/eccp-3.6-11s/include > -I/build/sebor/dev/stdlib/include -I/build/sebor/dev/stdlib/../rwtest > -I/build/sebor/dev/stdlib/../rwtest/include > -I/build/sebor/dev/stdlib/tests/include -A -x > --template_directory=/build/sebor/eccp-3.6-11s/lib -g --display_error_number > --remarks --diag_suppress 193,236,340,401,261,479,487,678,679,815 t.cpp > "/build/sebor/dev/stdlib/include/algorithm", line 431: error #349: no operator > "--" matches these operands > operand types are: -- Size > for (; __n > 0; --__n, ++__first) > ^ > detected during instantiation of "void std::generate_n(_OutputIter, > _Size, _Generator) [with _OutputIter=int *, _Size=Size, > _Generator=int (*)()]" at line 9 of "t.cpp" > 1 error detected in the compilation of "t.cpp". -- This message is automatically generated by JIRA. - If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/jira/secure/Administrators.jspa - For more information on JIRA, see: http://www.atlassian.com/software/jira
