Robin Burchell wrote: > 2012/1/27 João Abecasis <joao.abeca...@nokia.com>: > > - Provide standard-compliant implementations of the algorithms in > > QtAlgorithms (no 'q' prefixes, no camel casing -- sorry!) and > > selectively import those into a known namespace when QT_NO_STL is > > defined: > > > > namespace QtPrivateStd { > > #ifdef QT_NO_STL > > using namespace std; > > #else > > using namespace QtPrivateStlImpl::std; > > #endif > > } > > I think you mean #ifndef there, but anyway.
Heh. That's what you get for posting untested code ;-) > So code using this would be using QtPrivateStd::sort(a.begin(), > a.end()); sort of stuff? Sounds good to me. Why is this being kept > private, though? It means that application developers can't make the > same QT_NO_STL choice, doesn't it? I think some finer details of the proposal still need to be hammered down and explored. Ideally, code should be written to use std::sort directly and we somehow bring namespace QtPrivateStd into scope when QT_NO_STL is defined. So let me try again, but with tested code, this time :-) #include <stdio.h> #ifndef QT_NO_STL #include <algorithm> #endif namespace QtPrivateStd { namespace std { template <class T> void swap(T &a, T &b) { puts("Using QtPrivateStd"); T tmp = a; a = b; b = tmp; } template <class Iter> void sort(Iter begin, Iter end) { puts("Using QtPrivateStd; not actually implemented"); } }} // namespace QtPrivateStd::std #ifdef QT_NO_STL using namespace QtPrivateStd; #endif void test1() { int a = 5, b = 3; using std::swap; swap(a, b); printf("a = %i, b = %i\n", a, b); } void test2() { int array[5] = { 5, 4, 3, 2, 1 }; std::sort(array, array + 5); printf("array = { %i, %i, %i, %i, %i }\n", array[0], array[1], array[2], array[3], array[4]); } int main() { test1(); test2(); } > > Thoughts? Comments? > > Having already started trying to butcher QtAlgorithms, I may be > biased, but well.. can I propose another new gerrit review level: +3 > "give this guy a payrise"? :-) ;-) João _______________________________________________ Development mailing list Development@qt-project.org http://lists.qt-project.org/mailman/listinfo/development