]>
Commit | Line | Data |
---|---|---|
5a87b929 AM |
1 | Index: libitm/configure |
2 | =================================================================== | |
9f95000d AM |
3 | --- libitm/configure (.../tags/gcc_4_7_2_release) (wersja 192468) |
4 | +++ libitm/configure (.../branches/gcc-4_7-branch) (wersja 192468) | |
5a87b929 AM |
5 | @@ -2844,6 +2844,7 @@ |
6 | # no-define: PACKAGE and VERSION will not be #define'd in config.h (a bunch | |
7 | # of other PACKAGE_* variables will, however, and there's nothing | |
8 | # we can do about that; they come from AC_INIT). | |
9 | +# no-dist: we don't want 'dist' and related rules. | |
10 | # foreign: we don't follow the normal rules for GNU packages (no COPYING | |
11 | # file in the top srcdir, etc, etc), so stop complaining. | |
12 | # -Wall: turns on all automake warnings... | |
13 | @@ -11770,7 +11771,7 @@ | |
14 | lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 | |
15 | lt_status=$lt_dlunknown | |
16 | cat > conftest.$ac_ext <<_LT_EOF | |
17 | -#line 11773 "configure" | |
18 | +#line 11774 "configure" | |
19 | #include "confdefs.h" | |
20 | ||
21 | #if HAVE_DLFCN_H | |
22 | @@ -11876,7 +11877,7 @@ | |
23 | lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 | |
24 | lt_status=$lt_dlunknown | |
25 | cat > conftest.$ac_ext <<_LT_EOF | |
26 | -#line 11879 "configure" | |
27 | +#line 11880 "configure" | |
28 | #include "confdefs.h" | |
29 | ||
30 | #if HAVE_DLFCN_H | |
31 | Index: libitm/Makefile.in | |
32 | =================================================================== | |
9f95000d AM |
33 | --- libitm/Makefile.in (.../tags/gcc_4_7_2_release) (wersja 192468) |
34 | +++ libitm/Makefile.in (.../branches/gcc-4_7-branch) (wersja 192468) | |
5a87b929 AM |
35 | @@ -40,13 +40,10 @@ |
36 | @ARCH_X86_TRUE@am__append_2 = x86_sse.cc x86_avx.cc | |
37 | @ARCH_FUTEX_TRUE@am__append_3 = futex.cc | |
38 | subdir = . | |
39 | -DIST_COMMON = $(am__configure_deps) $(srcdir)/../config.guess \ | |
40 | - $(srcdir)/../config.sub $(srcdir)/../depcomp \ | |
41 | - $(srcdir)/../install-sh $(srcdir)/../ltmain.sh \ | |
42 | - $(srcdir)/../missing $(srcdir)/../mkinstalldirs \ | |
43 | - $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ | |
44 | - $(srcdir)/config.h.in $(srcdir)/libitm.spec.in \ | |
45 | - $(top_srcdir)/configure ChangeLog | |
46 | +DIST_COMMON = ChangeLog $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ | |
47 | + $(top_srcdir)/configure $(am__configure_deps) \ | |
48 | + $(srcdir)/config.h.in $(srcdir)/../mkinstalldirs \ | |
49 | + $(srcdir)/libitm.spec.in $(srcdir)/../depcomp | |
50 | ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 | |
51 | am__aclocal_m4_deps = $(top_srcdir)/../config/acx.m4 \ | |
52 | $(top_srcdir)/../config/asmcfi.m4 \ | |
53 | @@ -97,11 +94,6 @@ | |
54 | "$(DESTDIR)$(toolexeclibdir)" | |
55 | LTLIBRARIES = $(toolexeclib_LTLIBRARIES) | |
56 | libitm_la_LIBADD = | |
57 | -am__libitm_la_SOURCES_DIST = aatree.cc alloc.cc alloc_c.cc \ | |
58 | - alloc_cpp.cc barrier.cc beginend.cc clone.cc eh_cpp.cc \ | |
59 | - local.cc query.cc retry.cc rwlock.cc useraction.cc util.cc \ | |
60 | - sjlj.S tls.cc method-serial.cc method-gl.cc method-ml.cc \ | |
61 | - hwcap.cc x86_sse.cc x86_avx.cc futex.cc | |
62 | @ARCH_ARM_TRUE@am__objects_1 = hwcap.lo | |
63 | @ARCH_X86_TRUE@am__objects_2 = x86_sse.lo x86_avx.lo | |
64 | @ARCH_FUTEX_TRUE@am__objects_3 = futex.lo | |
65 | @@ -139,7 +131,6 @@ | |
66 | --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ | |
67 | $(LDFLAGS) -o $@ | |
68 | SOURCES = $(libitm_la_SOURCES) | |
69 | -DIST_SOURCES = $(am__libitm_la_SOURCES_DIST) | |
70 | MULTISRCTOP = | |
71 | MULTIBUILDTOP = | |
72 | MULTIDIRS = | |
73 | @@ -169,47 +160,10 @@ | |
74 | RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ | |
75 | distclean-recursive maintainer-clean-recursive | |
76 | AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ | |
77 | - $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ | |
78 | - distdir dist dist-all distcheck | |
79 | + $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS | |
80 | ETAGS = etags | |
81 | CTAGS = ctags | |
82 | DIST_SUBDIRS = $(SUBDIRS) | |
83 | -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) | |
84 | -distdir = $(PACKAGE)-$(VERSION) | |
85 | -top_distdir = $(distdir) | |
86 | -am__remove_distdir = \ | |
87 | - { test ! -d "$(distdir)" \ | |
88 | - || { find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \ | |
89 | - && rm -fr "$(distdir)"; }; } | |
90 | -am__relativize = \ | |
91 | - dir0=`pwd`; \ | |
92 | - sed_first='s,^\([^/]*\)/.*$$,\1,'; \ | |
93 | - sed_rest='s,^[^/]*/*,,'; \ | |
94 | - sed_last='s,^.*/\([^/]*\)$$,\1,'; \ | |
95 | - sed_butlast='s,/*[^/]*$$,,'; \ | |
96 | - while test -n "$$dir1"; do \ | |
97 | - first=`echo "$$dir1" | sed -e "$$sed_first"`; \ | |
98 | - if test "$$first" != "."; then \ | |
99 | - if test "$$first" = ".."; then \ | |
100 | - dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ | |
101 | - dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ | |
102 | - else \ | |
103 | - first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ | |
104 | - if test "$$first2" = "$$first"; then \ | |
105 | - dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ | |
106 | - else \ | |
107 | - dir2="../$$dir2"; \ | |
108 | - fi; \ | |
109 | - dir0="$$dir0"/"$$first"; \ | |
110 | - fi; \ | |
111 | - fi; \ | |
112 | - dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ | |
113 | - done; \ | |
114 | - reldir="$$dir2" | |
115 | -DIST_ARCHIVES = $(distdir).tar.gz | |
116 | -GZIP_ENV = --best | |
117 | -distuninstallcheck_listfiles = find . -type f -print | |
118 | -distcleancheck_listfiles = find . -type f -print | |
119 | ACLOCAL = @ACLOCAL@ | |
120 | AMTAR = @AMTAR@ | |
121 | AR = @AR@ | |
122 | @@ -867,185 +821,6 @@ | |
123 | ||
124 | distclean-tags: | |
125 | -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags | |
126 | - | |
127 | -distdir: $(DISTFILES) | |
128 | - $(am__remove_distdir) | |
129 | - test -d "$(distdir)" || mkdir "$(distdir)" | |
130 | - @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ | |
131 | - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ | |
132 | - list='$(DISTFILES)'; \ | |
133 | - dist_files=`for file in $$list; do echo $$file; done | \ | |
134 | - sed -e "s|^$$srcdirstrip/||;t" \ | |
135 | - -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ | |
136 | - case $$dist_files in \ | |
137 | - */*) $(MKDIR_P) `echo "$$dist_files" | \ | |
138 | - sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ | |
139 | - sort -u` ;; \ | |
140 | - esac; \ | |
141 | - for file in $$dist_files; do \ | |
142 | - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ | |
143 | - if test -d $$d/$$file; then \ | |
144 | - dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ | |
145 | - if test -d "$(distdir)/$$file"; then \ | |
146 | - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ | |
147 | - fi; \ | |
148 | - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ | |
149 | - cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ | |
150 | - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ | |
151 | - fi; \ | |
152 | - cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ | |
153 | - else \ | |
154 | - test -f "$(distdir)/$$file" \ | |
155 | - || cp -p $$d/$$file "$(distdir)/$$file" \ | |
156 | - || exit 1; \ | |
157 | - fi; \ | |
158 | - done | |
159 | - @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ | |
160 | - if test "$$subdir" = .; then :; else \ | |
161 | - test -d "$(distdir)/$$subdir" \ | |
162 | - || $(MKDIR_P) "$(distdir)/$$subdir" \ | |
163 | - || exit 1; \ | |
164 | - fi; \ | |
165 | - done | |
166 | - @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ | |
167 | - if test "$$subdir" = .; then :; else \ | |
168 | - dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ | |
169 | - $(am__relativize); \ | |
170 | - new_distdir=$$reldir; \ | |
171 | - dir1=$$subdir; dir2="$(top_distdir)"; \ | |
172 | - $(am__relativize); \ | |
173 | - new_top_distdir=$$reldir; \ | |
174 | - echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ | |
175 | - echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ | |
176 | - ($(am__cd) $$subdir && \ | |
177 | - $(MAKE) $(AM_MAKEFLAGS) \ | |
178 | - top_distdir="$$new_top_distdir" \ | |
179 | - distdir="$$new_distdir" \ | |
180 | - am__remove_distdir=: \ | |
181 | - am__skip_length_check=: \ | |
182 | - am__skip_mode_fix=: \ | |
183 | - distdir) \ | |
184 | - || exit 1; \ | |
185 | - fi; \ | |
186 | - done | |
187 | - $(MAKE) $(AM_MAKEFLAGS) \ | |
188 | - top_distdir="$(top_distdir)" distdir="$(distdir)" \ | |
189 | - dist-info | |
190 | - -test -n "$(am__skip_mode_fix)" \ | |
191 | - || find "$(distdir)" -type d ! -perm -755 \ | |
192 | - -exec chmod u+rwx,go+rx {} \; -o \ | |
193 | - ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \ | |
194 | - ! -type d ! -perm -400 -exec chmod a+r {} \; -o \ | |
195 | - ! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \ | |
196 | - || chmod -R a+r "$(distdir)" | |
197 | -dist-gzip: distdir | |
198 | - tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz | |
199 | - $(am__remove_distdir) | |
200 | - | |
201 | -dist-bzip2: distdir | |
202 | - tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2 | |
203 | - $(am__remove_distdir) | |
204 | - | |
205 | -dist-lzma: distdir | |
206 | - tardir=$(distdir) && $(am__tar) | lzma -9 -c >$(distdir).tar.lzma | |
207 | - $(am__remove_distdir) | |
208 | - | |
209 | -dist-xz: distdir | |
210 | - tardir=$(distdir) && $(am__tar) | xz -c >$(distdir).tar.xz | |
211 | - $(am__remove_distdir) | |
212 | - | |
213 | -dist-tarZ: distdir | |
214 | - tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z | |
215 | - $(am__remove_distdir) | |
216 | - | |
217 | -dist-shar: distdir | |
218 | - shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz | |
219 | - $(am__remove_distdir) | |
220 | - | |
221 | -dist-zip: distdir | |
222 | - -rm -f $(distdir).zip | |
223 | - zip -rq $(distdir).zip $(distdir) | |
224 | - $(am__remove_distdir) | |
225 | - | |
226 | -dist dist-all: distdir | |
227 | - tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz | |
228 | - $(am__remove_distdir) | |
229 | - | |
230 | -# This target untars the dist file and tries a VPATH configuration. Then | |
231 | -# it guarantees that the distribution is self-contained by making another | |
232 | -# tarfile. | |
233 | -distcheck: dist | |
234 | - case '$(DIST_ARCHIVES)' in \ | |
235 | - *.tar.gz*) \ | |
236 | - GZIP=$(GZIP_ENV) gzip -dc $(distdir).tar.gz | $(am__untar) ;;\ | |
237 | - *.tar.bz2*) \ | |
238 | - bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\ | |
239 | - *.tar.lzma*) \ | |
240 | - lzma -dc $(distdir).tar.lzma | $(am__untar) ;;\ | |
241 | - *.tar.xz*) \ | |
242 | - xz -dc $(distdir).tar.xz | $(am__untar) ;;\ | |
243 | - *.tar.Z*) \ | |
244 | - uncompress -c $(distdir).tar.Z | $(am__untar) ;;\ | |
245 | - *.shar.gz*) \ | |
246 | - GZIP=$(GZIP_ENV) gzip -dc $(distdir).shar.gz | unshar ;;\ | |
247 | - *.zip*) \ | |
248 | - unzip $(distdir).zip ;;\ | |
249 | - esac | |
250 | - chmod -R a-w $(distdir); chmod a+w $(distdir) | |
251 | - mkdir $(distdir)/_build | |
252 | - mkdir $(distdir)/_inst | |
253 | - chmod a-w $(distdir) | |
254 | - test -d $(distdir)/_build || exit 0; \ | |
255 | - dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \ | |
256 | - && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \ | |
257 | - && am__cwd=`pwd` \ | |
258 | - && $(am__cd) $(distdir)/_build \ | |
259 | - && ../configure --srcdir=.. --prefix="$$dc_install_base" \ | |
260 | - $(DISTCHECK_CONFIGURE_FLAGS) \ | |
261 | - && $(MAKE) $(AM_MAKEFLAGS) \ | |
262 | - && $(MAKE) $(AM_MAKEFLAGS) dvi \ | |
263 | - && $(MAKE) $(AM_MAKEFLAGS) check \ | |
264 | - && $(MAKE) $(AM_MAKEFLAGS) install \ | |
265 | - && $(MAKE) $(AM_MAKEFLAGS) installcheck \ | |
266 | - && $(MAKE) $(AM_MAKEFLAGS) uninstall \ | |
267 | - && $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \ | |
268 | - distuninstallcheck \ | |
269 | - && chmod -R a-w "$$dc_install_base" \ | |
270 | - && ({ \ | |
271 | - (cd ../.. && umask 077 && mkdir "$$dc_destdir") \ | |
272 | - && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \ | |
273 | - && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \ | |
274 | - && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \ | |
275 | - distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \ | |
276 | - } || { rm -rf "$$dc_destdir"; exit 1; }) \ | |
277 | - && rm -rf "$$dc_destdir" \ | |
278 | - && $(MAKE) $(AM_MAKEFLAGS) dist \ | |
279 | - && rm -rf $(DIST_ARCHIVES) \ | |
280 | - && $(MAKE) $(AM_MAKEFLAGS) distcleancheck \ | |
281 | - && cd "$$am__cwd" \ | |
282 | - || exit 1 | |
283 | - $(am__remove_distdir) | |
284 | - @(echo "$(distdir) archives ready for distribution: "; \ | |
285 | - list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \ | |
286 | - sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x' | |
287 | -distuninstallcheck: | |
288 | - @$(am__cd) '$(distuninstallcheck_dir)' \ | |
289 | - && test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \ | |
290 | - || { echo "ERROR: files left after uninstall:" ; \ | |
291 | - if test -n "$(DESTDIR)"; then \ | |
292 | - echo " (check DESTDIR support)"; \ | |
293 | - fi ; \ | |
294 | - $(distuninstallcheck_listfiles) ; \ | |
295 | - exit 1; } >&2 | |
296 | -distcleancheck: distclean | |
297 | - @if test '$(srcdir)' = . ; then \ | |
298 | - echo "ERROR: distcleancheck can only run from a VPATH build" ; \ | |
299 | - exit 1 ; \ | |
300 | - fi | |
301 | - @test `$(distcleancheck_listfiles) | wc -l` -eq 0 \ | |
302 | - || { echo "ERROR: files left in build directory after distclean:" ; \ | |
303 | - $(distcleancheck_listfiles) ; \ | |
304 | - exit 1; } >&2 | |
305 | check-am: all-am | |
306 | check: check-recursive | |
307 | all-am: Makefile $(INFO_DEPS) $(LTLIBRARIES) all-multi $(HEADERS) \ | |
308 | @@ -1244,13 +1019,10 @@ | |
309 | .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ | |
310 | all all-am all-local all-multi am--refresh check check-am \ | |
311 | clean clean-aminfo clean-generic clean-libtool clean-multi \ | |
312 | - clean-toolexeclibLTLIBRARIES ctags ctags-recursive dist \ | |
313 | - dist-all dist-bzip2 dist-gzip dist-info dist-lzma dist-shar \ | |
314 | - dist-tarZ dist-xz dist-zip distcheck distclean \ | |
315 | - distclean-compile distclean-generic distclean-hdr \ | |
316 | - distclean-libtool distclean-multi distclean-tags \ | |
317 | - distcleancheck distdir distuninstallcheck dvi dvi-am html \ | |
318 | - html-am info info-am install install-am install-data \ | |
319 | + clean-toolexeclibLTLIBRARIES ctags ctags-recursive dist-info \ | |
320 | + distclean distclean-compile distclean-generic distclean-hdr \ | |
321 | + distclean-libtool distclean-multi distclean-tags dvi dvi-am \ | |
322 | + html html-am info info-am install install-am install-data \ | |
323 | install-data-am install-dvi install-dvi-am install-exec \ | |
324 | install-exec-am install-html install-html-am install-info \ | |
325 | install-info-am install-man install-multi \ | |
326 | Index: libitm/configure.ac | |
327 | =================================================================== | |
9f95000d AM |
328 | --- libitm/configure.ac (.../tags/gcc_4_7_2_release) (wersja 192468) |
329 | +++ libitm/configure.ac (.../branches/gcc-4_7-branch) (wersja 192468) | |
5a87b929 AM |
330 | @@ -70,12 +70,13 @@ |
331 | # no-define: PACKAGE and VERSION will not be #define'd in config.h (a bunch | |
332 | # of other PACKAGE_* variables will, however, and there's nothing | |
333 | # we can do about that; they come from AC_INIT). | |
334 | +# no-dist: we don't want 'dist' and related rules. | |
335 | # foreign: we don't follow the normal rules for GNU packages (no COPYING | |
336 | # file in the top srcdir, etc, etc), so stop complaining. | |
337 | # -Wall: turns on all automake warnings... | |
338 | # -Wno-portability: ...except this one, since GNU make is required. | |
339 | # -Wno-override: ... and this one, since we do want this in testsuite. | |
340 | -AM_INIT_AUTOMAKE([1.9.0 foreign -Wall -Wno-portability -Wno-override]) | |
341 | +AM_INIT_AUTOMAKE([1.9.0 foreign no-dist -Wall -Wno-portability -Wno-override]) | |
342 | AM_ENABLE_MULTILIB(, ..) | |
343 | ||
344 | # Calculate toolexeclibdir | |
345 | Index: libitm/ChangeLog | |
346 | =================================================================== | |
9f95000d AM |
347 | --- libitm/ChangeLog (.../tags/gcc_4_7_2_release) (wersja 192468) |
348 | +++ libitm/ChangeLog (.../branches/gcc-4_7-branch) (wersja 192468) | |
5a87b929 AM |
349 | @@ -1,3 +1,11 @@ |
350 | +2012-09-20 Jakub Jelinek <jakub@redhat.com> | |
351 | + | |
352 | + PR other/43620 | |
353 | + * configure.ac (AM_INIT_AUTOMAKE): Add no-dist. | |
354 | + * Makefile.in: Regenerated. | |
355 | + * configure: Regenerated. | |
356 | + * testsuite/Makefile.in: Regenerated. | |
357 | + | |
358 | 2012-09-20 Release Manager | |
359 | ||
360 | * GCC 4.7.2 released. | |
361 | Index: libitm/testsuite/Makefile.in | |
362 | =================================================================== | |
9f95000d AM |
363 | --- libitm/testsuite/Makefile.in (.../tags/gcc_4_7_2_release) (wersja 192468) |
364 | +++ libitm/testsuite/Makefile.in (.../branches/gcc-4_7-branch) (wersja 192468) | |
5a87b929 AM |
365 | @@ -35,7 +35,7 @@ |
366 | host_triplet = @host@ | |
367 | target_triplet = @target@ | |
368 | subdir = testsuite | |
369 | -DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in | |
370 | +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am | |
371 | ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 | |
372 | am__aclocal_m4_deps = $(top_srcdir)/../config/acx.m4 \ | |
373 | $(top_srcdir)/../config/asmcfi.m4 \ | |
374 | @@ -60,10 +60,8 @@ | |
375 | CONFIG_CLEAN_FILES = | |
376 | CONFIG_CLEAN_VPATH_FILES = | |
377 | SOURCES = | |
378 | -DIST_SOURCES = | |
379 | DEJATOOL = $(PACKAGE) | |
380 | RUNTESTDEFAULTFLAGS = --tool $$tool --srcdir $$srcdir | |
381 | -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) | |
382 | ACLOCAL = @ACLOCAL@ | |
383 | AMTAR = @AMTAR@ | |
384 | AR = @AR@ | |
385 | @@ -295,37 +293,6 @@ | |
386 | -l='$(DEJATOOL)'; for tool in $$l; do \ | |
387 | rm -f $$tool.sum $$tool.log; \ | |
388 | done | |
389 | - | |
390 | -distdir: $(DISTFILES) | |
391 | - @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ | |
392 | - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ | |
393 | - list='$(DISTFILES)'; \ | |
394 | - dist_files=`for file in $$list; do echo $$file; done | \ | |
395 | - sed -e "s|^$$srcdirstrip/||;t" \ | |
396 | - -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ | |
397 | - case $$dist_files in \ | |
398 | - */*) $(MKDIR_P) `echo "$$dist_files" | \ | |
399 | - sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ | |
400 | - sort -u` ;; \ | |
401 | - esac; \ | |
402 | - for file in $$dist_files; do \ | |
403 | - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ | |
404 | - if test -d $$d/$$file; then \ | |
405 | - dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ | |
406 | - if test -d "$(distdir)/$$file"; then \ | |
407 | - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ | |
408 | - fi; \ | |
409 | - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ | |
410 | - cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ | |
411 | - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ | |
412 | - fi; \ | |
413 | - cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ | |
414 | - else \ | |
415 | - test -f "$(distdir)/$$file" \ | |
416 | - || cp -p $$d/$$file "$(distdir)/$$file" \ | |
417 | - || exit 1; \ | |
418 | - fi; \ | |
419 | - done | |
420 | check-am: all-am | |
421 | $(MAKE) $(AM_MAKEFLAGS) check-DEJAGNU | |
422 | check: check-am | |
423 | @@ -426,8 +393,8 @@ | |
424 | ||
425 | .PHONY: all all-am check check-DEJAGNU check-am clean clean-generic \ | |
426 | clean-libtool distclean distclean-DEJAGNU distclean-generic \ | |
427 | - distclean-libtool distdir dvi dvi-am html html-am info info-am \ | |
428 | - install install-am install-data install-data-am install-dvi \ | |
429 | + distclean-libtool dvi dvi-am html html-am info info-am install \ | |
430 | + install-am install-data install-data-am install-dvi \ | |
431 | install-dvi-am install-exec install-exec-am install-html \ | |
432 | install-html-am install-info install-info-am install-man \ | |
433 | install-pdf install-pdf-am install-ps install-ps-am \ | |
434 | Index: libstdc++-v3/configure | |
435 | =================================================================== | |
9f95000d AM |
436 | --- libstdc++-v3/configure (.../tags/gcc_4_7_2_release) (wersja 192468) |
437 | +++ libstdc++-v3/configure (.../branches/gcc-4_7-branch) (wersja 192468) | |
5a87b929 AM |
438 | @@ -3025,8 +3025,7 @@ |
439 | target_alias=${target_alias-$host_alias} | |
440 | ||
441 | # Handy for debugging: | |
442 | -{ $as_echo "$as_me:${as_lineno-$LINENO}: $build / $host / $target / $host_alias / $target_alias" >&5 | |
443 | -$as_echo "$as_me: $build / $host / $target / $host_alias / $target_alias" >&6;}; sleep 5 | |
444 | +#AC_MSG_NOTICE($build / $host / $target / $host_alias / $target_alias); sleep 5 | |
445 | ||
446 | if test "$build" != "$host"; then | |
447 | # We are being configured with some form of cross compiler. | |
448 | @@ -11498,7 +11497,7 @@ | |
449 | lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 | |
450 | lt_status=$lt_dlunknown | |
451 | cat > conftest.$ac_ext <<_LT_EOF | |
452 | -#line 11501 "configure" | |
453 | +#line 11500 "configure" | |
454 | #include "confdefs.h" | |
455 | ||
456 | #if HAVE_DLFCN_H | |
457 | @@ -11604,7 +11603,7 @@ | |
458 | lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 | |
459 | lt_status=$lt_dlunknown | |
460 | cat > conftest.$ac_ext <<_LT_EOF | |
461 | -#line 11607 "configure" | |
462 | +#line 11606 "configure" | |
463 | #include "confdefs.h" | |
464 | ||
465 | #if HAVE_DLFCN_H | |
466 | @@ -14962,7 +14961,7 @@ | |
467 | # | |
468 | # Fake what AC_TRY_COMPILE does. XXX Look at redoing this new-style. | |
469 | cat > conftest.$ac_ext << EOF | |
470 | -#line 14965 "configure" | |
471 | +#line 14964 "configure" | |
472 | struct S { ~S(); }; | |
473 | void bar(); | |
474 | void foo() | |
475 | @@ -15297,7 +15296,7 @@ | |
476 | # Fake what AC_TRY_COMPILE does. | |
477 | ||
478 | cat > conftest.$ac_ext << EOF | |
479 | -#line 15300 "configure" | |
480 | +#line 15299 "configure" | |
481 | int main() | |
482 | { | |
483 | typedef bool atomic_type; | |
484 | @@ -15332,7 +15331,7 @@ | |
485 | rm -f conftest* | |
486 | ||
487 | cat > conftest.$ac_ext << EOF | |
488 | -#line 15335 "configure" | |
489 | +#line 15334 "configure" | |
490 | int main() | |
491 | { | |
492 | typedef short atomic_type; | |
493 | @@ -15367,7 +15366,7 @@ | |
494 | rm -f conftest* | |
495 | ||
496 | cat > conftest.$ac_ext << EOF | |
497 | -#line 15370 "configure" | |
498 | +#line 15369 "configure" | |
499 | int main() | |
500 | { | |
501 | // NB: _Atomic_word not necessarily int. | |
502 | @@ -15403,7 +15402,7 @@ | |
503 | rm -f conftest* | |
504 | ||
505 | cat > conftest.$ac_ext << EOF | |
506 | -#line 15406 "configure" | |
507 | +#line 15405 "configure" | |
508 | int main() | |
509 | { | |
510 | typedef long long atomic_type; | |
511 | @@ -15482,7 +15481,7 @@ | |
512 | # unnecessary for this test. | |
513 | ||
514 | cat > conftest.$ac_ext << EOF | |
515 | -#line 15485 "configure" | |
516 | +#line 15484 "configure" | |
517 | int main() | |
518 | { | |
519 | _Decimal32 d1; | |
520 | @@ -15524,7 +15523,7 @@ | |
521 | # unnecessary for this test. | |
522 | ||
523 | cat > conftest.$ac_ext << EOF | |
524 | -#line 15527 "configure" | |
525 | +#line 15526 "configure" | |
526 | template<typename T1, typename T2> | |
527 | struct same | |
528 | { typedef T2 type; }; | |
529 | @@ -15558,7 +15557,7 @@ | |
530 | rm -f conftest* | |
531 | ||
532 | cat > conftest.$ac_ext << EOF | |
533 | -#line 15561 "configure" | |
534 | +#line 15560 "configure" | |
535 | template<typename T1, typename T2> | |
536 | struct same | |
537 | { typedef T2 type; }; | |
538 | @@ -66485,7 +66484,9 @@ | |
539 | ||
540 | ac_config_files="$ac_config_files scripts/extract_symvers" | |
541 | ||
542 | +ac_config_files="$ac_config_files doc/xsl/customization.xsl" | |
543 | ||
544 | + | |
545 | # Multilibs need MULTISUBDIR defined correctly in certain makefiles so | |
546 | # that multilib installs will end up installed in the correct place. | |
547 | # The testsuite needs it for multilib-aware ABI baseline files. | |
548 | @@ -67696,6 +67697,7 @@ | |
549 | "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; | |
550 | "scripts/testsuite_flags") CONFIG_FILES="$CONFIG_FILES scripts/testsuite_flags" ;; | |
551 | "scripts/extract_symvers") CONFIG_FILES="$CONFIG_FILES scripts/extract_symvers" ;; | |
552 | + "doc/xsl/customization.xsl") CONFIG_FILES="$CONFIG_FILES doc/xsl/customization.xsl" ;; | |
553 | "include/Makefile") CONFIG_FILES="$CONFIG_FILES include/Makefile" ;; | |
554 | "libsupc++/Makefile") CONFIG_FILES="$CONFIG_FILES libsupc++/Makefile" ;; | |
555 | "python/Makefile") CONFIG_FILES="$CONFIG_FILES python/Makefile" ;; | |
556 | Index: libstdc++-v3/Makefile.in | |
557 | =================================================================== | |
9f95000d AM |
558 | --- libstdc++-v3/Makefile.in (.../tags/gcc_4_7_2_release) (wersja 192468) |
559 | +++ libstdc++-v3/Makefile.in (.../branches/gcc-4_7-branch) (wersja 192468) | |
5a87b929 AM |
560 | @@ -39,7 +39,8 @@ |
561 | $(top_srcdir)/configure $(am__configure_deps) \ | |
562 | $(srcdir)/config.h.in $(srcdir)/../mkinstalldirs \ | |
563 | $(top_srcdir)/scripts/testsuite_flags.in \ | |
564 | - $(top_srcdir)/scripts/extract_symvers.in | |
565 | + $(top_srcdir)/scripts/extract_symvers.in \ | |
566 | + $(top_srcdir)/doc/xsl/customization.xsl.in | |
567 | subdir = . | |
568 | ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 | |
569 | am__aclocal_m4_deps = $(top_srcdir)/../config/acx.m4 \ | |
570 | @@ -67,7 +68,8 @@ | |
571 | am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \ | |
572 | configure.lineno config.status.lineno | |
573 | CONFIG_HEADER = config.h | |
574 | -CONFIG_CLEAN_FILES = scripts/testsuite_flags scripts/extract_symvers | |
575 | +CONFIG_CLEAN_FILES = scripts/testsuite_flags scripts/extract_symvers \ | |
576 | + doc/xsl/customization.xsl | |
577 | CONFIG_CLEAN_VPATH_FILES = | |
578 | depcomp = | |
579 | am__depfiles_maybe = | |
580 | @@ -434,6 +436,8 @@ | |
581 | cd $(top_builddir) && $(SHELL) ./config.status $@ | |
582 | scripts/extract_symvers: $(top_builddir)/config.status $(top_srcdir)/scripts/extract_symvers.in | |
583 | cd $(top_builddir) && $(SHELL) ./config.status $@ | |
584 | +doc/xsl/customization.xsl: $(top_builddir)/config.status $(top_srcdir)/doc/xsl/customization.xsl.in | |
585 | + cd $(top_builddir) && $(SHELL) ./config.status $@ | |
586 | ||
587 | mostlyclean-libtool: | |
588 | -rm -f *.lo | |
589 | Index: libstdc++-v3/configure.ac | |
590 | =================================================================== | |
9f95000d AM |
591 | --- libstdc++-v3/configure.ac (.../tags/gcc_4_7_2_release) (wersja 192468) |
592 | +++ libstdc++-v3/configure.ac (.../branches/gcc-4_7-branch) (wersja 192468) | |
5a87b929 AM |
593 | @@ -434,6 +434,7 @@ |
594 | AC_CONFIG_FILES(Makefile) | |
595 | AC_CONFIG_FILES([scripts/testsuite_flags],[chmod +x scripts/testsuite_flags]) | |
596 | AC_CONFIG_FILES([scripts/extract_symvers],[chmod +x scripts/extract_symvers]) | |
597 | +AC_CONFIG_FILES([doc/xsl/customization.xsl]) | |
598 | ||
599 | # Multilibs need MULTISUBDIR defined correctly in certain makefiles so | |
600 | # that multilib installs will end up installed in the correct place. | |
601 | Index: libstdc++-v3/doc/Makefile.in | |
602 | =================================================================== | |
9f95000d AM |
603 | --- libstdc++-v3/doc/Makefile.in (.../tags/gcc_4_7_2_release) (wersja 192468) |
604 | +++ libstdc++-v3/doc/Makefile.in (.../branches/gcc-4_7-branch) (wersja 192468) | |
5a87b929 AM |
605 | @@ -517,9 +517,10 @@ |
606 | #XSL_STYLE_DIR = /usr/share/xml/docbook/stylesheet/docbook-xsl-ns | |
607 | #XSL_STYLE_DIR = /usr/share/sgml/docbook/xsl-ns-stylesheets | |
608 | XSL_FO_STYLE = $(XSL_STYLE_DIR)/fo/docbook.xsl | |
609 | -XSL_HTML_STYLE = $(XSL_STYLE_DIR)/xhtml-1_1/chunk.xsl | |
610 | -XSL_HTML_SINGLE_STYLE = $(XSL_STYLE_DIR)/xhtml-1_1/docbook.xsl | |
611 | +XSL_HTML_STYLE = $(XSL_STYLE_DIR)/xhtml/chunk.xsl | |
612 | +XSL_HTML_SINGLE_STYLE = $(XSL_STYLE_DIR)/html/docbook.xsl | |
613 | XSL_EPUB_STYLE = $(XSL_STYLE_DIR)/epub3/chunk.xsl | |
614 | +XSL_LOCAL_STYLE = ${glibcxx_builddir}/doc/xsl/customization.xsl | |
615 | LINT_FLAGS = --debug --xinclude --noent --noblanks --noout | |
616 | SCHEMA_FLAGS = http://www.docbook.org/xml/5.0/dtd/docbook.dtd | |
617 | #SCHEMA_FLAGS = --nonet /usr/share/xml/docbook5/schema/dtd/5.0/docbook.dtd | |
618 | @@ -533,6 +534,7 @@ | |
619 | set_xml = ${docbook_outdir}/xml/libstdc++-set-single.xml | |
620 | ||
621 | # HTML, all one page | |
622 | +# NB: Have to generate customization XSL for UTF-8 output. | |
623 | manual_html = ${docbook_outdir}/html/libstdc++-manual-single.html | |
624 | ||
625 | # PDF, via dblatex | |
626 | @@ -917,18 +919,21 @@ | |
627 | stamp-html-docbook-data: stamp-html-docbook-images stamp-html-docbook-lwg | |
628 | $(STAMP) stamp-html-docbook-data | |
629 | ||
630 | -# HTML, index plus chapters | |
631 | +# HTML, "chunked" into index plus chapters as separate pages | |
632 | stamp-html-docbook: $(xml_sources) ${docbook_outdir}/html | |
633 | @echo "Generating html files..." | |
634 | $(XSLTPROC) $(XSLT_PARAM) $(XSLT_FLAGS) -o ${docbook_outdir}/html/ \ | |
635 | - $(XSL_HTML_STYLE) ${top_srcdir}/doc/xml/spine.xml | |
636 | + --stringparam chunker.output.encoding UTF-8 \ | |
637 | + $(XSL_HTML_STYLE) \ | |
638 | + ${top_srcdir}/doc/xml/spine.xml | |
639 | $(STAMP) stamp-html-docbook | |
640 | ||
641 | doc-html-docbook: stamp-html-docbook-data | |
642 | stamp-html-single-docbook: $(xml_sources) ${docbook_outdir}/html | |
643 | @echo "Generating html single file..." | |
644 | $(XSLTPROC) $(XSLT_PARAM) $(XSLT_FLAGS) -o ${manual_html} \ | |
645 | - $(XSL_HTML_SINGLE_STYLE) ${top_srcdir}/doc/xml/spine.xml | |
646 | + ${XSL_LOCAL_STYLE} \ | |
647 | + ${top_srcdir}/doc/xml/spine.xml | |
648 | $(STAMP) stamp-html-single-docbook | |
649 | ||
650 | doc-html-single-docbook: stamp-html-single-docbook | |
651 | Index: libstdc++-v3/doc/html/bk02.html | |
652 | =================================================================== | |
9f95000d AM |
653 | --- libstdc++-v3/doc/html/bk02.html (.../tags/gcc_4_7_2_release) (wersja 192468) |
654 | +++ libstdc++-v3/doc/html/bk02.html (.../branches/gcc-4_7-branch) (wersja 192468) | |
5a87b929 AM |
655 | @@ -1,3 +1,3 @@ |
656 | <?xml version="1.0" encoding="UTF-8" standalone="no"?> | |
657 | -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> | |
658 | -<html xmlns="http://www.w3.org/1999/xhtml"><head><title/><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1"/><meta name="keywords" content=" ISO C++ , runtime , library "/><link rel="home" href="index.html" title="The GNU C++ Library"/><link rel="up" href="index.html" title="The GNU C++ Library"/><link rel="prev" href="manual/backwards.html" title="Backwards Compatibility"/><link rel="next" href="api.html" title="The GNU C++ Library API Reference"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"/></tr><tr><td align="left"><a accesskey="p" href="manual/backwards.html">Prev</a> </td><th width="60%" align="center"> </th><td align="right"> <a accesskey="n" href="api.html">Next</a></td></tr></table><hr/></div><div class="book"><div class="titlepage"><hr/></div><div class="toc"><p><strong>Table of Contents</strong></p><dl><dt><span class="article"><a href="api.html">The GNU C++ Library API Reference</a></span></dt></dl></div></div><div class="navfooter"><hr/><table width="100%" summary="Navigation footer"><tr><td align="left"><a accesskey="p" href="manual/backwards.html">Prev</a> </td><td align="center"> </td><td align="right"> <a accesskey="n" href="api.html">Next</a></td></tr><tr><td align="left" valign="top">Backwards Compatibility </td><td align="center"><a accesskey="h" href="index.html">Home</a></td><td align="right" valign="top"> The GNU C++ Library API Reference</td></tr></table></div></body></html> | |
659 | +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> | |
660 | +<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title></title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1" /><meta name="keywords" content=" ISO C++ , runtime , library " /><link rel="home" href="index.html" title="The GNU C++ Library" /><link rel="up" href="index.html" title="The GNU C++ Library" /><link rel="prev" href="manual/backwards.html" title="Backwards Compatibility" /><link rel="next" href="api.html" title="The GNU C++ Library API Reference" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="manual/backwards.html">Prev</a> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a accesskey="n" href="api.html">Next</a></td></tr></table><hr /></div><div class="book"><div class="titlepage"><hr /></div><div class="toc"><p><strong>Table of Contents</strong></p><dl><dt><span class="article"><a href="api.html">The GNU C++ Library API Reference</a></span></dt></dl></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="manual/backwards.html">Prev</a> </td><td width="20%" align="center"> </td><td width="40%" align="right"> <a accesskey="n" href="api.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Backwards Compatibility </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> The GNU C++ Library API Reference</td></tr></table></div></body></html> | |
661 | Index: libstdc++-v3/doc/html/bk03.html | |
662 | =================================================================== | |
9f95000d AM |
663 | --- libstdc++-v3/doc/html/bk03.html (.../tags/gcc_4_7_2_release) (wersja 192468) |
664 | +++ libstdc++-v3/doc/html/bk03.html (.../branches/gcc-4_7-branch) (wersja 192468) | |
5a87b929 AM |
665 | @@ -1,3 +1,3 @@ |
666 | <?xml version="1.0" encoding="UTF-8" standalone="no"?> | |
667 | -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> | |
668 | -<html xmlns="http://www.w3.org/1999/xhtml"><head><title/><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1"/><meta name="keywords" content=" ISO C++ , runtime , library "/><link rel="home" href="index.html" title="The GNU C++ Library"/><link rel="up" href="index.html" title="The GNU C++ Library"/><link rel="prev" href="api.html" title="The GNU C++ Library API Reference"/><link rel="next" href="faq.html" title="Frequently Asked Questions"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"/></tr><tr><td align="left"><a accesskey="p" href="api.html">Prev</a> </td><th width="60%" align="center"> </th><td align="right"> <a accesskey="n" href="faq.html">Next</a></td></tr></table><hr/></div><div class="book"><div class="titlepage"><hr/></div><div class="toc"><p><strong>Table of Contents</strong></p><dl><dt><span class="article"><a href="faq.html">Frequently Asked Questions</a></span></dt></dl></div></div><div class="navfooter"><hr/><table width="100%" summary="Navigation footer"><tr><td align="left"><a accesskey="p" href="api.html">Prev</a> </td><td align="center"> </td><td align="right"> <a accesskey="n" href="faq.html">Next</a></td></tr><tr><td align="left" valign="top">The GNU C++ Library API Reference </td><td align="center"><a accesskey="h" href="index.html">Home</a></td><td align="right" valign="top"> Frequently Asked Questions</td></tr></table></div></body></html> | |
669 | +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> | |
670 | +<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title></title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1" /><meta name="keywords" content=" ISO C++ , runtime , library " /><link rel="home" href="index.html" title="The GNU C++ Library" /><link rel="up" href="index.html" title="The GNU C++ Library" /><link rel="prev" href="api.html" title="The GNU C++ Library API Reference" /><link rel="next" href="faq.html" title="Frequently Asked Questions" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="api.html">Prev</a> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a accesskey="n" href="faq.html">Next</a></td></tr></table><hr /></div><div class="book"><div class="titlepage"><hr /></div><div class="toc"><p><strong>Table of Contents</strong></p><dl><dt><span class="article"><a href="faq.html">Frequently Asked Questions</a></span></dt></dl></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="api.html">Prev</a> </td><td width="20%" align="center"> </td><td width="40%" align="right"> <a accesskey="n" href="faq.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">The GNU C++ Library API Reference </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> Frequently Asked Questions</td></tr></table></div></body></html> | |
671 | Index: libstdc++-v3/doc/html/faq.html | |
672 | =================================================================== | |
9f95000d AM |
673 | --- libstdc++-v3/doc/html/faq.html (.../tags/gcc_4_7_2_release) (wersja 192468) |
674 | +++ libstdc++-v3/doc/html/faq.html (.../branches/gcc-4_7-branch) (wersja 192468) | |
5a87b929 AM |
675 | @@ -1,10 +1,10 @@ |
676 | <?xml version="1.0" encoding="UTF-8" standalone="no"?> | |
677 | -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> | |
678 | -<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Frequently Asked Questions</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1"/><meta name="keywords" content=" ISO C++ , runtime , library "/><link rel="home" href="index.html" title="The GNU C++ Library"/><link rel="up" href="bk03.html" title=""/><link rel="prev" href="bk03.html" title=""/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Frequently Asked Questions</th></tr><tr><td align="left"><a accesskey="p" href="bk03.html">Prev</a> </td><th width="60%" align="center"/><td align="right"> </td></tr></table><hr/></div><div class="article" title="Frequently Asked Questions"><div class="titlepage"><div><div><h1 class="title"><a id="faq"/>Frequently Asked Questions</h1></div><div><p class="copyright">Copyright © | |
679 | +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> | |
680 | +<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Frequently Asked Questions</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1" /><meta name="keywords" content=" ISO C++ , runtime , library " /><link rel="home" href="index.html" title="The GNU C++ Library" /><link rel="up" href="bk03.html" title="" /><link rel="prev" href="bk03.html" title="" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Frequently Asked Questions</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="bk03.html">Prev</a> </td><th width="60%" align="center"></th><td width="20%" align="right"> </td></tr></table><hr /></div><div class="article" title="Frequently Asked Questions"><div class="titlepage"><div><div><h1 class="title"><a id="faq"></a>Frequently Asked Questions</h1></div><div><p class="copyright">Copyright © | |
681 | 2008, 2010 | |
682 | ||
683 | - <a class="link" href="http://www.fsf.org">FSF</a> | |
684 | - </p></div></div><hr/></div><div class="qandaset" title="Frequently Asked Questions"><a id="id373797"/><dl><dt/><dd><dl><dt>1.1. <a href="faq.html#faq.what"> | |
685 | + <a class="link" href="http://www.fsf.org" target="_top">FSF</a> | |
686 | + </p></div></div><hr /></div><div class="qandaset" title="Frequently Asked Questions"><a id="id575606"></a><dl><dt></dt><dd><dl><dt>1.1. <a href="faq.html#faq.what"> | |
687 | What is libstdc++? | |
688 | </a></dt><dt>1.2. <a href="faq.html#faq.why"> | |
689 | Why should I use libstdc++? | |
690 | @@ -18,7 +18,7 @@ | |
691 | What happened to the older libg++? I need that! | |
692 | </a></dt><dt>1.7. <a href="faq.html#faq.more_questions"> | |
693 | What if I have more questions? | |
694 | - </a></dt></dl></dd><dt/><dd><dl><dt>2.1. <a href="faq.html#faq.license.what"> | |
695 | + </a></dt></dl></dd><dt></dt><dd><dl><dt>2.1. <a href="faq.html#faq.license.what"> | |
696 | What are the license terms for libstdc++? | |
697 | </a></dt><dt>2.2. <a href="faq.html#faq.license.any_program"> | |
698 | So any program which uses libstdc++ falls under the GPL? | |
699 | @@ -26,7 +26,7 @@ | |
700 | How is that different from the GNU {Lesser,Library} GPL? | |
701 | </a></dt><dt>2.4. <a href="faq.html#faq.license.what_restrictions"> | |
702 | I see. So, what restrictions are there on programs that use the library? | |
703 | - </a></dt></dl></dd><dt/><dd><dl><dt>3.1. <a href="faq.html#faq.how_to_install">How do I install libstdc++? | |
704 | + </a></dt></dl></dd><dt></dt><dd><dl><dt>3.1. <a href="faq.html#faq.how_to_install">How do I install libstdc++? | |
705 | </a></dt><dt>3.2. <a href="faq.html#faq.how_to_get_sources">How does one get current libstdc++ sources? | |
706 | </a></dt><dt>3.3. <a href="faq.html#faq.how_to_test">How do I know if it works? | |
707 | </a></dt><dt>3.4. <a href="faq.html#faq.how_to_set_paths">How do I insure that the dynamically linked library will be found? | |
708 | @@ -34,7 +34,7 @@ | |
709 | What's libsupc++? | |
710 | </a></dt><dt>3.6. <a href="faq.html#faq.size"> | |
711 | This library is HUGE! | |
712 | - </a></dt></dl></dd><dt/><dd><dl><dt>4.1. <a href="faq.html#faq.other_compilers"> | |
713 | + </a></dt></dl></dd><dt></dt><dd><dl><dt>4.1. <a href="faq.html#faq.other_compilers"> | |
714 | Can libstdc++ be used with non-GNU compilers? | |
715 | </a></dt><dt>4.2. <a href="faq.html#faq.solaris_long_long"> | |
716 | No 'long long' type on Solaris? | |
717 | @@ -50,13 +50,13 @@ | |
718 | Recent GNU/Linux glibc required? | |
719 | </a></dt><dt>4.8. <a href="faq.html#faq.freebsd_wchar"> | |
720 | Can't use wchar_t/wstring on FreeBSD | |
721 | - </a></dt></dl></dd><dt/><dd><dl><dt>5.1. <a href="faq.html#faq.what_works"> | |
722 | + </a></dt></dl></dd><dt></dt><dd><dl><dt>5.1. <a href="faq.html#faq.what_works"> | |
723 | What works already? | |
724 | </a></dt><dt>5.2. <a href="faq.html#faq.standard_bugs"> | |
725 | Bugs in the ISO C++ language or library specification | |
726 | </a></dt><dt>5.3. <a href="faq.html#faq.compiler_bugs"> | |
727 | Bugs in the compiler (gcc/g++) and not libstdc++ | |
728 | - </a></dt></dl></dd><dt/><dd><dl><dt>6.1. <a href="faq.html#faq.stream_reopening_fails"> | |
729 | + </a></dt></dl></dd><dt></dt><dd><dl><dt>6.1. <a href="faq.html#faq.stream_reopening_fails"> | |
730 | Reopening a stream fails | |
731 | </a></dt><dt>6.2. <a href="faq.html#faq.wefcxx_verbose"> | |
732 | -Weffc++ complains too much | |
733 | @@ -76,7 +76,7 @@ | |
734 | list::size() is O(n)! | |
735 | </a></dt><dt>6.9. <a href="faq.html#faq.easy_to_fix"> | |
736 | Aw, that's easy to fix! | |
737 | - </a></dt></dl></dd><dt/><dd><dl><dt>7.1. <a href="faq.html#faq.iterator_as_pod"> | |
738 | + </a></dt></dl></dd><dt></dt><dd><dl><dt>7.1. <a href="faq.html#faq.iterator_as_pod"> | |
739 | string::iterator is not char*; vector<T>::iterator is not T* | |
740 | </a></dt><dt>7.2. <a href="faq.html#faq.what_is_next"> | |
741 | What's next after libstdc++? | |
742 | @@ -91,7 +91,7 @@ | |
743 | What's an ABI and why is it so messy? | |
744 | </a></dt><dt>7.8. <a href="faq.html#faq.size_equals_capacity"> | |
745 | How do I make std::vector<T>::capacity() == std::vector<T>::size? | |
746 | - </a></dt></dl></dd></dl><table border="0" width="100%" summary="Q and A Set"><col align="left" width="1%"/><col/><tbody><tr class="toc"><td align="left" valign="top" colspan="2"><dl><dt>1.1. <a href="faq.html#faq.what"> | |
747 | + </a></dt></dl></dd></dl><table border="0" width="100%" summary="Q and A Set"><col align="left" width="1%" /><col /><tbody><tr class="toc"><td align="left" valign="top" colspan="2"><dl><dt>1.1. <a href="faq.html#faq.what"> | |
748 | What is libstdc++? | |
749 | </a></dt><dt>1.2. <a href="faq.html#faq.why"> | |
750 | Why should I use libstdc++? | |
751 | @@ -105,19 +105,19 @@ | |
752 | What happened to the older libg++? I need that! | |
753 | </a></dt><dt>1.7. <a href="faq.html#faq.more_questions"> | |
754 | What if I have more questions? | |
755 | - </a></dt></dl></td></tr><tr class="question" title="1.1."><td align="left" valign="top"><a id="faq.what"/><a id="faq.what.q"/><p><strong>1.1.</strong></p></td><td align="left" valign="top"><p> | |
756 | + </a></dt></dl></td></tr><tr class="question" title="1.1."><td align="left" valign="top"><a id="faq.what"></a><a id="faq.what.q"></a><p><strong>1.1.</strong></p></td><td align="left" valign="top"><p> | |
757 | What is libstdc++? | |
758 | - </p></td></tr><tr class="answer"><td align="left" valign="top"><a id="faq.what.a"/></td><td align="left" valign="top"><p> | |
759 | + </p></td></tr><tr class="answer"><td align="left" valign="top"><a id="faq.what.a"></a></td><td align="left" valign="top"><p> | |
760 | The GNU Standard C++ Library v3 is an ongoing project to | |
761 | implement the ISO 14882 Standard C++ library as described in | |
762 | chapters 17 through 27 and annex D. For those who want to see | |
763 | exactly how far the project has come, or just want the latest | |
764 | bleeding-edge code, the up-to-date source is available over | |
765 | anonymous SVN, and can even be browsed over | |
766 | - the <a class="link" href="http://gcc.gnu.org/svn.html">web</a>. | |
767 | - </p></td></tr><tr class="question" title="1.2."><td align="left" valign="top"><a id="faq.why"/><a id="q-why"/><p><strong>1.2.</strong></p></td><td align="left" valign="top"><p> | |
768 | + the <a class="link" href="http://gcc.gnu.org/svn.html" target="_top">web</a>. | |
769 | + </p></td></tr><tr class="question" title="1.2."><td align="left" valign="top"><a id="faq.why"></a><a id="q-why"></a><p><strong>1.2.</strong></p></td><td align="left" valign="top"><p> | |
770 | Why should I use libstdc++? | |
771 | - </p></td></tr><tr class="answer"><td align="left" valign="top"><a id="a-why"/></td><td align="left" valign="top"><p> | |
772 | + </p></td></tr><tr class="answer"><td align="left" valign="top"><a id="a-why"></a></td><td align="left" valign="top"><p> | |
773 | The completion of the ISO C++ standardization gave the C++ | |
774 | community a powerful set of reuseable tools in the form of the C++ | |
775 | Standard Library. However, all existing C++ implementations are | |
776 | @@ -129,9 +129,9 @@ | |
777 | (<span class="command"><strong>gcc</strong></span>, <span class="command"><strong>g++</strong></span>, etc) is widely | |
778 | considered to be one of the leading compilers in the world. Its | |
779 | development is overseen by the | |
780 | - <a class="link" href="http://gcc.gnu.org/">GCC team</a>. All of | |
781 | + <a class="link" href="http://gcc.gnu.org/" target="_top">GCC team</a>. All of | |
782 | the rapid development and near-legendary | |
783 | - <a class="link" href="http://gcc.gnu.org/buildstat.html">portability</a> | |
784 | + <a class="link" href="http://gcc.gnu.org/buildstat.html" target="_top">portability</a> | |
785 | that are the hallmarks of an open-source project are being | |
786 | applied to libstdc++. | |
787 | </p><p> | |
788 | @@ -141,9 +141,9 @@ | |
789 | <code class="classname">vector<></code>, iostreams, and algorithms.) | |
790 | Programmers will no longer need to <span class="quote">“<span class="quote">roll their own</span>”</span> | |
791 | nor be worried about platform-specific incompatibilities. | |
792 | - </p></td></tr><tr class="question" title="1.3."><td align="left" valign="top"><a id="faq.who"/><a id="q-who"/><p><strong>1.3.</strong></p></td><td align="left" valign="top"><p> | |
793 | + </p></td></tr><tr class="question" title="1.3."><td align="left" valign="top"><a id="faq.who"></a><a id="q-who"></a><p><strong>1.3.</strong></p></td><td align="left" valign="top"><p> | |
794 | Who's in charge of it? | |
795 | - </p></td></tr><tr class="answer"><td align="left" valign="top"><a id="a-who"/></td><td align="left" valign="top"><p> | |
796 | + </p></td></tr><tr class="answer"><td align="left" valign="top"><a id="a-who"></a></td><td align="left" valign="top"><p> | |
797 | The libstdc++ project is contributed to by several developers | |
798 | all over the world, in the same way as GCC or the Linux kernel. | |
799 | Benjamin Kosnik, Gabriel Dos Reis, Phil Edwards, Ulrich Drepper, | |
800 | @@ -153,17 +153,17 @@ | |
801 | Development and discussion is held on the libstdc++ mailing | |
802 | list. Subscribing to the list, or searching the list | |
803 | archives, is open to everyone. You can read instructions for | |
804 | - doing so on the <a class="link" href="http://gcc.gnu.org/libstdc++/">homepage</a>. | |
805 | + doing so on the <a class="link" href="http://gcc.gnu.org/libstdc++/" target="_top">homepage</a>. | |
806 | If you have questions, ideas, code, or are just curious, sign up! | |
807 | - </p></td></tr><tr class="question" title="1.4."><td align="left" valign="top"><a id="faq.when"/><a id="q-when"/><p><strong>1.4.</strong></p></td><td align="left" valign="top"><p> | |
808 | + </p></td></tr><tr class="question" title="1.4."><td align="left" valign="top"><a id="faq.when"></a><a id="q-when"></a><p><strong>1.4.</strong></p></td><td align="left" valign="top"><p> | |
809 | When is libstdc++ going to be finished? | |
810 | - </p></td></tr><tr class="answer"><td align="left" valign="top"><a id="a-when"/></td><td align="left" valign="top"><p> | |
811 | + </p></td></tr><tr class="answer"><td align="left" valign="top"><a id="a-when"></a></td><td align="left" valign="top"><p> | |
812 | Nathan Myers gave the best of all possible answers, responding to | |
813 | a Usenet article asking this question: <span class="emphasis"><em>Sooner, if you | |
814 | help.</em></span> | |
815 | - </p></td></tr><tr class="question" title="1.5."><td align="left" valign="top"><a id="faq.how"/><a id="q-how"/><p><strong>1.5.</strong></p></td><td align="left" valign="top"><p> | |
816 | + </p></td></tr><tr class="question" title="1.5."><td align="left" valign="top"><a id="faq.how"></a><a id="q-how"></a><p><strong>1.5.</strong></p></td><td align="left" valign="top"><p> | |
817 | How do I contribute to the effort? | |
818 | - </p></td></tr><tr class="answer"><td align="left" valign="top"><a id="a-how"/></td><td align="left" valign="top"><p> | |
819 | + </p></td></tr><tr class="answer"><td align="left" valign="top"><a id="a-how"></a></td><td align="left" valign="top"><p> | |
820 | Here is <a class="link" href="manual/appendix_contributing.html" title="Appendix A. Contributing">a page devoted to | |
821 | this topic</a>. Subscribing to the mailing list (see above, or | |
822 | the homepage) is a very good idea if you have something to | |
823 | @@ -172,17 +172,17 @@ | |
824 | anybody who is willing to help write documentation, for example, | |
825 | or has found a bug in code that we all thought was working and is | |
826 | willing to provide details, is more than welcome! | |
827 | - </p></td></tr><tr class="question" title="1.6."><td align="left" valign="top"><a id="faq.whereis_old"/><a id="q-whereis_old"/><p><strong>1.6.</strong></p></td><td align="left" valign="top"><p> | |
828 | + </p></td></tr><tr class="question" title="1.6."><td align="left" valign="top"><a id="faq.whereis_old"></a><a id="q-whereis_old"></a><p><strong>1.6.</strong></p></td><td align="left" valign="top"><p> | |
829 | What happened to the older libg++? I need that! | |
830 | - </p></td></tr><tr class="answer"><td align="left" valign="top"><a id="a-whereis_old"/></td><td align="left" valign="top"><p> | |
831 | + </p></td></tr><tr class="answer"><td align="left" valign="top"><a id="a-whereis_old"></a></td><td align="left" valign="top"><p> | |
832 | The most recent libg++ README states that libg++ is no longer | |
833 | being actively maintained. It should not be used for new | |
834 | projects, and is only being kicked along to support older code. | |
835 | </p><p> | |
836 | More information in the <a class="link" href="manual/backwards.html" title="Backwards Compatibility">backwards compatibility documentation</a> | |
837 | - </p></td></tr><tr class="question" title="1.7."><td align="left" valign="top"><a id="faq.more_questions"/><a id="q-more_questions"/><p><strong>1.7.</strong></p></td><td align="left" valign="top"><p> | |
838 | + </p></td></tr><tr class="question" title="1.7."><td align="left" valign="top"><a id="faq.more_questions"></a><a id="q-more_questions"></a><p><strong>1.7.</strong></p></td><td align="left" valign="top"><p> | |
839 | What if I have more questions? | |
840 | - </p></td></tr><tr class="answer"><td align="left" valign="top"><a id="a-more_questions"/></td><td align="left" valign="top"><p> | |
841 | + </p></td></tr><tr class="answer"><td align="left" valign="top"><a id="a-more_questions"></a></td><td align="left" valign="top"><p> | |
842 | If you have read the README file, and your question remains | |
843 | unanswered, then just ask the mailing list. At present, you do not | |
844 | need to be subscribed to the list to send a message to it. More | |
845 | @@ -201,19 +201,19 @@ | |
846 | How is that different from the GNU {Lesser,Library} GPL? | |
847 | </a></dt><dt>2.4. <a href="faq.html#faq.license.what_restrictions"> | |
848 | I see. So, what restrictions are there on programs that use the library? | |
849 | - </a></dt></dl></td></tr><tr class="question" title="2.1."><td align="left" valign="top"><a id="faq.license.what"/><a id="q-license.what"/><p><strong>2.1.</strong></p></td><td align="left" valign="top"><p> | |
850 | + </a></dt></dl></td></tr><tr class="question" title="2.1."><td align="left" valign="top"><a id="faq.license.what"></a><a id="q-license.what"></a><p><strong>2.1.</strong></p></td><td align="left" valign="top"><p> | |
851 | What are the license terms for libstdc++? | |
852 | - </p></td></tr><tr class="answer"><td align="left" valign="top"><a id="a-license.what"/></td><td align="left" valign="top"><p> | |
853 | + </p></td></tr><tr class="answer"><td align="left" valign="top"><a id="a-license.what"></a></td><td align="left" valign="top"><p> | |
854 | See <a class="link" href="manual/license.html" title="License">our license description</a> | |
855 | for these and related questions. | |
856 | - </p></td></tr><tr class="question" title="2.2."><td align="left" valign="top"><a id="faq.license.any_program"/><a id="q-license.any_program"/><p><strong>2.2.</strong></p></td><td align="left" valign="top"><p> | |
857 | + </p></td></tr><tr class="question" title="2.2."><td align="left" valign="top"><a id="faq.license.any_program"></a><a id="q-license.any_program"></a><p><strong>2.2.</strong></p></td><td align="left" valign="top"><p> | |
858 | So any program which uses libstdc++ falls under the GPL? | |
859 | - </p></td></tr><tr class="answer"><td align="left" valign="top"><a id="a-license.any_program"/></td><td align="left" valign="top"><p> | |
860 | + </p></td></tr><tr class="answer"><td align="left" valign="top"><a id="a-license.any_program"></a></td><td align="left" valign="top"><p> | |
861 | No. The special exception permits use of the library in | |
862 | proprietary applications. | |
863 | - </p></td></tr><tr class="question" title="2.3."><td align="left" valign="top"><a id="faq.license.lgpl"/><a id="q-license.lgpl"/><p><strong>2.3.</strong></p></td><td align="left" valign="top"><p> | |
864 | + </p></td></tr><tr class="question" title="2.3."><td align="left" valign="top"><a id="faq.license.lgpl"></a><a id="q-license.lgpl"></a><p><strong>2.3.</strong></p></td><td align="left" valign="top"><p> | |
865 | How is that different from the GNU {Lesser,Library} GPL? | |
866 | - </p></td></tr><tr class="answer"><td align="left" valign="top"><a id="a-license.lgpl"/></td><td align="left" valign="top"><p> | |
867 | + </p></td></tr><tr class="answer"><td align="left" valign="top"><a id="a-license.lgpl"></a></td><td align="left" valign="top"><p> | |
868 | The LGPL requires that users be able to replace the LGPL code with a | |
869 | modified version; this is trivial if the library in question is a C | |
870 | shared library. But there's no way to make that work with C++, where | |
871 | @@ -221,9 +221,9 @@ | |
872 | are expanded inside the code that uses the library. So to allow people | |
873 | to replace the library code, someone using the library would have to | |
874 | distribute their own source, rendering the LGPL equivalent to the GPL. | |
875 | - </p></td></tr><tr class="question" title="2.4."><td align="left" valign="top"><a id="faq.license.what_restrictions"/><a id="q-license.what_restrictions"/><p><strong>2.4.</strong></p></td><td align="left" valign="top"><p> | |
876 | + </p></td></tr><tr class="question" title="2.4."><td align="left" valign="top"><a id="faq.license.what_restrictions"></a><a id="q-license.what_restrictions"></a><p><strong>2.4.</strong></p></td><td align="left" valign="top"><p> | |
877 | I see. So, what restrictions are there on programs that use the library? | |
878 | - </p></td></tr><tr class="answer"><td align="left" valign="top"><a id="a-license.what_restrictions"/></td><td align="left" valign="top"><p> | |
879 | + </p></td></tr><tr class="answer"><td align="left" valign="top"><a id="a-license.what_restrictions"></a></td><td align="left" valign="top"><p> | |
880 | None. We encourage such programs to be released as open source, | |
881 | but we won't punish you or sue you if you choose otherwise. | |
882 | </p></td></tr><tr class="toc"><td align="left" valign="top" colspan="2"><dl><dt>3.1. <a href="faq.html#faq.how_to_install">How do I install libstdc++? | |
883 | @@ -234,8 +234,8 @@ | |
884 | What's libsupc++? | |
885 | </a></dt><dt>3.6. <a href="faq.html#faq.size"> | |
886 | This library is HUGE! | |
887 | - </a></dt></dl></td></tr><tr class="question" title="3.1."><td align="left" valign="top"><a id="faq.how_to_install"/><a id="q-how_to_install"/><p><strong>3.1.</strong></p></td><td align="left" valign="top"><p>How do I install libstdc++? | |
888 | - </p></td></tr><tr class="answer"><td align="left" valign="top"><a id="a-how_to_install"/></td><td align="left" valign="top"><p> | |
889 | + </a></dt></dl></td></tr><tr class="question" title="3.1."><td align="left" valign="top"><a id="faq.how_to_install"></a><a id="q-how_to_install"></a><p><strong>3.1.</strong></p></td><td align="left" valign="top"><p>How do I install libstdc++? | |
890 | + </p></td></tr><tr class="answer"><td align="left" valign="top"><a id="a-how_to_install"></a></td><td align="left" valign="top"><p> | |
891 | Often libstdc++ comes pre-installed as an integral part of many | |
892 | existing GNU/Linux and Unix systems, as well as many embedded | |
893 | development tools. It may be necessary to install extra | |
894 | @@ -247,11 +247,11 @@ | |
895 | documentation</a> for detailed | |
896 | instructions. You may wish to browse those files ahead | |
897 | of time to get a feel for what's required. | |
898 | - </p></td></tr><tr class="question" title="3.2."><td align="left" valign="top"><a id="faq.how_to_get_sources"/><a id="q-how_to_get_sources"/><p><strong>3.2.</strong></p></td><td align="left" valign="top"><p>How does one get current libstdc++ sources? | |
899 | - </p></td></tr><tr class="answer"><td align="left" valign="top"><a id="a-how_to_get_sources"/></td><td align="left" valign="top"><p> | |
900 | + </p></td></tr><tr class="question" title="3.2."><td align="left" valign="top"><a id="faq.how_to_get_sources"></a><a id="q-how_to_get_sources"></a><p><strong>3.2.</strong></p></td><td align="left" valign="top"><p>How does one get current libstdc++ sources? | |
901 | + </p></td></tr><tr class="answer"><td align="left" valign="top"><a id="a-how_to_get_sources"></a></td><td align="left" valign="top"><p> | |
902 | Libstdc++ sources for all official releases can be obtained as | |
903 | part of the GCC sources, available from various sites and | |
904 | - mirrors. A full <a class="link" href="http://gcc.gnu.org/mirrors.html">list of | |
905 | + mirrors. A full <a class="link" href="http://gcc.gnu.org/mirrors.html" target="_top">list of | |
906 | download sites</a> is provided on the main GCC site. | |
907 | </p><p> | |
908 | Current libstdc++ sources can always be checked out of the main | |
909 | @@ -262,7 +262,7 @@ | |
910 | <span class="application">Subversion</span>, or <acronym class="acronym">SVN</acronym>, is | |
911 | one of several revision control packages. It was selected for GNU | |
912 | projects because it's free (speech), free (beer), and very high | |
913 | - quality. The <a class="link" href="http://subversion.tigris.org"> Subversion | |
914 | + quality. The <a class="link" href="http://subversion.tigris.org" target="_top"> Subversion | |
915 | home page</a> has a better description. | |
916 | </p><p> | |
917 | The <span class="quote">“<span class="quote">anonymous client checkout</span>”</span> feature of SVN is | |
918 | @@ -270,21 +270,21 @@ | |
919 | the latest libstdc++ sources. | |
920 | </p><p> | |
921 | For more information | |
922 | - see <a class="link" href="http://gcc.gnu.org/svn.html"><acronym class="acronym">SVN</acronym> | |
923 | + see <a class="link" href="http://gcc.gnu.org/svn.html" target="_top"><acronym class="acronym">SVN</acronym> | |
924 | details</a>. | |
925 | - </p></td></tr><tr class="question" title="3.3."><td align="left" valign="top"><a id="faq.how_to_test"/><a id="q-how_to_test"/><p><strong>3.3.</strong></p></td><td align="left" valign="top"><p>How do I know if it works? | |
926 | - </p></td></tr><tr class="answer"><td align="left" valign="top"><a id="a-how_to_test"/></td><td align="left" valign="top"><p> | |
927 | + </p></td></tr><tr class="question" title="3.3."><td align="left" valign="top"><a id="faq.how_to_test"></a><a id="q-how_to_test"></a><p><strong>3.3.</strong></p></td><td align="left" valign="top"><p>How do I know if it works? | |
928 | + </p></td></tr><tr class="answer"><td align="left" valign="top"><a id="a-how_to_test"></a></td><td align="left" valign="top"><p> | |
929 | Libstdc++ comes with its own validation testsuite, which includes | |
930 | conformance testing, regression testing, ABI testing, and | |
931 | performance testing. Please consult the | |
932 | - <a class="link" href="http://gcc.gnu.org/install/test.html">testing | |
933 | + <a class="link" href="http://gcc.gnu.org/install/test.html" target="_top">testing | |
934 | documentation</a> for more details. | |
935 | </p><p> | |
936 | If you find bugs in the testsuite programs themselves, or if you | |
937 | think of a new test program that should be added to the suite, | |
938 | <span class="emphasis"><em>please</em></span> write up your idea and send it to the list! | |
939 | - </p></td></tr><tr class="question" title="3.4."><td align="left" valign="top"><a id="faq.how_to_set_paths"/><a id="q-how_to_set_paths"/><p><strong>3.4.</strong></p></td><td align="left" valign="top"><p>How do I insure that the dynamically linked library will be found? | |
940 | - </p></td></tr><tr class="answer"><td align="left" valign="top"><a id="a-how_to_set_paths"/></td><td align="left" valign="top"><p> | |
941 | + </p></td></tr><tr class="question" title="3.4."><td align="left" valign="top"><a id="faq.how_to_set_paths"></a><a id="q-how_to_set_paths"></a><p><strong>3.4.</strong></p></td><td align="left" valign="top"><p>How do I insure that the dynamically linked library will be found? | |
942 | + </p></td></tr><tr class="answer"><td align="left" valign="top"><a id="a-how_to_set_paths"></a></td><td align="left" valign="top"><p> | |
943 | Depending on your platform and library version, the error message might | |
944 | be similar to one of the following: | |
945 | </p><pre class="screen"> | |
946 | @@ -318,9 +318,9 @@ | |
947 | </p><p> | |
948 | Using LD_LIBRARY_PATH is not always the best solution, <a class="link" href="manual/using_dynamic_or_shared.html#manual.intro.using.linkage.dynamic" title="Finding Dynamic or Shared Libraries">Finding Dynamic or Shared | |
949 | Libraries</a> in the manual gives some alternatives. | |
950 | - </p></td></tr><tr class="question" title="3.5."><td align="left" valign="top"><a id="faq.what_is_libsupcxx"/><a id="q-what_is_libsupcxx"/><p><strong>3.5.</strong></p></td><td align="left" valign="top"><p> | |
951 | + </p></td></tr><tr class="question" title="3.5."><td align="left" valign="top"><a id="faq.what_is_libsupcxx"></a><a id="q-what_is_libsupcxx"></a><p><strong>3.5.</strong></p></td><td align="left" valign="top"><p> | |
952 | What's libsupc++? | |
953 | - </p></td></tr><tr class="answer"><td align="left" valign="top"><a id="a-what_is_libsupcxx"/></td><td align="left" valign="top"><p> | |
954 | + </p></td></tr><tr class="answer"><td align="left" valign="top"><a id="a-what_is_libsupcxx"></a></td><td align="left" valign="top"><p> | |
955 | If the only functions from <code class="filename">libstdc++.a</code> | |
956 | which you need are language support functions (those listed in | |
957 | <a class="link" href="manual/support.html" title="Chapter 4. Support">clause 18</a> of the | |
958 | @@ -335,9 +335,9 @@ | |
959 | using anything from the rest of the library, such as IOStreams | |
960 | or vectors, then you'll still need pieces from | |
961 | <code class="filename">libstdc++.a</code>. | |
962 | - </p></td></tr><tr class="question" title="3.6."><td align="left" valign="top"><a id="faq.size"/><a id="q-size"/><p><strong>3.6.</strong></p></td><td align="left" valign="top"><p> | |
963 | + </p></td></tr><tr class="question" title="3.6."><td align="left" valign="top"><a id="faq.size"></a><a id="q-size"></a><p><strong>3.6.</strong></p></td><td align="left" valign="top"><p> | |
964 | This library is HUGE! | |
965 | - </p></td></tr><tr class="answer"><td align="left" valign="top"><a id="a-size"/></td><td align="left" valign="top"><p> | |
966 | + </p></td></tr><tr class="answer"><td align="left" valign="top"><a id="a-size"></a></td><td align="left" valign="top"><p> | |
967 | Usually the size of libraries on disk isn't noticeable. When a | |
968 | link editor (or simply <span class="quote">“<span class="quote">linker</span>”</span>) pulls things from a | |
969 | static archive library, only the necessary object files are copied | |
970 | @@ -382,9 +382,9 @@ | |
971 | Recent GNU/Linux glibc required? | |
972 | </a></dt><dt>4.8. <a href="faq.html#faq.freebsd_wchar"> | |
973 | Can't use wchar_t/wstring on FreeBSD | |
974 | - </a></dt></dl></td></tr><tr class="question" title="4.1."><td align="left" valign="top"><a id="faq.other_compilers"/><a id="q-other_compilers"/><p><strong>4.1.</strong></p></td><td align="left" valign="top"><p> | |
975 | + </a></dt></dl></td></tr><tr class="question" title="4.1."><td align="left" valign="top"><a id="faq.other_compilers"></a><a id="q-other_compilers"></a><p><strong>4.1.</strong></p></td><td align="left" valign="top"><p> | |
976 | Can libstdc++ be used with non-GNU compilers? | |
977 | - </p></td></tr><tr class="answer"><td align="left" valign="top"><a id="a-other_compilers"/></td><td align="left" valign="top"><p> | |
978 | + </p></td></tr><tr class="answer"><td align="left" valign="top"><a id="a-other_compilers"></a></td><td align="left" valign="top"><p> | |
979 | Perhaps. | |
980 | </p><p> | |
981 | Since the goal of ISO Standardization is for all C++ | |
982 | @@ -402,9 +402,9 @@ | |
983 | been known to work with versions of the EDG C++ compiler, and | |
984 | vendor-specific proprietary C++ compilers such as the Intel ICC | |
985 | C++ compiler. | |
986 | - </p></td></tr><tr class="question" title="4.2."><td align="left" valign="top"><a id="faq.solaris_long_long"/><a id="q-solaris_long_long"/><p><strong>4.2.</strong></p></td><td align="left" valign="top"><p> | |
987 | + </p></td></tr><tr class="question" title="4.2."><td align="left" valign="top"><a id="faq.solaris_long_long"></a><a id="q-solaris_long_long"></a><p><strong>4.2.</strong></p></td><td align="left" valign="top"><p> | |
988 | No 'long long' type on Solaris? | |
989 | - </p></td></tr><tr class="answer"><td align="left" valign="top"><a id="a-solaris_long_long"/></td><td align="left" valign="top"><p> | |
990 | + </p></td></tr><tr class="answer"><td align="left" valign="top"><a id="a-solaris_long_long"></a></td><td align="left" valign="top"><p> | |
991 | By default we try to support the C99 <span class="type">long long</span> type. | |
992 | This requires that certain functions from your C library be present. | |
993 | </p><p> | |
994 | @@ -414,9 +414,9 @@ | |
995 | commonly reported platform affected was Solaris. | |
996 | </p><p> | |
997 | This has been fixed for libstdc++ releases greater than 3.0.3. | |
998 | - </p></td></tr><tr class="question" title="4.3."><td align="left" valign="top"><a id="faq.predefined"/><a id="q-predefined"/><p><strong>4.3.</strong></p></td><td align="left" valign="top"><p> | |
999 | + </p></td></tr><tr class="question" title="4.3."><td align="left" valign="top"><a id="faq.predefined"></a><a id="q-predefined"></a><p><strong>4.3.</strong></p></td><td align="left" valign="top"><p> | |
1000 | <code class="constant">_XOPEN_SOURCE</code> and <code class="constant">_GNU_SOURCE</code> are always defined? | |
1001 | - </p></td></tr><tr class="answer"><td align="left" valign="top"><a id="a-predefined"/></td><td align="left" valign="top"><p>On Solaris, g++ (but not gcc) always defines the preprocessor | |
1002 | + </p></td></tr><tr class="answer"><td align="left" valign="top"><a id="a-predefined"></a></td><td align="left" valign="top"><p>On Solaris, g++ (but not gcc) always defines the preprocessor | |
1003 | macro <code class="constant">_XOPEN_SOURCE</code>. On GNU/Linux, the same happens | |
1004 | with <code class="constant">_GNU_SOURCE</code>. (This is not an exhaustive list; | |
1005 | other macros and other platforms are also affected.) | |
1006 | @@ -440,18 +440,18 @@ | |
1007 | <span class="command"><strong>g++ -E -dM - < /dev/null"</strong></span> to display | |
1008 | a list of predefined macros for any particular installation. | |
1009 | </p><p>This has been discussed on the mailing lists | |
1010 | - <a class="link" href="http://gcc.gnu.org/cgi-bin/htsearch?method=and&format=builtin-long&sort=score&words=_XOPEN_SOURCE+Solaris">quite a bit</a>. | |
1011 | + <a class="link" href="http://gcc.gnu.org/cgi-bin/htsearch?method=and&format=builtin-long&sort=score&words=_XOPEN_SOURCE+Solaris" target="_top">quite a bit</a>. | |
1012 | </p><p>This method is something of a wart. We'd like to find a cleaner | |
1013 | solution, but nobody yet has contributed the time. | |
1014 | - </p></td></tr><tr class="question" title="4.4."><td align="left" valign="top"><a id="faq.darwin_ctype"/><a id="q-darwin_ctype"/><p><strong>4.4.</strong></p></td><td align="left" valign="top"><p> | |
1015 | + </p></td></tr><tr class="question" title="4.4."><td align="left" valign="top"><a id="faq.darwin_ctype"></a><a id="q-darwin_ctype"></a><p><strong>4.4.</strong></p></td><td align="left" valign="top"><p> | |
1016 | Mac OS X <code class="filename">ctype.h</code> is broken! How can I fix it? | |
1017 | - </p></td></tr><tr class="answer"><td align="left" valign="top"><a id="a-darwin_ctype"/></td><td align="left" valign="top"><p>This is a long-standing bug in the OS X support. Fortunately, | |
1018 | + </p></td></tr><tr class="answer"><td align="left" valign="top"><a id="a-darwin_ctype"></a></td><td align="left" valign="top"><p>This is a long-standing bug in the OS X support. Fortunately, | |
1019 | the patch is quite simple, and well-known. | |
1020 | - <a class="link" href="http://gcc.gnu.org/ml/gcc/2002-03/msg00817.html"> Here's a | |
1021 | + <a class="link" href="http://gcc.gnu.org/ml/gcc/2002-03/msg00817.html" target="_top"> Here's a | |
1022 | link to the solution</a>. | |
1023 | - </p></td></tr><tr class="question" title="4.5."><td align="left" valign="top"><a id="faq.threads_i386"/><a id="q-threads_i386"/><p><strong>4.5.</strong></p></td><td align="left" valign="top"><p> | |
1024 | + </p></td></tr><tr class="question" title="4.5."><td align="left" valign="top"><a id="faq.threads_i386"></a><a id="q-threads_i386"></a><p><strong>4.5.</strong></p></td><td align="left" valign="top"><p> | |
1025 | Threading is broken on i386? | |
1026 | - </p></td></tr><tr class="answer"><td align="left" valign="top"><a id="a-threads_i386"/></td><td align="left" valign="top"><p> | |
1027 | + </p></td></tr><tr class="answer"><td align="left" valign="top"><a id="a-threads_i386"></a></td><td align="left" valign="top"><p> | |
1028 | </p><p>Support for atomic integer operations is/was broken on i386 | |
1029 | platforms. The assembly code accidentally used opcodes that are | |
1030 | only available on the i486 and later. So if you configured GCC | |
1031 | @@ -459,9 +459,9 @@ | |
1032 | on an i686, then you would encounter no problems. Only when | |
1033 | actually running the code on a i386 will the problem appear. | |
1034 | </p><p>This is fixed in 3.2.2. | |
1035 | - </p></td></tr><tr class="question" title="4.6."><td align="left" valign="top"><a id="faq.atomic_mips"/><a id="q-atomic_mips"/><p><strong>4.6.</strong></p></td><td align="left" valign="top"><p> | |
1036 | + </p></td></tr><tr class="question" title="4.6."><td align="left" valign="top"><a id="faq.atomic_mips"></a><a id="q-atomic_mips"></a><p><strong>4.6.</strong></p></td><td align="left" valign="top"><p> | |
1037 | MIPS atomic operations | |
1038 | - </p></td></tr><tr class="answer"><td align="left" valign="top"><a id="a-atomic_mips"/></td><td align="left" valign="top"><p> | |
1039 | + </p></td></tr><tr class="answer"><td align="left" valign="top"><a id="a-atomic_mips"></a></td><td align="left" valign="top"><p> | |
1040 | The atomic locking routines for MIPS targets requires MIPS II | |
1041 | and later. A patch went in just after the 3.3 release to | |
1042 | make mips* use the generic implementation instead. You can also | |
1043 | @@ -469,9 +469,9 @@ | |
1044 | </p><p> | |
1045 | The mips*-*-linux* port continues to use the MIPS II routines, and more | |
1046 | work in this area is expected. | |
1047 | - </p></td></tr><tr class="question" title="4.7."><td align="left" valign="top"><a id="faq.linux_glibc"/><a id="q-linux_glibc"/><p><strong>4.7.</strong></p></td><td align="left" valign="top"><p> | |
1048 | + </p></td></tr><tr class="question" title="4.7."><td align="left" valign="top"><a id="faq.linux_glibc"></a><a id="q-linux_glibc"></a><p><strong>4.7.</strong></p></td><td align="left" valign="top"><p> | |
1049 | Recent GNU/Linux glibc required? | |
1050 | - </p></td></tr><tr class="answer"><td align="left" valign="top"><a id="a-linux_glibc"/></td><td align="left" valign="top"><p>When running on GNU/Linux, libstdc++ 3.2.1 (shared library version | |
1051 | + </p></td></tr><tr class="answer"><td align="left" valign="top"><a id="a-linux_glibc"></a></td><td align="left" valign="top"><p>When running on GNU/Linux, libstdc++ 3.2.1 (shared library version | |
1052 | 5.0.1) and later uses localization and formatting code from the system | |
1053 | C library (glibc) version 2.2.5 which contains necessary bugfixes. | |
1054 | Most GNU/Linux distros make more recent versions available now. | |
1055 | @@ -480,9 +480,9 @@ | |
1056 | </p><p>The guideline is simple: the more recent the C++ library, the | |
1057 | more recent the C library. (This is also documented in the main | |
1058 | GCC installation instructions.) | |
1059 | - </p></td></tr><tr class="question" title="4.8."><td align="left" valign="top"><a id="faq.freebsd_wchar"/><a id="q-freebsd_wchar"/><p><strong>4.8.</strong></p></td><td align="left" valign="top"><p> | |
1060 | + </p></td></tr><tr class="question" title="4.8."><td align="left" valign="top"><a id="faq.freebsd_wchar"></a><a id="q-freebsd_wchar"></a><p><strong>4.8.</strong></p></td><td align="left" valign="top"><p> | |
1061 | Can't use wchar_t/wstring on FreeBSD | |
1062 | - </p></td></tr><tr class="answer"><td align="left" valign="top"><a id="a-freebsd_wchar"/></td><td align="left" valign="top"><p> | |
1063 | + </p></td></tr><tr class="answer"><td align="left" valign="top"><a id="a-freebsd_wchar"></a></td><td align="left" valign="top"><p> | |
1064 | Older versions of FreeBSD's C library do not have sufficient | |
1065 | support for wide character functions, and as a result the | |
1066 | libstdc++ configury decides that wchar_t support should be | |
1067 | @@ -499,9 +499,9 @@ | |
1068 | Bugs in the ISO C++ language or library specification | |
1069 | </a></dt><dt>5.3. <a href="faq.html#faq.compiler_bugs"> | |
1070 | Bugs in the compiler (gcc/g++) and not libstdc++ | |
1071 | - </a></dt></dl></td></tr><tr class="question" title="5.1."><td align="left" valign="top"><a id="faq.what_works"/><a id="q-what_works"/><p><strong>5.1.</strong></p></td><td align="left" valign="top"><p> | |
1072 | + </a></dt></dl></td></tr><tr class="question" title="5.1."><td align="left" valign="top"><a id="faq.what_works"></a><a id="q-what_works"></a><p><strong>5.1.</strong></p></td><td align="left" valign="top"><p> | |
1073 | What works already? | |
1074 | - </p></td></tr><tr class="answer"><td align="left" valign="top"><a id="a-what_works"/></td><td align="left" valign="top"><p> | |
1075 | + </p></td></tr><tr class="answer"><td align="left" valign="top"><a id="a-what_works"></a></td><td align="left" valign="top"><p> | |
1076 | Short answer: Pretty much everything <span class="emphasis"><em>works</em></span> | |
1077 | except for some corner cases. Support for localization | |
1078 | in <code class="classname">locale</code> may be incomplete on non-GNU | |
1079 | @@ -513,24 +513,24 @@ | |
1080 | <a class="link" href="manual/status.html#status.iso.1998" title="C++ 1998/2003">C++98</a>, | |
1081 | <a class="link" href="manual/status.html#status.iso.tr1" title="C++ TR1">TR1</a>, and | |
1082 | <a class="link" href="manual/status.html#status.iso.2011" title="C++ 2011">C++11</a>. | |
1083 | - </p></td></tr><tr class="question" title="5.2."><td align="left" valign="top"><a id="faq.standard_bugs"/><a id="q-standard_bugs"/><p><strong>5.2.</strong></p></td><td align="left" valign="top"><p> | |
1084 | + </p></td></tr><tr class="question" title="5.2."><td align="left" valign="top"><a id="faq.standard_bugs"></a><a id="q-standard_bugs"></a><p><strong>5.2.</strong></p></td><td align="left" valign="top"><p> | |
1085 | Bugs in the ISO C++ language or library specification | |
1086 | - </p></td></tr><tr class="answer"><td align="left" valign="top"><a id="a-standard_bugs"/></td><td align="left" valign="top"><p> | |
1087 | + </p></td></tr><tr class="answer"><td align="left" valign="top"><a id="a-standard_bugs"></a></td><td align="left" valign="top"><p> | |
1088 | Unfortunately, there are some. | |
1089 | </p><p> | |
1090 | For those people who are not part of the ISO Library Group | |
1091 | (i.e., nearly all of us needing to read this page in the first | |
1092 | place), a public list of the library defects is occasionally | |
1093 | - published on <a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/">the WG21 | |
1094 | + published on <a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/" target="_top">the WG21 | |
1095 | website</a>. | |
1096 | Some of these issues have resulted in code changes in libstdc++. | |
1097 | </p><p> | |
1098 | If you think you've discovered a new bug that is not listed, | |
1099 | please post a message describing your problem to the author of | |
1100 | the library issues list or the Usenet group comp.lang.c++.moderated. | |
1101 | - </p></td></tr><tr class="question" title="5.3."><td align="left" valign="top"><a id="faq.compiler_bugs"/><a id="q-compiler_bugs"/><p><strong>5.3.</strong></p></td><td align="left" valign="top"><p> | |
1102 | + </p></td></tr><tr class="question" title="5.3."><td align="left" valign="top"><a id="faq.compiler_bugs"></a><a id="q-compiler_bugs"></a><p><strong>5.3.</strong></p></td><td align="left" valign="top"><p> | |
1103 | Bugs in the compiler (gcc/g++) and not libstdc++ | |
1104 | - </p></td></tr><tr class="answer"><td align="left" valign="top"><a id="a-compiler_bugs"/></td><td align="left" valign="top"><p> | |
1105 | + </p></td></tr><tr class="answer"><td align="left" valign="top"><a id="a-compiler_bugs"></a></td><td align="left" valign="top"><p> | |
1106 | On occasion, the compiler is wrong. Please be advised that this | |
1107 | happens much less often than one would think, and avoid jumping to | |
1108 | conclusions. | |
1109 | @@ -541,7 +541,7 @@ | |
1110 | these lists with terms describing your issue. | |
1111 | </p><p> | |
1112 | Before reporting a bug, please examine the | |
1113 | - <a class="link" href="http://gcc.gnu.org/bugs/">bugs database</a> with the | |
1114 | + <a class="link" href="http://gcc.gnu.org/bugs/" target="_top">bugs database</a> with the | |
1115 | category set to <span class="quote">“<span class="quote">g++</span>”</span>. | |
1116 | </p></td></tr><tr class="toc"><td align="left" valign="top" colspan="2"><dl><dt>6.1. <a href="faq.html#faq.stream_reopening_fails"> | |
1117 | Reopening a stream fails | |
1118 | @@ -563,19 +563,19 @@ | |
1119 | list::size() is O(n)! | |
1120 | </a></dt><dt>6.9. <a href="faq.html#faq.easy_to_fix"> | |
1121 | Aw, that's easy to fix! | |
1122 | - </a></dt></dl></td></tr><tr class="question" title="6.1."><td align="left" valign="top"><a id="faq.stream_reopening_fails"/><a id="q-stream_reopening_fails"/><p><strong>6.1.</strong></p></td><td align="left" valign="top"><p> | |
1123 | + </a></dt></dl></td></tr><tr class="question" title="6.1."><td align="left" valign="top"><a id="faq.stream_reopening_fails"></a><a id="q-stream_reopening_fails"></a><p><strong>6.1.</strong></p></td><td align="left" valign="top"><p> | |
1124 | Reopening a stream fails | |
1125 | - </p></td></tr><tr class="answer"><td align="left" valign="top"><a id="a-stream_reopening_fails"/></td><td align="left" valign="top"><p> | |
1126 | + </p></td></tr><tr class="answer"><td align="left" valign="top"><a id="a-stream_reopening_fails"></a></td><td align="left" valign="top"><p> | |
1127 | One of the most-reported non-bug reports. Executing a sequence like: | |
1128 | - </p><div class="literallayout"><p><br/> | |
1129 | - #include <fstream><br/> | |
1130 | - ...<br/> | |
1131 | - std::fstream fs(<span class="quote">“<span class="quote">a_file</span>”</span>);<br/> | |
1132 | - // .<br/> | |
1133 | - // . do things with fs...<br/> | |
1134 | - // .<br/> | |
1135 | - fs.close();<br/> | |
1136 | - fs.open(<span class="quote">“<span class="quote">a_new_file</span>”</span>);<br/> | |
1137 | + </p><div class="literallayout"><p><br /> | |
1138 | + #include <fstream><br /> | |
1139 | + ...<br /> | |
1140 | + std::fstream fs(<span class="quote">“<span class="quote">a_file</span>”</span>);<br /> | |
1141 | + // .<br /> | |
1142 | + // . do things with fs...<br /> | |
1143 | + // .<br /> | |
1144 | + fs.close();<br /> | |
1145 | + fs.open(<span class="quote">“<span class="quote">a_new_file</span>”</span>);<br /> | |
1146 | </p></div><p> | |
1147 | All operations on the re-opened <code class="varname">fs</code> will fail, or at | |
1148 | least act very strangely. Yes, they often will, especially if | |
1149 | @@ -590,9 +590,9 @@ | |
1150 | <span class="emphasis"><em>Update:</em></span> for GCC 4.0 we implemented the resolution | |
1151 | of <a class="link" href="manual/bugs.html" title="Bugs">DR #409</a> and open() | |
1152 | now calls <code class="function">clear()</code> on success! | |
1153 | - </p></td></tr><tr class="question" title="6.2."><td align="left" valign="top"><a id="faq.wefcxx_verbose"/><a id="q-wefcxx_verbose"/><p><strong>6.2.</strong></p></td><td align="left" valign="top"><p> | |
1154 | + </p></td></tr><tr class="question" title="6.2."><td align="left" valign="top"><a id="faq.wefcxx_verbose"></a><a id="q-wefcxx_verbose"></a><p><strong>6.2.</strong></p></td><td align="left" valign="top"><p> | |
1155 | -Weffc++ complains too much | |
1156 | - </p></td></tr><tr class="answer"><td align="left" valign="top"><a id="a-wefcxx_verbose"/></td><td align="left" valign="top"><p> | |
1157 | + </p></td></tr><tr class="answer"><td align="left" valign="top"><a id="a-wefcxx_verbose"></a></td><td align="left" valign="top"><p> | |
1158 | Many warnings are emitted when <code class="literal">-Weffc++</code> is used. Making | |
1159 | libstdc++ <code class="literal">-Weffc++</code>-clean is not a goal of the project, | |
1160 | for a few reasons. Mainly, that option tries to enforce | |
1161 | @@ -602,21 +602,21 @@ | |
1162 | We do, however, try to have libstdc++ sources as clean as possible. If | |
1163 | you see some simple changes that pacify <code class="literal">-Weffc++</code> | |
1164 | without other drawbacks, send us a patch. | |
1165 | - </p></td></tr><tr class="question" title="6.3."><td align="left" valign="top"><a id="faq.ambiguous_overloads"/><a id="q-ambiguous_overloads"/><p><strong>6.3.</strong></p></td><td align="left" valign="top"><p> | |
1166 | + </p></td></tr><tr class="question" title="6.3."><td align="left" valign="top"><a id="faq.ambiguous_overloads"></a><a id="q-ambiguous_overloads"></a><p><strong>6.3.</strong></p></td><td align="left" valign="top"><p> | |
1167 | Ambiguous overloads after including an old-style header | |
1168 | - </p></td></tr><tr class="answer"><td align="left" valign="top"><a id="a-ambiguous_overloads"/></td><td align="left" valign="top"><p> | |
1169 | + </p></td></tr><tr class="answer"><td align="left" valign="top"><a id="a-ambiguous_overloads"></a></td><td align="left" valign="top"><p> | |
1170 | Another problem is the <code class="literal">rel_ops</code> namespace and the template | |
1171 | comparison operator functions contained therein. If they become | |
1172 | visible in the same namespace as other comparison functions | |
1173 | (e.g., <span class="quote">“<span class="quote">using</span>”</span> them and the <iterator> header), | |
1174 | then you will suddenly be faced with huge numbers of ambiguity | |
1175 | errors. This was discussed on the -v3 list; Nathan Myers | |
1176 | - <a class="link" href="http://gcc.gnu.org/ml/libstdc++/2001-01/msg00247.html">sums | |
1177 | + <a class="link" href="http://gcc.gnu.org/ml/libstdc++/2001-01/msg00247.html" target="_top">sums | |
1178 | things up here</a>. The collisions with vector/string iterator | |
1179 | types have been fixed for 3.1. | |
1180 | - </p></td></tr><tr class="question" title="6.4."><td align="left" valign="top"><a id="faq.v2_headers"/><a id="q-v2_headers"/><p><strong>6.4.</strong></p></td><td align="left" valign="top"><p> | |
1181 | + </p></td></tr><tr class="question" title="6.4."><td align="left" valign="top"><a id="faq.v2_headers"></a><a id="q-v2_headers"></a><p><strong>6.4.</strong></p></td><td align="left" valign="top"><p> | |
1182 | The g++-3 headers are <span class="emphasis"><em>not ours</em></span> | |
1183 | - </p></td></tr><tr class="answer"><td align="left" valign="top"><a id="a-v2_headers"/></td><td align="left" valign="top"><p> | |
1184 | + </p></td></tr><tr class="answer"><td align="left" valign="top"><a id="a-v2_headers"></a></td><td align="left" valign="top"><p> | |
1185 | If you are using headers in | |
1186 | <code class="filename">${prefix}/include/g++-3</code>, or if the installed | |
1187 | library's name looks like <code class="filename">libstdc++-2.10.a</code> or | |
1188 | @@ -630,10 +630,10 @@ | |
1189 | 'v'?). Starting with version 3.2 the headers are installed in | |
1190 | <code class="filename">${prefix}/include/c++/${version}</code> as this prevents | |
1191 | headers from previous versions being found by mistake. | |
1192 | - </p></td></tr><tr class="question" title="6.5."><td align="left" valign="top"><a id="faq.boost_concept_checks"/><a id="q-boost_concept_checks"/><p><strong>6.5.</strong></p></td><td align="left" valign="top"><p> | |
1193 | + </p></td></tr><tr class="question" title="6.5."><td align="left" valign="top"><a id="faq.boost_concept_checks"></a><a id="q-boost_concept_checks"></a><p><strong>6.5.</strong></p></td><td align="left" valign="top"><p> | |
1194 | Errors about <span class="emphasis"><em>*Concept</em></span> and | |
1195 | <span class="emphasis"><em>constraints</em></span> in the STL | |
1196 | - </p></td></tr><tr class="answer"><td align="left" valign="top"><a id="a-boost_concept_checks"/></td><td align="left" valign="top"><p> | |
1197 | + </p></td></tr><tr class="answer"><td align="left" valign="top"><a id="a-boost_concept_checks"></a></td><td align="left" valign="top"><p> | |
1198 | If you see compilation errors containing messages about | |
1199 | <span class="errortext">foo Concept </span>and something to do with a | |
1200 | <span class="errortext">constraints</span> member function, then most | |
1201 | @@ -647,31 +647,31 @@ | |
1202 | checks, is available in the | |
1203 | <a class="link" href="manual/bk01pt02ch05s02.html" title="Concept Checking">Diagnostics</a>. | |
1204 | chapter of the manual. | |
1205 | - </p></td></tr><tr class="question" title="6.6."><td align="left" valign="top"><a id="faq.dlopen_crash"/><a id="q-dlopen_crash"/><p><strong>6.6.</strong></p></td><td align="left" valign="top"><p> | |
1206 | + </p></td></tr><tr class="question" title="6.6."><td align="left" valign="top"><a id="faq.dlopen_crash"></a><a id="q-dlopen_crash"></a><p><strong>6.6.</strong></p></td><td align="left" valign="top"><p> | |
1207 | Program crashes when using library code in a | |
1208 | dynamically-loaded library | |
1209 | - </p></td></tr><tr class="answer"><td align="left" valign="top"><a id="a-dlopen_crash"/></td><td align="left" valign="top"><p> | |
1210 | + </p></td></tr><tr class="answer"><td align="left" valign="top"><a id="a-dlopen_crash"></a></td><td align="left" valign="top"><p> | |
1211 | If you are using the C++ library across dynamically-loaded | |
1212 | objects, make certain that you are passing the correct options | |
1213 | when compiling and linking: | |
1214 | - </p><div class="literallayout"><p><br/> | |
1215 | - // compile your library components<br/> | |
1216 | - g++ -fPIC -c a.cc<br/> | |
1217 | - g++ -fPIC -c b.cc<br/> | |
1218 | - ...<br/> | |
1219 | - g++ -fPIC -c z.cc<br/> | |
1220 | -<br/> | |
1221 | - // create your library<br/> | |
1222 | - g++ -fPIC -shared -rdynamic -o libfoo.so a.o b.o ... z.o<br/> | |
1223 | -<br/> | |
1224 | - // link the executable<br/> | |
1225 | - g++ -fPIC -rdynamic -o foo ... -L. -lfoo -ldl<br/> | |
1226 | - </p></div></td></tr><tr class="question" title="6.7."><td align="left" valign="top"><a id="faq.memory_leaks"/><a id="q-memory_leaks"/><p><strong>6.7.</strong></p></td><td align="left" valign="top"><p> | |
1227 | + </p><div class="literallayout"><p><br /> | |
1228 | + // compile your library components<br /> | |
1229 | + g++ -fPIC -c a.cc<br /> | |
1230 | + g++ -fPIC -c b.cc<br /> | |
1231 | + ...<br /> | |
1232 | + g++ -fPIC -c z.cc<br /> | |
1233 | +<br /> | |
1234 | + // create your library<br /> | |
1235 | + g++ -fPIC -shared -rdynamic -o libfoo.so a.o b.o ... z.o<br /> | |
1236 | +<br /> | |
1237 | + // link the executable<br /> | |
1238 | + g++ -fPIC -rdynamic -o foo ... -L. -lfoo -ldl<br /> | |
1239 | + </p></div></td></tr><tr class="question" title="6.7."><td align="left" valign="top"><a id="faq.memory_leaks"></a><a id="q-memory_leaks"></a><p><strong>6.7.</strong></p></td><td align="left" valign="top"><p> | |
1240 | <span class="quote">“<span class="quote">Memory leaks</span>”</span> in containers | |
1241 | - </p></td></tr><tr class="answer"><td align="left" valign="top"><a id="a-memory_leaks"/></td><td align="left" valign="top"><p> | |
1242 | + </p></td></tr><tr class="answer"><td align="left" valign="top"><a id="a-memory_leaks"></a></td><td align="left" valign="top"><p> | |
1243 | A few people have reported that the standard containers appear | |
1244 | to leak memory when tested with memory checkers such as | |
1245 | - <a class="link" href="http://valgrind.org/">valgrind</a>. | |
1246 | + <a class="link" href="http://valgrind.org/" target="_top">valgrind</a>. | |
1247 | The library's default allocators keep free memory in a pool | |
1248 | for later reuse, rather than returning it to the OS. Although | |
1249 | this memory is always reachable by the library and is never | |
1250 | @@ -679,18 +679,18 @@ | |
1251 | want to test the library for memory leaks please read | |
1252 | <a class="link" href="manual/debug.html#debug.memory" title="Memory Leak Hunting">Tips for memory leak hunting</a> | |
1253 | first. | |
1254 | - </p></td></tr><tr class="question" title="6.8."><td align="left" valign="top"><a id="faq.list_size_on"/><a id="q-list_size_on"/><p><strong>6.8.</strong></p></td><td align="left" valign="top"><p> | |
1255 | + </p></td></tr><tr class="question" title="6.8."><td align="left" valign="top"><a id="faq.list_size_on"></a><a id="q-list_size_on"></a><p><strong>6.8.</strong></p></td><td align="left" valign="top"><p> | |
1256 | list::size() is O(n)! | |
1257 | - </p></td></tr><tr class="answer"><td align="left" valign="top"><a id="a-list_size_on"/></td><td align="left" valign="top"><p> | |
1258 | + </p></td></tr><tr class="answer"><td align="left" valign="top"><a id="a-list_size_on"></a></td><td align="left" valign="top"><p> | |
1259 | See | |
1260 | the <a class="link" href="manual/containers.html" title="Chapter 9. Containers">Containers</a> | |
1261 | chapter. | |
1262 | - </p></td></tr><tr class="question" title="6.9."><td align="left" valign="top"><a id="faq.easy_to_fix"/><a id="q-easy_to_fix"/><p><strong>6.9.</strong></p></td><td align="left" valign="top"><p> | |
1263 | + </p></td></tr><tr class="question" title="6.9."><td align="left" valign="top"><a id="faq.easy_to_fix"></a><a id="q-easy_to_fix"></a><p><strong>6.9.</strong></p></td><td align="left" valign="top"><p> | |
1264 | Aw, that's easy to fix! | |
1265 | - </p></td></tr><tr class="answer"><td align="left" valign="top"><a id="a-easy_to_fix"/></td><td align="left" valign="top"><p> | |
1266 | + </p></td></tr><tr class="answer"><td align="left" valign="top"><a id="a-easy_to_fix"></a></td><td align="left" valign="top"><p> | |
1267 | If you have found a bug in the library and you think you have | |
1268 | a working fix, then send it in! The main GCC site has a page | |
1269 | - on <a class="link" href="http://gcc.gnu.org/contribute.html">submitting | |
1270 | + on <a class="link" href="http://gcc.gnu.org/contribute.html" target="_top">submitting | |
1271 | patches</a> that covers the procedure, but for libstdc++ you | |
1272 | should also send the patch to our mailing list in addition to | |
1273 | the GCC patches mailing list. The libstdc++ | |
1274 | @@ -718,9 +718,9 @@ | |
1275 | What's an ABI and why is it so messy? | |
1276 | </a></dt><dt>7.8. <a href="faq.html#faq.size_equals_capacity"> | |
1277 | How do I make std::vector<T>::capacity() == std::vector<T>::size? | |
1278 | - </a></dt></dl></td></tr><tr class="question" title="7.1."><td align="left" valign="top"><a id="faq.iterator_as_pod"/><a id="faq.iterator_as_pod_q"/><p><strong>7.1.</strong></p></td><td align="left" valign="top"><p> | |
1279 | + </a></dt></dl></td></tr><tr class="question" title="7.1."><td align="left" valign="top"><a id="faq.iterator_as_pod"></a><a id="faq.iterator_as_pod_q"></a><p><strong>7.1.</strong></p></td><td align="left" valign="top"><p> | |
1280 | string::iterator is not char*; vector<T>::iterator is not T* | |
1281 | - </p></td></tr><tr class="answer"><td align="left" valign="top"><a id="faq.iterator_as_pod_a"/></td><td align="left" valign="top"><p> | |
1282 | + </p></td></tr><tr class="answer"><td align="left" valign="top"><a id="faq.iterator_as_pod_a"></a></td><td align="left" valign="top"><p> | |
1283 | If you have code that depends on container<T> iterators | |
1284 | being implemented as pointer-to-T, your code is broken. It's | |
1285 | considered a feature, not a bug, that libstdc++ points this out. | |
1286 | @@ -737,9 +737,9 @@ | |
1287 | certain expressions to <code class="varname">&*i</code>. Future revisions | |
1288 | of the Standard are expected to bless this usage for | |
1289 | vector<> (but not for basic_string<>). | |
1290 | - </p></td></tr><tr class="question" title="7.2."><td align="left" valign="top"><a id="faq.what_is_next"/><a id="q-what_is_next"/><p><strong>7.2.</strong></p></td><td align="left" valign="top"><p> | |
1291 | + </p></td></tr><tr class="question" title="7.2."><td align="left" valign="top"><a id="faq.what_is_next"></a><a id="q-what_is_next"></a><p><strong>7.2.</strong></p></td><td align="left" valign="top"><p> | |
1292 | What's next after libstdc++? | |
1293 | - </p></td></tr><tr class="answer"><td align="left" valign="top"><a id="a-what_is_next"/></td><td align="left" valign="top"><p> | |
1294 | + </p></td></tr><tr class="answer"><td align="left" valign="top"><a id="a-what_is_next"></a></td><td align="left" valign="top"><p> | |
1295 | Hopefully, not much. The goal of libstdc++ is to produce a | |
1296 | fully-compliant, fully-portable Standard Library. After that, | |
1297 | we're mostly done: there won't <span class="emphasis"><em>be</em></span> any | |
1298 | @@ -748,12 +748,12 @@ | |
1299 | There is an effort underway to add significant extensions to | |
1300 | the standard library specification. The latest version of | |
1301 | this effort is described in | |
1302 | - <a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2005/n1836.pdf"> | |
1303 | + <a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2005/n1836.pdf" target="_top"> | |
1304 | The C++ Library Technical Report 1</a>. | |
1305 | - </p></td></tr><tr class="question" title="7.3."><td align="left" valign="top"><a id="faq.sgi_stl"/><a id="q-sgi_stl"/><p><strong>7.3.</strong></p></td><td align="left" valign="top"><p> | |
1306 | + </p></td></tr><tr class="question" title="7.3."><td align="left" valign="top"><a id="faq.sgi_stl"></a><a id="q-sgi_stl"></a><p><strong>7.3.</strong></p></td><td align="left" valign="top"><p> | |
1307 | What about the STL from SGI? | |
1308 | - </p></td></tr><tr class="answer"><td align="left" valign="top"><a id="a-sgi_stl"/></td><td align="left" valign="top"><p> | |
1309 | - The <a class="link" href="http://www.sgi.com/tech/stl/">STL from SGI</a>, | |
1310 | + </p></td></tr><tr class="answer"><td align="left" valign="top"><a id="a-sgi_stl"></a></td><td align="left" valign="top"><p> | |
1311 | + The <a class="link" href="http://www.sgi.com/tech/stl/" target="_top">STL from SGI</a>, | |
1312 | version 3.3, was the final merge of the STL codebase. The | |
1313 | code in libstdc++ contains many fixes and changes, and | |
1314 | the SGI code is no longer under active | |
1315 | @@ -773,24 +773,24 @@ | |
1316 | </p><p> | |
1317 | The FAQ for SGI's STL (one jump off of their main page) is | |
1318 | still recommended reading. | |
1319 | - </p></td></tr><tr class="question" title="7.4."><td align="left" valign="top"><a id="faq.extensions_and_backwards_compat"/><a id="q-extensions_and_backwards_compat"/><p><strong>7.4.</strong></p></td><td align="left" valign="top"><p> | |
1320 | + </p></td></tr><tr class="question" title="7.4."><td align="left" valign="top"><a id="faq.extensions_and_backwards_compat"></a><a id="q-extensions_and_backwards_compat"></a><p><strong>7.4.</strong></p></td><td align="left" valign="top"><p> | |
1321 | Extensions and Backward Compatibility | |
1322 | - </p></td></tr><tr class="answer"><td align="left" valign="top"><a id="a-extensions_and_backwards_compat"/></td><td align="left" valign="top"><p> | |
1323 | + </p></td></tr><tr class="answer"><td align="left" valign="top"><a id="a-extensions_and_backwards_compat"></a></td><td align="left" valign="top"><p> | |
1324 | See the <a class="link" href="manual/backwards.html" title="Backwards Compatibility">link</a> on backwards compatibility and <a class="link" href="manual/api.html" title="API Evolution and Deprecation History">link</a> on evolution. | |
1325 | - </p></td></tr><tr class="question" title="7.5."><td align="left" valign="top"><a id="faq.tr1_support"/><a id="q-tr1_support"/><p><strong>7.5.</strong></p></td><td align="left" valign="top"><p> | |
1326 | + </p></td></tr><tr class="question" title="7.5."><td align="left" valign="top"><a id="faq.tr1_support"></a><a id="q-tr1_support"></a><p><strong>7.5.</strong></p></td><td align="left" valign="top"><p> | |
1327 | Does libstdc++ support TR1? | |
1328 | - </p></td></tr><tr class="answer"><td align="left" valign="top"><a id="a-tr1_support"/></td><td align="left" valign="top"><p> | |
1329 | + </p></td></tr><tr class="answer"><td align="left" valign="top"><a id="a-tr1_support"></a></td><td align="left" valign="top"><p> | |
1330 | Yes. | |
1331 | </p><p> | |
1332 | The C++ Standard Library Technical Report adds many new features to | |
1333 | the library. The latest version of this effort is described in | |
1334 | - <a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2005/n1836.pdf"> | |
1335 | + <a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2005/n1836.pdf" target="_top"> | |
1336 | Technical Report 1</a>. | |
1337 | </p><p> | |
1338 | The implementation status of TR1 in libstdc++ can be tracked <a class="link" href="manual/status.html#status.iso.tr1" title="C++ TR1">on the TR1 status | |
1339 | page</a>. | |
1340 | - </p></td></tr><tr class="question" title="7.6."><td align="left" valign="top"><a id="faq.get_iso_cxx"/><a id="q-get_iso_cxx"/><p><strong>7.6.</strong></p></td><td align="left" valign="top"><p>How do I get a copy of the ISO C++ Standard? | |
1341 | - </p></td></tr><tr class="answer"><td align="left" valign="top"><a id="a-get_iso_cxx"/></td><td align="left" valign="top"><p> | |
1342 | + </p></td></tr><tr class="question" title="7.6."><td align="left" valign="top"><a id="faq.get_iso_cxx"></a><a id="q-get_iso_cxx"></a><p><strong>7.6.</strong></p></td><td align="left" valign="top"><p>How do I get a copy of the ISO C++ Standard? | |
1343 | + </p></td></tr><tr class="answer"><td align="left" valign="top"><a id="a-get_iso_cxx"></a></td><td align="left" valign="top"><p> | |
1344 | Copies of the full ISO 14882 standard are available on line via | |
1345 | the ISO mirror site for committee members. Non-members, or those | |
1346 | who have not paid for the privilege of sitting on the committee | |
1347 | @@ -798,19 +798,19 @@ | |
1348 | get a copy of the standard from their respective national | |
1349 | standards organization. In the USA, this national standards | |
1350 | organization is ANSI and their website is | |
1351 | - right <a class="link" href="http://www.ansi.org">here</a>. (And if | |
1352 | + right <a class="link" href="http://www.ansi.org" target="_top">here</a>. (And if | |
1353 | you've already registered with them, clicking this link will take | |
1354 | you to directly to the place where you can | |
1355 | - <a class="link" href="http://webstore.ansi.org/RecordDetail.aspx?sku=ISO%2FIEC+14882:2003">buy the standard on-line</a>. | |
1356 | + <a class="link" href="http://webstore.ansi.org/RecordDetail.aspx?sku=ISO%2FIEC+14882:2003" target="_top">buy the standard on-line</a>. | |
1357 | </p><p> | |
1358 | Who is your country's member body? Visit the | |
1359 | - <a class="link" href="http://www.iso.ch/">ISO homepage</a> and find out! | |
1360 | + <a class="link" href="http://www.iso.ch/" target="_top">ISO homepage</a> and find out! | |
1361 | </p><p> | |
1362 | The 2003 version of the standard (the 1998 version plus TC1) is | |
1363 | available in print, ISBN 0-470-84674-7. | |
1364 | - </p></td></tr><tr class="question" title="7.7."><td align="left" valign="top"><a id="faq.what_is_abi"/><a id="q-what_is_abi"/><p><strong>7.7.</strong></p></td><td align="left" valign="top"><p> | |
1365 | + </p></td></tr><tr class="question" title="7.7."><td align="left" valign="top"><a id="faq.what_is_abi"></a><a id="q-what_is_abi"></a><p><strong>7.7.</strong></p></td><td align="left" valign="top"><p> | |
1366 | What's an ABI and why is it so messy? | |
1367 | - </p></td></tr><tr class="answer"><td align="left" valign="top"><a id="a-what_is_abi"/></td><td align="left" valign="top"><p> | |
1368 | + </p></td></tr><tr class="answer"><td align="left" valign="top"><a id="a-what_is_abi"></a></td><td align="left" valign="top"><p> | |
1369 | <acronym class="acronym">ABI</acronym> stands for <span class="quote">“<span class="quote">Application Binary | |
1370 | Interface</span>”</span>. Conventionally, it refers to a great | |
1371 | mass of details about how arguments are arranged on the call | |
1372 | @@ -856,17 +856,17 @@ | |
1373 | so they may later be changed. Deciding which, and implementing | |
1374 | the decisions, must happen before you can reasonably document a | |
1375 | candidate C++ ABI that encompasses the standard library. | |
1376 | - </p></td></tr><tr class="question" title="7.8."><td align="left" valign="top"><a id="faq.size_equals_capacity"/><a id="q-size_equals_capacity"/><p><strong>7.8.</strong></p></td><td align="left" valign="top"><p> | |
1377 | + </p></td></tr><tr class="question" title="7.8."><td align="left" valign="top"><a id="faq.size_equals_capacity"></a><a id="q-size_equals_capacity"></a><p><strong>7.8.</strong></p></td><td align="left" valign="top"><p> | |
1378 | How do I make std::vector<T>::capacity() == std::vector<T>::size? | |
1379 | - </p></td></tr><tr class="answer"><td align="left" valign="top"><a id="a-size_equals_capacity"/></td><td align="left" valign="top"><p> | |
1380 | + </p></td></tr><tr class="answer"><td align="left" valign="top"><a id="a-size_equals_capacity"></a></td><td align="left" valign="top"><p> | |
1381 | The standard idiom for deallocating a <code class="classname">vector<T></code>'s | |
1382 | unused memory is to create a temporary copy of the vector and swap their | |
1383 | contents, e.g. for <code class="classname">vector<T> v</code> | |
1384 | - </p><div class="literallayout"><p><br/> | |
1385 | - std::vector<T>(v).swap(v);<br/> | |
1386 | + </p><div class="literallayout"><p><br /> | |
1387 | + std::vector<T>(v).swap(v);<br /> | |
1388 | </p></div><p> | |
1389 | The copy will take O(n) time and the swap is constant time. | |
1390 | </p><p> | |
1391 | See <a class="link" href="manual/strings.html#strings.string.shrink" title="Shrink to Fit">Shrink-to-fit | |
1392 | strings</a> for a similar solution for strings. | |
1393 | - </p></td></tr></tbody></table></div></div><div class="navfooter"><hr/><table width="100%" summary="Navigation footer"><tr><td align="left"><a accesskey="p" href="bk03.html">Prev</a> </td><td align="center"><a accesskey="u" href="bk03.html">Up</a></td><td align="right"> </td></tr><tr><td align="left" valign="top"> </td><td align="center"><a accesskey="h" href="index.html">Home</a></td><td align="right" valign="top"> </td></tr></table></div></body></html> | |
1394 | + </p></td></tr></tbody></table></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="bk03.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="bk03.html">Up</a></td><td width="40%" align="right"> </td></tr><tr><td width="40%" align="left" valign="top"> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> </td></tr></table></div></body></html> | |
1395 | Index: libstdc++-v3/doc/html/index.html | |
1396 | =================================================================== | |
9f95000d AM |
1397 | --- libstdc++-v3/doc/html/index.html (.../tags/gcc_4_7_2_release) (wersja 192468) |
1398 | +++ libstdc++-v3/doc/html/index.html (.../branches/gcc-4_7-branch) (wersja 192468) | |
5a87b929 AM |
1399 | @@ -1,8 +1,8 @@ |
1400 | <?xml version="1.0" encoding="UTF-8" standalone="no"?> | |
1401 | -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> | |
1402 | -<html xmlns="http://www.w3.org/1999/xhtml"><head><title>The GNU C++ Library</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1"/><meta name="description" content="Short Contents Copyright 2008, 2009, 2011 FSF Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with no Invariant Sections, with no Front-Cover Texts, and with no Back-Cover Texts. This is the top level of the libstdc++ documentation set. The documentation is divided into the following three sections. Manual Frequently Asked Questions API and Source Documentation"/><meta name="keywords" content=" ISO C++ , runtime , library "/><link rel="home" href="index.html" title="The GNU C++ Library"/><link rel="next" href="manual/index.html" title="The GNU C++ Library Manual"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">The GNU C++ Library</th></tr><tr><td align="left"> </td><th width="60%" align="center"> </th><td align="right"> <a accesskey="n" href="manual/index.html">Next</a></td></tr></table><hr/></div><div class="set" title="The GNU C++ Library" xml:lang="en"><div class="titlepage"><div><div><h1 class="title"><a id="set-index"/>The GNU C++ Library</h1></div><div><div class="abstract" title="Short Contents"><a id="contents"/><p class="title"><strong>Short Contents</strong></p><p> | |
1403 | +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> | |
1404 | +<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>The GNU C++ Library</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1" /><meta name="description" content="Short Contents Copyright 2008, 2009, 2011 FSF Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with no Invariant Sections, with no Front-Cover Texts, and with no Back-Cover Texts. This is the top level of the libstdc++ documentation set. The documentation is divided into the following three sections. Manual Frequently Asked Questions API and Source Documentation" /><meta name="keywords" content=" ISO C++ , runtime , library " /><link rel="home" href="index.html" title="The GNU C++ Library" /><link rel="next" href="manual/index.html" title="The GNU C++ Library Manual" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">The GNU C++ Library</th></tr><tr><td width="20%" align="left"> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a accesskey="n" href="manual/index.html">Next</a></td></tr></table><hr /></div><div class="set" title="The GNU C++ Library" lang="en" xml:lang="en"><div class="titlepage"><div><div><h1 class="title"><a id="set-index"></a>The GNU C++ Library</h1></div><div><div class="abstract" title="Short Contents"><a id="contents"></a><p class="title"><strong>Short Contents</strong></p><p> | |
1405 | Copyright 2008, 2009, 2011 | |
1406 | - <a class="link" href="http://www.fsf.org/">FSF | |
1407 | + <a class="link" href="http://www.fsf.org/" target="_top">FSF | |
1408 | </a> | |
1409 | </p><p> | |
1410 | Permission is granted to copy, distribute and/or modify this | |
1411 | @@ -14,14 +14,14 @@ | |
1412 | This is the top level of the libstdc++ documentation set. The | |
1413 | documentation is divided into the following three sections. | |
1414 | </p><p> | |
1415 | - </p><div class="itemizedlist"><ul class="itemizedlist"><li class="listitem"><p> | |
1416 | + </p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p> | |
1417 | <a class="link" href="manual/index.html" title="The GNU C++ Library Manual">Manual</a> | |
1418 | </p></li><li class="listitem"><p> | |
1419 | <a class="link" href="faq.html" title="Frequently Asked Questions">Frequently Asked Questions</a> | |
1420 | </p></li><li class="listitem"><p> | |
1421 | <a class="link" href="api.html" title="The GNU C++ Library API Reference">API and Source Documentation</a> | |
1422 | </p></li></ul></div><p> | |
1423 | - </p></div></div></div><hr/></div><div class="toc"><p><strong>Table of Contents</strong></p><dl><dt><span class="book"><a href="manual/index.html">The GNU C++ Library Manual</a></span></dt><dd><dl><dt><span class="part"><a href="manual/intro.html">I. | |
1424 | + </p></div></div></div><hr /></div><div class="toc"><p><strong>Table of Contents</strong></p><dl><dt><span class="book"><a href="manual/index.html">The GNU C++ Library Manual</a></span></dt><dd><dl><dt><span class="part"><a href="manual/intro.html">I. | |
1425 | Introduction | |
1426 | ||
1427 | </a></span></dt><dd><dl><dt><span class="chapter"><a href="manual/status.html">1. Status</a></span></dt><dd><dl><dt><span class="section"><a href="manual/status.html#manual.intro.status.iso">Implementation Status</a></span></dt><dd><dl><dt><span class="section"><a href="manual/status.html#status.iso.1998">C++ 1998/2003</a></span></dt><dd><dl><dt><span class="section"><a href="manual/status.html#iso.1998.status">Implementation Status</a></span></dt><dt><span class="section"><a href="manual/status.html#iso.1998.specific">Implementation Specific Behavior</a></span></dt></dl></dd><dt><span class="section"><a href="manual/status.html#status.iso.2011">C++ 2011</a></span></dt><dd><dl><dt><span class="section"><a href="manual/status.html#iso.2011.specific">Implementation Specific Behavior</a></span></dt></dl></dd><dt><span class="section"><a href="manual/status.html#status.iso.tr1">C++ TR1</a></span></dt><dd><dl><dt><span class="section"><a href="manual/status.html#iso.tr1.specific">Implementation Specific Behavior</a></span></dt></dl></dd><dt><span class="section"><a href="manual/status.html#status.iso.tr24733">C++ TR 24733</a></span></dt></dl></dd><dt><span class="section"><a href="manual/license.html">License</a></span></dt><dd><dl><dt><span class="section"><a href="manual/license.html#manual.intro.status.license.gpl">The Code: GPL</a></span></dt><dt><span class="section"><a href="manual/license.html#manual.intro.status.license.fdl">The Documentation: GPL, FDL</a></span></dt></dl></dd><dt><span class="section"><a href="manual/bugs.html">Bugs</a></span></dt><dd><dl><dt><span class="section"><a href="manual/bugs.html#manual.intro.status.bugs.impl">Implementation Bugs</a></span></dt><dt><span class="section"><a href="manual/bugs.html#manual.intro.status.bugs.iso">Standard Bugs</a></span></dt></dl></dd></dl></dd><dt><span class="chapter"><a href="manual/setup.html">2. Setup</a></span></dt><dd><dl><dt><span class="section"><a href="manual/setup.html#manual.intro.setup.prereq">Prerequisites</a></span></dt><dt><span class="section"><a href="manual/configure.html">Configure</a></span></dt><dt><span class="section"><a href="manual/make.html">Make</a></span></dt></dl></dd><dt><span class="chapter"><a href="manual/using.html">3. Using</a></span></dt><dd><dl><dt><span class="section"><a href="manual/using.html#manual.intro.using.flags">Command Options</a></span></dt><dt><span class="section"><a href="manual/using_headers.html">Headers</a></span></dt><dd><dl><dt><span class="section"><a href="manual/using_headers.html#manual.intro.using.headers.all">Header Files</a></span></dt><dt><span class="section"><a href="manual/using_headers.html#manual.intro.using.headers.mixing">Mixing Headers</a></span></dt><dt><span class="section"><a href="manual/using_headers.html#manual.intro.using.headers.cheaders">The C Headers and <code class="code">namespace std</code></a></span></dt><dt><span class="section"><a href="manual/using_headers.html#manual.intro.using.headers.pre">Precompiled Headers</a></span></dt></dl></dd><dt><span class="section"><a href="manual/using_macros.html">Macros</a></span></dt><dt><span class="section"><a href="manual/using_namespaces.html">Namespaces</a></span></dt><dd><dl><dt><span class="section"><a href="manual/using_namespaces.html#manual.intro.using.namespaces.all">Available Namespaces</a></span></dt><dt><span class="section"><a href="manual/using_namespaces.html#manual.intro.using.namespaces.std">namespace std</a></span></dt><dt><span class="section"><a href="manual/using_namespaces.html#manual.intro.using.namespaces.comp">Using Namespace Composition</a></span></dt></dl></dd><dt><span class="section"><a href="manual/using_dynamic_or_shared.html">Linking</a></span></dt><dd><dl><dt><span class="section"><a href="manual/using_dynamic_or_shared.html#manual.intro.using.linkage.freestanding">Almost Nothing</a></span></dt><dt><span class="section"><a href="manual/using_dynamic_or_shared.html#manual.intro.using.linkage.dynamic">Finding Dynamic or Shared Libraries</a></span></dt></dl></dd><dt><span class="section"><a href="manual/using_concurrency.html">Concurrency</a></span></dt><dd><dl><dt><span class="section"><a href="manual/using_concurrency.html#manual.intro.using.concurrency.prereq">Prerequisites</a></span></dt><dt><span class="section"><a href="manual/using_concurrency.html#manual.intro.using.concurrency.thread_safety">Thread Safety</a></span></dt><dt><span class="section"><a href="manual/using_concurrency.html#manual.intro.using.concurrency.atomics">Atomics</a></span></dt><dt><span class="section"><a href="manual/using_concurrency.html#manual.intro.using.concurrency.io">IO</a></span></dt><dd><dl><dt><span class="section"><a href="manual/using_concurrency.html#concurrency.io.structure">Structure</a></span></dt><dt><span class="section"><a href="manual/using_concurrency.html#concurrency.io.defaults">Defaults</a></span></dt><dt><span class="section"><a href="manual/using_concurrency.html#concurrency.io.future">Future</a></span></dt><dt><span class="section"><a href="manual/using_concurrency.html#concurrency.io.alt">Alternatives</a></span></dt></dl></dd><dt><span class="section"><a href="manual/using_concurrency.html#manual.intro.using.concurrency.containers">Containers</a></span></dt></dl></dd><dt><span class="section"><a href="manual/using_exceptions.html">Exceptions</a></span></dt><dd><dl><dt><span class="section"><a href="manual/using_exceptions.html#intro.using.exception.safety">Exception Safety</a></span></dt><dt><span class="section"><a href="manual/using_exceptions.html#intro.using.exception.propagating">Exception Neutrality</a></span></dt><dt><span class="section"><a href="manual/using_exceptions.html#intro.using.exception.no">Doing without</a></span></dt><dt><span class="section"><a href="manual/using_exceptions.html#intro.using.exception.compat">Compatibility</a></span></dt><dd><dl><dt><span class="section"><a href="manual/using_exceptions.html#using.exception.compat.c">With <code class="literal">C</code></a></span></dt><dt><span class="section"><a href="manual/using_exceptions.html#using.exception.compat.posix">With <code class="literal">POSIX</code> thread cancellation</a></span></dt></dl></dd></dl></dd><dt><span class="section"><a href="manual/debug.html">Debugging Support</a></span></dt><dd><dl><dt><span class="section"><a href="manual/debug.html#debug.compiler">Using <span class="command"><strong>g++</strong></span></a></span></dt><dt><span class="section"><a href="manual/debug.html#debug.req">Debug Versions of Library Binary Files</a></span></dt><dt><span class="section"><a href="manual/debug.html#debug.memory">Memory Leak Hunting</a></span></dt><dt><span class="section"><a href="manual/debug.html#debug.races">Data Race Hunting</a></span></dt><dt><span class="section"><a href="manual/debug.html#debug.gdb">Using <span class="command"><strong>gdb</strong></span></a></span></dt><dt><span class="section"><a href="manual/debug.html#debug.exceptions">Tracking uncaught exceptions</a></span></dt><dt><span class="section"><a href="manual/debug.html#debug.debug_mode">Debug Mode</a></span></dt><dt><span class="section"><a href="manual/debug.html#debug.compile_time_checks">Compile Time Checking</a></span></dt><dt><span class="section"><a href="manual/debug.html#debug.profile_mode">Profile-based Performance Analysis</a></span></dt></dl></dd></dl></dd></dl></dd><dt><span class="part"><a href="manual/bk01pt02.html">II. | |
1428 | @@ -35,13 +35,13 @@ | |
1429 | </a></span></dt><dd><dl><dt><span class="section"><a href="manual/diagnostics.html#std.diagnostics.exceptions">Exceptions</a></span></dt><dd><dl><dt><span class="section"><a href="manual/diagnostics.html#std.diagnostics.exceptions.api">API Reference</a></span></dt><dt><span class="section"><a href="manual/diagnostics.html#std.diagnostics.exceptions.data">Adding Data to <code class="classname">exception</code></a></span></dt></dl></dd><dt><span class="section"><a href="manual/bk01pt02ch05s02.html">Concept Checking</a></span></dt></dl></dd><dt><span class="chapter"><a href="manual/utilities.html">6. | |
1430 | Utilities | |
1431 | ||
1432 | -</a></span></dt><dd><dl><dt><span class="section"><a href="manual/utilities.html#std.util.functors">Functors</a></span></dt><dt><span class="section"><a href="manual/pairs.html">Pairs</a></span></dt><dt><span class="section"><a href="manual/memory.html">Memory</a></span></dt><dd><dl><dt><span class="section"><a href="manual/memory.html#std.util.memory.allocator">Allocators</a></span></dt><dd><dl><dt><span class="section"><a href="manual/memory.html#allocator.req">Requirements</a></span></dt><dt><span class="section"><a href="manual/memory.html#allocator.design_issues">Design Issues</a></span></dt><dt><span class="section"><a href="manual/memory.html#allocator.impl">Implementation</a></span></dt><dd><dl><dt><span class="section"><a href="manual/memory.html#id485345">Interface Design</a></span></dt><dt><span class="section"><a href="manual/memory.html#id485374">Selecting Default Allocation Policy</a></span></dt><dt><span class="section"><a href="manual/memory.html#id485485">Disabling Memory Caching</a></span></dt></dl></dd><dt><span class="section"><a href="manual/memory.html#allocator.using">Using a Specific Allocator</a></span></dt><dt><span class="section"><a href="manual/memory.html#allocator.custom">Custom Allocators</a></span></dt><dt><span class="section"><a href="manual/memory.html#allocator.ext">Extension Allocators</a></span></dt></dl></dd><dt><span class="section"><a href="manual/memory.html#std.util.memory.auto_ptr">auto_ptr</a></span></dt><dd><dl><dt><span class="section"><a href="manual/memory.html#auto_ptr.limitations">Limitations</a></span></dt><dt><span class="section"><a href="manual/memory.html#auto_ptr.using">Use in Containers</a></span></dt></dl></dd><dt><span class="section"><a href="manual/memory.html#std.util.memory.shared_ptr">shared_ptr</a></span></dt><dd><dl><dt><span class="section"><a href="manual/memory.html#shared_ptr.req">Requirements</a></span></dt><dt><span class="section"><a href="manual/memory.html#shared_ptr.design_issues">Design Issues</a></span></dt><dt><span class="section"><a href="manual/memory.html#shared_ptr.impl">Implementation</a></span></dt><dd><dl><dt><span class="section"><a href="manual/memory.html#id486484">Class Hierarchy</a></span></dt><dt><span class="section"><a href="manual/memory.html#id486672">Thread Safety</a></span></dt><dt><span class="section"><a href="manual/memory.html#id486733">Selecting Lock Policy</a></span></dt><dt><span class="section"><a href="manual/memory.html#id486854">Related functions and classes</a></span></dt></dl></dd><dt><span class="section"><a href="manual/memory.html#shared_ptr.using">Use</a></span></dt><dd><dl><dt><span class="section"><a href="manual/memory.html#id499306">Examples</a></span></dt><dt><span class="section"><a href="manual/memory.html#id499336">Unresolved Issues</a></span></dt></dl></dd><dt><span class="section"><a href="manual/memory.html#shared_ptr.ack">Acknowledgments</a></span></dt></dl></dd></dl></dd><dt><span class="section"><a href="manual/traits.html">Traits</a></span></dt></dl></dd><dt><span class="chapter"><a href="manual/strings.html">7. | |
1433 | +</a></span></dt><dd><dl><dt><span class="section"><a href="manual/utilities.html#std.util.functors">Functors</a></span></dt><dt><span class="section"><a href="manual/pairs.html">Pairs</a></span></dt><dt><span class="section"><a href="manual/memory.html">Memory</a></span></dt><dd><dl><dt><span class="section"><a href="manual/memory.html#std.util.memory.allocator">Allocators</a></span></dt><dd><dl><dt><span class="section"><a href="manual/memory.html#allocator.req">Requirements</a></span></dt><dt><span class="section"><a href="manual/memory.html#allocator.design_issues">Design Issues</a></span></dt><dt><span class="section"><a href="manual/memory.html#allocator.impl">Implementation</a></span></dt><dd><dl><dt><span class="section"><a href="manual/memory.html#id663833">Interface Design</a></span></dt><dt><span class="section"><a href="manual/memory.html#id663862">Selecting Default Allocation Policy</a></span></dt><dt><span class="section"><a href="manual/memory.html#id663973">Disabling Memory Caching</a></span></dt></dl></dd><dt><span class="section"><a href="manual/memory.html#allocator.using">Using a Specific Allocator</a></span></dt><dt><span class="section"><a href="manual/memory.html#allocator.custom">Custom Allocators</a></span></dt><dt><span class="section"><a href="manual/memory.html#allocator.ext">Extension Allocators</a></span></dt></dl></dd><dt><span class="section"><a href="manual/memory.html#std.util.memory.auto_ptr">auto_ptr</a></span></dt><dd><dl><dt><span class="section"><a href="manual/memory.html#auto_ptr.limitations">Limitations</a></span></dt><dt><span class="section"><a href="manual/memory.html#auto_ptr.using">Use in Containers</a></span></dt></dl></dd><dt><span class="section"><a href="manual/memory.html#std.util.memory.shared_ptr">shared_ptr</a></span></dt><dd><dl><dt><span class="section"><a href="manual/memory.html#shared_ptr.req">Requirements</a></span></dt><dt><span class="section"><a href="manual/memory.html#shared_ptr.design_issues">Design Issues</a></span></dt><dt><span class="section"><a href="manual/memory.html#shared_ptr.impl">Implementation</a></span></dt><dd><dl><dt><span class="section"><a href="manual/memory.html#id664972">Class Hierarchy</a></span></dt><dt><span class="section"><a href="manual/memory.html#id665160">Thread Safety</a></span></dt><dt><span class="section"><a href="manual/memory.html#id665221">Selecting Lock Policy</a></span></dt><dt><span class="section"><a href="manual/memory.html#id665342">Related functions and classes</a></span></dt></dl></dd><dt><span class="section"><a href="manual/memory.html#shared_ptr.using">Use</a></span></dt><dd><dl><dt><span class="section"><a href="manual/memory.html#id677792">Examples</a></span></dt><dt><span class="section"><a href="manual/memory.html#id677822">Unresolved Issues</a></span></dt></dl></dd><dt><span class="section"><a href="manual/memory.html#shared_ptr.ack">Acknowledgments</a></span></dt></dl></dd></dl></dd><dt><span class="section"><a href="manual/traits.html">Traits</a></span></dt></dl></dd><dt><span class="chapter"><a href="manual/strings.html">7. | |
1434 | Strings | |
1435 | ||
1436 | </a></span></dt><dd><dl><dt><span class="section"><a href="manual/strings.html#std.strings.string">String Classes</a></span></dt><dd><dl><dt><span class="section"><a href="manual/strings.html#strings.string.simple">Simple Transformations</a></span></dt><dt><span class="section"><a href="manual/strings.html#strings.string.case">Case Sensitivity</a></span></dt><dt><span class="section"><a href="manual/strings.html#strings.string.character_types">Arbitrary Character Types</a></span></dt><dt><span class="section"><a href="manual/strings.html#strings.string.token">Tokenizing</a></span></dt><dt><span class="section"><a href="manual/strings.html#strings.string.shrink">Shrink to Fit</a></span></dt><dt><span class="section"><a href="manual/strings.html#strings.string.Cstring">CString (MFC)</a></span></dt></dl></dd></dl></dd><dt><span class="chapter"><a href="manual/localization.html">8. | |
1437 | Localization | |
1438 | ||
1439 | -</a></span></dt><dd><dl><dt><span class="section"><a href="manual/localization.html#std.localization.locales">Locales</a></span></dt><dd><dl><dt><span class="section"><a href="manual/localization.html#std.localization.locales.locale">locale</a></span></dt><dd><dl><dt><span class="section"><a href="manual/localization.html#locales.locale.req">Requirements</a></span></dt><dt><span class="section"><a href="manual/localization.html#locales.locale.design">Design</a></span></dt><dt><span class="section"><a href="manual/localization.html#locales.locale.impl">Implementation</a></span></dt><dd><dl><dt><span class="section"><a href="manual/localization.html#locale.impl.c">Interacting with "C" locales</a></span></dt></dl></dd><dt><span class="section"><a href="manual/localization.html#locales.locale.future">Future</a></span></dt></dl></dd></dl></dd><dt><span class="section"><a href="manual/facets.html">Facets</a></span></dt><dd><dl><dt><span class="section"><a href="manual/facets.html#std.localization.facet.ctype">ctype</a></span></dt><dd><dl><dt><span class="section"><a href="manual/facets.html#facet.ctype.impl">Implementation</a></span></dt><dd><dl><dt><span class="section"><a href="manual/facets.html#id501036">Specializations</a></span></dt></dl></dd><dt><span class="section"><a href="manual/facets.html#facet.ctype.future">Future</a></span></dt></dl></dd><dt><span class="section"><a href="manual/facets.html#std.localization.facet.codecvt">codecvt</a></span></dt><dd><dl><dt><span class="section"><a href="manual/facets.html#facet.codecvt.req">Requirements</a></span></dt><dt><span class="section"><a href="manual/facets.html#facet.codecvt.design">Design</a></span></dt><dd><dl><dt><span class="section"><a href="manual/facets.html#codecvt.design.wchar_t_size"><span class="type">wchar_t</span> Size</a></span></dt><dt><span class="section"><a href="manual/facets.html#codecvt.design.unicode">Support for Unicode</a></span></dt><dt><span class="section"><a href="manual/facets.html#codecvt.design.issues">Other Issues</a></span></dt></dl></dd><dt><span class="section"><a href="manual/facets.html#facet.codecvt.impl">Implementation</a></span></dt><dt><span class="section"><a href="manual/facets.html#facet.codecvt.use">Use</a></span></dt><dt><span class="section"><a href="manual/facets.html#facet.codecvt.future">Future</a></span></dt></dl></dd><dt><span class="section"><a href="manual/facets.html#manual.localization.facet.messages">messages</a></span></dt><dd><dl><dt><span class="section"><a href="manual/facets.html#facet.messages.req">Requirements</a></span></dt><dt><span class="section"><a href="manual/facets.html#facet.messages.design">Design</a></span></dt><dt><span class="section"><a href="manual/facets.html#facet.messages.impl">Implementation</a></span></dt><dd><dl><dt><span class="section"><a href="manual/facets.html#messages.impl.models">Models</a></span></dt><dt><span class="section"><a href="manual/facets.html#messages.impl.gnu">The GNU Model</a></span></dt></dl></dd><dt><span class="section"><a href="manual/facets.html#facet.messages.use">Use</a></span></dt><dt><span class="section"><a href="manual/facets.html#facet.messages.future">Future</a></span></dt></dl></dd></dl></dd></dl></dd><dt><span class="chapter"><a href="manual/containers.html">9. | |
1440 | +</a></span></dt><dd><dl><dt><span class="section"><a href="manual/localization.html#std.localization.locales">Locales</a></span></dt><dd><dl><dt><span class="section"><a href="manual/localization.html#std.localization.locales.locale">locale</a></span></dt><dd><dl><dt><span class="section"><a href="manual/localization.html#locales.locale.req">Requirements</a></span></dt><dt><span class="section"><a href="manual/localization.html#locales.locale.design">Design</a></span></dt><dt><span class="section"><a href="manual/localization.html#locales.locale.impl">Implementation</a></span></dt><dd><dl><dt><span class="section"><a href="manual/localization.html#locale.impl.c">Interacting with "C" locales</a></span></dt></dl></dd><dt><span class="section"><a href="manual/localization.html#locales.locale.future">Future</a></span></dt></dl></dd></dl></dd><dt><span class="section"><a href="manual/facets.html">Facets</a></span></dt><dd><dl><dt><span class="section"><a href="manual/facets.html#std.localization.facet.ctype">ctype</a></span></dt><dd><dl><dt><span class="section"><a href="manual/facets.html#facet.ctype.impl">Implementation</a></span></dt><dd><dl><dt><span class="section"><a href="manual/facets.html#id679521">Specializations</a></span></dt></dl></dd><dt><span class="section"><a href="manual/facets.html#facet.ctype.future">Future</a></span></dt></dl></dd><dt><span class="section"><a href="manual/facets.html#std.localization.facet.codecvt">codecvt</a></span></dt><dd><dl><dt><span class="section"><a href="manual/facets.html#facet.codecvt.req">Requirements</a></span></dt><dt><span class="section"><a href="manual/facets.html#facet.codecvt.design">Design</a></span></dt><dd><dl><dt><span class="section"><a href="manual/facets.html#codecvt.design.wchar_t_size"><span class="type">wchar_t</span> Size</a></span></dt><dt><span class="section"><a href="manual/facets.html#codecvt.design.unicode">Support for Unicode</a></span></dt><dt><span class="section"><a href="manual/facets.html#codecvt.design.issues">Other Issues</a></span></dt></dl></dd><dt><span class="section"><a href="manual/facets.html#facet.codecvt.impl">Implementation</a></span></dt><dt><span class="section"><a href="manual/facets.html#facet.codecvt.use">Use</a></span></dt><dt><span class="section"><a href="manual/facets.html#facet.codecvt.future">Future</a></span></dt></dl></dd><dt><span class="section"><a href="manual/facets.html#manual.localization.facet.messages">messages</a></span></dt><dd><dl><dt><span class="section"><a href="manual/facets.html#facet.messages.req">Requirements</a></span></dt><dt><span class="section"><a href="manual/facets.html#facet.messages.design">Design</a></span></dt><dt><span class="section"><a href="manual/facets.html#facet.messages.impl">Implementation</a></span></dt><dd><dl><dt><span class="section"><a href="manual/facets.html#messages.impl.models">Models</a></span></dt><dt><span class="section"><a href="manual/facets.html#messages.impl.gnu">The GNU Model</a></span></dt></dl></dd><dt><span class="section"><a href="manual/facets.html#facet.messages.use">Use</a></span></dt><dt><span class="section"><a href="manual/facets.html#facet.messages.future">Future</a></span></dt></dl></dd></dl></dd></dl></dd><dt><span class="chapter"><a href="manual/containers.html">9. | |
1441 | Containers | |
1442 | ||
1443 | </a></span></dt><dd><dl><dt><span class="section"><a href="manual/containers.html#std.containers.sequences">Sequences</a></span></dt><dd><dl><dt><span class="section"><a href="manual/containers.html#containers.sequences.list">list</a></span></dt><dd><dl><dt><span class="section"><a href="manual/containers.html#sequences.list.size">list::size() is O(n)</a></span></dt></dl></dd><dt><span class="section"><a href="manual/containers.html#containers.sequences.vector">vector</a></span></dt><dd><dl><dt><span class="section"><a href="manual/containers.html#sequences.vector.management">Space Overhead Management</a></span></dt></dl></dd></dl></dd><dt><span class="section"><a href="manual/associative.html">Associative</a></span></dt><dd><dl><dt><span class="section"><a href="manual/associative.html#containers.associative.insert_hints">Insertion Hints</a></span></dt><dt><span class="section"><a href="manual/associative.html#containers.associative.bitset">bitset</a></span></dt><dd><dl><dt><span class="section"><a href="manual/associative.html#associative.bitset.size_variable">Size Variable</a></span></dt><dt><span class="section"><a href="manual/associative.html#associative.bitset.type_string">Type String</a></span></dt></dl></dd></dl></dd><dt><span class="section"><a href="manual/containers_and_c.html">Interacting with C</a></span></dt><dd><dl><dt><span class="section"><a href="manual/containers_and_c.html#containers.c.vs_array">Containers vs. Arrays</a></span></dt></dl></dd></dl></dd><dt><span class="chapter"><a href="manual/iterators.html">10. | |
1444 | @@ -65,7 +65,7 @@ | |
1445 | </a></span></dt><dd><dl><dt><span class="section"><a href="manual/concurrency.html#std.concurrency.api">API Reference</a></span></dt></dl></dd></dl></dd><dt><span class="part"><a href="manual/extensions.html">III. | |
1446 | Extensions | |
1447 | ||
1448 | -</a></span></dt><dd><dl><dt><span class="preface"><a href="manual/bk01pt03pr01.html"/></span></dt><dt><span class="chapter"><a href="manual/ext_compile_checks.html">16. Compile Time Checks</a></span></dt><dt><span class="chapter"><a href="manual/debug_mode.html">17. Debug Mode</a></span></dt><dd><dl><dt><span class="section"><a href="manual/debug_mode.html#manual.ext.debug_mode.intro">Intro</a></span></dt><dt><span class="section"><a href="manual/bk01pt03ch17s02.html">Semantics</a></span></dt><dt><span class="section"><a href="manual/bk01pt03ch17s03.html">Using</a></span></dt><dd><dl><dt><span class="section"><a href="manual/bk01pt03ch17s03.html#debug_mode.using.mode">Using the Debug Mode</a></span></dt><dt><span class="section"><a href="manual/bk01pt03ch17s03.html#debug_mode.using.specific">Using a Specific Debug Container</a></span></dt></dl></dd><dt><span class="section"><a href="manual/bk01pt03ch17s04.html">Design</a></span></dt><dd><dl><dt><span class="section"><a href="manual/bk01pt03ch17s04.html#debug_mode.design.goals">Goals</a></span></dt><dt><span class="section"><a href="manual/bk01pt03ch17s04.html#debug_mode.design.methods">Methods</a></span></dt><dd><dl><dt><span class="section"><a href="manual/bk01pt03ch17s04.html#debug_mode.design.methods.wrappers">The Wrapper Model</a></span></dt><dd><dl><dt><span class="section"><a href="manual/bk01pt03ch17s04.html#debug_mode.design.methods.safe_iter">Safe Iterators</a></span></dt><dt><span class="section"><a href="manual/bk01pt03ch17s04.html#debug_mode.design.methods.safe_seq">Safe Sequences (Containers)</a></span></dt></dl></dd><dt><span class="section"><a href="manual/bk01pt03ch17s04.html#debug_mode.design.methods.precond">Precondition Checking</a></span></dt><dt><span class="section"><a href="manual/bk01pt03ch17s04.html#debug_mode.design.methods.coexistence">Release- and debug-mode coexistence</a></span></dt><dd><dl><dt><span class="section"><a href="manual/bk01pt03ch17s04.html#methods.coexistence.compile">Compile-time coexistence of release- and debug-mode components</a></span></dt><dt><span class="section"><a href="manual/bk01pt03ch17s04.html#methods.coexistence.link">Link- and run-time coexistence of release- and | |
1449 | +</a></span></dt><dd><dl><dt><span class="preface"><a href="manual/bk01pt03pr01.html"></a></span></dt><dt><span class="chapter"><a href="manual/ext_compile_checks.html">16. Compile Time Checks</a></span></dt><dt><span class="chapter"><a href="manual/debug_mode.html">17. Debug Mode</a></span></dt><dd><dl><dt><span class="section"><a href="manual/debug_mode.html#manual.ext.debug_mode.intro">Intro</a></span></dt><dt><span class="section"><a href="manual/bk01pt03ch17s02.html">Semantics</a></span></dt><dt><span class="section"><a href="manual/bk01pt03ch17s03.html">Using</a></span></dt><dd><dl><dt><span class="section"><a href="manual/bk01pt03ch17s03.html#debug_mode.using.mode">Using the Debug Mode</a></span></dt><dt><span class="section"><a href="manual/bk01pt03ch17s03.html#debug_mode.using.specific">Using a Specific Debug Container</a></span></dt></dl></dd><dt><span class="section"><a href="manual/bk01pt03ch17s04.html">Design</a></span></dt><dd><dl><dt><span class="section"><a href="manual/bk01pt03ch17s04.html#debug_mode.design.goals">Goals</a></span></dt><dt><span class="section"><a href="manual/bk01pt03ch17s04.html#debug_mode.design.methods">Methods</a></span></dt><dd><dl><dt><span class="section"><a href="manual/bk01pt03ch17s04.html#debug_mode.design.methods.wrappers">The Wrapper Model</a></span></dt><dd><dl><dt><span class="section"><a href="manual/bk01pt03ch17s04.html#debug_mode.design.methods.safe_iter">Safe Iterators</a></span></dt><dt><span class="section"><a href="manual/bk01pt03ch17s04.html#debug_mode.design.methods.safe_seq">Safe Sequences (Containers)</a></span></dt></dl></dd><dt><span class="section"><a href="manual/bk01pt03ch17s04.html#debug_mode.design.methods.precond">Precondition Checking</a></span></dt><dt><span class="section"><a href="manual/bk01pt03ch17s04.html#debug_mode.design.methods.coexistence">Release- and debug-mode coexistence</a></span></dt><dd><dl><dt><span class="section"><a href="manual/bk01pt03ch17s04.html#methods.coexistence.compile">Compile-time coexistence of release- and debug-mode components</a></span></dt><dt><span class="section"><a href="manual/bk01pt03ch17s04.html#methods.coexistence.link">Link- and run-time coexistence of release- and | |
1450 | debug-mode components</a></span></dt><dt><span class="section"><a href="manual/bk01pt03ch17s04.html#methods.coexistence.alt">Alternatives for Coexistence</a></span></dt></dl></dd></dl></dd><dt><span class="section"><a href="manual/bk01pt03ch17s04.html#debug_mode.design.other">Other Implementations</a></span></dt></dl></dd></dl></dd><dt><span class="chapter"><a href="manual/parallel_mode.html">18. Parallel Mode</a></span></dt><dd><dl><dt><span class="section"><a href="manual/parallel_mode.html#manual.ext.parallel_mode.intro">Intro</a></span></dt><dt><span class="section"><a href="manual/bk01pt03ch18s02.html">Semantics</a></span></dt><dt><span class="section"><a href="manual/bk01pt03ch18s03.html">Using</a></span></dt><dd><dl><dt><span class="section"><a href="manual/bk01pt03ch18s03.html#parallel_mode.using.prereq_flags">Prerequisite Compiler Flags</a></span></dt><dt><span class="section"><a href="manual/bk01pt03ch18s03.html#parallel_mode.using.parallel_mode">Using Parallel Mode</a></span></dt><dt><span class="section"><a href="manual/bk01pt03ch18s03.html#parallel_mode.using.specific">Using Specific Parallel Components</a></span></dt></dl></dd><dt><span class="section"><a href="manual/bk01pt03ch18s04.html">Design</a></span></dt><dd><dl><dt><span class="section"><a href="manual/bk01pt03ch18s04.html#parallel_mode.design.intro">Interface Basics</a></span></dt><dt><span class="section"><a href="manual/bk01pt03ch18s04.html#parallel_mode.design.tuning">Configuration and Tuning</a></span></dt><dd><dl><dt><span class="section"><a href="manual/bk01pt03ch18s04.html#parallel_mode.design.tuning.omp">Setting up the OpenMP Environment</a></span></dt><dt><span class="section"><a href="manual/bk01pt03ch18s04.html#parallel_mode.design.tuning.compile">Compile Time Switches</a></span></dt><dt><span class="section"><a href="manual/bk01pt03ch18s04.html#parallel_mode.design.tuning.settings">Run Time Settings and Defaults</a></span></dt></dl></dd><dt><span class="section"><a href="manual/bk01pt03ch18s04.html#parallel_mode.design.impl">Implementation Namespaces</a></span></dt></dl></dd><dt><span class="section"><a href="manual/bk01pt03ch18s05.html">Testing</a></span></dt><dt><span class="bibliography"><a href="manual/parallel_mode.html#parallel_mode.biblio">Bibliography</a></span></dt></dl></dd><dt><span class="chapter"><a href="manual/profile_mode.html">19. Profile Mode</a></span></dt><dd><dl><dt><span class="section"><a href="manual/profile_mode.html#manual.ext.profile_mode.intro">Intro</a></span></dt><dd><dl><dt><span class="section"><a href="manual/profile_mode.html#manual.ext.profile_mode.using">Using the Profile Mode</a></span></dt><dt><span class="section"><a href="manual/profile_mode.html#manual.ext.profile_mode.tuning">Tuning the Profile Mode</a></span></dt></dl></dd><dt><span class="section"><a href="manual/bk01pt03ch19s02.html">Design</a></span></dt><dd><dl><dt><span class="section"><a href="manual/bk01pt03ch19s02.html#manual.ext.profile_mode.design.wrapper">Wrapper Model</a></span></dt><dt><span class="section"><a href="manual/bk01pt03ch19s02.html#manual.ext.profile_mode.design.instrumentation">Instrumentation</a></span></dt><dt><span class="section"><a href="manual/bk01pt03ch19s02.html#manual.ext.profile_mode.design.rtlib">Run Time Behavior</a></span></dt><dt><span class="section"><a href="manual/bk01pt03ch19s02.html#manual.ext.profile_mode.design.analysis">Analysis and Diagnostics</a></span></dt><dt><span class="section"><a href="manual/bk01pt03ch19s02.html#manual.ext.profile_mode.design.cost-model">Cost Model</a></span></dt><dt><span class="section"><a href="manual/bk01pt03ch19s02.html#manual.ext.profile_mode.design.reports">Reports</a></span></dt><dt><span class="section"><a href="manual/bk01pt03ch19s02.html#manual.ext.profile_mode.design.testing">Testing</a></span></dt></dl></dd><dt><span class="section"><a href="manual/bk01pt03ch19s03.html">Extensions for Custom Containers</a></span></dt><dt><span class="section"><a href="manual/bk01pt03ch19s04.html">Empirical Cost Model</a></span></dt><dt><span class="section"><a href="manual/bk01pt03ch19s05.html">Implementation Issues</a></span></dt><dd><dl><dt><span class="section"><a href="manual/bk01pt03ch19s05.html#manual.ext.profile_mode.implementation.stack">Stack Traces</a></span></dt><dt><span class="section"><a href="manual/bk01pt03ch19s05.html#manual.ext.profile_mode.implementation.symbols">Symbolization of Instruction Addresses</a></span></dt><dt><span class="section"><a href="manual/bk01pt03ch19s05.html#manual.ext.profile_mode.implementation.concurrency">Concurrency</a></span></dt><dt><span class="section"><a href="manual/bk01pt03ch19s05.html#manual.ext.profile_mode.implementation.stdlib-in-proflib">Using the Standard Library in the Instrumentation Implementation</a></span></dt><dt><span class="section"><a href="manual/bk01pt03ch19s05.html#manual.ext.profile_mode.implementation.malloc-hooks">Malloc Hooks</a></span></dt><dt><span class="section"><a href="manual/bk01pt03ch19s05.html#manual.ext.profile_mode.implementation.construction-destruction">Construction and Destruction of Global Objects</a></span></dt></dl></dd><dt><span class="section"><a href="manual/bk01pt03ch19s06.html">Developer Information</a></span></dt><dd><dl><dt><span class="section"><a href="manual/bk01pt03ch19s06.html#manual.ext.profile_mode.developer.bigpic">Big Picture</a></span></dt><dt><span class="section"><a href="manual/bk01pt03ch19s06.html#manual.ext.profile_mode.developer.howto">How To Add A Diagnostic</a></span></dt></dl></dd><dt><span class="section"><a href="manual/bk01pt03ch19s07.html">Diagnostics</a></span></dt><dd><dl><dt><span class="section"><a href="manual/bk01pt03ch19s07.html#manual.ext.profile_mode.analysis.template">Diagnostic Template</a></span></dt><dt><span class="section"><a href="manual/bk01pt03ch19s07.html#manual.ext.profile_mode.analysis.containers">Containers</a></span></dt><dd><dl><dt><span class="section"><a href="manual/bk01pt03ch19s07.html#manual.ext.profile_mode.analysis.hashtable_too_small">Hashtable Too Small</a></span></dt><dt><span class="section"><a href="manual/bk01pt03ch19s07.html#manual.ext.profile_mode.analysis.hashtable_too_large">Hashtable Too Large</a></span></dt><dt><span class="section"><a href="manual/bk01pt03ch19s07.html#manual.ext.profile_mode.analysis.inefficient_hash">Inefficient Hash</a></span></dt><dt><span class="section"><a href="manual/bk01pt03ch19s07.html#manual.ext.profile_mode.analysis.vector_too_small">Vector Too Small</a></span></dt><dt><span class="section"><a href="manual/bk01pt03ch19s07.html#manual.ext.profile_mode.analysis.vector_too_large">Vector Too Large</a></span></dt><dt><span class="section"><a href="manual/bk01pt03ch19s07.html#manual.ext.profile_mode.analysis.vector_to_hashtable">Vector to Hashtable</a></span></dt><dt><span class="section"><a href="manual/bk01pt03ch19s07.html#manual.ext.profile_mode.analysis.hashtable_to_vector">Hashtable to Vector</a></span></dt><dt><span class="section"><a href="manual/bk01pt03ch19s07.html#manual.ext.profile_mode.analysis.vector_to_list">Vector to List</a></span></dt><dt><span class="section"><a href="manual/bk01pt03ch19s07.html#manual.ext.profile_mode.analysis.list_to_vector">List to Vector</a></span></dt><dt><span class="section"><a href="manual/bk01pt03ch19s07.html#manual.ext.profile_mode.analysis.list_to_slist">List to Forward List (Slist)</a></span></dt><dt><span class="section"><a href="manual/bk01pt03ch19s07.html#manual.ext.profile_mode.analysis.assoc_ord_to_unord">Ordered to Unordered Associative Container</a></span></dt></dl></dd><dt><span class="section"><a href="manual/bk01pt03ch19s07.html#manual.ext.profile_mode.analysis.algorithms">Algorithms</a></span></dt><dd><dl><dt><span class="section"><a href="manual/bk01pt03ch19s07.html#manual.ext.profile_mode.analysis.algorithms.sort">Sort Algorithm Performance</a></span></dt></dl></dd><dt><span class="section"><a href="manual/bk01pt03ch19s07.html#manual.ext.profile_mode.analysis.locality">Data Locality</a></span></dt><dd><dl><dt><span class="section"><a href="manual/bk01pt03ch19s07.html#manual.ext.profile_mode.analysis.locality.sw_prefetch">Need Software Prefetch</a></span></dt><dt><span class="section"><a href="manual/bk01pt03ch19s07.html#manual.ext.profile_mode.analysis.locality.linked">Linked Structure Locality</a></span></dt></dl></dd><dt><span class="section"><a href="manual/bk01pt03ch19s07.html#manual.ext.profile_mode.analysis.mthread">Multithreaded Data Access</a></span></dt><dd><dl><dt><span class="section"><a href="manual/bk01pt03ch19s07.html#manual.ext.profile_mode.analysis.mthread.ddtest">Data Dependence Violations at Container Level</a></span></dt><dt><span class="section"><a href="manual/bk01pt03ch19s07.html#manual.ext.profile_mode.analysis.mthread.false_share">False Sharing</a></span></dt></dl></dd><dt><span class="section"><a href="manual/bk01pt03ch19s07.html#manual.ext.profile_mode.analysis.statistics">Statistics</a></span></dt></dl></dd><dt><span class="bibliography"><a href="manual/profile_mode.html#profile_mode.biblio">Bibliography</a></span></dt></dl></dd><dt><span class="chapter"><a href="manual/mt_allocator.html">20. The mt_allocator</a></span></dt><dd><dl><dt><span class="section"><a href="manual/mt_allocator.html#allocator.mt.intro">Intro</a></span></dt><dt><span class="section"><a href="manual/bk01pt03ch20s02.html">Design Issues</a></span></dt><dd><dl><dt><span class="section"><a href="manual/bk01pt03ch20s02.html#allocator.mt.overview">Overview</a></span></dt></dl></dd><dt><span class="section"><a href="manual/bk01pt03ch20s03.html">Implementation</a></span></dt><dd><dl><dt><span class="section"><a href="manual/bk01pt03ch20s03.html#allocator.mt.tune">Tunable Parameters</a></span></dt><dt><span class="section"><a href="manual/bk01pt03ch20s03.html#allocator.mt.init">Initialization</a></span></dt><dt><span class="section"><a href="manual/bk01pt03ch20s03.html#allocator.mt.deallocation">Deallocation Notes</a></span></dt></dl></dd><dt><span class="section"><a href="manual/bk01pt03ch20s04.html">Single Thread Example</a></span></dt><dt><span class="section"><a href="manual/bk01pt03ch20s05.html">Multiple Thread Example</a></span></dt></dl></dd><dt><span class="chapter"><a href="manual/bitmap_allocator.html">21. The bitmap_allocator</a></span></dt><dd><dl><dt><span class="section"><a href="manual/bitmap_allocator.html#allocator.bitmap.design">Design</a></span></dt><dt><span class="section"><a href="manual/bk01pt03ch21s02.html">Implementation</a></span></dt><dd><dl><dt><span class="section"><a href="manual/bk01pt03ch21s02.html#bitmap.impl.free_list_store">Free List Store</a></span></dt><dt><span class="section"><a href="manual/bk01pt03ch21s02.html#bitmap.impl.super_block">Super Block</a></span></dt><dt><span class="section"><a href="manual/bk01pt03ch21s02.html#bitmap.impl.super_block_data">Super Block Data Layout</a></span></dt><dt><span class="section"><a href="manual/bk01pt03ch21s02.html#bitmap.impl.max_wasted">Maximum Wasted Percentage</a></span></dt><dt><span class="section"><a href="manual/bk01pt03ch21s02.html#bitmap.impl.allocate"><code class="function">allocate</code></a></span></dt><dt><span class="section"><a href="manual/bk01pt03ch21s02.html#bitmap.impl.deallocate"><code class="function">deallocate</code></a></span></dt><dt><span class="section"><a href="manual/bk01pt03ch21s02.html#bitmap.impl.questions">Questions</a></span></dt><dd><dl><dt><span class="section"><a href="manual/bk01pt03ch21s02.html#bitmap.impl.question.1">1</a></span></dt><dt><span class="section"><a href="manual/bk01pt03ch21s02.html#bitmap.impl.question.2">2</a></span></dt><dt><span class="section"><a href="manual/bk01pt03ch21s02.html#bitmap.impl.question.3">3</a></span></dt></dl></dd><dt><span class="section"><a href="manual/bk01pt03ch21s02.html#bitmap.impl.locality">Locality</a></span></dt><dt><span class="section"><a href="manual/bk01pt03ch21s02.html#bitmap.impl.grow_policy">Overhead and Grow Policy</a></span></dt></dl></dd></dl></dd><dt><span class="chapter"><a href="manual/policy_data_structures.html">22. Policy-Based Data Structures</a></span></dt><dd><dl><dt><span class="section"><a href="manual/policy_data_structures.html#pbds.intro">Intro</a></span></dt><dd><dl><dt><span class="section"><a href="manual/policy_data_structures.html#pbds.intro.issues">Performance Issues</a></span></dt><dd><dl><dt><span class="section"><a href="manual/policy_data_structures.html#pbds.intro.issues.associative">Associative</a></span></dt><dt><span class="section"><a href="manual/policy_data_structures.html#pbds.intro.issues.priority_queue">Priority Que</a></span></dt></dl></dd><dt><span class="section"><a href="manual/policy_data_structures.html#pbds.intro.motivation">Goals</a></span></dt><dd><dl><dt><span class="section"><a href="manual/policy_data_structures.html#pbds.intro.motivation.associative">Associative</a></span></dt><dd><dl><dt><span class="section"><a href="manual/policy_data_structures.html#motivation.associative.policy">Policy Choices</a></span></dt><dt><span class="section"><a href="manual/policy_data_structures.html#motivation.associative.underlying">Underlying Data Structures</a></span></dt><dt><span class="section"><a href="manual/policy_data_structures.html#motivation.associative.iterators">Iterators</a></span></dt><dt><span class="section"><a href="manual/policy_data_structures.html#motivation.associative.functions">Functional</a></span></dt></dl></dd><dt><span class="section"><a href="manual/policy_data_structures.html#pbds.intro.motivation.priority_queue">Priority Queues</a></span></dt><dd><dl><dt><span class="section"><a href="manual/policy_data_structures.html#motivation.priority_queue.policy">Policy Choices</a></span></dt><dt><span class="section"><a href="manual/policy_data_structures.html#motivation.priority_queue.underlying">Underlying Data Structures</a></span></dt><dt><span class="section"><a href="manual/policy_data_structures.html#motivation.priority_queue.binary_heap">Binary Heaps</a></span></dt></dl></dd></dl></dd></dl></dd><dt><span class="section"><a href="manual/policy_data_structures_using.html">Using</a></span></dt><dd><dl><dt><span class="section"><a href="manual/policy_data_structures_using.html#pbds.using.prereq">Prerequisites</a></span></dt><dt><span class="section"><a href="manual/policy_data_structures_using.html#pbds.using.organization">Organization</a></span></dt><dt><span class="section"><a href="manual/policy_data_structures_using.html#pbds.using.tutorial">Tutorial</a></span></dt><dd><dl><dt><span class="section"><a href="manual/policy_data_structures_using.html#pbds.using.tutorial.basic">Basic Use</a></span></dt><dt><span class="section"><a href="manual/policy_data_structures_using.html#pbds.using.tutorial.configuring"> | |
1451 | Configuring via Template Parameters | |
1452 | </a></span></dt><dt><span class="section"><a href="manual/policy_data_structures_using.html#pbds.using.tutorial.traits"> | |
1453 | @@ -165,4 +165,4 @@ | |
1454 | ||
1455 | </a></span></dt><dt><span class="appendix"><a href="manual/appendix_gpl.html">D. | |
1456 | <acronym class="acronym">GNU</acronym> General Public License version 3 | |
1457 | - </a></span></dt><dt><span class="appendix"><a href="manual/appendix_gfdl.html">E. GNU Free Documentation License</a></span></dt></dl></dd></dl></dd><dt><span class="book"><a href="bk02.html"/></span></dt><dd><dl><dt><span class="article"><a href="api.html">The GNU C++ Library API Reference</a></span></dt></dl></dd><dt><span class="book"><a href="bk03.html"/></span></dt><dd><dl><dt><span class="article"><a href="faq.html">Frequently Asked Questions</a></span></dt></dl></dd></dl></div></div><div class="navfooter"><hr/><table width="100%" summary="Navigation footer"><tr><td align="left"> </td><td align="center"> </td><td align="right"> <a accesskey="n" href="manual/index.html">Next</a></td></tr><tr><td align="left" valign="top"> </td><td align="center"> </td><td align="right" valign="top"> The GNU C++ Library Manual</td></tr></table></div></body></html> | |
1458 | + </a></span></dt><dt><span class="appendix"><a href="manual/appendix_gfdl.html">E. GNU Free Documentation License</a></span></dt></dl></dd></dl></dd><dt><span class="book"><a href="bk02.html"></a></span></dt><dd><dl><dt><span class="article"><a href="api.html">The GNU C++ Library API Reference</a></span></dt></dl></dd><dt><span class="book"><a href="bk03.html"></a></span></dt><dd><dl><dt><span class="article"><a href="faq.html">Frequently Asked Questions</a></span></dt></dl></dd></dl></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"> </td><td width="20%" align="center"> </td><td width="40%" align="right"> <a accesskey="n" href="manual/index.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"> </td><td width="20%" align="center"> </td><td width="40%" align="right" valign="top"> The GNU C++ Library Manual</td></tr></table></div></body></html> | |
1459 | Index: libstdc++-v3/doc/html/api.html | |
1460 | =================================================================== | |
9f95000d AM |
1461 | --- libstdc++-v3/doc/html/api.html (.../tags/gcc_4_7_2_release) (wersja 192468) |
1462 | +++ libstdc++-v3/doc/html/api.html (.../branches/gcc-4_7-branch) (wersja 192468) | |
5a87b929 AM |
1463 | @@ -1,16 +1,16 @@ |
1464 | <?xml version="1.0" encoding="UTF-8" standalone="no"?> | |
1465 | -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> | |
1466 | -<html xmlns="http://www.w3.org/1999/xhtml"><head><title>The GNU C++ Library API Reference</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1"/><meta name="keywords" content=" ISO C++ , runtime , library "/><link rel="home" href="index.html" title="The GNU C++ Library"/><link rel="up" href="bk02.html" title=""/><link rel="prev" href="bk02.html" title=""/><link rel="next" href="bk03.html" title=""/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">The GNU C++ Library API Reference</th></tr><tr><td align="left"><a accesskey="p" href="bk02.html">Prev</a> </td><th width="60%" align="center"/><td align="right"> <a accesskey="n" href="bk03.html">Next</a></td></tr></table><hr/></div><div class="article" title="The GNU C++ Library API Reference"><div class="titlepage"><div><div><h2 class="title"><a id="api"/>The GNU C++ Library API Reference</h2></div><div><p class="copyright">Copyright © | |
1467 | +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> | |
1468 | +<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>The GNU C++ Library API Reference</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1" /><meta name="keywords" content=" ISO C++ , runtime , library " /><link rel="home" href="index.html" title="The GNU C++ Library" /><link rel="up" href="bk02.html" title="" /><link rel="prev" href="bk02.html" title="" /><link rel="next" href="bk03.html" title="" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">The GNU C++ Library API Reference</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="bk02.html">Prev</a> </td><th width="60%" align="center"></th><td width="20%" align="right"> <a accesskey="n" href="bk03.html">Next</a></td></tr></table><hr /></div><div class="article" title="The GNU C++ Library API Reference"><div class="titlepage"><div><div><h2 class="title"><a id="api"></a>The GNU C++ Library API Reference</h2></div><div><p class="copyright">Copyright © | |
1469 | 2008 | |
1470 | , | |
1471 | 2010 | |
1472 | ||
1473 | - <a class="link" href="http://www.fsf.org/">FSF | |
1474 | + <a class="link" href="http://www.fsf.org/" target="_top">FSF | |
1475 | </a> | |
1476 | - </p></div><div><div class="legalnotice" title="Legal Notice"><a id="id401445"/><p> | |
1477 | + </p></div><div><div class="legalnotice" title="Legal Notice"><a id="id552605"></a><p> | |
1478 | <a class="link" href="manual/license.html" title="License">License | |
1479 | </a> | |
1480 | - </p></div></div></div><hr/></div><p> | |
1481 | + </p></div></div></div><hr /></div><p> | |
1482 | The GNU C++ library sources have been specially formatted so that | |
1483 | with the proper invocation of another tool (Doxygen), a set of | |
1484 | indexed reference material can generated from the sources files | |
1485 | @@ -20,29 +20,29 @@ | |
1486 | particular include file, looking at inheritance diagrams, etc. | |
1487 | </p><p> | |
1488 | The API documentation, rendered into HTML, can be viewed online: | |
1489 | -</p><div class="itemizedlist"><ul class="itemizedlist"><li class="listitem"><p> | |
1490 | - <a class="link" href="http://gcc.gnu.org/onlinedocs/libstdc++/libstdc++-html-USERS-3.4/index.html">for the 3.4 release | |
1491 | +</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p> | |
1492 | + <a class="link" href="http://gcc.gnu.org/onlinedocs/libstdc++/libstdc++-html-USERS-3.4/index.html" target="_top">for the 3.4 release | |
1493 | </a> | |
1494 | </p></li><li class="listitem"><p> | |
1495 | - <a class="link" href="http://gcc.gnu.org/onlinedocs/libstdc++/libstdc++-html-USERS-4.1/index.html">for the 4.1 release | |
1496 | + <a class="link" href="http://gcc.gnu.org/onlinedocs/libstdc++/libstdc++-html-USERS-4.1/index.html" target="_top">for the 4.1 release | |
1497 | </a> | |
1498 | </p></li><li class="listitem"><p> | |
1499 | - <a class="link" href="http://gcc.gnu.org/onlinedocs/libstdc++/libstdc++-html-USERS-4.2/index.html">for the 4.2 release | |
1500 | + <a class="link" href="http://gcc.gnu.org/onlinedocs/libstdc++/libstdc++-html-USERS-4.2/index.html" target="_top">for the 4.2 release | |
1501 | </a> | |
1502 | </p></li><li class="listitem"><p> | |
1503 | - <a class="link" href="http://gcc.gnu.org/onlinedocs/libstdc++/libstdc++-html-USERS-4.3/index.html">for the 4.3 release | |
1504 | + <a class="link" href="http://gcc.gnu.org/onlinedocs/libstdc++/libstdc++-html-USERS-4.3/index.html" target="_top">for the 4.3 release | |
1505 | </a> | |
1506 | </p></li><li class="listitem"><p> | |
1507 | - <a class="link" href="http://gcc.gnu.org/onlinedocs/libstdc++/libstdc++-html-USERS-4.4/index.html">for the 4.4 release | |
1508 | + <a class="link" href="http://gcc.gnu.org/onlinedocs/libstdc++/libstdc++-html-USERS-4.4/index.html" target="_top">for the 4.4 release | |
1509 | </a> | |
1510 | </p></li><li class="listitem"><p> | |
1511 | - <a class="link" href="http://gcc.gnu.org/onlinedocs/libstdc++/libstdc++-api-4.5/index.html">for the 4.5 release | |
1512 | + <a class="link" href="http://gcc.gnu.org/onlinedocs/libstdc++/libstdc++-api-4.5/index.html" target="_top">for the 4.5 release | |
1513 | </a> | |
1514 | </p></li><li class="listitem"><p> | |
1515 | - <a class="link" href="http://gcc.gnu.org/onlinedocs/libstdc++/libstdc++-api-4.6/index.html">for the 4.6 release | |
1516 | + <a class="link" href="http://gcc.gnu.org/onlinedocs/libstdc++/libstdc++-api-4.6/index.html" target="_top">for the 4.6 release | |
1517 | </a> | |
1518 | </p></li><li class="listitem"><p> | |
1519 | - <a class="link" href="http://gcc.gnu.org/onlinedocs/libstdc++/latest-doxygen/index.html">"the latest collection" | |
1520 | + <a class="link" href="http://gcc.gnu.org/onlinedocs/libstdc++/latest-doxygen/index.html" target="_top">"the latest collection" | |
1521 | </a> | |
1522 | (For the main development tree; see the date on the first page.) | |
1523 | </p></li></ul></div><p> | |
1524 | @@ -50,10 +50,10 @@ | |
1525 | gcc.org site in a directory located at | |
1526 | <code class="literal"><URL:ftp://gcc.gnu.org/pub/gcc/libstdc++/doxygen/></code>. | |
1527 | You will almost certainly need to use one of the | |
1528 | - <a class="link" href="http://gcc.gnu.org/mirrors.html">mirror sites</a> to download | |
1529 | + <a class="link" href="http://gcc.gnu.org/mirrors.html" target="_top">mirror sites</a> to download | |
1530 | the tarball. After unpacking, simply load libstdc++-html-*/index.html | |
1531 | into a browser. | |
1532 | </p><p> | |
1533 | In addition, a rendered set of man pages are available in the same | |
1534 | location specified above. Start with C++Intro(3). | |
1535 | -</p></div><div class="navfooter"><hr/><table width="100%" summary="Navigation footer"><tr><td align="left"><a accesskey="p" href="bk02.html">Prev</a> </td><td align="center"><a accesskey="u" href="bk02.html">Up</a></td><td align="right"> <a accesskey="n" href="bk03.html">Next</a></td></tr><tr><td align="left" valign="top"> </td><td align="center"><a accesskey="h" href="index.html">Home</a></td><td align="right" valign="top"> </td></tr></table></div></body></html> | |
1536 | +</p></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="bk02.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="bk02.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="bk03.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> </td></tr></table></div></body></html> | |
1537 | Index: libstdc++-v3/doc/html/manual/iterators.html | |
1538 | =================================================================== | |
9f95000d AM |
1539 | --- libstdc++-v3/doc/html/manual/iterators.html (.../tags/gcc_4_7_2_release) (wersja 192468) |
1540 | +++ libstdc++-v3/doc/html/manual/iterators.html (.../branches/gcc-4_7-branch) (wersja 192468) | |
5a87b929 AM |
1541 | @@ -1,14 +1,14 @@ |
1542 | <?xml version="1.0" encoding="UTF-8" standalone="no"?> | |
1543 | -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> | |
1544 | -<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Chapter 10. Iterators</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1"/><meta name="keywords" content=" ISO C++ , library "/><meta name="keywords" content=" ISO C++ , runtime , library "/><link rel="home" href="../index.html" title="The GNU C++ Library"/><link rel="up" href="bk01pt02.html" title="Part II. Standard Contents"/><link rel="prev" href="containers_and_c.html" title="Interacting with C"/><link rel="next" href="algorithms.html" title="Chapter 11. Algorithms"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 10. | |
1545 | +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> | |
1546 | +<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Chapter 10. Iterators</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1" /><meta name="keywords" content=" ISO C++ , library " /><meta name="keywords" content=" ISO C++ , runtime , library " /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="bk01pt02.html" title="Part II. Standard Contents" /><link rel="prev" href="containers_and_c.html" title="Interacting with C" /><link rel="next" href="algorithms.html" title="Chapter 11. Algorithms" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 10. | |
1547 | Iterators | |
1548 | ||
1549 | -</th></tr><tr><td align="left"><a accesskey="p" href="containers_and_c.html">Prev</a> </td><th width="60%" align="center">Part II. | |
1550 | +</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="containers_and_c.html">Prev</a> </td><th width="60%" align="center">Part II. | |
1551 | Standard Contents | |
1552 | - </th><td align="right"> <a accesskey="n" href="algorithms.html">Next</a></td></tr></table><hr/></div><div class="chapter" title="Chapter 10. Iterators"><div class="titlepage"><div><div><h2 class="title"><a id="std.iterators"/>Chapter 10. | |
1553 | + </th><td width="20%" align="right"> <a accesskey="n" href="algorithms.html">Next</a></td></tr></table><hr /></div><div class="chapter" title="Chapter 10. Iterators"><div class="titlepage"><div><div><h2 class="title"><a id="std.iterators"></a>Chapter 10. | |
1554 | Iterators | |
1555 | - <a id="id504099" class="indexterm"/> | |
1556 | -</h2></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl><dt><span class="section"><a href="iterators.html#std.iterators.predefined">Predefined</a></span></dt><dd><dl><dt><span class="section"><a href="iterators.html#iterators.predefined.vs_pointers">Iterators vs. Pointers</a></span></dt><dt><span class="section"><a href="iterators.html#iterators.predefined.end">One Past the End</a></span></dt></dl></dd></dl></div><div class="section" title="Predefined"><div class="titlepage"><div><div><h2 class="title"><a id="std.iterators.predefined"/>Predefined</h2></div></div></div><div class="section" title="Iterators vs. Pointers"><div class="titlepage"><div><div><h3 class="title"><a id="iterators.predefined.vs_pointers"/>Iterators vs. Pointers</h3></div></div></div><p> | |
1557 | + <a id="id682585" class="indexterm"></a> | |
1558 | +</h2></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl><dt><span class="section"><a href="iterators.html#std.iterators.predefined">Predefined</a></span></dt><dd><dl><dt><span class="section"><a href="iterators.html#iterators.predefined.vs_pointers">Iterators vs. Pointers</a></span></dt><dt><span class="section"><a href="iterators.html#iterators.predefined.end">One Past the End</a></span></dt></dl></dd></dl></div><div class="section" title="Predefined"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="std.iterators.predefined"></a>Predefined</h2></div></div></div><div class="section" title="Iterators vs. Pointers"><div class="titlepage"><div><div><h3 class="title"><a id="iterators.predefined.vs_pointers"></a>Iterators vs. Pointers</h3></div></div></div><p> | |
1559 | The following | |
1560 | FAQ <a class="link" href="../faq.html#faq.iterator_as_pod" title="7.1.">entry</a> points out that | |
1561 | iterators are not implemented as pointers. They are a generalization | |
1562 | @@ -44,7 +44,7 @@ | |
1563 | down through inheritance, so while the compiler has to do work | |
1564 | looking up all the names, your runtime code does not. (This has | |
1565 | been a prime concern from the beginning.) | |
1566 | - </p></div><div class="section" title="One Past the End"><div class="titlepage"><div><div><h3 class="title"><a id="iterators.predefined.end"/>One Past the End</h3></div></div></div><p>This starts off sounding complicated, but is actually very easy, | |
1567 | + </p></div><div class="section" title="One Past the End"><div class="titlepage"><div><div><h3 class="title"><a id="iterators.predefined.end"></a>One Past the End</h3></div></div></div><p>This starts off sounding complicated, but is actually very easy, | |
1568 | especially towards the end. Trust me. | |
1569 | </p><p>Beginners usually have a little trouble understand the whole | |
1570 | 'past-the-end' thing, until they remember their early algebra classes | |
1571 | @@ -53,7 +53,7 @@ | |
1572 | </p><p>First, some history, and a reminder of some of the funkier rules in | |
1573 | C and C++ for builtin arrays. The following rules have always been | |
1574 | true for both languages: | |
1575 | - </p><div class="orderedlist"><ol class="orderedlist"><li class="listitem"><p>You can point anywhere in the array, <span class="emphasis"><em>or to the first element | |
1576 | + </p><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><p>You can point anywhere in the array, <span class="emphasis"><em>or to the first element | |
1577 | past the end of the array</em></span>. A pointer that points to one | |
1578 | past the end of the array is guaranteed to be as unique as a | |
1579 | pointer to somewhere inside the array, so that you can compare | |
1580 | @@ -124,7 +124,7 @@ | |
1581 | sequences very simple to recognize: if the two endpoints compare | |
1582 | equal, then the {array, sequence, container, whatever} is empty. | |
1583 | </p><p>Just don't dereference <code class="code">end()</code>. | |
1584 | - </p></div></div></div><div class="navfooter"><hr/><table width="100%" summary="Navigation footer"><tr><td align="left"><a accesskey="p" href="containers_and_c.html">Prev</a> </td><td align="center"><a accesskey="u" href="bk01pt02.html">Up</a></td><td align="right"> <a accesskey="n" href="algorithms.html">Next</a></td></tr><tr><td align="left" valign="top">Interacting with C </td><td align="center"><a accesskey="h" href="../index.html">Home</a></td><td align="right" valign="top"> Chapter 11. | |
1585 | + </p></div></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="containers_and_c.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="bk01pt02.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="algorithms.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Interacting with C </td><td width="20%" align="center"><a accesskey="h" href="../index.html">Home</a></td><td width="40%" align="right" valign="top"> Chapter 11. | |
1586 | Algorithms | |
1587 | ||
1588 | </td></tr></table></div></body></html> | |
1589 | Index: libstdc++-v3/doc/html/manual/dynamic_memory.html | |
1590 | =================================================================== | |
9f95000d AM |
1591 | --- libstdc++-v3/doc/html/manual/dynamic_memory.html (.../tags/gcc_4_7_2_release) (wersja 192468) |
1592 | +++ libstdc++-v3/doc/html/manual/dynamic_memory.html (.../branches/gcc-4_7-branch) (wersja 192468) | |
5a87b929 AM |
1593 | @@ -1,13 +1,13 @@ |
1594 | <?xml version="1.0" encoding="UTF-8" standalone="no"?> | |
1595 | -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> | |
1596 | -<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Dynamic Memory</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1"/><meta name="keywords" content=" ISO C++ , library "/><meta name="keywords" content=" ISO C++ , runtime , library "/><link rel="home" href="../index.html" title="The GNU C++ Library"/><link rel="up" href="support.html" title="Chapter 4. Support"/><link rel="prev" href="support.html" title="Chapter 4. Support"/><link rel="next" href="termination.html" title="Termination"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Dynamic Memory</th></tr><tr><td align="left"><a accesskey="p" href="support.html">Prev</a> </td><th width="60%" align="center">Chapter 4. | |
1597 | +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> | |
1598 | +<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Dynamic Memory</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1" /><meta name="keywords" content=" ISO C++ , library " /><meta name="keywords" content=" ISO C++ , runtime , library " /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="support.html" title="Chapter 4. Support" /><link rel="prev" href="support.html" title="Chapter 4. Support" /><link rel="next" href="termination.html" title="Termination" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Dynamic Memory</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="support.html">Prev</a> </td><th width="60%" align="center">Chapter 4. | |
1599 | Support | |
1600 | ||
1601 | -</th><td align="right"> <a accesskey="n" href="termination.html">Next</a></td></tr></table><hr/></div><div class="section" title="Dynamic Memory"><div class="titlepage"><div><div><h2 class="title"><a id="std.support.memory"/>Dynamic Memory</h2></div></div></div><p> | |
1602 | +</th><td width="20%" align="right"> <a accesskey="n" href="termination.html">Next</a></td></tr></table><hr /></div><div class="section" title="Dynamic Memory"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="std.support.memory"></a>Dynamic Memory</h2></div></div></div><p> | |
1603 | There are six flavors each of <code class="function">new</code> and | |
1604 | <code class="function">delete</code>, so make certain that you're using the right | |
1605 | ones. Here are quickie descriptions of <code class="function">new</code>: | |
1606 | - </p><div class="itemizedlist"><ul class="itemizedlist"><li class="listitem"><p> | |
1607 | + </p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p> | |
1608 | single object form, throwing a | |
1609 | <code class="classname">bad_alloc</code> on errors; this is what most | |
1610 | people are used to using | |
1611 | @@ -66,7 +66,7 @@ | |
1612 | </pre><p> | |
1613 | <code class="classname">bad_alloc</code> is derived from the base <code class="classname">exception</code> | |
1614 | class defined in Sect1 19. | |
1615 | - </p></div><div class="navfooter"><hr/><table width="100%" summary="Navigation footer"><tr><td align="left"><a accesskey="p" href="support.html">Prev</a> </td><td align="center"><a accesskey="u" href="support.html">Up</a></td><td align="right"> <a accesskey="n" href="termination.html">Next</a></td></tr><tr><td align="left" valign="top">Chapter 4. | |
1616 | + </p></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="support.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="support.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="termination.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Chapter 4. | |
1617 | Support | |
1618 | ||
1619 | - </td><td align="center"><a accesskey="h" href="../index.html">Home</a></td><td align="right" valign="top"> Termination</td></tr></table></div></body></html> | |
1620 | + </td><td width="20%" align="center"><a accesskey="h" href="../index.html">Home</a></td><td width="40%" align="right" valign="top"> Termination</td></tr></table></div></body></html> | |
1621 | Index: libstdc++-v3/doc/html/manual/generalized_numeric_operations.html | |
1622 | =================================================================== | |
9f95000d AM |
1623 | --- libstdc++-v3/doc/html/manual/generalized_numeric_operations.html (.../tags/gcc_4_7_2_release) (wersja 192468) |
1624 | +++ libstdc++-v3/doc/html/manual/generalized_numeric_operations.html (.../branches/gcc-4_7-branch) (wersja 192468) | |
5a87b929 AM |
1625 | @@ -1,15 +1,15 @@ |
1626 | <?xml version="1.0" encoding="UTF-8" standalone="no"?> | |
1627 | -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> | |
1628 | -<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Generalized Operations</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1"/><meta name="keywords" content=" ISO C++ , library "/><meta name="keywords" content=" ISO C++ , runtime , library "/><link rel="home" href="../index.html" title="The GNU C++ Library"/><link rel="up" href="numerics.html" title="Chapter 12. Numerics"/><link rel="prev" href="numerics.html" title="Chapter 12. Numerics"/><link rel="next" href="numerics_and_c.html" title="Interacting with C"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Generalized Operations</th></tr><tr><td align="left"><a accesskey="p" href="numerics.html">Prev</a> </td><th width="60%" align="center">Chapter 12. | |
1629 | +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> | |
1630 | +<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Generalized Operations</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1" /><meta name="keywords" content=" ISO C++ , library " /><meta name="keywords" content=" ISO C++ , runtime , library " /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="numerics.html" title="Chapter 12. Numerics" /><link rel="prev" href="numerics.html" title="Chapter 12. Numerics" /><link rel="next" href="numerics_and_c.html" title="Interacting with C" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Generalized Operations</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="numerics.html">Prev</a> </td><th width="60%" align="center">Chapter 12. | |
1631 | Numerics | |
1632 | ||
1633 | -</th><td align="right"> <a accesskey="n" href="numerics_and_c.html">Next</a></td></tr></table><hr/></div><div class="section" title="Generalized Operations"><div class="titlepage"><div><div><h2 class="title"><a id="std.numerics.generalized_ops"/>Generalized Operations</h2></div></div></div><p> | |
1634 | +</th><td width="20%" align="right"> <a accesskey="n" href="numerics_and_c.html">Next</a></td></tr></table><hr /></div><div class="section" title="Generalized Operations"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="std.numerics.generalized_ops"></a>Generalized Operations</h2></div></div></div><p> | |
1635 | </p><p>There are four generalized functions in the <numeric> header | |
1636 | that follow the same conventions as those in <algorithm>. Each | |
1637 | of them is overloaded: one signature for common default operations, | |
1638 | and a second for fully general operations. Their names are | |
1639 | self-explanatory to anyone who works with numerics on a regular basis: | |
1640 | - </p><div class="itemizedlist"><ul class="itemizedlist"><li class="listitem"><p><code class="code">accumulate</code></p></li><li class="listitem"><p><code class="code">inner_product</code></p></li><li class="listitem"><p><code class="code">chapterial_sum</code></p></li><li class="listitem"><p><code class="code">adjacent_difference</code></p></li></ul></div><p>Here is a simple example of the two forms of <code class="code">accumulate</code>. | |
1641 | + </p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p><code class="code">accumulate</code></p></li><li class="listitem"><p><code class="code">inner_product</code></p></li><li class="listitem"><p><code class="code">chapterial_sum</code></p></li><li class="listitem"><p><code class="code">adjacent_difference</code></p></li></ul></div><p>Here is a simple example of the two forms of <code class="code">accumulate</code>. | |
1642 | </p><pre class="programlisting"> | |
1643 | int ar[50]; | |
1644 | int someval = somefunction(); | |
1645 | @@ -26,7 +26,7 @@ | |
1646 | and multiplies all the members of the array; here we must obviously | |
1647 | use 1 as a starting value instead of 0. | |
1648 | </p><p>The other three functions have similar dual-signature forms. | |
1649 | - </p></div><div class="navfooter"><hr/><table width="100%" summary="Navigation footer"><tr><td align="left"><a accesskey="p" href="numerics.html">Prev</a> </td><td align="center"><a accesskey="u" href="numerics.html">Up</a></td><td align="right"> <a accesskey="n" href="numerics_and_c.html">Next</a></td></tr><tr><td align="left" valign="top">Chapter 12. | |
1650 | + </p></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="numerics.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="numerics.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="numerics_and_c.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Chapter 12. | |
1651 | Numerics | |
1652 | ||
1653 | - </td><td align="center"><a accesskey="h" href="../index.html">Home</a></td><td align="right" valign="top"> Interacting with C</td></tr></table></div></body></html> | |
1654 | + </td><td width="20%" align="center"><a accesskey="h" href="../index.html">Home</a></td><td width="40%" align="right" valign="top"> Interacting with C</td></tr></table></div></body></html> | |
1655 | Index: libstdc++-v3/doc/html/manual/mt_allocator.html | |
1656 | =================================================================== | |
9f95000d AM |
1657 | --- libstdc++-v3/doc/html/manual/mt_allocator.html (.../tags/gcc_4_7_2_release) (wersja 192468) |
1658 | +++ libstdc++-v3/doc/html/manual/mt_allocator.html (.../branches/gcc-4_7-branch) (wersja 192468) | |
5a87b929 AM |
1659 | @@ -1,10 +1,10 @@ |
1660 | <?xml version="1.0" encoding="UTF-8" standalone="no"?> | |
1661 | -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> | |
1662 | -<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Chapter 20. The mt_allocator</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1"/><meta name="keywords" content=" ISO C++ , allocator "/><meta name="keywords" content=" ISO C++ , library "/><meta name="keywords" content=" ISO C++ , runtime , library "/><link rel="home" href="../index.html" title="The GNU C++ Library"/><link rel="up" href="extensions.html" title="Part III. Extensions"/><link rel="prev" href="bk01pt03ch19s07.html" title="Diagnostics"/><link rel="next" href="bk01pt03ch20s02.html" title="Design Issues"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 20. The mt_allocator</th></tr><tr><td align="left"><a accesskey="p" href="bk01pt03ch19s07.html">Prev</a> </td><th width="60%" align="center">Part III. | |
1663 | +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> | |
1664 | +<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Chapter 20. The mt_allocator</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1" /><meta name="keywords" content=" ISO C++ , allocator " /><meta name="keywords" content=" ISO C++ , library " /><meta name="keywords" content=" ISO C++ , runtime , library " /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="extensions.html" title="Part III. Extensions" /><link rel="prev" href="bk01pt03ch19s07.html" title="Diagnostics" /><link rel="next" href="bk01pt03ch20s02.html" title="Design Issues" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 20. The mt_allocator</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="bk01pt03ch19s07.html">Prev</a> </td><th width="60%" align="center">Part III. | |
1665 | Extensions | |
1666 | ||
1667 | -</th><td align="right"> <a accesskey="n" href="bk01pt03ch20s02.html">Next</a></td></tr></table><hr/></div><div class="chapter" title="Chapter 20. The mt_allocator"><div class="titlepage"><div><div><h2 class="title"><a id="manual.ext.allocator.mt"/>Chapter 20. The mt_allocator</h2></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl><dt><span class="section"><a href="mt_allocator.html#allocator.mt.intro">Intro</a></span></dt><dt><span class="section"><a href="bk01pt03ch20s02.html">Design Issues</a></span></dt><dd><dl><dt><span class="section"><a href="bk01pt03ch20s02.html#allocator.mt.overview">Overview</a></span></dt></dl></dd><dt><span class="section"><a href="bk01pt03ch20s03.html">Implementation</a></span></dt><dd><dl><dt><span class="section"><a href="bk01pt03ch20s03.html#allocator.mt.tune">Tunable Parameters</a></span></dt><dt><span class="section"><a href="bk01pt03ch20s03.html#allocator.mt.init">Initialization</a></span></dt><dt><span class="section"><a href="bk01pt03ch20s03.html#allocator.mt.deallocation">Deallocation Notes</a></span></dt></dl></dd><dt><span class="section"><a href="bk01pt03ch20s04.html">Single Thread Example</a></span></dt><dt><span class="section"><a href="bk01pt03ch20s05.html">Multiple Thread Example</a></span></dt></dl></div><p> | |
1668 | -</p><div class="section" title="Intro"><div class="titlepage"><div><div><h2 class="title"><a id="allocator.mt.intro"/>Intro</h2></div></div></div><p> | |
1669 | +</th><td width="20%" align="right"> <a accesskey="n" href="bk01pt03ch20s02.html">Next</a></td></tr></table><hr /></div><div class="chapter" title="Chapter 20. The mt_allocator"><div class="titlepage"><div><div><h2 class="title"><a id="manual.ext.allocator.mt"></a>Chapter 20. The mt_allocator</h2></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl><dt><span class="section"><a href="mt_allocator.html#allocator.mt.intro">Intro</a></span></dt><dt><span class="section"><a href="bk01pt03ch20s02.html">Design Issues</a></span></dt><dd><dl><dt><span class="section"><a href="bk01pt03ch20s02.html#allocator.mt.overview">Overview</a></span></dt></dl></dd><dt><span class="section"><a href="bk01pt03ch20s03.html">Implementation</a></span></dt><dd><dl><dt><span class="section"><a href="bk01pt03ch20s03.html#allocator.mt.tune">Tunable Parameters</a></span></dt><dt><span class="section"><a href="bk01pt03ch20s03.html#allocator.mt.init">Initialization</a></span></dt><dt><span class="section"><a href="bk01pt03ch20s03.html#allocator.mt.deallocation">Deallocation Notes</a></span></dt></dl></dd><dt><span class="section"><a href="bk01pt03ch20s04.html">Single Thread Example</a></span></dt><dt><span class="section"><a href="bk01pt03ch20s05.html">Multiple Thread Example</a></span></dt></dl></div><p> | |
1670 | +</p><div class="section" title="Intro"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="allocator.mt.intro"></a>Intro</h2></div></div></div><p> | |
1671 | The mt allocator [hereinafter referred to simply as "the allocator"] | |
1672 | is a fixed size (power of two) allocator that was initially | |
1673 | developed specifically to suit the needs of multi threaded | |
1674 | @@ -20,4 +20,4 @@ | |
1675 | </p><p> | |
1676 | The aim of this document is to describe - from an application point of | |
1677 | view - the "inner workings" of the allocator. | |
1678 | -</p></div></div><div class="navfooter"><hr/><table width="100%" summary="Navigation footer"><tr><td align="left"><a accesskey="p" href="bk01pt03ch19s07.html">Prev</a> </td><td align="center"><a accesskey="u" href="extensions.html">Up</a></td><td align="right"> <a accesskey="n" href="bk01pt03ch20s02.html">Next</a></td></tr><tr><td align="left" valign="top">Diagnostics </td><td align="center"><a accesskey="h" href="../index.html">Home</a></td><td align="right" valign="top"> Design Issues</td></tr></table></div></body></html> | |
1679 | +</p></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="bk01pt03ch19s07.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="extensions.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="bk01pt03ch20s02.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Diagnostics </td><td width="20%" align="center"><a accesskey="h" href="../index.html">Home</a></td><td width="40%" align="right" valign="top"> Design Issues</td></tr></table></div></body></html> | |
1680 | Index: libstdc++-v3/doc/html/manual/bk01pt03ch18s05.html | |
1681 | =================================================================== | |
9f95000d AM |
1682 | --- libstdc++-v3/doc/html/manual/bk01pt03ch18s05.html (.../tags/gcc_4_7_2_release) (wersja 192468) |
1683 | +++ libstdc++-v3/doc/html/manual/bk01pt03ch18s05.html (.../branches/gcc-4_7-branch) (wersja 192468) | |
5a87b929 AM |
1684 | @@ -1,6 +1,6 @@ |
1685 | <?xml version="1.0" encoding="UTF-8" standalone="no"?> | |
1686 | -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> | |
1687 | -<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Testing</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1"/><meta name="keywords" content=" C++ , library , parallel "/><meta name="keywords" content=" ISO C++ , library "/><meta name="keywords" content=" ISO C++ , runtime , library "/><link rel="home" href="../index.html" title="The GNU C++ Library"/><link rel="up" href="parallel_mode.html" title="Chapter 18. Parallel Mode"/><link rel="prev" href="bk01pt03ch18s04.html" title="Design"/><link rel="next" href="profile_mode.html" title="Chapter 19. Profile Mode"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Testing</th></tr><tr><td align="left"><a accesskey="p" href="bk01pt03ch18s04.html">Prev</a> </td><th width="60%" align="center">Chapter 18. Parallel Mode</th><td align="right"> <a accesskey="n" href="profile_mode.html">Next</a></td></tr></table><hr/></div><div class="section" title="Testing"><div class="titlepage"><div><div><h2 class="title"><a id="manual.ext.parallel_mode.test"/>Testing</h2></div></div></div><p> | |
1688 | +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> | |
1689 | +<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Testing</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1" /><meta name="keywords" content=" C++ , library , parallel " /><meta name="keywords" content=" ISO C++ , library " /><meta name="keywords" content=" ISO C++ , runtime , library " /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="parallel_mode.html" title="Chapter 18. Parallel Mode" /><link rel="prev" href="bk01pt03ch18s04.html" title="Design" /><link rel="next" href="profile_mode.html" title="Chapter 19. Profile Mode" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Testing</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="bk01pt03ch18s04.html">Prev</a> </td><th width="60%" align="center">Chapter 18. Parallel Mode</th><td width="20%" align="right"> <a accesskey="n" href="profile_mode.html">Next</a></td></tr></table><hr /></div><div class="section" title="Testing"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="manual.ext.parallel_mode.test"></a>Testing</h2></div></div></div><p> | |
1690 | Both the normal conformance and regression tests and the | |
1691 | supplemental performance tests work. | |
1692 | </p><p> | |
1693 | @@ -23,4 +23,4 @@ | |
1694 | additional software dependencies than the usual bare-boned text | |
1695 | file, and can be generated by using the <code class="code">make | |
1696 | doc-performance</code> rule in the testsuite's Makefile. | |
1697 | -</p></div><div class="navfooter"><hr/><table width="100%" summary="Navigation footer"><tr><td align="left"><a accesskey="p" href="bk01pt03ch18s04.html">Prev</a> </td><td align="center"><a accesskey="u" href="parallel_mode.html">Up</a></td><td align="right"> <a accesskey="n" href="profile_mode.html">Next</a></td></tr><tr><td align="left" valign="top">Design </td><td align="center"><a accesskey="h" href="../index.html">Home</a></td><td align="right" valign="top"> Chapter 19. Profile Mode</td></tr></table></div></body></html> | |
1698 | +</p></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="bk01pt03ch18s04.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="parallel_mode.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="profile_mode.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Design </td><td width="20%" align="center"><a accesskey="h" href="../index.html">Home</a></td><td width="40%" align="right" valign="top"> Chapter 19. Profile Mode</td></tr></table></div></body></html> | |
1699 | Index: libstdc++-v3/doc/html/manual/bk01pt03ch19s05.html | |
1700 | =================================================================== | |
9f95000d AM |
1701 | --- libstdc++-v3/doc/html/manual/bk01pt03ch19s05.html (.../tags/gcc_4_7_2_release) (wersja 192468) |
1702 | +++ libstdc++-v3/doc/html/manual/bk01pt03ch19s05.html (.../branches/gcc-4_7-branch) (wersja 192468) | |
5a87b929 AM |
1703 | @@ -1,6 +1,6 @@ |
1704 | <?xml version="1.0" encoding="UTF-8" standalone="no"?> | |
1705 | -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> | |
1706 | -<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Implementation Issues</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1"/><meta name="keywords" content=" C++ , library , profile "/><meta name="keywords" content=" ISO C++ , library "/><meta name="keywords" content=" ISO C++ , runtime , library "/><link rel="home" href="../index.html" title="The GNU C++ Library"/><link rel="up" href="profile_mode.html" title="Chapter 19. Profile Mode"/><link rel="prev" href="bk01pt03ch19s04.html" title="Empirical Cost Model"/><link rel="next" href="bk01pt03ch19s06.html" title="Developer Information"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Implementation Issues</th></tr><tr><td align="left"><a accesskey="p" href="bk01pt03ch19s04.html">Prev</a> </td><th width="60%" align="center">Chapter 19. Profile Mode</th><td align="right"> <a accesskey="n" href="bk01pt03ch19s06.html">Next</a></td></tr></table><hr/></div><div class="section" title="Implementation Issues"><div class="titlepage"><div><div><h2 class="title"><a id="manual.ext.profile_mode.implementation"/>Implementation Issues</h2></div></div></div><div class="section" title="Stack Traces"><div class="titlepage"><div><div><h3 class="title"><a id="manual.ext.profile_mode.implementation.stack"/>Stack Traces</h3></div></div></div><p> | |
1707 | +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> | |
1708 | +<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Implementation Issues</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1" /><meta name="keywords" content=" C++ , library , profile " /><meta name="keywords" content=" ISO C++ , library " /><meta name="keywords" content=" ISO C++ , runtime , library " /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="profile_mode.html" title="Chapter 19. Profile Mode" /><link rel="prev" href="bk01pt03ch19s04.html" title="Empirical Cost Model" /><link rel="next" href="bk01pt03ch19s06.html" title="Developer Information" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Implementation Issues</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="bk01pt03ch19s04.html">Prev</a> </td><th width="60%" align="center">Chapter 19. Profile Mode</th><td width="20%" align="right"> <a accesskey="n" href="bk01pt03ch19s06.html">Next</a></td></tr></table><hr /></div><div class="section" title="Implementation Issues"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="manual.ext.profile_mode.implementation"></a>Implementation Issues</h2></div></div></div><div class="section" title="Stack Traces"><div class="titlepage"><div><div><h3 class="title"><a id="manual.ext.profile_mode.implementation.stack"></a>Stack Traces</h3></div></div></div><p> | |
1709 | Accurate stack traces are needed during profiling since we group events by | |
1710 | call context and dynamic instance. Without accurate traces, diagnostics | |
1711 | may be hard to interpret. For instance, when giving advice to the user | |
1712 | @@ -11,24 +11,24 @@ | |
1713 | <code class="code">_GLIBCXX_PROFILE_STACK_DEPTH</code> can be set | |
1714 | to 0 if you are willing to give up call context information, or to a small | |
1715 | positive value to reduce run time overhead. | |
1716 | - </p></div><div class="section" title="Symbolization of Instruction Addresses"><div class="titlepage"><div><div><h3 class="title"><a id="manual.ext.profile_mode.implementation.symbols"/>Symbolization of Instruction Addresses</h3></div></div></div><p> | |
1717 | + </p></div><div class="section" title="Symbolization of Instruction Addresses"><div class="titlepage"><div><div><h3 class="title"><a id="manual.ext.profile_mode.implementation.symbols"></a>Symbolization of Instruction Addresses</h3></div></div></div><p> | |
1718 | The profiling and analysis phases use only instruction addresses. | |
1719 | An external utility such as addr2line is needed to postprocess the result. | |
1720 | We do not plan to add symbolization support in the profile extension. | |
1721 | This would require access to symbol tables, debug information tables, | |
1722 | external programs or libraries and other system dependent information. | |
1723 | - </p></div><div class="section" title="Concurrency"><div class="titlepage"><div><div><h3 class="title"><a id="manual.ext.profile_mode.implementation.concurrency"/>Concurrency</h3></div></div></div><p> | |
1724 | + </p></div><div class="section" title="Concurrency"><div class="titlepage"><div><div><h3 class="title"><a id="manual.ext.profile_mode.implementation.concurrency"></a>Concurrency</h3></div></div></div><p> | |
1725 | Our current model is simplistic, but precise. | |
1726 | We cannot afford to approximate because some of our diagnostics require | |
1727 | precise matching of operations to container instance and call context. | |
1728 | During profiling, we keep a single information table per diagnostic. | |
1729 | There is a single lock per information table. | |
1730 | - </p></div><div class="section" title="Using the Standard Library in the Instrumentation Implementation"><div class="titlepage"><div><div><h3 class="title"><a id="manual.ext.profile_mode.implementation.stdlib-in-proflib"/>Using the Standard Library in the Instrumentation Implementation</h3></div></div></div><p> | |
1731 | + </p></div><div class="section" title="Using the Standard Library in the Instrumentation Implementation"><div class="titlepage"><div><div><h3 class="title"><a id="manual.ext.profile_mode.implementation.stdlib-in-proflib"></a>Using the Standard Library in the Instrumentation Implementation</h3></div></div></div><p> | |
1732 | As much as we would like to avoid uses of libstdc++ within our | |
1733 | instrumentation library, containers such as unordered_map are very | |
1734 | appealing. We plan to use them as long as they are named properly | |
1735 | to avoid ambiguity. | |
1736 | - </p></div><div class="section" title="Malloc Hooks"><div class="titlepage"><div><div><h3 class="title"><a id="manual.ext.profile_mode.implementation.malloc-hooks"/>Malloc Hooks</h3></div></div></div><p> | |
1737 | + </p></div><div class="section" title="Malloc Hooks"><div class="titlepage"><div><div><h3 class="title"><a id="manual.ext.profile_mode.implementation.malloc-hooks"></a>Malloc Hooks</h3></div></div></div><p> | |
1738 | User applications/libraries can provide malloc hooks. | |
1739 | When the implementation of the malloc hooks uses stdlibc++, there can | |
1740 | be an infinite cycle between the profile mode instrumentation and the | |
1741 | @@ -42,10 +42,10 @@ | |
1742 | uses non-recursive locks. | |
1743 | XXX: A definitive solution to this problem would be for the profile extension | |
1744 | to use a custom allocator internally, and perhaps not to use libstdc++. | |
1745 | - </p></div><div class="section" title="Construction and Destruction of Global Objects"><div class="titlepage"><div><div><h3 class="title"><a id="manual.ext.profile_mode.implementation.construction-destruction"/>Construction and Destruction of Global Objects</h3></div></div></div><p> | |
1746 | + </p></div><div class="section" title="Construction and Destruction of Global Objects"><div class="titlepage"><div><div><h3 class="title"><a id="manual.ext.profile_mode.implementation.construction-destruction"></a>Construction and Destruction of Global Objects</h3></div></div></div><p> | |
1747 | The profiling library state is initialized at the first call to a profiling | |
1748 | method. This allows us to record the construction of all global objects. | |
1749 | However, we cannot do the same at destruction time. The trace is written | |
1750 | by a function registered by <code class="code">atexit</code>, thus invoked by | |
1751 | <code class="code">exit</code>. | |
1752 | - </p></div></div><div class="navfooter"><hr/><table width="100%" summary="Navigation footer"><tr><td align="left"><a accesskey="p" href="bk01pt03ch19s04.html">Prev</a> </td><td align="center"><a accesskey="u" href="profile_mode.html">Up</a></td><td align="right"> <a accesskey="n" href="bk01pt03ch19s06.html">Next</a></td></tr><tr><td align="left" valign="top">Empirical Cost Model </td><td align="center"><a accesskey="h" href="../index.html">Home</a></td><td align="right" valign="top"> Developer Information</td></tr></table></div></body></html> | |
1753 | + </p></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="bk01pt03ch19s04.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="profile_mode.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="bk01pt03ch19s06.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Empirical Cost Model </td><td width="20%" align="center"><a accesskey="h" href="../index.html">Home</a></td><td width="40%" align="right" valign="top"> Developer Information</td></tr></table></div></body></html> | |
1754 | Index: libstdc++-v3/doc/html/manual/configure.html | |
1755 | =================================================================== | |
9f95000d AM |
1756 | --- libstdc++-v3/doc/html/manual/configure.html (.../tags/gcc_4_7_2_release) (wersja 192468) |
1757 | +++ libstdc++-v3/doc/html/manual/configure.html (.../branches/gcc-4_7-branch) (wersja 192468) | |
5a87b929 AM |
1758 | @@ -1,6 +1,6 @@ |
1759 | <?xml version="1.0" encoding="UTF-8" standalone="no"?> | |
1760 | -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> | |
1761 | -<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Configure</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1"/><meta name="keywords" content=" ISO C++ , configure , options "/><meta name="keywords" content=" ISO C++ , library "/><meta name="keywords" content=" ISO C++ , runtime , library "/><link rel="home" href="../index.html" title="The GNU C++ Library"/><link rel="up" href="setup.html" title="Chapter 2. Setup"/><link rel="prev" href="setup.html" title="Chapter 2. Setup"/><link rel="next" href="make.html" title="Make"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Configure</th></tr><tr><td align="left"><a accesskey="p" href="setup.html">Prev</a> </td><th width="60%" align="center">Chapter 2. Setup</th><td align="right"> <a accesskey="n" href="make.html">Next</a></td></tr></table><hr/></div><div class="section" title="Configure"><div class="titlepage"><div><div><h2 class="title"><a id="manual.intro.setup.configure"/>Configure</h2></div></div></div><p> | |
1762 | +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> | |
1763 | +<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Configure</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1" /><meta name="keywords" content=" ISO C++ , configure , options " /><meta name="keywords" content=" ISO C++ , library " /><meta name="keywords" content=" ISO C++ , runtime , library " /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="setup.html" title="Chapter 2. Setup" /><link rel="prev" href="setup.html" title="Chapter 2. Setup" /><link rel="next" href="make.html" title="Make" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Configure</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="setup.html">Prev</a> </td><th width="60%" align="center">Chapter 2. Setup</th><td width="20%" align="right"> <a accesskey="n" href="make.html">Next</a></td></tr></table><hr /></div><div class="section" title="Configure"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="manual.intro.setup.configure"></a>Configure</h2></div></div></div><p> | |
1764 | When configuring libstdc++, you'll have to configure the entire | |
1765 | <span class="emphasis"><em>gccsrcdir</em></span> directory. Consider using the | |
1766 | toplevel gcc configuration option | |
1767 | @@ -10,7 +10,7 @@ | |
1768 | Here are all of the configure options specific to libstdc++. Keep | |
1769 | in mind that | |
1770 | ||
1771 | - <a class="link" href="http://sourceware.org/autobook/autobook/autobook_14.html">they | |
1772 | + <a class="link" href="http://sourceware.org/autobook/autobook/autobook_14.html" target="_top">they | |
1773 | all have opposite forms as well</a> (enable/disable and | |
1774 | with/without). The defaults are for the <span class="emphasis"><em>current | |
1775 | development sources</em></span>, which may be different than those | |
1776 | @@ -53,7 +53,7 @@ | |
1777 | choices are 'ieee_1003.1-2001' to specify an X/Open, Standard Unix | |
1778 | (IEEE Std. 1003.1-2001) model based on langinfo/iconv/catgets, | |
1779 | 'gnu' to specify a model based on functionality from the GNU C | |
1780 | - library (langinfo/iconv/gettext) (from <a class="link" href="http://sources.redhat.com/glibc/">glibc</a>, the GNU C | |
1781 | + library (langinfo/iconv/gettext) (from <a class="link" href="http://sources.redhat.com/glibc/" target="_top">glibc</a>, the GNU C | |
1782 | library), or 'generic' to use a generic "C" | |
1783 | abstraction which consists of "C" locale info. | |
1784 | </p><p>If not explicitly specified, the configure proccess tries | |
1785 | @@ -80,9 +80,13 @@ | |
1786 | (described next). | |
1787 | </p></dd><dt><span class="term"><code class="code">--enable-threads=OPTION</code></span></dt><dd><p>Select a threading library. A full description is | |
1788 | given in the | |
1789 | - general <a class="link" href="http://gcc.gnu.org/install/configure.html">compiler | |
1790 | + general <a class="link" href="http://gcc.gnu.org/install/configure.html" target="_top">compiler | |
1791 | configuration instructions</a>. This option can change the | |
1792 | library ABI. | |
1793 | + </p></dd><dt><span class="term"><code class="code">--enable-libstdcxx-threads</code></span></dt><dd><p>Enable C++11 threads support. If not explicitly specified, | |
1794 | + the configure process enables it if possible. It defaults to 'off' | |
1795 | + on Solaris 8 and 9, where it would break symbol versioning. This | |
1796 | + option can change the library ABI. | |
1797 | </p></dd><dt><span class="term"><code class="code">--enable-libstdcxx-time</code></span></dt><dd><p>This is an abbreviated form of | |
1798 | <code class="code">'--enable-libstdcxx-time=yes'</code>(described next). | |
1799 | </p></dd><dt><span class="term"><code class="code">--enable-libstdcxx-time=OPTION</code></span></dt><dd><p>Enables link-type checks for the availability of the | |
1800 | @@ -211,4 +215,4 @@ | |
1801 | <span class="emphasis"><em>freestanding</em></span> environment, in which only a | |
1802 | minimal set of headers are provided. This option builds such an | |
1803 | environment. | |
1804 | - </p></dd></dl></div></div><div class="navfooter"><hr/><table width="100%" summary="Navigation footer"><tr><td align="left"><a accesskey="p" href="setup.html">Prev</a> </td><td align="center"><a accesskey="u" href="setup.html">Up</a></td><td align="right"> <a accesskey="n" href="make.html">Next</a></td></tr><tr><td align="left" valign="top">Chapter 2. Setup </td><td align="center"><a accesskey="h" href="../index.html">Home</a></td><td align="right" valign="top"> Make</td></tr></table></div></body></html> | |
1805 | + </p></dd></dl></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="setup.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="setup.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="make.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Chapter 2. Setup </td><td width="20%" align="center"><a accesskey="h" href="../index.html">Home</a></td><td width="40%" align="right" valign="top"> Make</td></tr></table></div></body></html> | |
1806 | Index: libstdc++-v3/doc/html/manual/status.html | |
1807 | =================================================================== | |
9f95000d AM |
1808 | --- libstdc++-v3/doc/html/manual/status.html (.../tags/gcc_4_7_2_release) (wersja 192468) |
1809 | +++ libstdc++-v3/doc/html/manual/status.html (.../branches/gcc-4_7-branch) (wersja 192468) | |
5a87b929 AM |
1810 | @@ -1,58 +1,58 @@ |
1811 | <?xml version="1.0" encoding="UTF-8" standalone="no"?> | |
1812 | -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> | |
1813 | -<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Chapter 1. Status</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1"/><meta name="keywords" content=" ISO C++ , library "/><meta name="keywords" content=" ISO C++ , runtime , library "/><link rel="home" href="../index.html" title="The GNU C++ Library"/><link rel="up" href="intro.html" title="Part I. Introduction"/><link rel="prev" href="intro.html" title="Part I. Introduction"/><link rel="next" href="license.html" title="License"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 1. Status</th></tr><tr><td align="left"><a accesskey="p" href="intro.html">Prev</a> </td><th width="60%" align="center">Part I. | |
1814 | +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> | |
1815 | +<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Chapter 1. Status</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1" /><meta name="keywords" content=" ISO C++ , library " /><meta name="keywords" content=" ISO C++ , runtime , library " /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="intro.html" title="Part I. Introduction" /><link rel="prev" href="intro.html" title="Part I. Introduction" /><link rel="next" href="license.html" title="License" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 1. Status</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="intro.html">Prev</a> </td><th width="60%" align="center">Part I. | |
1816 | Introduction | |
1817 | ||
1818 | -</th><td align="right"> <a accesskey="n" href="license.html">Next</a></td></tr></table><hr/></div><div class="chapter" title="Chapter 1. Status"><div class="titlepage"><div><div><h2 class="title"><a id="manual.intro.status"/>Chapter 1. Status</h2></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl><dt><span class="section"><a href="status.html#manual.intro.status.iso">Implementation Status</a></span></dt><dd><dl><dt><span class="section"><a href="status.html#status.iso.1998">C++ 1998/2003</a></span></dt><dd><dl><dt><span class="section"><a href="status.html#iso.1998.status">Implementation Status</a></span></dt><dt><span class="section"><a href="status.html#iso.1998.specific">Implementation Specific Behavior</a></span></dt></dl></dd><dt><span class="section"><a href="status.html#status.iso.2011">C++ 2011</a></span></dt><dd><dl><dt><span class="section"><a href="status.html#iso.2011.specific">Implementation Specific Behavior</a></span></dt></dl></dd><dt><span class="section"><a href="status.html#status.iso.tr1">C++ TR1</a></span></dt><dd><dl><dt><span class="section"><a href="status.html#iso.tr1.specific">Implementation Specific Behavior</a></span></dt></dl></dd><dt><span class="section"><a href="status.html#status.iso.tr24733">C++ TR 24733</a></span></dt></dl></dd><dt><span class="section"><a href="license.html">License</a></span></dt><dd><dl><dt><span class="section"><a href="license.html#manual.intro.status.license.gpl">The Code: GPL</a></span></dt><dt><span class="section"><a href="license.html#manual.intro.status.license.fdl">The Documentation: GPL, FDL</a></span></dt></dl></dd><dt><span class="section"><a href="bugs.html">Bugs</a></span></dt><dd><dl><dt><span class="section"><a href="bugs.html#manual.intro.status.bugs.impl">Implementation Bugs</a></span></dt><dt><span class="section"><a href="bugs.html#manual.intro.status.bugs.iso">Standard Bugs</a></span></dt></dl></dd></dl></div><div class="section" title="Implementation Status"><div class="titlepage"><div><div><h2 class="title"><a id="manual.intro.status.iso"/>Implementation Status</h2></div></div></div><div class="section" title="C++ 1998/2003"><div class="titlepage"><div><div><h3 class="title"><a id="status.iso.1998"/>C++ 1998/2003</h3></div></div></div><div class="section" title="Implementation Status"><div class="titlepage"><div><div><h4 class="title"><a id="iso.1998.status"/>Implementation Status</h4></div></div></div><p> | |
1819 | +</th><td width="20%" align="right"> <a accesskey="n" href="license.html">Next</a></td></tr></table><hr /></div><div class="chapter" title="Chapter 1. Status"><div class="titlepage"><div><div><h2 class="title"><a id="manual.intro.status"></a>Chapter 1. Status</h2></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl><dt><span class="section"><a href="status.html#manual.intro.status.iso">Implementation Status</a></span></dt><dd><dl><dt><span class="section"><a href="status.html#status.iso.1998">C++ 1998/2003</a></span></dt><dd><dl><dt><span class="section"><a href="status.html#iso.1998.status">Implementation Status</a></span></dt><dt><span class="section"><a href="status.html#iso.1998.specific">Implementation Specific Behavior</a></span></dt></dl></dd><dt><span class="section"><a href="status.html#status.iso.2011">C++ 2011</a></span></dt><dd><dl><dt><span class="section"><a href="status.html#iso.2011.specific">Implementation Specific Behavior</a></span></dt></dl></dd><dt><span class="section"><a href="status.html#status.iso.tr1">C++ TR1</a></span></dt><dd><dl><dt><span class="section"><a href="status.html#iso.tr1.specific">Implementation Specific Behavior</a></span></dt></dl></dd><dt><span class="section"><a href="status.html#status.iso.tr24733">C++ TR 24733</a></span></dt></dl></dd><dt><span class="section"><a href="license.html">License</a></span></dt><dd><dl><dt><span class="section"><a href="license.html#manual.intro.status.license.gpl">The Code: GPL</a></span></dt><dt><span class="section"><a href="license.html#manual.intro.status.license.fdl">The Documentation: GPL, FDL</a></span></dt></dl></dd><dt><span class="section"><a href="bugs.html">Bugs</a></span></dt><dd><dl><dt><span class="section"><a href="bugs.html#manual.intro.status.bugs.impl">Implementation Bugs</a></span></dt><dt><span class="section"><a href="bugs.html#manual.intro.status.bugs.iso">Standard Bugs</a></span></dt></dl></dd></dl></div><div class="section" title="Implementation Status"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="manual.intro.status.iso"></a>Implementation Status</h2></div></div></div><div class="section" title="C++ 1998/2003"><div class="titlepage"><div><div><h3 class="title"><a id="status.iso.1998"></a>C++ 1998/2003</h3></div></div></div><div class="section" title="Implementation Status"><div class="titlepage"><div><div><h4 class="title"><a id="iso.1998.status"></a>Implementation Status</h4></div></div></div><p> | |
1820 | This status table is based on the table of contents of ISO/IEC 14882:2003. | |
1821 | </p><p> | |
1822 | This page describes the C++ support in mainline GCC SVN, not in any | |
1823 | particular release. | |
1824 | -</p><div class="table"><a id="id399802"/><p class="title"><strong>Table 1.1. C++ 1998/2003 Implementation Status</strong></p><div class="table-contents"><table summary="C++ 1998/2003 Implementation Status" border="1"><colgroup><col style="text-align: left" class="c1"/><col style="text-align: left" class="c2"/><col style="text-align: left" class="c3"/><col style="text-align: left" class="c4"/></colgroup><thead><tr><th style="text-align: left">Section</th><th style="text-align: left">Description</th><th style="text-align: left">Status</th><th style="text-align: left">Comments</th></tr></thead><tbody><tr><td style="text-align: left"> | |
1825 | +</p><div class="table"><a id="id582573"></a><p class="title"><strong>Table 1.1. C++ 1998/2003 Implementation Status</strong></p><div class="table-contents"><table summary="C++ 1998/2003 Implementation Status" border="1"><colgroup><col align="left" class="c1" /><col align="left" class="c2" /><col align="left" class="c3" /><col align="left" class="c4" /></colgroup><thead><tr><th align="left">Section</th><th align="left">Description</th><th align="left">Status</th><th align="left">Comments</th></tr></thead><tbody><tr><td align="left"> | |
1826 | <span class="emphasis"><em>18</em></span> | |
1827 | - </td><td colspan="3" style="text-align: left"> | |
1828 | + </td><td colspan="3" align="left"> | |
1829 | <span class="emphasis"><em>Language support</em></span> | |
1830 | - </td></tr><tr><td style="text-align: left">18.1</td><td style="text-align: left">Types</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">18.2</td><td style="text-align: left">Implementation properties</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">18.2.1</td><td style="text-align: left">Numeric Limits</td><td style="text-align: left"> </td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">18.2.1.1</td><td style="text-align: left">Class template <code class="code">numeric_limits</code></td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">18.2.1.2</td><td style="text-align: left"><code class="code">numeric_limits</code> members</td><td style="text-align: left">Y</td><td class="auto-generated"> </td></tr><tr><td style="text-align: left">18.2.1.3</td><td style="text-align: left"><code class="code">float_round_style</code></td><td style="text-align: left">Y</td><td class="auto-generated"> </td></tr><tr><td style="text-align: left">18.2.1.4</td><td style="text-align: left"><code class="code">float_denorm_style</code></td><td style="text-align: left">Y</td><td class="auto-generated"> </td></tr><tr><td style="text-align: left">18.2.1.5</td><td style="text-align: left"><code class="code">numeric_limits</code> specializations</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">18.2.2</td><td style="text-align: left">C Library</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">18.3</td><td style="text-align: left">Start and termination</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">18.4</td><td style="text-align: left">Dynamic memory management</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">18.5</td><td style="text-align: left">Type identification</td><td style="text-align: left"> </td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">18.5.1</td><td style="text-align: left">Class type_info</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">18.5.2</td><td style="text-align: left">Class bad_cast</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">18.5.3</td><td style="text-align: left">Class bad_typeid</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">18.6</td><td style="text-align: left">Exception handling</td><td style="text-align: left"> </td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">18.6.1</td><td style="text-align: left">Class exception</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">18.6.2</td><td style="text-align: left">Violation exception-specifications</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">18.6.3</td><td style="text-align: left">Abnormal termination</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">18.6.4</td><td style="text-align: left"><code class="code">uncaught_exception</code></td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">18.7</td><td style="text-align: left">Other runtime support</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left"> | |
1831 | + </td></tr><tr><td align="left">18.1</td><td align="left">Types</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">18.2</td><td align="left">Implementation properties</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">18.2.1</td><td align="left">Numeric Limits</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">18.2.1.1</td><td align="left">Class template <code class="code">numeric_limits</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">18.2.1.2</td><td align="left"><code class="code">numeric_limits</code> members</td><td align="left">Y</td><td class="auto-generated"> </td></tr><tr><td align="left">18.2.1.3</td><td align="left"><code class="code">float_round_style</code></td><td align="left">Y</td><td class="auto-generated"> </td></tr><tr><td align="left">18.2.1.4</td><td align="left"><code class="code">float_denorm_style</code></td><td align="left">Y</td><td class="auto-generated"> </td></tr><tr><td align="left">18.2.1.5</td><td align="left"><code class="code">numeric_limits</code> specializations</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">18.2.2</td><td align="left">C Library</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">18.3</td><td align="left">Start and termination</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">18.4</td><td align="left">Dynamic memory management</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">18.5</td><td align="left">Type identification</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">18.5.1</td><td align="left">Class type_info</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">18.5.2</td><td align="left">Class bad_cast</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">18.5.3</td><td align="left">Class bad_typeid</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">18.6</td><td align="left">Exception handling</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">18.6.1</td><td align="left">Class exception</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">18.6.2</td><td align="left">Violation exception-specifications</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">18.6.3</td><td align="left">Abnormal termination</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">18.6.4</td><td align="left"><code class="code">uncaught_exception</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">18.7</td><td align="left">Other runtime support</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left"> | |
1832 | <span class="emphasis"><em>19</em></span> | |
1833 | - </td><td colspan="3" style="text-align: left"> | |
1834 | + </td><td colspan="3" align="left"> | |
1835 | <span class="emphasis"><em>Diagnostics</em></span> | |
1836 | - </td></tr><tr><td style="text-align: left">19.1</td><td style="text-align: left">Exception classes</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">19.2</td><td style="text-align: left">Assertions</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">19.3</td><td style="text-align: left">Error numbers</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left"> | |
1837 | + </td></tr><tr><td align="left">19.1</td><td align="left">Exception classes</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">19.2</td><td align="left">Assertions</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">19.3</td><td align="left">Error numbers</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left"> | |
1838 | <span class="emphasis"><em>20</em></span> | |
1839 | - </td><td colspan="3" style="text-align: left"> | |
1840 | + </td><td colspan="3" align="left"> | |
1841 | <span class="emphasis"><em>General utilities</em></span> | |
1842 | - </td></tr><tr><td style="text-align: left">20.1</td><td style="text-align: left">Requirements</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">20.2</td><td style="text-align: left">Utility components</td><td style="text-align: left"> </td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">20.2.1</td><td style="text-align: left">Operators</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">20.2.2</td><td style="text-align: left"><code class="code">pair</code></td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">20.3</td><td style="text-align: left">Function objects</td><td style="text-align: left"> </td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">20.3.1</td><td style="text-align: left">Base</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">20.3.2</td><td style="text-align: left">Arithmetic operation</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">20.3.3</td><td style="text-align: left">Comparisons</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">20.3.4</td><td style="text-align: left">Logical operations</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">20.3.5</td><td style="text-align: left">Negators</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">20.3.6</td><td style="text-align: left">Binders</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">20.3.7</td><td style="text-align: left">Adaptors for pointers to functions</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">20.3.8</td><td style="text-align: left">Adaptors for pointers to members</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">20.4</td><td style="text-align: left">Memory</td><td style="text-align: left"> </td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">20.4.1</td><td style="text-align: left">The default allocator</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">20.4.2</td><td style="text-align: left">Raw storage iterator</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">20.4.3</td><td style="text-align: left">Temporary buffers</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">20.4.4</td><td style="text-align: left">Specialized algorithms</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">20.4.4.1</td><td style="text-align: left"><code class="code">uninitialized_copy</code></td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">20.4.4.2</td><td style="text-align: left"><code class="code">uninitialized_fill</code></td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">20.4.4.3</td><td style="text-align: left"><code class="code">uninitialized_fill_n</code></td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">20.4.5</td><td style="text-align: left">Class template <code class="code">auto_ptr</code></td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">20.4.6</td><td style="text-align: left">C library</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left"> | |
1843 | + </td></tr><tr><td align="left">20.1</td><td align="left">Requirements</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">20.2</td><td align="left">Utility components</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">20.2.1</td><td align="left">Operators</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">20.2.2</td><td align="left"><code class="code">pair</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">20.3</td><td align="left">Function objects</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">20.3.1</td><td align="left">Base</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">20.3.2</td><td align="left">Arithmetic operation</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">20.3.3</td><td align="left">Comparisons</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">20.3.4</td><td align="left">Logical operations</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">20.3.5</td><td align="left">Negators</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">20.3.6</td><td align="left">Binders</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">20.3.7</td><td align="left">Adaptors for pointers to functions</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">20.3.8</td><td align="left">Adaptors for pointers to members</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">20.4</td><td align="left">Memory</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">20.4.1</td><td align="left">The default allocator</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">20.4.2</td><td align="left">Raw storage iterator</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">20.4.3</td><td align="left">Temporary buffers</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">20.4.4</td><td align="left">Specialized algorithms</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">20.4.4.1</td><td align="left"><code class="code">uninitialized_copy</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">20.4.4.2</td><td align="left"><code class="code">uninitialized_fill</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">20.4.4.3</td><td align="left"><code class="code">uninitialized_fill_n</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">20.4.5</td><td align="left">Class template <code class="code">auto_ptr</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">20.4.6</td><td align="left">C library</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left"> | |
1844 | <span class="emphasis"><em>21</em></span> | |
1845 | - </td><td colspan="3" style="text-align: left"> | |
1846 | + </td><td colspan="3" align="left"> | |
1847 | <span class="emphasis"><em>Strings</em></span> | |
1848 | - </td></tr><tr><td style="text-align: left">21.1</td><td style="text-align: left">Character traits</td><td style="text-align: left"> </td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">21.1.1</td><td style="text-align: left">Character traits requirements</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">21.1.2</td><td style="text-align: left">traits typedef</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">21.1.3</td><td style="text-align: left"><code class="code">char_traits</code> specializations</td><td style="text-align: left"> </td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">21.1.3.1</td><td style="text-align: left">struct <code class="code">char_traits<char></code></td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">21.1.3.2</td><td style="text-align: left">struct <code class="code">char_traits<wchar_t></code></td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">21.2</td><td style="text-align: left">String classes</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">21.3</td><td style="text-align: left">Class template <code class="code">basic_string</code></td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">21.4</td><td style="text-align: left">Null-terminated sequence utilities</td><td style="text-align: left">Y</td><td style="text-align: left">C library dependency</td></tr><tr><td style="text-align: left"> | |
1849 | + </td></tr><tr><td align="left">21.1</td><td align="left">Character traits</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">21.1.1</td><td align="left">Character traits requirements</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">21.1.2</td><td align="left">traits typedef</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">21.1.3</td><td align="left"><code class="code">char_traits</code> specializations</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">21.1.3.1</td><td align="left">struct <code class="code">char_traits<char></code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">21.1.3.2</td><td align="left">struct <code class="code">char_traits<wchar_t></code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">21.2</td><td align="left">String classes</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">21.3</td><td align="left">Class template <code class="code">basic_string</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">21.4</td><td align="left">Null-terminated sequence utilities</td><td align="left">Y</td><td align="left">C library dependency</td></tr><tr><td align="left"> | |
1850 | <span class="emphasis"><em>22</em></span> | |
1851 | - </td><td colspan="3" style="text-align: left"> | |
1852 | + </td><td colspan="3" align="left"> | |
1853 | <span class="emphasis"><em>Localization</em></span> | |
1854 | - </td></tr><tr><td style="text-align: left">22.1</td><td style="text-align: left">Locales</td><td style="text-align: left"> </td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">22.1.1</td><td style="text-align: left">Class <code class="code">locale</code></td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">22.1.2</td><td style="text-align: left"><code class="code">locale</code> globals</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">22.1.3</td><td style="text-align: left">Convenience interfaces</td><td style="text-align: left"> </td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">22.1.3.1</td><td style="text-align: left">Character classification</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">22.1.3.2</td><td style="text-align: left">Character conversions</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">22.2</td><td style="text-align: left">Standard locale categories</td><td style="text-align: left"> </td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">22.2.1</td><td style="text-align: left"><code class="code">ctype</code></td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">22.2.2</td><td style="text-align: left">Numeric</td><td style="text-align: left"> </td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">22.2.2.1</td><td style="text-align: left"><code class="code">num_get</code></td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">22.2.2.2</td><td style="text-align: left"><code class="code">num_put</code></td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">22.2.3</td><td style="text-align: left"><code class="code">num_punct</code></td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">22.2.4</td><td style="text-align: left"><code class="code">collate</code></td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">22.2.5</td><td style="text-align: left">Time</td><td style="text-align: left"> </td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">22.2.5.1</td><td style="text-align: left"><code class="code">time_get</code></td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">22.2.5.2</td><td style="text-align: left"><code class="code">time_get_byname</code></td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">22.2.5.3</td><td style="text-align: left"><code class="code">time_put</code></td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">22.2.5.3</td><td style="text-align: left"><code class="code">time_put_byname</code></td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">22.2.6</td><td style="text-align: left">Monetary</td><td style="text-align: left"> </td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">22.2.6.1</td><td style="text-align: left"><code class="code">money_get</code></td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">22.2.6.2</td><td style="text-align: left"><code class="code">money_put</code></td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">22.2.6.3</td><td style="text-align: left"><code class="code">money_punct</code></td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">22.2.6.4</td><td style="text-align: left"><code class="code">money_punct_byname</code></td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">22.2.7</td><td style="text-align: left"><code class="code">messages</code></td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">22.2.8</td><td style="text-align: left">Program-defined facets</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">22.3</td><td style="text-align: left">C Library Locales</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left"> | |
1855 | + </td></tr><tr><td align="left">22.1</td><td align="left">Locales</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">22.1.1</td><td align="left">Class <code class="code">locale</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">22.1.2</td><td align="left"><code class="code">locale</code> globals</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">22.1.3</td><td align="left">Convenience interfaces</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">22.1.3.1</td><td align="left">Character classification</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">22.1.3.2</td><td align="left">Character conversions</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">22.2</td><td align="left">Standard locale categories</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">22.2.1</td><td align="left"><code class="code">ctype</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">22.2.2</td><td align="left">Numeric</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">22.2.2.1</td><td align="left"><code class="code">num_get</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">22.2.2.2</td><td align="left"><code class="code">num_put</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">22.2.3</td><td align="left"><code class="code">num_punct</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">22.2.4</td><td align="left"><code class="code">collate</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">22.2.5</td><td align="left">Time</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">22.2.5.1</td><td align="left"><code class="code">time_get</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">22.2.5.2</td><td align="left"><code class="code">time_get_byname</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">22.2.5.3</td><td align="left"><code class="code">time_put</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">22.2.5.3</td><td align="left"><code class="code">time_put_byname</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">22.2.6</td><td align="left">Monetary</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">22.2.6.1</td><td align="left"><code class="code">money_get</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">22.2.6.2</td><td align="left"><code class="code">money_put</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">22.2.6.3</td><td align="left"><code class="code">money_punct</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">22.2.6.4</td><td align="left"><code class="code">money_punct_byname</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">22.2.7</td><td align="left"><code class="code">messages</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">22.2.8</td><td align="left">Program-defined facets</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">22.3</td><td align="left">C Library Locales</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left"> | |
1856 | <span class="emphasis"><em>23</em></span> | |
1857 | - </td><td colspan="3" style="text-align: left"> | |
1858 | + </td><td colspan="3" align="left"> | |
1859 | <span class="emphasis"><em>Containers</em></span> | |
1860 | - </td></tr><tr><td style="text-align: left">23.1</td><td style="text-align: left">Container requirements</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">23.2</td><td style="text-align: left">Sequence containers</td><td style="text-align: left"> </td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">23.2.1</td><td style="text-align: left">Class template <code class="code">deque</code></td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">23.2.2</td><td style="text-align: left">Class template <code class="code">list</code></td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">23.2.3</td><td style="text-align: left">Adaptors</td><td style="text-align: left"> </td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">23.2.3.1</td><td style="text-align: left">Class template <code class="code">queue</code></td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">23.2.3.2</td><td style="text-align: left">Class template <code class="code">priority_queue</code></td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">23.2.3.3</td><td style="text-align: left">Class template <code class="code">stack</code></td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">23.2.4</td><td style="text-align: left">Class template <code class="code">vector</code></td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">23.2.5</td><td style="text-align: left">Class <code class="code">vector<bool></code></td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">23.3</td><td style="text-align: left">Associative containers</td><td style="text-align: left"> </td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">23.3.1</td><td style="text-align: left">Class template <code class="code">map</code></td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">23.3.2</td><td style="text-align: left">Class template <code class="code">multimap</code></td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">23.3.3</td><td style="text-align: left">Class template <code class="code">set</code></td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">23.3.4</td><td style="text-align: left">Class template <code class="code">multiset</code></td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left"> | |
1861 | + </td></tr><tr><td align="left">23.1</td><td align="left">Container requirements</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">23.2</td><td align="left">Sequence containers</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">23.2.1</td><td align="left">Class template <code class="code">deque</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">23.2.2</td><td align="left">Class template <code class="code">list</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">23.2.3</td><td align="left">Adaptors</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">23.2.3.1</td><td align="left">Class template <code class="code">queue</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">23.2.3.2</td><td align="left">Class template <code class="code">priority_queue</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">23.2.3.3</td><td align="left">Class template <code class="code">stack</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">23.2.4</td><td align="left">Class template <code class="code">vector</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">23.2.5</td><td align="left">Class <code class="code">vector<bool></code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">23.3</td><td align="left">Associative containers</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">23.3.1</td><td align="left">Class template <code class="code">map</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">23.3.2</td><td align="left">Class template <code class="code">multimap</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">23.3.3</td><td align="left">Class template <code class="code">set</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">23.3.4</td><td align="left">Class template <code class="code">multiset</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left"> | |
1862 | <span class="emphasis"><em>24</em></span> | |
1863 | - </td><td colspan="3" style="text-align: left"> | |
1864 | + </td><td colspan="3" align="left"> | |
1865 | <span class="emphasis"><em>Iterators</em></span> | |
1866 | - </td></tr><tr><td style="text-align: left">24.1</td><td style="text-align: left">Requirements</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">24.2</td><td style="text-align: left">Header <code class="code"><iterator></code> synopsis</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">24.3</td><td style="text-align: left">Iterator primitives</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">24.4</td><td style="text-align: left">Predefined iterators and Iterator adaptors</td><td style="text-align: left"> </td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">24.4.1</td><td style="text-align: left">Reverse iterators</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">24.4.2</td><td style="text-align: left">Insert iterators</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">24.5</td><td style="text-align: left">Stream iterators</td><td style="text-align: left"> </td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">24.5.1</td><td style="text-align: left">Class template <code class="code">istream_iterator</code></td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">24.5.2</td><td style="text-align: left">Class template <code class="code">ostream_iterator</code></td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">24.5.3</td><td style="text-align: left">Class template <code class="code">istreambuf_iterator</code></td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">24.5.4</td><td style="text-align: left">Class template <code class="code">ostreambuf_iterator</code></td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left"> | |
1867 | + </td></tr><tr><td align="left">24.1</td><td align="left">Requirements</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">24.2</td><td align="left">Header <code class="code"><iterator></code> synopsis</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">24.3</td><td align="left">Iterator primitives</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">24.4</td><td align="left">Predefined iterators and Iterator adaptors</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">24.4.1</td><td align="left">Reverse iterators</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">24.4.2</td><td align="left">Insert iterators</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">24.5</td><td align="left">Stream iterators</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">24.5.1</td><td align="left">Class template <code class="code">istream_iterator</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">24.5.2</td><td align="left">Class template <code class="code">ostream_iterator</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">24.5.3</td><td align="left">Class template <code class="code">istreambuf_iterator</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">24.5.4</td><td align="left">Class template <code class="code">ostreambuf_iterator</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left"> | |
1868 | <span class="emphasis"><em>25</em></span> | |
1869 | - </td><td colspan="3" style="text-align: left"> | |
1870 | + </td><td colspan="3" align="left"> | |
1871 | <span class="emphasis"><em>Algorithms</em></span> | |
1872 | - </td></tr><tr><td style="text-align: left">25.1</td><td style="text-align: left">Non-modifying sequence operations</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">25.2</td><td style="text-align: left">Mutating sequence operations</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">25.3</td><td style="text-align: left">Sorting and related operations</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">25.4</td><td style="text-align: left">C library algorithms</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left"> | |
1873 | + </td></tr><tr><td align="left">25.1</td><td align="left">Non-modifying sequence operations</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">25.2</td><td align="left">Mutating sequence operations</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">25.3</td><td align="left">Sorting and related operations</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">25.4</td><td align="left">C library algorithms</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left"> | |
1874 | <span class="emphasis"><em>26</em></span> | |
1875 | - </td><td colspan="3" style="text-align: left"> | |
1876 | + </td><td colspan="3" align="left"> | |
1877 | <span class="emphasis"><em>Numerics</em></span> | |
1878 | - </td></tr><tr><td style="text-align: left">26.1</td><td style="text-align: left">Numeric type requirements</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">26.2</td><td style="text-align: left">Complex numbers</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">26.3</td><td style="text-align: left">Numeric arrays</td><td style="text-align: left"> </td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">26.3.1</td><td style="text-align: left">Header <code class="code"><valarray></code> synopsis</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">26.3.2</td><td style="text-align: left">Class template <code class="code">valarray</code></td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">26.3.3</td><td style="text-align: left"><code class="code">valarray</code> non-member operations</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">26.3.4</td><td style="text-align: left">Class <code class="code">slice</code></td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">26.3.5</td><td style="text-align: left">Class template <code class="code">slice_array</code></td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">26.3.6</td><td style="text-align: left">Class <code class="code">gslice</code></td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">26.3.7</td><td style="text-align: left">Class template <code class="code">gslice_array</code></td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">26.3.8</td><td style="text-align: left">Class template <code class="code">mask_array</code></td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">26.3.9</td><td style="text-align: left">Class template <code class="code">indirect_array</code></td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">26.4</td><td style="text-align: left">Generalized numeric operations</td><td style="text-align: left"> </td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">26.4.1</td><td style="text-align: left"><code class="code">accumulate</code></td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">26.4.2</td><td style="text-align: left"><code class="code">inner_product</code></td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">26.4.3</td><td style="text-align: left"><code class="code">partial_sum</code></td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">26.4.4</td><td style="text-align: left"><code class="code">adjacent_difference</code></td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">26.4.5</td><td style="text-align: left">iota</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">26.5</td><td style="text-align: left">C Library</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left"> | |
1879 | + </td></tr><tr><td align="left">26.1</td><td align="left">Numeric type requirements</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">26.2</td><td align="left">Complex numbers</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">26.3</td><td align="left">Numeric arrays</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">26.3.1</td><td align="left">Header <code class="code"><valarray></code> synopsis</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">26.3.2</td><td align="left">Class template <code class="code">valarray</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">26.3.3</td><td align="left"><code class="code">valarray</code> non-member operations</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">26.3.4</td><td align="left">Class <code class="code">slice</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">26.3.5</td><td align="left">Class template <code class="code">slice_array</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">26.3.6</td><td align="left">Class <code class="code">gslice</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">26.3.7</td><td align="left">Class template <code class="code">gslice_array</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">26.3.8</td><td align="left">Class template <code class="code">mask_array</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">26.3.9</td><td align="left">Class template <code class="code">indirect_array</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">26.4</td><td align="left">Generalized numeric operations</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">26.4.1</td><td align="left"><code class="code">accumulate</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">26.4.2</td><td align="left"><code class="code">inner_product</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">26.4.3</td><td align="left"><code class="code">partial_sum</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">26.4.4</td><td align="left"><code class="code">adjacent_difference</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">26.4.5</td><td align="left">iota</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">26.5</td><td align="left">C Library</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left"> | |
1880 | <span class="emphasis"><em>27</em></span> | |
1881 | - </td><td colspan="3" style="text-align: left"> | |
1882 | + </td><td colspan="3" align="left"> | |
1883 | <span class="emphasis"><em>Input/output</em></span> | |
1884 | - </td></tr><tr><td style="text-align: left">27.1</td><td style="text-align: left">Requirements</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">27.2</td><td style="text-align: left">Forward declarations</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">27.3</td><td style="text-align: left">Standard iostream objects</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">27.3.1</td><td style="text-align: left">Narrow stream objects</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">27.3.2</td><td style="text-align: left">Wide stream objects</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">27.4</td><td style="text-align: left">Iostreams base classes</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">27.5</td><td style="text-align: left">Stream buffers</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">27.6</td><td style="text-align: left">Formatting and manipulators</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">27.7</td><td style="text-align: left">String-based streams</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">27.8</td><td style="text-align: left">File-based streams</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left"> | |
1885 | + </td></tr><tr><td align="left">27.1</td><td align="left">Requirements</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">27.2</td><td align="left">Forward declarations</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">27.3</td><td align="left">Standard iostream objects</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">27.3.1</td><td align="left">Narrow stream objects</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">27.3.2</td><td align="left">Wide stream objects</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">27.4</td><td align="left">Iostreams base classes</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">27.5</td><td align="left">Stream buffers</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">27.6</td><td align="left">Formatting and manipulators</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">27.7</td><td align="left">String-based streams</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">27.8</td><td align="left">File-based streams</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left"> | |
1886 | <span class="emphasis"><em>Appendix D</em></span> | |
1887 | - </td><td colspan="3" style="text-align: left"> | |
1888 | + </td><td colspan="3" align="left"> | |
1889 | <span class="emphasis"><em>Compatibility features</em></span> | |
1890 | - </td></tr><tr><td style="text-align: left">D.1</td><td style="text-align: left">Increment operator with bool operand</td><td style="text-align: left"> </td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">D.2</td><td style="text-align: left"><code class="code">static</code> keyword</td><td style="text-align: left"> </td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">D.3</td><td style="text-align: left">Access declarations</td><td style="text-align: left"> </td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">D.4</td><td style="text-align: left">Implicit conversion from const strings</td><td style="text-align: left"> </td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">D.5</td><td style="text-align: left">C standard library headers</td><td style="text-align: left"> </td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">D.6</td><td style="text-align: left">Old iostreams members</td><td style="text-align: left"> </td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">D.7</td><td style="text-align: left">char* streams</td><td style="text-align: left"> </td><td style="text-align: left"> </td></tr></tbody></table></div></div><br class="table-break"/></div><div class="section" title="Implementation Specific Behavior"><div class="titlepage"><div><div><h4 class="title"><a id="iso.1998.specific"/>Implementation Specific Behavior</h4></div></div></div><p> | |
1891 | + </td></tr><tr><td align="left">D.1</td><td align="left">Increment operator with bool operand</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">D.2</td><td align="left"><code class="code">static</code> keyword</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">D.3</td><td align="left">Access declarations</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">D.4</td><td align="left">Implicit conversion from const strings</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">D.5</td><td align="left">C standard library headers</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">D.6</td><td align="left">Old iostreams members</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">D.7</td><td align="left">char* streams</td><td align="left"> </td><td align="left"> </td></tr></tbody></table></div></div><br class="table-break" /></div><div class="section" title="Implementation Specific Behavior"><div class="titlepage"><div><div><h4 class="title"><a id="iso.1998.specific"></a>Implementation Specific Behavior</h4></div></div></div><p> | |
1892 | The ISO standard defines the following phrase: | |
1893 | </p><div class="blockquote"><blockquote class="blockquote"><div class="variablelist"><dl><dt><span class="term"> | |
1894 | <code class="code">[1.3.5] implementation-defined behavior</code> | |
1895 | @@ -142,8 +142,8 @@ | |
1896 | <a class="link" href="io.html" title="Chapter 13. Input and Output">in this chapter</a>. | |
1897 | </p><p><span class="emphasis"><em>[27.8.1.4]/16</em></span> Calling <code class="code">fstream::sync</code> when | |
1898 | a get area exists will... whatever <code class="code">fflush()</code> does, I think. | |
1899 | - </p></div></div><div class="section" title="C++ 2011"><div class="titlepage"><div><div><h3 class="title"><a id="status.iso.2011"/>C++ 2011</h3></div></div></div><p> | |
1900 | -<a id="status.iso.200x"/> | |
1901 | + </p></div></div><div class="section" title="C++ 2011"><div class="titlepage"><div><div><h3 class="title"><a id="status.iso.2011"></a>C++ 2011</h3></div></div></div><p> | |
1902 | +<a id="status.iso.200x"></a> | |
1903 | This table is based on the table of contents of ISO/IEC | |
1904 | JTC1 SC22 WG21 Doc No: N3290 Date: 2011-04-11 | |
1905 | Final Draft International Standard, Standard for Programming Language C++ | |
1906 | @@ -158,25 +158,24 @@ | |
1907 | </p><p> | |
1908 | This page describes the C++11 support in mainline GCC SVN, not in any | |
1909 | particular release. | |
1910 | -</p><div class="table"><a id="id431070"/><p class="title"><strong>Table 1.2. C++ 2011 Implementation Status</strong></p><div class="table-contents"><table summary="C++ 2011 Implementation Status" border="1"><colgroup><col style="text-align: left" class="c1"/><col style="text-align: left" class="c2"/><col style="text-align: left" class="c3"/><col style="text-align: left" class="c4"/></colgroup><thead><tr><th style="text-align: left">Section</th><th style="text-align: left">Description</th><th style="text-align: left">Status</th><th style="text-align: left">Comments</th></tr></thead><tbody><tr><td style="text-align: left"> | |
1911 | +</p><div class="table"><a id="id629236"></a><p class="title"><strong>Table 1.2. C++ 2011 Implementation Status</strong></p><div class="table-contents"><table summary="C++ 2011 Implementation Status" border="1"><colgroup><col align="left" class="c1" /><col align="left" class="c2" /><col align="left" class="c3" /><col align="left" class="c4" /></colgroup><thead><tr><th align="left">Section</th><th align="left">Description</th><th align="left">Status</th><th align="left">Comments</th></tr></thead><tbody><tr><td align="left"> | |
1912 | <span class="emphasis"><em>18</em></span> | |
1913 | - </td><td colspan="3" style="text-align: left"> | |
1914 | + </td><td colspan="3" align="left"> | |
1915 | <span class="emphasis"><em>Language support</em></span> | |
1916 | - </td></tr><tr><td style="text-align: left">18.1</td><td style="text-align: left">General</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr style="background-color: #B0B0B0"><td style="text-align: left">18.2</td><td style="text-align: left">Types</td><td style="text-align: left">Partial</td><td style="text-align: left">Missing offsetof, max_align_t</td></tr><tr><td style="text-align: left">18.3</td><td style="text-align: left">Implementation properties</td><td style="text-align: left"> </td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">18.3.2</td><td style="text-align: left">Numeric Limits</td><td style="text-align: left"> </td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">18.3.2.3</td><td style="text-align: left">Class template <code class="code">numeric_limits</code></td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">18.3.2.4</td><td style="text-align: left"><code class="code">numeric_limits</code> members</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr style="background-color: #C8B0B0"><td style="text-align: left">18.3.2.5</td><td style="text-align: left"><code class="code">float_round_style</code></td><td style="text-align: left">N</td><td style="text-align: left"> </td></tr><tr style="background-color: #C8B0B0"><td style="text-align: left">18.3.2.6</td><td style="text-align: left"><code class="code">float_denorm_style</code></td><td style="text-align: left">N</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">18.3.2.7</td><td style="text-align: left"><code class="code">numeric_limits</code> specializations</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">18.3.3</td><td style="text-align: left">C Library</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">18.4</td><td style="text-align: left">Integer types</td><td style="text-align: left"> </td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">18.4.1</td><td style="text-align: left">Header <code class="code"><cstdint></code> synopsis</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr style="background-color: #B0B0B0"><td style="text-align: left">18.5</td><td style="text-align: left">Start and termination</td><td style="text-align: left">Partial</td><td style="text-align: left">C library dependency for quick_exit, at_quick_exit</td></tr><tr><td style="text-align: left">18.6</td><td style="text-align: left">Dynamic memory management</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">18.7</td><td style="text-align: left">Type identification</td><td style="text-align: left"> </td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">18.7.1</td><td style="text-align: left">Class type_info</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">18.7.2</td><td style="text-align: left">Class bad_cast</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">18.7.3</td><td style="text-align: left">Class bad_typeid</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">18.8</td><td style="text-align: left">Exception handling</td><td style="text-align: left"> </td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">18.8.1</td><td style="text-align: left">Class exception</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">18.8.2</td><td style="text-align: left">Class bad_exception</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">18.8.3</td><td style="text-align: left">Abnormal termination</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">18.8.4</td><td style="text-align: left"><code class="code">uncaught_exception</code></td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">18.8.5</td><td style="text-align: left">Exception Propagation</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">18.8.6</td><td style="text-align: left"><code class="code">nested_exception</code></td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">18.9</td><td style="text-align: left">Initializer lists</td><td style="text-align: left"> </td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">18.9.1</td><td style="text-align: left">Initializer list constructors</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">18.9.2</td><td style="text-align: left">Initializer list access</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">18.9.3</td><td style="text-align: left">Initializer list range access</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">18.10</td><td style="text-align: left">Other runtime support</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left"> | |
1917 | + </td></tr><tr><td align="left">18.1</td><td align="left">General</td><td align="left">Y</td><td align="left"> </td></tr><tr bgcolor="#B0B0B0"><td align="left">18.2</td><td align="left">Types</td><td align="left">Partial</td><td align="left">Missing offsetof, max_align_t</td></tr><tr><td align="left">18.3</td><td align="left">Implementation properties</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">18.3.2</td><td align="left">Numeric Limits</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">18.3.2.3</td><td align="left">Class template <code class="code">numeric_limits</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">18.3.2.4</td><td align="left"><code class="code">numeric_limits</code> members</td><td align="left">Y</td><td align="left"> </td></tr><tr bgcolor="#C8B0B0"><td align="left">18.3.2.5</td><td align="left"><code class="code">float_round_style</code></td><td align="left">N</td><td align="left"> </td></tr><tr bgcolor="#C8B0B0"><td align="left">18.3.2.6</td><td align="left"><code class="code">float_denorm_style</code></td><td align="left">N</td><td align="left"> </td></tr><tr><td align="left">18.3.2.7</td><td align="left"><code class="code">numeric_limits</code> specializations</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">18.3.3</td><td align="left">C Library</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">18.4</td><td align="left">Integer types</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">18.4.1</td><td align="left">Header <code class="code"><cstdint></code> synopsis</td><td align="left">Y</td><td align="left"> </td></tr><tr bgcolor="#B0B0B0"><td align="left">18.5</td><td align="left">Start and termination</td><td align="left">Partial</td><td align="left">C library dependency for quick_exit, at_quick_exit</td></tr><tr><td align="left">18.6</td><td align="left">Dynamic memory management</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">18.7</td><td align="left">Type identification</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">18.7.1</td><td align="left">Class type_info</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">18.7.2</td><td align="left">Class bad_cast</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">18.7.3</td><td align="left">Class bad_typeid</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">18.8</td><td align="left">Exception handling</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">18.8.1</td><td align="left">Class exception</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">18.8.2</td><td align="left">Class bad_exception</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">18.8.3</td><td align="left">Abnormal termination</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">18.8.4</td><td align="left"><code class="code">uncaught_exception</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">18.8.5</td><td align="left">Exception Propagation</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">18.8.6</td><td align="left"><code class="code">nested_exception</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">18.9</td><td align="left">Initializer lists</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">18.9.1</td><td align="left">Initializer list constructors</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">18.9.2</td><td align="left">Initializer list access</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">18.9.3</td><td align="left">Initializer list range access</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">18.10</td><td align="left">Other runtime support</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left"> | |
1918 | <span class="emphasis"><em>19</em></span> | |
1919 | - </td><td colspan="3" style="text-align: left"> | |
1920 | + </td><td colspan="3" align="left"> | |
1921 | <span class="emphasis"><em>Diagnostics</em></span> | |
1922 | - </td></tr><tr><td style="text-align: left">19.1</td><td style="text-align: left">General</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">19.2</td><td style="text-align: left">Exception classes</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">19.3</td><td style="text-align: left">Assertions</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">19.4</td><td style="text-align: left">Error numbers</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">19.5</td><td style="text-align: left">System error support</td><td style="text-align: left"> </td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">19.5.1</td><td style="text-align: left">Class <code class="code">error_category</code></td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">19.5.2</td><td style="text-align: left">Class <code class="code">error_code</code></td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">19.5.3</td><td style="text-align: left">Class <code class="code">error_condition</code></td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">19.5.4</td><td style="text-align: left">Comparison operators</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">19.5.5</td><td style="text-align: left">Class <code class="code">system_error</code></td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left"> | |
1923 | + </td></tr><tr><td align="left">19.1</td><td align="left">General</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">19.2</td><td align="left">Exception classes</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">19.3</td><td align="left">Assertions</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">19.4</td><td align="left">Error numbers</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">19.5</td><td align="left">System error support</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">19.5.1</td><td align="left">Class <code class="code">error_category</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">19.5.2</td><td align="left">Class <code class="code">error_code</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">19.5.3</td><td align="left">Class <code class="code">error_condition</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">19.5.4</td><td align="left">Comparison operators</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">19.5.5</td><td align="left">Class <code class="code">system_error</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left"> | |
1924 | <span class="emphasis"><em>20</em></span> | |
1925 | - </td><td colspan="3" style="text-align: left"> | |
1926 | + </td><td colspan="3" align="left"> | |
1927 | <span class="emphasis"><em>General utilities</em></span> | |
1928 | - </td></tr><tr><td style="text-align: left">20.1</td><td style="text-align: left">General</td><td style="text-align: left"> </td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">20.2</td><td style="text-align: left">Utility components</td><td style="text-align: left"> </td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">20.2.1</td><td style="text-align: left">Operators</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">20.2.2</td><td style="text-align: left">Swap</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">20.2.3</td><td style="text-align: left"><code class="code">forward</code> and <code class="code">move</code> helpers</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">20.2.4</td><td style="text-align: left">Function template <code class="code">declval</code></td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">20.3</td><td style="text-align: left">Pairs</td><td style="text-align: left"> </td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">20.3.1</td><td style="text-align: left">In general</td><td style="text-align: left"> </td><td style="text-align: left"> </td></tr><tr style="background-color: #B0B0B0"><td style="text-align: left">20.3.2</td><td style="text-align: left">Class template <code class="code">pair</code></td><td style="text-align: left">Partial</td><td style="text-align: left">Piecewise construction requires an accessible copy/move | |
1929 | - constructor.</td></tr><tr><td style="text-align: left">20.3.3</td><td style="text-align: left">Specialized algorithms</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">20.3.4</td><td style="text-align: left">Tuple-like access to <code class="code">pair</code></td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">20.3.5</td><td style="text-align: left">Piecewise construction</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">20.4</td><td style="text-align: left">Tuples</td><td style="text-align: left"> </td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">20.4.1</td><td style="text-align: left">In general</td><td style="text-align: left"> </td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">20.4.2</td><td style="text-align: left">Class template <code class="code">tuple</code></td><td style="text-align: left"> </td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">20.4.2.1</td><td style="text-align: left">Construction</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">20.4.2.2</td><td style="text-align: left">Assignment</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">20.4.2.3</td><td style="text-align: left">Swap</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">20.4.2.4</td><td style="text-align: left">Tuple creation functions</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">20.4.2.5</td><td style="text-align: left">Tuple helper classes</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">20.4.2.6</td><td style="text-align: left">Element access</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">20.4.2.7</td><td style="text-align: left">Relational operators</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">20.4.2.8</td><td style="text-align: left">Tuple traits</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">20.4.2.9</td><td style="text-align: left">Tuple specialized algorithms</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">20.5</td><td style="text-align: left">Class template <code class="code">bitset</code></td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">20.5.1</td><td style="text-align: left"><code class="code">bitset</code> constructors</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">20.5.2</td><td style="text-align: left"><code class="code">bitset</code> members</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">20.5.3</td><td style="text-align: left"><code class="code">bitset</code> hash support</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">20.5.4</td><td style="text-align: left"><code class="code">bitset</code> operators</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">20.6</td><td style="text-align: left">Memory</td><td style="text-align: left"> </td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">20.6.1</td><td style="text-align: left">In general</td><td style="text-align: left"> </td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">20.6.2</td><td style="text-align: left">Header <code class="code"><memory></code> synopsis</td><td style="text-align: left"> </td><td style="text-align: left"> </td></tr><tr style="background-color: #B0B0B0"><td style="text-align: left">20.6.3</td><td style="text-align: left">Pointer traits</td><td style="text-align: left">Partial</td><td style="text-align: left">Missing rebind</td></tr><tr style="background-color: #B0B0B0"><td style="text-align: left">20.6.4</td><td style="text-align: left">Pointer safety</td><td style="text-align: left">Partial</td><td style="text-align: left"> </td></tr><tr style="background-color: #C8B0B0"><td style="text-align: left">20.6.5</td><td style="text-align: left">Align</td><td style="text-align: left">N</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">20.6.6</td><td style="text-align: left">Allocator argument tag</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">20.6.7</td><td style="text-align: left"><code class="code">uses_allocator</code></td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr style="background-color: #B0B0B0"><td style="text-align: left">20.6.8</td><td style="text-align: left">Allocator traits</td><td style="text-align: left">Partial</td><td style="text-align: left">Missing rebind_alloc and rebind_traits</td></tr><tr><td style="text-align: left">20.6.9</td><td style="text-align: left">The default allocator</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">20.6.10</td><td style="text-align: left">Raw storage iterator</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">20.6.11</td><td style="text-align: left">Temporary buffers</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">20.6.12</td><td style="text-align: left">Specialized algorithms</td><td style="text-align: left"> </td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">20.6.12.1</td><td style="text-align: left"><code class="code">addressof</code></td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">20.6.12.2</td><td style="text-align: left"><code class="code">uninitialized_copy</code></td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">20.6.12.3</td><td style="text-align: left"><code class="code">uninitialized_fill</code></td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">20.6.12.4</td><td style="text-align: left"><code class="code">uninitialized_fill_n</code></td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">20.6.13</td><td style="text-align: left">C library</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">20.7</td><td style="text-align: left">Smart pointers</td><td style="text-align: left"> </td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">20.7.1</td><td style="text-align: left">Class template <code class="code">unique_ptr</code></td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">20.7.2</td><td style="text-align: left">Shared-ownership pointers</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">20.7.2.1</td><td style="text-align: left">Class <code class="code">bad_weak_ptr</code></td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">20.7.2.2</td><td style="text-align: left">Class template <code class="code">shared_ptr</code></td><td style="text-align: left">Y</td><td style="text-align: left"> | |
1930 | + </td></tr><tr><td align="left">20.1</td><td align="left">General</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">20.2</td><td align="left">Utility components</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">20.2.1</td><td align="left">Operators</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">20.2.2</td><td align="left">Swap</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">20.2.3</td><td align="left"><code class="code">forward</code> and <code class="code">move</code> helpers</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">20.2.4</td><td align="left">Function template <code class="code">declval</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">20.3</td><td align="left">Pairs</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">20.3.1</td><td align="left">In general</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">20.3.2</td><td align="left">Class template <code class="code">pair</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">20.3.3</td><td align="left">Specialized algorithms</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">20.3.4</td><td align="left">Tuple-like access to <code class="code">pair</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">20.3.5</td><td align="left">Piecewise construction</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">20.4</td><td align="left">Tuples</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">20.4.1</td><td align="left">In general</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">20.4.2</td><td align="left">Class template <code class="code">tuple</code></td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">20.4.2.1</td><td align="left">Construction</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">20.4.2.2</td><td align="left">Assignment</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">20.4.2.3</td><td align="left">Swap</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">20.4.2.4</td><td align="left">Tuple creation functions</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">20.4.2.5</td><td align="left">Tuple helper classes</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">20.4.2.6</td><td align="left">Element access</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">20.4.2.7</td><td align="left">Relational operators</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">20.4.2.8</td><td align="left">Tuple traits</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">20.4.2.9</td><td align="left">Tuple specialized algorithms</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">20.5</td><td align="left">Class template <code class="code">bitset</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">20.5.1</td><td align="left"><code class="code">bitset</code> constructors</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">20.5.2</td><td align="left"><code class="code">bitset</code> members</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">20.5.3</td><td align="left"><code class="code">bitset</code> hash support</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">20.5.4</td><td align="left"><code class="code">bitset</code> operators</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">20.6</td><td align="left">Memory</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">20.6.1</td><td align="left">In general</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">20.6.2</td><td align="left">Header <code class="code"><memory></code> synopsis</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">20.6.3</td><td align="left">Pointer traits</td><td align="left">Y</td><td align="left"> </td></tr><tr bgcolor="#B0B0B0"><td align="left">20.6.4</td><td align="left">Pointer safety</td><td align="left">Partial</td><td align="left"> </td></tr><tr bgcolor="#C8B0B0"><td align="left">20.6.5</td><td align="left">Align</td><td align="left">N</td><td align="left"> </td></tr><tr><td align="left">20.6.6</td><td align="left">Allocator argument tag</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">20.6.7</td><td align="left"><code class="code">uses_allocator</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">20.6.8</td><td align="left">Allocator traits</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">20.6.9</td><td align="left">The default allocator</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">20.6.10</td><td align="left">Raw storage iterator</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">20.6.11</td><td align="left">Temporary buffers</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">20.6.12</td><td align="left">Specialized algorithms</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">20.6.12.1</td><td align="left"><code class="code">addressof</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">20.6.12.2</td><td align="left"><code class="code">uninitialized_copy</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">20.6.12.3</td><td align="left"><code class="code">uninitialized_fill</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">20.6.12.4</td><td align="left"><code class="code">uninitialized_fill_n</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">20.6.13</td><td align="left">C library</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">20.7</td><td align="left">Smart pointers</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">20.7.1</td><td align="left">Class template <code class="code">unique_ptr</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">20.7.2</td><td align="left">Shared-ownership pointers</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">20.7.2.1</td><td align="left">Class <code class="code">bad_weak_ptr</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">20.7.2.2</td><td align="left">Class template <code class="code">shared_ptr</code></td><td align="left">Y</td><td align="left"> | |
1931 | <p> | |
1932 | Uses code from | |
1933 | - <a class="link" href="http://www.boost.org/libs/smart_ptr/shared_ptr.htm">boost::shared_ptr</a>. | |
1934 | + <a class="link" href="http://www.boost.org/libs/smart_ptr/shared_ptr.htm" target="_top">boost::shared_ptr</a>. | |
1935 | </p> | |
1936 | - </td></tr><tr><td style="text-align: left">20.7.2.3</td><td style="text-align: left">Class template <code class="code">weak_ptr</code></td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">20.7.2.4</td><td style="text-align: left">Class template <code class="code">emable_shared_from_this</code></td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr style="background-color: #B0B0B0"><td style="text-align: left">20.7.2.5</td><td style="text-align: left"><code class="code">shared_ptr</code> atomic access</td><td style="text-align: left">Partial</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">20.7.2.6</td><td style="text-align: left">Smart pointer hash support</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">20.8</td><td style="text-align: left">Function objects</td><td style="text-align: left"> </td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">20.8.1</td><td style="text-align: left">Definitions</td><td style="text-align: left"> </td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">20.8.2</td><td style="text-align: left">Requirements</td><td style="text-align: left"> </td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">20.8.3</td><td style="text-align: left">Class template <code class="code">reference_wrapper</code></td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">20.8.4</td><td style="text-align: left">Arithmetic operation</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">20.8.5</td><td style="text-align: left">Comparisons</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">20.8.6</td><td style="text-align: left">Logical operations</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">20.8.7</td><td style="text-align: left">Bitwise operations</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">20.8.8</td><td style="text-align: left">Negators</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">20.8.9</td><td style="text-align: left">Function template <code class="code">bind</code></td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr style="background-color: #B0B0B0"><td style="text-align: left">20.8.10</td><td style="text-align: left">Function template <code class="code">mem_fn</code></td><td style="text-align: left">Partial</td><td style="text-align: left">Missing overloads for reference-qualified member functions</td></tr><tr><td style="text-align: left">20.8.11</td><td style="text-align: left">Polymorphic function wrappers</td><td style="text-align: left"> </td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">20.8.11.1</td><td style="text-align: left">Class <code class="code">bad_function_call</code></td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr style="background-color: #B0B0B0"><td style="text-align: left">20.8.11.2</td><td style="text-align: left">Class template <code class="code">function</code></td><td style="text-align: left">Partial</td><td style="text-align: left">Missing allocator support</td></tr><tr><td style="text-align: left">20.8.12</td><td style="text-align: left">Class template <code class="code">hash</code></td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">20.9</td><td style="text-align: left">Metaprogramming and type traits</td><td style="text-align: left"> </td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">20.9.1</td><td style="text-align: left">Requirements</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">20.9.2</td><td style="text-align: left">Header <code class="code"><type_traits></code> synopsis</td><td style="text-align: left"> </td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">20.9.3</td><td style="text-align: left">Helper classes</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">20.9.4</td><td style="text-align: left">Unary Type Traits</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">20.9.4.1</td><td style="text-align: left">Primary type categories</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">20.9.4.2</td><td style="text-align: left">Composite type traits</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr style="background-color: #B0B0B0"><td style="text-align: left">20.9.4.3</td><td style="text-align: left">Type properties</td><td style="text-align: left">Partial</td><td style="text-align: left">Missing is_trivially_copyable, | |
1937 | + </td></tr><tr><td align="left">20.7.2.3</td><td align="left">Class template <code class="code">weak_ptr</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">20.7.2.4</td><td align="left">Class template <code class="code">emable_shared_from_this</code></td><td align="left">Y</td><td align="left"> </td></tr><tr bgcolor="#B0B0B0"><td align="left">20.7.2.5</td><td align="left"><code class="code">shared_ptr</code> atomic access</td><td align="left">Partial</td><td align="left"> </td></tr><tr><td align="left">20.7.2.6</td><td align="left">Smart pointer hash support</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">20.8</td><td align="left">Function objects</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">20.8.1</td><td align="left">Definitions</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">20.8.2</td><td align="left">Requirements</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">20.8.3</td><td align="left">Class template <code class="code">reference_wrapper</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">20.8.4</td><td align="left">Arithmetic operation</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">20.8.5</td><td align="left">Comparisons</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">20.8.6</td><td align="left">Logical operations</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">20.8.7</td><td align="left">Bitwise operations</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">20.8.8</td><td align="left">Negators</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">20.8.9</td><td align="left">Function template <code class="code">bind</code></td><td align="left">Y</td><td align="left"> </td></tr><tr bgcolor="#B0B0B0"><td align="left">20.8.10</td><td align="left">Function template <code class="code">mem_fn</code></td><td align="left">Partial</td><td align="left">Missing overloads for reference-qualified member functions</td></tr><tr><td align="left">20.8.11</td><td align="left">Polymorphic function wrappers</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">20.8.11.1</td><td align="left">Class <code class="code">bad_function_call</code></td><td align="left">Y</td><td align="left"> </td></tr><tr bgcolor="#B0B0B0"><td align="left">20.8.11.2</td><td align="left">Class template <code class="code">function</code></td><td align="left">Partial</td><td align="left">Missing allocator support</td></tr><tr><td align="left">20.8.12</td><td align="left">Class template <code class="code">hash</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">20.9</td><td align="left">Metaprogramming and type traits</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">20.9.1</td><td align="left">Requirements</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">20.9.2</td><td align="left">Header <code class="code"><type_traits></code> synopsis</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">20.9.3</td><td align="left">Helper classes</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">20.9.4</td><td align="left">Unary Type Traits</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">20.9.4.1</td><td align="left">Primary type categories</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">20.9.4.2</td><td align="left">Composite type traits</td><td align="left">Y</td><td align="left"> </td></tr><tr bgcolor="#B0B0B0"><td align="left">20.9.4.3</td><td align="left">Type properties</td><td align="left">Partial</td><td align="left">Missing is_trivially_copyable, | |
1938 | is_assignable, is_copy_assignable, is_move_assignable, | |
1939 | is_trivially_constructible, is_trivially_default_constructible, | |
1940 | is_trivially_copy_constructible, is_trivially_move_constructible, | |
1941 | @@ -186,62 +185,59 @@ | |
1942 | is_nothrow_assignable, | |
1943 | is_nothrow_copy_assignable, is_nothrow_move_assignable, | |
1944 | is_nothrow_destructible | |
1945 | - </td></tr><tr><td style="text-align: left">20.9.5</td><td style="text-align: left">Type property queries</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">20.9.6</td><td style="text-align: left">Relationships between types</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">20.9.7</td><td style="text-align: left">Transformations between types</td><td style="text-align: left"> </td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">20.9.7.1</td><td style="text-align: left">Const-volatile modifications</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">20.9.7.2</td><td style="text-align: left">Reference modifications</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">20.9.7.3</td><td style="text-align: left">Sign modifications</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">20.9.7.4</td><td style="text-align: left">Array modifications</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">20.9.7.5</td><td style="text-align: left">Pointer modifications</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">20.9.7.6</td><td style="text-align: left">Other transformations</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">20.10</td><td style="text-align: left">Compile-time rational arithmetic</td><td style="text-align: left"> </td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">20.10.1</td><td style="text-align: left">In general</td><td style="text-align: left"> </td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">20.10.2</td><td style="text-align: left">Header <code class="code"><ratio></code> synopsis</td><td style="text-align: left"> </td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">20.10.3</td><td style="text-align: left">Class template <code class="code">ratio</code></td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">20.10.4</td><td style="text-align: left">Arithmetic on <code class="code">ratio</code>s</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">20.10.5</td><td style="text-align: left">Comparison of <code class="code">ratio</code>s</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">20.10.6</td><td style="text-align: left">SI types for <code class="code">ratio</code></td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">20.11</td><td style="text-align: left">Time utilities</td><td style="text-align: left"> </td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">20.11.3</td><td style="text-align: left">Clock requirements</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">20.11.4</td><td style="text-align: left">Time-related traits</td><td style="text-align: left"> </td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">20.11.4.1</td><td style="text-align: left"><code class="code">treat_as_floating_point</code></td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">20.11.4.2</td><td style="text-align: left"><code class="code">duration_values</code></td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">20.11.4.3</td><td style="text-align: left">Specializations of <code class="code">common_type</code></td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr style="background-color: #B0B0B0"><td style="text-align: left">20.11.5</td><td style="text-align: left">Class template <code class="code">duration</code></td><td style="text-align: left">Partial</td><td style="text-align: left">Missing constexpr for non-member arithmetic operations</td></tr><tr><td style="text-align: left">20.11.6</td><td style="text-align: left">Class template <code class="code">time_point</code></td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">20.11.7</td><td style="text-align: left">Clocks</td><td style="text-align: left"> </td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">20.11.7.1</td><td style="text-align: left">Class <code class="code">system_clock</code></td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr style="background-color: #C8B0B0"><td style="text-align: left">20.11.7.2</td><td style="text-align: left">Class <code class="code">steady_clock</code></td><td style="text-align: left">N</td><td style="text-align: left">Support old <code class="code">monotonic_clock</code> spec instead</td></tr><tr><td style="text-align: left">20.11.7.3</td><td style="text-align: left">Class <code class="code">high_resolution_clock</code></td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">20.11.8</td><td style="text-align: left">Date and time functions</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr style="background-color: #B0B0B0"><td style="text-align: left">20.12</td><td style="text-align: left">Scoped allocator adaptor</td><td style="text-align: left">Partial</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">20.12.1</td><td style="text-align: left">Header <code class="code"><scoped_allocator></code> synopsis</td><td style="text-align: left"> </td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">20.12.2</td><td style="text-align: left">Scoped allocator adaptor member types</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">20.12.3</td><td style="text-align: left">Scoped allocator adaptor constructors</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr style="background-color: #B0B0B0"><td style="text-align: left">20.12.4</td><td style="text-align: left">Scoped allocator adaptor members</td><td style="text-align: left">Partial</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">20.12.5</td><td style="text-align: left">Scoped allocator operators</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">20.13</td><td style="text-align: left">Class <code class="code">type_index</code></td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left"> | |
1946 | + </td></tr><tr><td align="left">20.9.5</td><td align="left">Type property queries</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">20.9.6</td><td align="left">Relationships between types</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">20.9.7</td><td align="left">Transformations between types</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">20.9.7.1</td><td align="left">Const-volatile modifications</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">20.9.7.2</td><td align="left">Reference modifications</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">20.9.7.3</td><td align="left">Sign modifications</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">20.9.7.4</td><td align="left">Array modifications</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">20.9.7.5</td><td align="left">Pointer modifications</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">20.9.7.6</td><td align="left">Other transformations</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">20.10</td><td align="left">Compile-time rational arithmetic</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">20.10.1</td><td align="left">In general</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">20.10.2</td><td align="left">Header <code class="code"><ratio></code> synopsis</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">20.10.3</td><td align="left">Class template <code class="code">ratio</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">20.10.4</td><td align="left">Arithmetic on <code class="code">ratio</code>s</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">20.10.5</td><td align="left">Comparison of <code class="code">ratio</code>s</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">20.10.6</td><td align="left">SI types for <code class="code">ratio</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">20.11</td><td align="left">Time utilities</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">20.11.3</td><td align="left">Clock requirements</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">20.11.4</td><td align="left">Time-related traits</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">20.11.4.1</td><td align="left"><code class="code">treat_as_floating_point</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">20.11.4.2</td><td align="left"><code class="code">duration_values</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">20.11.4.3</td><td align="left">Specializations of <code class="code">common_type</code></td><td align="left">Y</td><td align="left"> </td></tr><tr bgcolor="#B0B0B0"><td align="left">20.11.5</td><td align="left">Class template <code class="code">duration</code></td><td align="left">Partial</td><td align="left">Missing constexpr for non-member arithmetic operations</td></tr><tr><td align="left">20.11.6</td><td align="left">Class template <code class="code">time_point</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">20.11.7</td><td align="left">Clocks</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">20.11.7.1</td><td align="left">Class <code class="code">system_clock</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">20.11.7.2</td><td align="left">Class <code class="code">steady_clock</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">20.11.7.3</td><td align="left">Class <code class="code">high_resolution_clock</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">20.11.8</td><td align="left">Date and time functions</td><td align="left">Y</td><td align="left"> </td></tr><tr bgcolor="#B0B0B0"><td align="left">20.12</td><td align="left">Scoped allocator adaptor</td><td align="left">Partial</td><td align="left"> </td></tr><tr><td align="left">20.12.1</td><td align="left">Header <code class="code"><scoped_allocator></code> synopsis</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">20.12.2</td><td align="left">Scoped allocator adaptor member types</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">20.12.3</td><td align="left">Scoped allocator adaptor constructors</td><td align="left">Y</td><td align="left"> </td></tr><tr bgcolor="#B0B0B0"><td align="left">20.12.4</td><td align="left">Scoped allocator adaptor members</td><td align="left">Partial</td><td align="left"> </td></tr><tr><td align="left">20.12.5</td><td align="left">Scoped allocator operators</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">20.13</td><td align="left">Class <code class="code">type_index</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left"> | |
1947 | <span class="emphasis"><em>21</em></span> | |
1948 | - </td><td colspan="3" style="text-align: left"> | |
1949 | + </td><td colspan="3" align="left"> | |
1950 | <span class="emphasis"><em>Strings</em></span> | |
1951 | - </td></tr><tr><td style="text-align: left">21.1</td><td style="text-align: left">General</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">21.2</td><td style="text-align: left">Character traits</td><td style="text-align: left"> </td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">21.2.1</td><td style="text-align: left">Character traits requirements</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">21.2.2</td><td style="text-align: left">traits typedefs</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">21.2.3</td><td style="text-align: left"><code class="code">char_traits</code> specializations</td><td style="text-align: left"> </td><td style="text-align: left"> </td></tr><tr style="background-color: #B0B0B0"><td style="text-align: left">21.2.3.1</td><td style="text-align: left">struct <code class="code">char_traits<char></code></td><td style="text-align: left">Partial</td><td style="text-align: left">Missing constexpr</td></tr><tr style="background-color: #B0B0B0"><td style="text-align: left">21.2.3.2</td><td style="text-align: left">struct <code class="code">char_traits<char16_t></code></td><td style="text-align: left">Partial</td><td style="text-align: left">Missing constexpr</td></tr><tr><td style="text-align: left">21.2.3.3</td><td style="text-align: left">struct <code class="code">char_traits<char32_t></code></td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">21.2.3.4</td><td style="text-align: left">struct <code class="code">char_traits<wchar_t></code></td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">21.3</td><td style="text-align: left">String classes</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr style="background-color: #B0B0B0"><td style="text-align: left">21.4</td><td style="text-align: left">Class template <code class="code">basic_string</code></td><td style="text-align: left">Partial</td><td style="text-align: left">Missing pop_back</td></tr><tr><td style="text-align: left">21.5</td><td style="text-align: left">Numeric Conversions</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">21.6</td><td style="text-align: left">Hash support</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr style="background-color: #B0B0B0"><td style="text-align: left">21.7</td><td style="text-align: left">Null-terminated sequence utilities</td><td style="text-align: left">Partial</td><td style="text-align: left">C library dependency. | |
1952 | + </td></tr><tr><td align="left">21.1</td><td align="left">General</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">21.2</td><td align="left">Character traits</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">21.2.1</td><td align="left">Character traits requirements</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">21.2.2</td><td align="left">traits typedefs</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">21.2.3</td><td align="left"><code class="code">char_traits</code> specializations</td><td align="left"> </td><td align="left"> </td></tr><tr bgcolor="#B0B0B0"><td align="left">21.2.3.1</td><td align="left">struct <code class="code">char_traits<char></code></td><td align="left">Partial</td><td align="left">Missing constexpr</td></tr><tr bgcolor="#B0B0B0"><td align="left">21.2.3.2</td><td align="left">struct <code class="code">char_traits<char16_t></code></td><td align="left">Partial</td><td align="left">Missing constexpr</td></tr><tr><td align="left">21.2.3.3</td><td align="left">struct <code class="code">char_traits<char32_t></code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">21.2.3.4</td><td align="left">struct <code class="code">char_traits<wchar_t></code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">21.3</td><td align="left">String classes</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">21.4</td><td align="left">Class template <code class="code">basic_string</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">21.5</td><td align="left">Numeric Conversions</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">21.6</td><td align="left">Hash support</td><td align="left">Y</td><td align="left"> </td></tr><tr bgcolor="#B0B0B0"><td align="left">21.7</td><td align="left">Null-terminated sequence utilities</td><td align="left">Partial</td><td align="left">C library dependency. | |
1953 | Missing <code class="filename"><cuchar></code> | |
1954 | - </td></tr><tr><td style="text-align: left"> | |
1955 | + </td></tr><tr><td align="left"> | |
1956 | <span class="emphasis"><em>22</em></span> | |
1957 | - </td><td colspan="3" style="text-align: left"> | |
1958 | + </td><td colspan="3" align="left"> | |
1959 | <span class="emphasis"><em>Localization</em></span> | |
1960 | - </td></tr><tr><td style="text-align: left">22.1</td><td style="text-align: left">General</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">22.2</td><td style="text-align: left">Header <code class="code"><locale></code> synopsis</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">22.3</td><td style="text-align: left">Locales</td><td style="text-align: left"> </td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">22.3.1</td><td style="text-align: left">Class <code class="code">locale</code></td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">22.3.2</td><td style="text-align: left"><code class="code">locale</code> globals</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">22.3.3</td><td style="text-align: left">Convenience interfaces</td><td style="text-align: left"> </td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">22.3.3.1</td><td style="text-align: left">Character classification</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">22.3.3.2</td><td style="text-align: left">Conversions</td><td style="text-align: left"> </td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">22.3.3.2.1</td><td style="text-align: left">Character conversions</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr style="background-color: #C8B0B0"><td style="text-align: left">22.3.3.2.2</td><td style="text-align: left"><code class="code">string</code> conversions</td><td style="text-align: left">N</td><td style="text-align: left"> </td></tr><tr style="background-color: #C8B0B0"><td style="text-align: left">22.3.3.2.3</td><td style="text-align: left">Buffer conversions</td><td style="text-align: left">N</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">22.4</td><td style="text-align: left">Standard <code class="code">locale</code> categories</td><td style="text-align: left"> </td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">22.4.1</td><td style="text-align: left">The <code class="code">ctype</code> category</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">22.4.2</td><td style="text-align: left">The numeric category</td><td style="text-align: left"> </td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">22.4.2.1</td><td style="text-align: left"><code class="code">num_get</code></td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">22.4.2.2</td><td style="text-align: left"><code class="code">num_put</code></td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">22.4.3</td><td style="text-align: left">The numeric punctuation facet</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">22.4.4</td><td style="text-align: left">The collate category</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">22.4.5</td><td style="text-align: left">The time category</td><td style="text-align: left"> </td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">22.4.5.1</td><td style="text-align: left">Class template <code class="code">time_get</code></td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">22.4.5.2</td><td style="text-align: left">Class template <code class="code">time_get_byname</code></td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">22.4.5.3</td><td style="text-align: left">Class template <code class="code">time_put</code></td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">22.4.5.3</td><td style="text-align: left">Class template <code class="code">time_put_byname</code></td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">22.4.6</td><td style="text-align: left">The monetary category</td><td style="text-align: left"> </td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">22.4.6.1</td><td style="text-align: left">Class template <code class="code">money_get</code></td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">22.4.6.2</td><td style="text-align: left">Class template <code class="code">money_put</code></td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">22.4.6.3</td><td style="text-align: left">Class template <code class="code">money_punct</code></td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">22.4.6.4</td><td style="text-align: left">Class template <code class="code">money_punct_byname</code></td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">22.4.7</td><td style="text-align: left">The message retrieval category</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">22.4.8</td><td style="text-align: left">Program-defined facets</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr style="background-color: #C8B0B0"><td style="text-align: left">22.5</td><td style="text-align: left">Standard code conversion facets</td><td style="text-align: left">N</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">22.6</td><td style="text-align: left">C Library Locales</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left"> | |
1961 | + </td></tr><tr><td align="left">22.1</td><td align="left">General</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">22.2</td><td align="left">Header <code class="code"><locale></code> synopsis</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">22.3</td><td align="left">Locales</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">22.3.1</td><td align="left">Class <code class="code">locale</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">22.3.2</td><td align="left"><code class="code">locale</code> globals</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">22.3.3</td><td align="left">Convenience interfaces</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">22.3.3.1</td><td align="left">Character classification</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">22.3.3.2</td><td align="left">Conversions</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">22.3.3.2.1</td><td align="left">Character conversions</td><td align="left">Y</td><td align="left"> </td></tr><tr bgcolor="#C8B0B0"><td align="left">22.3.3.2.2</td><td align="left"><code class="code">string</code> conversions</td><td align="left">N</td><td align="left"> </td></tr><tr bgcolor="#C8B0B0"><td align="left">22.3.3.2.3</td><td align="left">Buffer conversions</td><td align="left">N</td><td align="left"> </td></tr><tr><td align="left">22.4</td><td align="left">Standard <code class="code">locale</code> categories</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">22.4.1</td><td align="left">The <code class="code">ctype</code> category</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">22.4.2</td><td align="left">The numeric category</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">22.4.2.1</td><td align="left"><code class="code">num_get</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">22.4.2.2</td><td align="left"><code class="code">num_put</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">22.4.3</td><td align="left">The numeric punctuation facet</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">22.4.4</td><td align="left">The collate category</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">22.4.5</td><td align="left">The time category</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">22.4.5.1</td><td align="left">Class template <code class="code">time_get</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">22.4.5.2</td><td align="left">Class template <code class="code">time_get_byname</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">22.4.5.3</td><td align="left">Class template <code class="code">time_put</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">22.4.5.3</td><td align="left">Class template <code class="code">time_put_byname</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">22.4.6</td><td align="left">The monetary category</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">22.4.6.1</td><td align="left">Class template <code class="code">money_get</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">22.4.6.2</td><td align="left">Class template <code class="code">money_put</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">22.4.6.3</td><td align="left">Class template <code class="code">money_punct</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">22.4.6.4</td><td align="left">Class template <code class="code">money_punct_byname</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">22.4.7</td><td align="left">The message retrieval category</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">22.4.8</td><td align="left">Program-defined facets</td><td align="left">Y</td><td align="left"> </td></tr><tr bgcolor="#C8B0B0"><td align="left">22.5</td><td align="left">Standard code conversion facets</td><td align="left">N</td><td align="left"> </td></tr><tr><td align="left">22.6</td><td align="left">C Library Locales</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left"> | |
1962 | <span class="emphasis"><em>23</em></span> | |
1963 | - </td><td colspan="3" style="text-align: left"> | |
1964 | + </td><td colspan="3" align="left"> | |
1965 | <span class="emphasis"><em>Containers</em></span> | |
1966 | - </td></tr><tr><td style="text-align: left">23.1</td><td style="text-align: left">General</td><td style="text-align: left"> </td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">23.2</td><td style="text-align: left">Container requirements</td><td style="text-align: left"> </td><td style="text-align: left"> </td></tr><tr style="background-color: #B0B0B0"><td style="text-align: left">23.2.1</td><td style="text-align: left">General container requirements</td><td style="text-align: left">Partial</td><td style="text-align: left">Only <code class="code">vector</code> meets the requirements | |
1967 | - relating to allocator use and propagation.</td></tr><tr><td style="text-align: left">23.2.2</td><td style="text-align: left">Container data races</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">23.2.3</td><td style="text-align: left">Sequence containers</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr style="background-color: #B0B0B0"><td style="text-align: left">23.2.4</td><td style="text-align: left">Associative containers</td><td style="text-align: left">Partial</td><td style="text-align: left">Missing emplace members</td></tr><tr><td style="text-align: left">23.2.5</td><td style="text-align: left">Unordered associative containers</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">23.3</td><td style="text-align: left">Sequence containers</td><td style="text-align: left"> </td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">23.3.2</td><td style="text-align: left">Class template <code class="code">array</code></td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">23.3.3</td><td style="text-align: left">Class template <code class="code">deque</code></td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">23.3.4</td><td style="text-align: left">Class template <code class="code">forward_list</code></td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">23.3.5</td><td style="text-align: left">Class template <code class="code">list</code></td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">23.3.6</td><td style="text-align: left">Class template <code class="code">vector</code></td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">23.3.7</td><td style="text-align: left">Class <code class="code">vector<bool></code></td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">23.4</td><td style="text-align: left">Associative containers</td><td style="text-align: left"> </td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">23.4.4</td><td style="text-align: left">Class template <code class="code">map</code></td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">23.4.5</td><td style="text-align: left">Class template <code class="code">multimap</code></td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">23.4.6</td><td style="text-align: left">Class template <code class="code">set</code></td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">23.4.7</td><td style="text-align: left">Class template <code class="code">multiset</code></td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">23.5</td><td style="text-align: left">Unordered associative containers</td><td style="text-align: left"> </td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">23.5.4</td><td style="text-align: left">Class template <code class="code">unordered_map</code></td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">23.5.5</td><td style="text-align: left">Class template <code class="code">unordered_multimap</code></td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">23.5.6</td><td style="text-align: left">Class template <code class="code">unordered_set</code></td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">23.5.7</td><td style="text-align: left">Class template <code class="code">unordered_multiset</code></td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">23.6</td><td style="text-align: left">Container adaptors</td><td style="text-align: left"> </td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">23.6.1</td><td style="text-align: left">Class template <code class="code">queue</code></td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">23.6.2</td><td style="text-align: left">Class template <code class="code">priority_queue</code></td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">23.6.3</td><td style="text-align: left">Class template <code class="code">stack</code></td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left"> | |
1968 | + </td></tr><tr><td align="left">23.1</td><td align="left">General</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">23.2</td><td align="left">Container requirements</td><td align="left"> </td><td align="left"> </td></tr><tr bgcolor="#B0B0B0"><td align="left">23.2.1</td><td align="left">General container requirements</td><td align="left">Partial</td><td align="left">Only <code class="code">vector</code> meets the requirements | |
1969 | + relating to allocator use and propagation.</td></tr><tr><td align="left">23.2.2</td><td align="left">Container data races</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">23.2.3</td><td align="left">Sequence containers</td><td align="left">Y</td><td align="left"> </td></tr><tr bgcolor="#B0B0B0"><td align="left">23.2.4</td><td align="left">Associative containers</td><td align="left">Partial</td><td align="left">Missing emplace members</td></tr><tr><td align="left">23.2.5</td><td align="left">Unordered associative containers</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">23.3</td><td align="left">Sequence containers</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">23.3.2</td><td align="left">Class template <code class="code">array</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">23.3.3</td><td align="left">Class template <code class="code">deque</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">23.3.4</td><td align="left">Class template <code class="code">forward_list</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">23.3.5</td><td align="left">Class template <code class="code">list</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">23.3.6</td><td align="left">Class template <code class="code">vector</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">23.3.7</td><td align="left">Class <code class="code">vector<bool></code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">23.4</td><td align="left">Associative containers</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">23.4.4</td><td align="left">Class template <code class="code">map</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">23.4.5</td><td align="left">Class template <code class="code">multimap</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">23.4.6</td><td align="left">Class template <code class="code">set</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">23.4.7</td><td align="left">Class template <code class="code">multiset</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">23.5</td><td align="left">Unordered associative containers</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">23.5.4</td><td align="left">Class template <code class="code">unordered_map</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">23.5.5</td><td align="left">Class template <code class="code">unordered_multimap</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">23.5.6</td><td align="left">Class template <code class="code">unordered_set</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">23.5.7</td><td align="left">Class template <code class="code">unordered_multiset</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">23.6</td><td align="left">Container adaptors</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">23.6.1</td><td align="left">Class template <code class="code">queue</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">23.6.2</td><td align="left">Class template <code class="code">priority_queue</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">23.6.3</td><td align="left">Class template <code class="code">stack</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left"> | |
1970 | <span class="emphasis"><em>24</em></span> | |
1971 | - </td><td colspan="3" style="text-align: left"> | |
1972 | + </td><td colspan="3" align="left"> | |
1973 | <span class="emphasis"><em>Iterators</em></span> | |
1974 | - </td></tr><tr><td style="text-align: left">24.1</td><td style="text-align: left">General</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">24.2</td><td style="text-align: left">Iterator requirements</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">24.3</td><td style="text-align: left">Header <code class="code"><iterator></code> synopsis</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">24.4</td><td style="text-align: left">Iterator primitives</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">24.5</td><td style="text-align: left">Iterator adaptors</td><td style="text-align: left"> </td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">24.5.1</td><td style="text-align: left">Reverse iterators</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">24.5.2</td><td style="text-align: left">Insert iterators</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">24.5.3</td><td style="text-align: left">Move iterators</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">24.6</td><td style="text-align: left">Stream iterators</td><td style="text-align: left"> </td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">24.6.1</td><td style="text-align: left">Class template <code class="code">istream_iterator</code></td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">24.6.2</td><td style="text-align: left">Class template <code class="code">ostream_iterator</code></td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">24.6.3</td><td style="text-align: left">Class template <code class="code">istreambuf_iterator</code></td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">24.6.4</td><td style="text-align: left">Class template <code class="code">ostreambuf_iterator</code></td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">24.6.5</td><td style="text-align: left">range access</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left"> | |
1975 | + </td></tr><tr><td align="left">24.1</td><td align="left">General</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">24.2</td><td align="left">Iterator requirements</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">24.3</td><td align="left">Header <code class="code"><iterator></code> synopsis</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">24.4</td><td align="left">Iterator primitives</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">24.5</td><td align="left">Iterator adaptors</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">24.5.1</td><td align="left">Reverse iterators</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">24.5.2</td><td align="left">Insert iterators</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">24.5.3</td><td align="left">Move iterators</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">24.6</td><td align="left">Stream iterators</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">24.6.1</td><td align="left">Class template <code class="code">istream_iterator</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">24.6.2</td><td align="left">Class template <code class="code">ostream_iterator</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">24.6.3</td><td align="left">Class template <code class="code">istreambuf_iterator</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">24.6.4</td><td align="left">Class template <code class="code">ostreambuf_iterator</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">24.6.5</td><td align="left">range access</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left"> | |
1976 | <span class="emphasis"><em>25</em></span> | |
1977 | - </td><td colspan="3" style="text-align: left"> | |
1978 | + </td><td colspan="3" align="left"> | |
1979 | <span class="emphasis"><em>Algorithms</em></span> | |
1980 | - </td></tr><tr><td style="text-align: left">25.1</td><td style="text-align: left">General</td><td style="text-align: left"> </td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">25.2</td><td style="text-align: left">Non-modifying sequence operations</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">25.3</td><td style="text-align: left">Mutating sequence operations</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">25.4</td><td style="text-align: left">Sorting and related operations</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">25.5</td><td style="text-align: left">C library algorithms</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left"> | |
1981 | + </td></tr><tr><td align="left">25.1</td><td align="left">General</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">25.2</td><td align="left">Non-modifying sequence operations</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">25.3</td><td align="left">Mutating sequence operations</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">25.4</td><td align="left">Sorting and related operations</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">25.5</td><td align="left">C library algorithms</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left"> | |
1982 | <span class="emphasis"><em>26</em></span> | |
1983 | - </td><td colspan="3" style="text-align: left"> | |
1984 | + </td><td colspan="3" align="left"> | |
1985 | <span class="emphasis"><em>Numerics</em></span> | |
1986 | - </td></tr><tr><td style="text-align: left">26.1</td><td style="text-align: left">General</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">26.2</td><td style="text-align: left">Numeric type requirements</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">26.3</td><td style="text-align: left">The floating-point environment</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">26.4</td><td style="text-align: left">Complex numbers</td><td style="text-align: left">Partial</td><td style="text-align: left">Missing constexpr</td></tr><tr><td style="text-align: left">26.5</td><td style="text-align: left">Random number generation</td><td style="text-align: left"> </td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">26.5.1</td><td style="text-align: left">Requirements</td><td style="text-align: left"> </td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">26.5.2</td><td style="text-align: left">Header <code class="code"><random></code> synopsis</td><td style="text-align: left"> </td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">26.5.3</td><td style="text-align: left">Random number engine class templates</td><td style="text-align: left"> </td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">26.5.3.1</td><td style="text-align: left">Class template <code class="code">linear_congruential_engine</code></td><td style="text-align: left">Y</td><td style="text-align: left">Missing constexpr</td></tr><tr><td style="text-align: left">26.5.3.2</td><td style="text-align: left">Class template <code class="code">mersenne_twister_engine</code></td><td style="text-align: left">Y</td><td style="text-align: left">Missing constexpr</td></tr><tr><td style="text-align: left">26.5.3.3</td><td style="text-align: left">Class template <code class="code">subtract_with_carry_engine</code></td><td style="text-align: left">Y</td><td style="text-align: left">Missing constexpr</td></tr><tr><td style="text-align: left">26.5.4</td><td style="text-align: left">Random number engine adaptor class templates</td><td style="text-align: left"> </td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">26.5.4.2</td><td style="text-align: left">Class template <code class="code">discard_block_engine</code></td><td style="text-align: left">Y</td><td style="text-align: left">Missing constexpr</td></tr><tr><td style="text-align: left">26.5.4.3</td><td style="text-align: left">Class template <code class="code">independent_bits_engine</code></td><td style="text-align: left">Y</td><td style="text-align: left">Missing constexpr</td></tr><tr><td style="text-align: left">26.5.4.4</td><td style="text-align: left">Class template <code class="code">shuffle_order_engine</code></td><td style="text-align: left">Y</td><td style="text-align: left">Missing constexpr</td></tr><tr><td style="text-align: left">26.5.5</td><td style="text-align: left">Engines and engine adaptors with predefined parameters</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">26.5.6</td><td style="text-align: left">Class <code class="code">random_device</code></td><td style="text-align: left">Y</td><td style="text-align: left">Missing constexpr</td></tr><tr><td style="text-align: left">26.5.7</td><td style="text-align: left">Utilities</td><td style="text-align: left"> </td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">26.5.7.1</td><td style="text-align: left">Class <code class="code">seed_seq</code></td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">26.5.7.2</td><td style="text-align: left">Function template <code class="code">generate_canonical</code></td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">26.5.8</td><td style="text-align: left">Random number distribution class templates</td><td style="text-align: left"> </td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">26.5.8.2</td><td style="text-align: left">Uniform distributions</td><td style="text-align: left"> </td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">26.5.8.2.1</td><td style="text-align: left">Class template <code class="code">uniform_int_distribution</code></td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">26.5.8.2.2</td><td style="text-align: left">Class template <code class="code">uniform_real_distribution</code></td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">26.5.8.3</td><td style="text-align: left">Bernoulli distributions</td><td style="text-align: left"> </td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">26.5.8.3.1</td><td style="text-align: left">Class <code class="code">bernoulli_distribution</code></td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">26.5.8.3.2</td><td style="text-align: left">Class template <code class="code">binomial_distribution</code></td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">26.5.8.3.3</td><td style="text-align: left">Class template <code class="code">geometric_distribution</code></td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">26.5.8.3.4</td><td style="text-align: left">Class template <code class="code">negative_binomial_distribution</code></td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">26.5.8.4</td><td style="text-align: left">Poisson distributions</td><td style="text-align: left"> </td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">26.5.8.4.1</td><td style="text-align: left">Class template <code class="code">poisson_distribution</code></td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">26.5.8.4.2</td><td style="text-align: left">Class template <code class="code">exponential_distribution</code></td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">26.5.8.4.3</td><td style="text-align: left">Class template <code class="code">gamma_distribution</code></td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">26.5.8.4.4</td><td style="text-align: left">Class template <code class="code">weibull_distribution</code></td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">26.5.8.4.5</td><td style="text-align: left">Class template <code class="code">extreme_value_distribution</code></td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">26.5.8.5</td><td style="text-align: left">Normal distributions</td><td style="text-align: left"> </td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">26.5.8.5.1</td><td style="text-align: left">Class template <code class="code">normal_distribution</code></td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">26.5.8.5.2</td><td style="text-align: left">Class template <code class="code">lognormal_distribution</code></td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">26.5.8.5.3</td><td style="text-align: left">Class template <code class="code">chi_squared_distribution</code></td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">26.5.8.5.4</td><td style="text-align: left">Class template <code class="code">cauchy_distribution</code></td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">26.5.8.5.5</td><td style="text-align: left">Class template <code class="code">fisher_f_distribution</code></td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">26.5.8.5.6</td><td style="text-align: left">Class template <code class="code">student_t_distribution</code></td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">26.5.8.6</td><td style="text-align: left">Sampling distributions</td><td style="text-align: left"> </td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">26.5.8.6.1</td><td style="text-align: left">Class template <code class="code">discrete_distribution</code></td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">26.5.8.6.2</td><td style="text-align: left">Class template <code class="code">piecewise_constant_distribution</code></td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">26.5.8.6.3</td><td style="text-align: left">Class template <code class="code">piecewise_linear_distribution</code></td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">26.6</td><td style="text-align: left">Numeric arrays</td><td style="text-align: left"> </td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">26.6.1</td><td style="text-align: left">Header <code class="code"><valarray></code> synopsis</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">26.6.2</td><td style="text-align: left">Class template <code class="code">valarray</code></td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">26.6.3</td><td style="text-align: left"><code class="code">valarray</code> non-member operations</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">26.6.4</td><td style="text-align: left">Class <code class="code">slice</code></td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">26.6.5</td><td style="text-align: left">Class template <code class="code">slice_array</code></td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">26.6.6</td><td style="text-align: left">The <code class="code">gslice</code> class</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">26.6.7</td><td style="text-align: left">Class template <code class="code">gslice_array</code></td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">26.6.8</td><td style="text-align: left">Class template <code class="code">mask_array</code></td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">26.6.9</td><td style="text-align: left">Class template <code class="code">indirect_array</code></td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">26.6.10</td><td style="text-align: left"><code class="code">valarray</code> range access</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">26.7</td><td style="text-align: left">Generalized numeric operations</td><td style="text-align: left"> </td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">26.7.1</td><td style="text-align: left">Header <code class="code"><numeric></code> synopsis</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">26.7.2</td><td style="text-align: left"><code class="code">accumulate</code></td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">26.7.3</td><td style="text-align: left"><code class="code">inner_product</code></td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">26.7.4</td><td style="text-align: left"><code class="code">partial_sum</code></td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">26.7.5</td><td style="text-align: left"><code class="code">adjacent_difference</code></td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">26.7.6</td><td style="text-align: left">iota</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">26.8</td><td style="text-align: left">C Library</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left"> | |
1987 | + </td></tr><tr><td align="left">26.1</td><td align="left">General</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">26.2</td><td align="left">Numeric type requirements</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">26.3</td><td align="left">The floating-point environment</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">26.4</td><td align="left">Complex numbers</td><td align="left">Partial</td><td align="left">Missing constexpr</td></tr><tr><td align="left">26.5</td><td align="left">Random number generation</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">26.5.1</td><td align="left">Requirements</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">26.5.2</td><td align="left">Header <code class="code"><random></code> synopsis</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">26.5.3</td><td align="left">Random number engine class templates</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">26.5.3.1</td><td align="left">Class template <code class="code">linear_congruential_engine</code></td><td align="left">Y</td><td align="left">Missing constexpr</td></tr><tr><td align="left">26.5.3.2</td><td align="left">Class template <code class="code">mersenne_twister_engine</code></td><td align="left">Y</td><td align="left">Missing constexpr</td></tr><tr><td align="left">26.5.3.3</td><td align="left">Class template <code class="code">subtract_with_carry_engine</code></td><td align="left">Y</td><td align="left">Missing constexpr</td></tr><tr><td align="left">26.5.4</td><td align="left">Random number engine adaptor class templates</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">26.5.4.2</td><td align="left">Class template <code class="code">discard_block_engine</code></td><td align="left">Y</td><td align="left">Missing constexpr</td></tr><tr><td align="left">26.5.4.3</td><td align="left">Class template <code class="code">independent_bits_engine</code></td><td align="left">Y</td><td align="left">Missing constexpr</td></tr><tr><td align="left">26.5.4.4</td><td align="left">Class template <code class="code">shuffle_order_engine</code></td><td align="left">Y</td><td align="left">Missing constexpr</td></tr><tr><td align="left">26.5.5</td><td align="left">Engines and engine adaptors with predefined parameters</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">26.5.6</td><td align="left">Class <code class="code">random_device</code></td><td align="left">Y</td><td align="left">Missing constexpr</td></tr><tr><td align="left">26.5.7</td><td align="left">Utilities</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">26.5.7.1</td><td align="left">Class <code class="code">seed_seq</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">26.5.7.2</td><td align="left">Function template <code class="code">generate_canonical</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">26.5.8</td><td align="left">Random number distribution class templates</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">26.5.8.2</td><td align="left">Uniform distributions</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">26.5.8.2.1</td><td align="left">Class template <code class="code">uniform_int_distribution</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">26.5.8.2.2</td><td align="left">Class template <code class="code">uniform_real_distribution</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">26.5.8.3</td><td align="left">Bernoulli distributions</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">26.5.8.3.1</td><td align="left">Class <code class="code">bernoulli_distribution</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">26.5.8.3.2</td><td align="left">Class template <code class="code">binomial_distribution</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">26.5.8.3.3</td><td align="left">Class template <code class="code">geometric_distribution</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">26.5.8.3.4</td><td align="left">Class template <code class="code">negative_binomial_distribution</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">26.5.8.4</td><td align="left">Poisson distributions</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">26.5.8.4.1</td><td align="left">Class template <code class="code">poisson_distribution</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">26.5.8.4.2</td><td align="left">Class template <code class="code">exponential_distribution</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">26.5.8.4.3</td><td align="left">Class template <code class="code">gamma_distribution</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">26.5.8.4.4</td><td align="left">Class template <code class="code">weibull_distribution</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">26.5.8.4.5</td><td align="left">Class template <code class="code">extreme_value_distribution</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">26.5.8.5</td><td align="left">Normal distributions</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">26.5.8.5.1</td><td align="left">Class template <code class="code">normal_distribution</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">26.5.8.5.2</td><td align="left">Class template <code class="code">lognormal_distribution</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">26.5.8.5.3</td><td align="left">Class template <code class="code">chi_squared_distribution</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">26.5.8.5.4</td><td align="left">Class template <code class="code">cauchy_distribution</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">26.5.8.5.5</td><td align="left">Class template <code class="code">fisher_f_distribution</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">26.5.8.5.6</td><td align="left">Class template <code class="code">student_t_distribution</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">26.5.8.6</td><td align="left">Sampling distributions</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">26.5.8.6.1</td><td align="left">Class template <code class="code">discrete_distribution</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">26.5.8.6.2</td><td align="left">Class template <code class="code">piecewise_constant_distribution</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">26.5.8.6.3</td><td align="left">Class template <code class="code">piecewise_linear_distribution</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">26.6</td><td align="left">Numeric arrays</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">26.6.1</td><td align="left">Header <code class="code"><valarray></code> synopsis</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">26.6.2</td><td align="left">Class template <code class="code">valarray</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">26.6.3</td><td align="left"><code class="code">valarray</code> non-member operations</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">26.6.4</td><td align="left">Class <code class="code">slice</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">26.6.5</td><td align="left">Class template <code class="code">slice_array</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">26.6.6</td><td align="left">The <code class="code">gslice</code> class</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">26.6.7</td><td align="left">Class template <code class="code">gslice_array</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">26.6.8</td><td align="left">Class template <code class="code">mask_array</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">26.6.9</td><td align="left">Class template <code class="code">indirect_array</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">26.6.10</td><td align="left"><code class="code">valarray</code> range access</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">26.7</td><td align="left">Generalized numeric operations</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">26.7.1</td><td align="left">Header <code class="code"><numeric></code> synopsis</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">26.7.2</td><td align="left"><code class="code">accumulate</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">26.7.3</td><td align="left"><code class="code">inner_product</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">26.7.4</td><td align="left"><code class="code">partial_sum</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">26.7.5</td><td align="left"><code class="code">adjacent_difference</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">26.7.6</td><td align="left">iota</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">26.8</td><td align="left">C Library</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left"> | |
1988 | <span class="emphasis"><em>27</em></span> | |
1989 | - </td><td colspan="3" style="text-align: left"> | |
1990 | + </td><td colspan="3" align="left"> | |
1991 | <span class="emphasis"><em>Input/output library</em></span> | |
1992 | - </td></tr><tr><td style="text-align: left">27.1</td><td style="text-align: left">General</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">27.2</td><td style="text-align: left">Iostreams requirements</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">27.2.1</td><td style="text-align: left">Imbue Limitations</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">27.2.2</td><td style="text-align: left">Positioning Type Limitations</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr style="background-color: #B0B0B0"><td style="text-align: left">27.2.3</td><td style="text-align: left">Thread safety</td><td style="text-align: left">Partial</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">27.3</td><td style="text-align: left">Forward declarations</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">27.4</td><td style="text-align: left">Standard iostream objects</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">27.4.1</td><td style="text-align: left">Overview</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">27.4.2</td><td style="text-align: left">Narrow stream objects</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">27.4.3</td><td style="text-align: left">Wide stream objects</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr style="background-color: #B0B0B0"><td style="text-align: left">27.5</td><td style="text-align: left">Iostreams base classes</td><td style="text-align: left">Partial</td><td style="text-align: left"> | |
1993 | + </td></tr><tr><td align="left">27.1</td><td align="left">General</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">27.2</td><td align="left">Iostreams requirements</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">27.2.1</td><td align="left">Imbue Limitations</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">27.2.2</td><td align="left">Positioning Type Limitations</td><td align="left">Y</td><td align="left"> </td></tr><tr bgcolor="#B0B0B0"><td align="left">27.2.3</td><td align="left">Thread safety</td><td align="left">Partial</td><td align="left"> </td></tr><tr><td align="left">27.3</td><td align="left">Forward declarations</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">27.4</td><td align="left">Standard iostream objects</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">27.4.1</td><td align="left">Overview</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">27.4.2</td><td align="left">Narrow stream objects</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">27.4.3</td><td align="left">Wide stream objects</td><td align="left">Y</td><td align="left"> </td></tr><tr bgcolor="#B0B0B0"><td align="left">27.5</td><td align="left">Iostreams base classes</td><td align="left">Partial</td><td align="left"> | |
1994 | Missing move and swap operations on <code class="code">basic_ios</code>. | |
1995 | Missing <code class="code">io_errc</code> and <code class="code">iostream_category</code>. | |
1996 | <code class="code">ios_base::failure</code> is not derived from <code class="code">system_error</code>. | |
1997 | - </td></tr><tr><td style="text-align: left">27.6</td><td style="text-align: left">Stream buffers</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr style="background-color: #B0B0B0"><td style="text-align: left">27.7</td><td style="text-align: left">Formatting and manipulators</td><td style="text-align: left">Partial</td><td style="text-align: left">Missing move and swap operations</td></tr><tr style="background-color: #B0B0B0"><td style="text-align: left">27.8</td><td style="text-align: left">String-based streams</td><td style="text-align: left">Partial</td><td style="text-align: left">Missing move and swap operations</td></tr><tr style="background-color: #B0B0B0"><td style="text-align: left">27.9</td><td style="text-align: left">File-based streams</td><td style="text-align: left">Partial</td><td style="text-align: left">Missing move and swap operations</td></tr><tr><td style="text-align: left"> | |
1998 | + </td></tr><tr><td align="left">27.6</td><td align="left">Stream buffers</td><td align="left">Y</td><td align="left"> </td></tr><tr bgcolor="#B0B0B0"><td align="left">27.7</td><td align="left">Formatting and manipulators</td><td align="left">Partial</td><td align="left">Missing move and swap operations</td></tr><tr bgcolor="#B0B0B0"><td align="left">27.8</td><td align="left">String-based streams</td><td align="left">Partial</td><td align="left">Missing move and swap operations</td></tr><tr bgcolor="#B0B0B0"><td align="left">27.9</td><td align="left">File-based streams</td><td align="left">Partial</td><td align="left">Missing move and swap operations</td></tr><tr><td align="left"> | |
1999 | <span class="emphasis"><em>28</em></span> | |
2000 | - </td><td colspan="3" style="text-align: left"> | |
2001 | + </td><td colspan="3" align="left"> | |
2002 | <span class="emphasis"><em>Regular expressions</em></span> | |
2003 | - </td></tr><tr style="background-color: #C8B0B0"><td style="text-align: left">28.1</td><td style="text-align: left">General</td><td style="text-align: left">N</td><td style="text-align: left"> </td></tr><tr style="background-color: #C8B0B0"><td style="text-align: left">28.2</td><td style="text-align: left">Definitions</td><td style="text-align: left">N</td><td style="text-align: left"> </td></tr><tr style="background-color: #C8B0B0"><td style="text-align: left">28.3</td><td style="text-align: left">Requirements</td><td style="text-align: left">N</td><td style="text-align: left"> </td></tr><tr style="background-color: #C8B0B0"><td style="text-align: left">28.4</td><td style="text-align: left">Header <code class="code"><regex></code> synopsis</td><td style="text-align: left">N</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">28.5</td><td style="text-align: left">Namespace <code class="code">std::regex_constants</code></td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">28.6</td><td style="text-align: left">Class <code class="code">regex_error</code></td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr style="background-color: #B0B0B0"><td style="text-align: left">28.7</td><td style="text-align: left">Class template <code class="code">regex_traits</code></td><td style="text-align: left">Partial</td><td style="text-align: left"> </td></tr><tr style="background-color: #B0B0B0"><td style="text-align: left">28.8</td><td style="text-align: left">Class template <code class="code">basic_regex</code></td><td style="text-align: left">Partial</td><td style="text-align: left"> </td></tr><tr style="background-color: #B0B0B0"><td style="text-align: left">28.9</td><td style="text-align: left">Class template <code class="code">sub_match</code></td><td style="text-align: left">Partial</td><td style="text-align: left"> </td></tr><tr style="background-color: #B0B0B0"><td style="text-align: left">28.10</td><td style="text-align: left">Class template <code class="code">match_results</code></td><td style="text-align: left">Partial</td><td style="text-align: left"> </td></tr><tr style="background-color: #C8B0B0"><td style="text-align: left">28.11</td><td style="text-align: left">Regular expression algorithms</td><td style="text-align: left">N</td><td style="text-align: left"> </td></tr><tr style="background-color: #C8B0B0"><td style="text-align: left">28.12</td><td style="text-align: left">Regular expression Iterators</td><td style="text-align: left">N</td><td style="text-align: left"> </td></tr><tr style="background-color: #C8B0B0"><td style="text-align: left">28.13</td><td style="text-align: left">Modified ECMAScript regular expression grammar</td><td style="text-align: left">N</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left"> | |
2004 | + </td></tr><tr bgcolor="#C8B0B0"><td align="left">28.1</td><td align="left">General</td><td align="left">N</td><td align="left"> </td></tr><tr bgcolor="#C8B0B0"><td align="left">28.2</td><td align="left">Definitions</td><td align="left">N</td><td align="left"> </td></tr><tr bgcolor="#C8B0B0"><td align="left">28.3</td><td align="left">Requirements</td><td align="left">N</td><td align="left"> </td></tr><tr bgcolor="#C8B0B0"><td align="left">28.4</td><td align="left">Header <code class="code"><regex></code> synopsis</td><td align="left">N</td><td align="left"> </td></tr><tr><td align="left">28.5</td><td align="left">Namespace <code class="code">std::regex_constants</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">28.6</td><td align="left">Class <code class="code">regex_error</code></td><td align="left">Y</td><td align="left"> </td></tr><tr bgcolor="#B0B0B0"><td align="left">28.7</td><td align="left">Class template <code class="code">regex_traits</code></td><td align="left">Partial</td><td align="left"> </td></tr><tr bgcolor="#B0B0B0"><td align="left">28.8</td><td align="left">Class template <code class="code">basic_regex</code></td><td align="left">Partial</td><td align="left"> </td></tr><tr bgcolor="#B0B0B0"><td align="left">28.9</td><td align="left">Class template <code class="code">sub_match</code></td><td align="left">Partial</td><td align="left"> </td></tr><tr bgcolor="#B0B0B0"><td align="left">28.10</td><td align="left">Class template <code class="code">match_results</code></td><td align="left">Partial</td><td align="left"> </td></tr><tr bgcolor="#C8B0B0"><td align="left">28.11</td><td align="left">Regular expression algorithms</td><td align="left">N</td><td align="left"> </td></tr><tr bgcolor="#C8B0B0"><td align="left">28.12</td><td align="left">Regular expression Iterators</td><td align="left">N</td><td align="left"> </td></tr><tr bgcolor="#C8B0B0"><td align="left">28.13</td><td align="left">Modified ECMAScript regular expression grammar</td><td align="left">N</td><td align="left"> </td></tr><tr><td align="left"> | |
2005 | <span class="emphasis"><em>29</em></span> | |
2006 | - </td><td colspan="3" style="text-align: left"> | |
2007 | + </td><td colspan="3" align="left"> | |
2008 | <span class="emphasis"><em>Atomic operations</em></span> | |
2009 | - </td></tr><tr><td style="text-align: left">29.1</td><td style="text-align: left">General</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">29.2</td><td style="text-align: left">Header <code class="code"><atomic></code> synopsis</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr style="background-color: #C8B0B0"><td style="text-align: left">29.3</td><td style="text-align: left">Order and consistency</td><td style="text-align: left">N</td><td style="text-align: left"> </td></tr><tr style="background-color: #B0B0B0"><td style="text-align: left">29.4</td><td style="text-align: left">Lock-free property</td><td style="text-align: left">Partial</td><td style="text-align: left">Missing <code class="code">ATOMIC_BOOL_LOCK_FREE</code> and | |
2010 | - <code class="code">ATOMIC_POINTER_LOCK_FREE</code>. | |
2011 | - Based on _GLIBCXX_ATOMIC_PROPERTY | |
2012 | - </td></tr><tr style="background-color: #B0B0B0"><td style="text-align: left">29.5</td><td style="text-align: left">Atomic types</td><td style="text-align: left">Partial</td><td style="text-align: left">Missing constexpr</td></tr><tr><td style="text-align: left">29.6</td><td style="text-align: left">Operations on atomic types</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">29.7</td><td style="text-align: left">Flag Type and operations</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr style="background-color: #C8B0B0"><td style="text-align: left">29.8</td><td style="text-align: left">Fences</td><td style="text-align: left">N</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left"> | |
2013 | + </td></tr><tr><td align="left">29.1</td><td align="left">General</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">29.2</td><td align="left">Header <code class="code"><atomic></code> synopsis</td><td align="left">Y</td><td align="left"> </td></tr><tr bgcolor="#B0B0B0"><td align="left">29.3</td><td align="left">Order and consistency</td><td align="left">Partial</td><td align="left"> </td></tr><tr><td align="left">29.4</td><td align="left">Lock-free property</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">29.5</td><td align="left">Atomic types</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">29.6</td><td align="left">Operations on atomic types</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">29.7</td><td align="left">Flag Type and operations</td><td align="left">Y</td><td align="left"> </td></tr><tr bgcolor="#C8B0B0"><td align="left">29.8</td><td align="left">Fences</td><td align="left">N</td><td align="left"> </td></tr><tr><td align="left"> | |
2014 | <span class="emphasis"><em>30</em></span> | |
2015 | - </td><td colspan="3" style="text-align: left"> | |
2016 | + </td><td colspan="3" align="left"> | |
2017 | <span class="emphasis"><em>Thread support</em></span> | |
2018 | - </td></tr><tr><td style="text-align: left">30.1</td><td style="text-align: left">General</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">30.2</td><td style="text-align: left">Requirements</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">30.3</td><td style="text-align: left">Threads</td><td style="text-align: left"> </td><td style="text-align: left"> </td></tr><tr style="background-color: #B0B0B0"><td style="text-align: left">30.3.1</td><td style="text-align: left">Class <code class="code">thread</code></td><td style="text-align: left">Partial</td><td style="text-align: left"><code class="code">thread::id</code> comparisons not well-defined</td></tr><tr><td style="text-align: left">30.3.2</td><td style="text-align: left">Namespace <code class="code">this_thread</code></td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">30.4</td><td style="text-align: left">Mutual exclusion</td><td style="text-align: left"> </td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">30.4.1</td><td style="text-align: left">Mutex requirements</td><td style="text-align: left"> </td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">30.4.1.1</td><td style="text-align: left">In general</td><td style="text-align: left"> </td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">30.4.1.2</td><td style="text-align: left">Mutex types</td><td style="text-align: left"> </td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">30.4.1.2.1</td><td style="text-align: left">Class <code class="code">mutex</code></td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">30.4.1.2.2</td><td style="text-align: left">Class <code class="code">recursive_mutex</code></td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">30.4.1.3</td><td style="text-align: left">Timed mutex types</td><td style="text-align: left"> </td><td style="text-align: left">On POSIX sytems these types are only defined if the OS | |
2019 | - supports the POSIX Timeouts option. </td></tr><tr><td style="text-align: left">30.4.1.3.1</td><td style="text-align: left">Class <code class="code">timed_mutex</code></td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">30.4.1.3.2</td><td style="text-align: left">Class <code class="code">recursive_timed_mutex</code></td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">30.4.2</td><td style="text-align: left">Locks</td><td style="text-align: left"> </td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">30.4.2.1</td><td style="text-align: left">Class template <code class="code">lock_guard</code></td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">30.4.2.2</td><td style="text-align: left">Class template <code class="code">unique_lock</code></td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">30.4.3</td><td style="text-align: left">Generic locking algorithms</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">30.4.4</td><td style="text-align: left">Call once</td><td style="text-align: left"> </td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">30.4.4.1</td><td style="text-align: left">Struct <code class="code">once_flag</code></td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">30.4.4.2</td><td style="text-align: left">Function <code class="code">call_once</code></td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr style="background-color: #B0B0B0"><td style="text-align: left">30.5</td><td style="text-align: left">Condition variables</td><td style="text-align: left">Partial</td><td style="text-align: left">Missing notify_all_at_thread_exit</td></tr><tr><td style="text-align: left">30.5.1</td><td style="text-align: left">Class <code class="code">condition_variable</code></td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">30.5.2</td><td style="text-align: left">Class <code class="code">condition_variable_any</code></td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">30.6</td><td style="text-align: left">Futures</td><td style="text-align: left"> </td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">30.6.1</td><td style="text-align: left">Overview</td><td style="text-align: left"> </td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">30.6.2</td><td style="text-align: left">Error handling</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">30.6.3</td><td style="text-align: left">Class <code class="code">future_error</code></td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">30.6.4</td><td style="text-align: left">Shared state</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr style="background-color: #B0B0B0"><td style="text-align: left">30.6.5</td><td style="text-align: left">Class template <code class="code">promise</code></td><td style="text-align: left">Partial</td><td style="text-align: left">Missing set_*_at_thread_exit</td></tr><tr style="background-color: #B0B0B0"><td style="text-align: left">30.6.6</td><td style="text-align: left">Class template <code class="code">future</code></td><td style="text-align: left">Partial</td><td style="text-align: left">Timed waiting functions do not return future_status</td></tr><tr style="background-color: #B0B0B0"><td style="text-align: left">30.6.7</td><td style="text-align: left">Class template <code class="code">shared_future</code></td><td style="text-align: left">Partial</td><td style="text-align: left">Timed waiting functions do not return future_status</td></tr><tr><td style="text-align: left">30.6.8</td><td style="text-align: left">Function template <code class="code">async</code></td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr style="background-color: #B0B0B0"><td style="text-align: left">30.6.9</td><td style="text-align: left">Class template <code class="code">packaged_task</code></td><td style="text-align: left">Partial</td><td style="text-align: left">Missing make_ready_at_thread_exit</td></tr><tr><td style="text-align: left"> | |
2020 | + </td></tr><tr><td align="left">30.1</td><td align="left">General</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">30.2</td><td align="left">Requirements</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">30.3</td><td align="left">Threads</td><td align="left"> </td><td align="left"> </td></tr><tr bgcolor="#B0B0B0"><td align="left">30.3.1</td><td align="left">Class <code class="code">thread</code></td><td align="left">Partial</td><td align="left"><code class="code">thread::id</code> comparisons not well-defined</td></tr><tr><td align="left">30.3.2</td><td align="left">Namespace <code class="code">this_thread</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">30.4</td><td align="left">Mutual exclusion</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">30.4.1</td><td align="left">Mutex requirements</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">30.4.1.1</td><td align="left">In general</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">30.4.1.2</td><td align="left">Mutex types</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">30.4.1.2.1</td><td align="left">Class <code class="code">mutex</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">30.4.1.2.2</td><td align="left">Class <code class="code">recursive_mutex</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">30.4.1.3</td><td align="left">Timed mutex types</td><td align="left"> </td><td align="left">On POSIX sytems these types are only defined if the OS | |
2021 | + supports the POSIX Timeouts option. </td></tr><tr><td align="left">30.4.1.3.1</td><td align="left">Class <code class="code">timed_mutex</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">30.4.1.3.2</td><td align="left">Class <code class="code">recursive_timed_mutex</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">30.4.2</td><td align="left">Locks</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">30.4.2.1</td><td align="left">Class template <code class="code">lock_guard</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">30.4.2.2</td><td align="left">Class template <code class="code">unique_lock</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">30.4.3</td><td align="left">Generic locking algorithms</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">30.4.4</td><td align="left">Call once</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">30.4.4.1</td><td align="left">Struct <code class="code">once_flag</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">30.4.4.2</td><td align="left">Function <code class="code">call_once</code></td><td align="left">Y</td><td align="left"> </td></tr><tr bgcolor="#B0B0B0"><td align="left">30.5</td><td align="left">Condition variables</td><td align="left">Partial</td><td align="left">Missing notify_all_at_thread_exit</td></tr><tr><td align="left">30.5.1</td><td align="left">Class <code class="code">condition_variable</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">30.5.2</td><td align="left">Class <code class="code">condition_variable_any</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">30.6</td><td align="left">Futures</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">30.6.1</td><td align="left">Overview</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">30.6.2</td><td align="left">Error handling</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">30.6.3</td><td align="left">Class <code class="code">future_error</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">30.6.4</td><td align="left">Shared state</td><td align="left">Y</td><td align="left"> </td></tr><tr bgcolor="#B0B0B0"><td align="left">30.6.5</td><td align="left">Class template <code class="code">promise</code></td><td align="left">Partial</td><td align="left">Missing set_*_at_thread_exit</td></tr><tr bgcolor="#B0B0B0"><td align="left">30.6.6</td><td align="left">Class template <code class="code">future</code></td><td align="left">Partial</td><td align="left">Timed waiting functions do not return future_status::deferred</td></tr><tr bgcolor="#B0B0B0"><td align="left">30.6.7</td><td align="left">Class template <code class="code">shared_future</code></td><td align="left">Partial</td><td align="left">Timed waiting functions do not return future_status::deferred</td></tr><tr><td align="left">30.6.8</td><td align="left">Function template <code class="code">async</code></td><td align="left">Y</td><td align="left"> </td></tr><tr bgcolor="#B0B0B0"><td align="left">30.6.9</td><td align="left">Class template <code class="code">packaged_task</code></td><td align="left">Partial</td><td align="left">Missing make_ready_at_thread_exit</td></tr><tr><td align="left"> | |
2022 | <span class="emphasis"><em>Appendix D</em></span> | |
2023 | - </td><td colspan="3" style="text-align: left"> | |
2024 | + </td><td colspan="3" align="left"> | |
2025 | <span class="emphasis"><em>Compatibility features</em></span> | |
2026 | - </td></tr><tr><td style="text-align: left">D.1</td><td style="text-align: left">Increment operator with <code class="code">bool</code> operand</td><td style="text-align: left"> </td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">D.2</td><td style="text-align: left"><code class="code">register</code> keyword</td><td style="text-align: left"> </td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">D.3</td><td style="text-align: left">Implicit declaration of copy functions</td><td style="text-align: left"> </td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">D.4</td><td style="text-align: left">Dynamic exception specifications</td><td style="text-align: left"> </td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">D.5</td><td style="text-align: left">C standard library headers</td><td style="text-align: left"> </td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">D.6</td><td style="text-align: left">Old iostreams members</td><td style="text-align: left"> </td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">D.7</td><td style="text-align: left"><code class="code">char*</code> streams</td><td style="text-align: left"> </td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">D.8</td><td style="text-align: left">Function objects</td><td style="text-align: left"> </td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">D.9</td><td style="text-align: left">Binders</td><td style="text-align: left"> </td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">D.10</td><td style="text-align: left"><code class="code">auto_ptr</code></td><td style="text-align: left"> </td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">D.11</td><td style="text-align: left">Violating exception-specifications</td><td style="text-align: left"> </td><td style="text-align: left"> </td></tr></tbody></table></div></div><br class="table-break"/><div class="section" title="Implementation Specific Behavior"><div class="titlepage"><div><div><h4 class="title"><a id="iso.2011.specific"/>Implementation Specific Behavior</h4></div></div></div><p>For behaviour which is also specified by the 1998 and 2003 standards, | |
2027 | + </td></tr><tr><td align="left">D.1</td><td align="left">Increment operator with <code class="code">bool</code> operand</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">D.2</td><td align="left"><code class="code">register</code> keyword</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">D.3</td><td align="left">Implicit declaration of copy functions</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">D.4</td><td align="left">Dynamic exception specifications</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">D.5</td><td align="left">C standard library headers</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">D.6</td><td align="left">Old iostreams members</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">D.7</td><td align="left"><code class="code">char*</code> streams</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">D.8</td><td align="left">Function objects</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">D.9</td><td align="left">Binders</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">D.10</td><td align="left"><code class="code">auto_ptr</code></td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">D.11</td><td align="left">Violating exception-specifications</td><td align="left"> </td><td align="left"> </td></tr></tbody></table></div></div><br class="table-break" /><div class="section" title="Implementation Specific Behavior"><div class="titlepage"><div><div><h4 class="title"><a id="iso.2011.specific"></a>Implementation Specific Behavior</h4></div></div></div><p>For behaviour which is also specified by the 1998 and 2003 standards, | |
2028 | see <a class="link" href="status.html#iso.1998.specific" title="Implementation Specific Behavior">C++ 1998/2003 Implementation | |
2029 | Specific Behavior</a>. This section only documents behaviour which | |
2030 | is new in the 2011 standard. | |
2031 | @@ -254,7 +250,7 @@ | |
2032 | <code class="classname">native_handle_type</code> and | |
2033 | <code class="methodname">native_handle</code> are provided. The handle types | |
2034 | are defined in terms of the Gthreads abstraction layer. | |
2035 | - </p><div class="itemizedlist"><ul class="itemizedlist"><li class="listitem"><p><code class="classname">thread</code>: The native handle type is | |
2036 | + </p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p><code class="classname">thread</code>: The native handle type is | |
2037 | a typedef for <code class="code">__gthread_t</code> i.e. <code class="code">pthread_t</code> | |
2038 | when GCC is configured with the <code class="literal">posix</code> thread | |
2039 | model. The value of the native handle is undefined for a thread | |
2040 | @@ -279,7 +275,7 @@ | |
2041 | <code class="code">launch</code> is a scoped enumeration type with | |
2042 | overloaded operators to support bitmask operations. There are no | |
2043 | additional bitmask elements defined. | |
2044 | - </p></div></div><div class="section" title="C++ TR1"><div class="titlepage"><div><div><h3 class="title"><a id="status.iso.tr1"/>C++ TR1</h3></div></div></div><p> | |
2045 | + </p></div></div><div class="section" title="C++ TR1"><div class="titlepage"><div><div><h3 class="title"><a id="status.iso.tr1"></a>C++ TR1</h3></div></div></div><p> | |
2046 | This table is based on the table of contents of ISO/IEC DTR 19768 | |
2047 | Doc No: N1836=05-0096 Date: 2005-06-24 | |
2048 | Draft Technical Report on C++ Library Extensions | |
2049 | @@ -290,12 +286,12 @@ | |
2050 | </p><p> | |
2051 | This page describes the TR1 support in mainline GCC SVN, not in any particular | |
2052 | release. | |
2053 | -</p><div class="table"><a id="id433760"/><p class="title"><strong>Table 1.3. C++ TR1 Implementation Status</strong></p><div class="table-contents"><table summary="C++ TR1 Implementation Status" border="1"><colgroup><col style="text-align: left" class="c1"/><col style="text-align: left" class="c2"/><col style="text-align: left" class="c3"/><col style="text-align: left" class="c4"/></colgroup><thead><tr><th style="text-align: left">Section</th><th style="text-align: left">Description</th><th style="text-align: left">Status</th><th style="text-align: left">Comments</th></tr></thead><tbody><tr><td style="text-align: left"><span class="emphasis"><em>2</em></span></td><td colspan="3" style="text-align: left"><span class="emphasis"><em>General Utilities</em></span></td></tr><tr><td style="text-align: left">2.1</td><td style="text-align: left">Reference wrappers</td><td style="text-align: left"> </td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">2.1.1</td><td style="text-align: left">Additions to header <code class="code"><functional></code> synopsis</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">2.1.2</td><td style="text-align: left">Class template <code class="code">reference_wrapper</code></td><td style="text-align: left"> </td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">2.1.2.1</td><td style="text-align: left"><code class="code">reference_wrapper</code> construct/copy/destroy</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">2.1.2.2</td><td style="text-align: left"><code class="code">reference_wrapper</code> assignment</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">2.1.2.3</td><td style="text-align: left"><code class="code">reference_wrapper</code> access</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">2.1.2.4</td><td style="text-align: left"><code class="code">reference_wrapper</code> invocation</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">2.1.2.5</td><td style="text-align: left"><code class="code">reference_wrapper</code> helper functions</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">2.2</td><td style="text-align: left">Smart pointers</td><td style="text-align: left"> </td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">2.2.1</td><td style="text-align: left">Additions to header <code class="code"><memory></code> synopsis</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">2.2.2</td><td style="text-align: left">Class <code class="code">bad_weak_ptr</code></td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">2.2.3</td><td style="text-align: left">Class template <code class="code">shared_ptr</code></td><td style="text-align: left"> </td><td style="text-align: left"> | |
2054 | +</p><div class="table"><a id="id612238"></a><p class="title"><strong>Table 1.3. C++ TR1 Implementation Status</strong></p><div class="table-contents"><table summary="C++ TR1 Implementation Status" border="1"><colgroup><col align="left" class="c1" /><col align="left" class="c2" /><col align="left" class="c3" /><col align="left" class="c4" /></colgroup><thead><tr><th align="left">Section</th><th align="left">Description</th><th align="left">Status</th><th align="left">Comments</th></tr></thead><tbody><tr><td align="left"><span class="emphasis"><em>2</em></span></td><td colspan="3" align="left"><span class="emphasis"><em>General Utilities</em></span></td></tr><tr><td align="left">2.1</td><td align="left">Reference wrappers</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">2.1.1</td><td align="left">Additions to header <code class="code"><functional></code> synopsis</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">2.1.2</td><td align="left">Class template <code class="code">reference_wrapper</code></td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">2.1.2.1</td><td align="left"><code class="code">reference_wrapper</code> construct/copy/destroy</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">2.1.2.2</td><td align="left"><code class="code">reference_wrapper</code> assignment</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">2.1.2.3</td><td align="left"><code class="code">reference_wrapper</code> access</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">2.1.2.4</td><td align="left"><code class="code">reference_wrapper</code> invocation</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">2.1.2.5</td><td align="left"><code class="code">reference_wrapper</code> helper functions</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">2.2</td><td align="left">Smart pointers</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">2.2.1</td><td align="left">Additions to header <code class="code"><memory></code> synopsis</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">2.2.2</td><td align="left">Class <code class="code">bad_weak_ptr</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">2.2.3</td><td align="left">Class template <code class="code">shared_ptr</code></td><td align="left"> </td><td align="left"> | |
2055 | <p> | |
2056 | Uses code from | |
2057 | - <a class="link" href="http://www.boost.org/libs/smart_ptr/shared_ptr.htm">boost::shared_ptr</a>. | |
2058 | + <a class="link" href="http://www.boost.org/libs/smart_ptr/shared_ptr.htm" target="_top">boost::shared_ptr</a>. | |
2059 | </p> | |
2060 | - </td></tr><tr><td style="text-align: left">2.2.3.1</td><td style="text-align: left"><code class="code">shared_ptr</code> constructors</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">2.2.3.2</td><td style="text-align: left"><code class="code">shared_ptr</code> destructor</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">2.2.3.3</td><td style="text-align: left"><code class="code">shared_ptr</code> assignment</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">2.2.3.4</td><td style="text-align: left"><code class="code">shared_ptr</code> modifiers</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">2.2.3.5</td><td style="text-align: left"><code class="code">shared_ptr</code> observers</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">2.2.3.6</td><td style="text-align: left"><code class="code">shared_ptr</code> comparison</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">2.2.3.7</td><td style="text-align: left"><code class="code">shared_ptr</code> I/O</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">2.2.3.8</td><td style="text-align: left"><code class="code">shared_ptr</code> specialized algorithms</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">2.2.3.9</td><td style="text-align: left"><code class="code">shared_ptr</code> casts</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">2.2.3.10</td><td style="text-align: left"><code class="code">get_deleter</code></td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">2.2.4</td><td style="text-align: left">Class template <code class="code">weak_ptr</code></td><td style="text-align: left"> </td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">2.2.4.1</td><td style="text-align: left"><code class="code">weak_ptr</code> constructors</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">2.2.4.2</td><td style="text-align: left"><code class="code">weak_ptr</code> destructor</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">2.2.4.3</td><td style="text-align: left"><code class="code">weak_ptr</code> assignment</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">2.2.4.4</td><td style="text-align: left"><code class="code">weak_ptr</code> modifiers</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">2.2.4.5</td><td style="text-align: left"><code class="code">weak_ptr</code> observers</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">2.2.4.6</td><td style="text-align: left"><code class="code">weak_ptr</code> comparison</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">2.2.4.7</td><td style="text-align: left"><code class="code">weak_ptr</code> specialized algorithms</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">2.2.5</td><td style="text-align: left">Class template <code class="code">enable_shared_from_this</code></td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left"><span class="emphasis"><em>3</em></span></td><td colspan="3" style="text-align: left"><span class="emphasis"><em>Function Objects</em></span></td></tr><tr><td style="text-align: left">3.1</td><td style="text-align: left">Definitions</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">3.2</td><td style="text-align: left">Additions to <code class="code"><functional> synopsis</code></td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">3.3</td><td style="text-align: left">Requirements</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">3.4</td><td style="text-align: left">Function return types</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">3.5</td><td style="text-align: left">Function template <code class="code">mem_fn</code></td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">3.6</td><td style="text-align: left">Function object binders</td><td style="text-align: left"> </td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">3.6.1</td><td style="text-align: left">Class template <code class="code">is_bind_expression</code></td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">3.6.2</td><td style="text-align: left">Class template <code class="code">is_placeholder</code></td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">3.6.3</td><td style="text-align: left">Function template <code class="code">bind</code></td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">3.6.4</td><td style="text-align: left">Placeholders</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">3.7</td><td style="text-align: left">Polymorphic function wrappers</td><td style="text-align: left"> </td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">3.7.1</td><td style="text-align: left">Class <code class="code">bad_function_call</code></td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">3.7.1.1</td><td style="text-align: left"><code class="code">bad_function_call</code> constructor</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">3.7.2</td><td style="text-align: left">Class template <code class="code">function</code></td><td style="text-align: left"> </td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">3.7.2.1</td><td style="text-align: left"><code class="code">function</code> construct/copy/destroy</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">3.7.2.2</td><td style="text-align: left"><code class="code">function</code> modifiers</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">3.7.2.3</td><td style="text-align: left"><code class="code">function</code> capacity</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">3.7.2.4</td><td style="text-align: left"><code class="code">function</code> invocation</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">3.7.2.5</td><td style="text-align: left"><code class="code">function</code> target access</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">3.7.2.6</td><td style="text-align: left">undefined operators</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">3.7.2.7</td><td style="text-align: left">null pointer comparison operators</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">3.7.2.8</td><td style="text-align: left">specialized algorithms</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left"><span class="emphasis"><em>4</em></span></td><td colspan="3" style="text-align: left"><span class="emphasis"><em>Metaprogramming and type traits</em></span></td></tr><tr><td style="text-align: left">4.1</td><td style="text-align: left">Requirements</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">4.2</td><td style="text-align: left">Header <code class="code"><type_traits></code> synopsis</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">4.3</td><td style="text-align: left">Helper classes</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">4.4</td><td style="text-align: left">General Requirements</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">4.5</td><td style="text-align: left">Unary Type Traits</td><td style="text-align: left"> </td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">4.5.1</td><td style="text-align: left">Primary Type Categories</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">4.5.2</td><td style="text-align: left">Composite type traits</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">4.5.3</td><td style="text-align: left">Type properties</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">4.6</td><td style="text-align: left">Relationships between types</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">4.7</td><td style="text-align: left">Transformations between types</td><td style="text-align: left"> </td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">4.7.1</td><td style="text-align: left">Const-volatile modifications</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">4.7.2</td><td style="text-align: left">Reference modifications</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">4.7.3</td><td style="text-align: left">Array modifications</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">4.7.4</td><td style="text-align: left">Pointer modifications</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">4.8</td><td style="text-align: left">Other transformations</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">4.9</td><td style="text-align: left">Implementation requirements</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left"><span class="emphasis"><em>5</em></span></td><td colspan="3" style="text-align: left"><span class="emphasis"><em>Numerical Facilities</em></span></td></tr><tr><td style="text-align: left">5.1</td><td style="text-align: left">Random number generation</td><td style="text-align: left"> </td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">5.1.1</td><td style="text-align: left">Requirements</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">5.1.2</td><td style="text-align: left">Header <code class="code"><random></code> synopsis</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">5.1.3</td><td style="text-align: left">Class template <code class="code">variate_generator</code></td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">5.1.4</td><td style="text-align: left">Random number engine class templates</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">5.1.4.1</td><td style="text-align: left">Class template <code class="code">linear_congruential</code></td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">5.1.4.2</td><td style="text-align: left">Class template <code class="code">mersenne_twister</code></td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">5.1.4.3</td><td style="text-align: left">Class template <code class="code">subtract_with_carry</code></td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">5.1.4.4</td><td style="text-align: left">Class template <code class="code">subtract_with_carry_01</code></td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">5.1.4.5</td><td style="text-align: left">Class template <code class="code">discard_block</code></td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">5.1.4.6</td><td style="text-align: left">Class template <code class="code">xor_combine</code></td><td style="text-align: left">Y</td><td style="text-align: left">operator()() per N2079</td></tr><tr><td style="text-align: left">5.1.5</td><td style="text-align: left">Engines with predefined parameters</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">5.1.6</td><td style="text-align: left">Class <code class="code">random_device</code></td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">5.1.7</td><td style="text-align: left">Random distribution class templates</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">5.1.7.1</td><td style="text-align: left">Class template <code class="code">uniform_int</code></td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">5.1.7.2</td><td style="text-align: left">Class <code class="code">bernoulli_distribution</code></td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">5.1.7.3</td><td style="text-align: left">Class template <code class="code">geometric_distribution</code></td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">5.1.7.4</td><td style="text-align: left">Class template <code class="code">poisson_distribution</code></td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">5.1.7.5</td><td style="text-align: left">Class template <code class="code">binomial_distribution</code></td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">5.1.7.6</td><td style="text-align: left">Class template <code class="code">uniform_real</code></td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">5.1.7.7</td><td style="text-align: left">Class template <code class="code">exponential_distribution</code></td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">5.1.7.8</td><td style="text-align: left">Class template <code class="code">normal_distribution</code></td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">5.1.7.9</td><td style="text-align: left">Class template <code class="code">gamma_distribution</code></td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">5.2</td><td style="text-align: left">Mathematical special functions</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">5.2.1</td><td style="text-align: left">Additions to header <code class="code"><cmath></code> synopsis</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">5.2.1.1</td><td style="text-align: left">associated Laguerre polynomials</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">5.2.1.2</td><td style="text-align: left">associated Legendre functions</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">5.2.1.3</td><td style="text-align: left">beta function</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">5.2.1.4</td><td style="text-align: left">(complete) elliptic integral of the first kind</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">5.2.1.5</td><td style="text-align: left">(complete) elliptic integral of the second kind</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">5.2.1.6</td><td style="text-align: left">(complete) elliptic integral of the third kind</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">5.2.1.7</td><td style="text-align: left">confluent hypergeometric functions</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">5.2.1.8</td><td style="text-align: left">regular modified cylindrical Bessel functions</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">5.2.1.9</td><td style="text-align: left">cylindrical Bessel functions (of the first kind)</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">5.2.1.10</td><td style="text-align: left">irregular modified cylindrical Bessel functions</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">5.2.1.11</td><td style="text-align: left">cylindrical Neumann functions</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">5.2.1.12</td><td style="text-align: left">(incomplete) elliptic integral of the first kind</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">5.2.1.13</td><td style="text-align: left">(incomplete) elliptic integral of the second kind</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">5.2.1.14</td><td style="text-align: left">(incomplete) elliptic integral of the third kind</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">5.2.1.15</td><td style="text-align: left">exponential integral</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">5.2.1.16</td><td style="text-align: left">Hermite polynomials</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">5.2.1.17</td><td style="text-align: left">hypergeometric functions</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">5.2.1.18</td><td style="text-align: left">Laguerre polynomials</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">5.2.1.19</td><td style="text-align: left">Legendre polynomials</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">5.2.1.20</td><td style="text-align: left">Riemann zeta function</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">5.2.1.21</td><td style="text-align: left">spherical Bessel functions (of the first kind)</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">5.2.1.22</td><td style="text-align: left">spherical associated Legendre functions</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">5.2.1.23</td><td style="text-align: left">spherical Neumann functions</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">5.2.2</td><td style="text-align: left">Additions to header <code class="code"><math.h></code> synopsis</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left"><span class="emphasis"><em>6</em></span></td><td colspan="3" style="text-align: left"><span class="emphasis"><em>Containers</em></span></td></tr><tr><td style="text-align: left">6.1</td><td style="text-align: left">Tuple types</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">6.1.1</td><td style="text-align: left">Header <code class="code"><tuple></code> synopsis</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">6.1.2</td><td style="text-align: left">Additions to header <code class="code"><utility></code> synopsis</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">6.1.3</td><td style="text-align: left">Class template <code class="code">tuple</code></td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">6.1.3.1</td><td style="text-align: left">Construction</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">6.1.3.2</td><td style="text-align: left">Tuple creation functions</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">6.1.3.3</td><td style="text-align: left">Tuple helper classes</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">6.1.3.4</td><td style="text-align: left">Element access</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">6.1.3.5</td><td style="text-align: left">Relational operators</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">6.1.4</td><td style="text-align: left">Pairs</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">6.2</td><td style="text-align: left">Fixed size array</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">6.2.1</td><td style="text-align: left">Header <code class="code"><array></code> synopsis</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">6.2.2</td><td style="text-align: left">Class template <code class="code">array</code></td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">6.2.2.1</td><td style="text-align: left"><code class="code">array</code> constructors, copy, and assignment</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">6.2.2.2</td><td style="text-align: left"><code class="code">array</code> specialized algorithms</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">6.2.2.3</td><td style="text-align: left"><code class="code">array</code> size</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">6.2.2.4</td><td style="text-align: left">Zero sized <code class="code">array</code>s</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">6.2.2.5</td><td style="text-align: left">Tuple interface to class template <code class="code">array</code></td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">6.3</td><td style="text-align: left">Unordered associative containers</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">6.3.1</td><td style="text-align: left">Unordered associative container requirements</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">6.3.1.1</td><td style="text-align: left">Exception safety guarantees</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">6.3.2</td><td style="text-align: left">Additions to header <code class="code"><functional></code> synopsis</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">6.3.3</td><td style="text-align: left">Class template <code class="code">hash</code></td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">6.3.4</td><td style="text-align: left">Unordered associative container classes</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">6.3.4.1</td><td style="text-align: left">Header <code class="code"><unordered_set></code> synopsis</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">6.3.4.2</td><td style="text-align: left">Header <code class="code"><unordered_map></code> synopsis</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">6.3.4.3</td><td style="text-align: left">Class template <code class="code">unordered_set</code></td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">6.3.4.3.1</td><td style="text-align: left"><code class="code">unordered_set</code> constructors</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">6.3.4.3.2</td><td style="text-align: left"><code class="code">unordered_set</code> swap</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">6.3.4.4</td><td style="text-align: left">Class template <code class="code">unordered_map</code></td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">6.3.4.4.1</td><td style="text-align: left"><code class="code">unordered_map</code> constructors</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">6.3.4.4.2</td><td style="text-align: left"><code class="code">unordered_map</code> element access</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">6.3.4.4.3</td><td style="text-align: left"><code class="code">unordered_map</code> swap</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">6.3.4.5</td><td style="text-align: left">Class template <code class="code">unordered_multiset</code></td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">6.3.4.5.1</td><td style="text-align: left"><code class="code">unordered_multiset</code> constructors</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">6.3.4.5.2</td><td style="text-align: left"><code class="code">unordered_multiset</code> swap</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">6.3.4.6</td><td style="text-align: left">Class template <code class="code">unordered_multimap</code></td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">6.3.4.6.1</td><td style="text-align: left"><code class="code">unordered_multimap</code> constructors</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">6.3.4.6.2</td><td style="text-align: left"><code class="code">unordered_multimap</code> swap</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left"><span class="emphasis"><em>7</em></span></td><td colspan="3" style="text-align: left"><span class="emphasis"><em>Regular Expressions</em></span></td></tr><tr style="background-color: #C8B0B0"><td style="text-align: left">7.1</td><td style="text-align: left">Definitions</td><td style="text-align: left">N</td><td style="text-align: left"> </td></tr><tr style="background-color: #C8B0B0"><td style="text-align: left">7.2</td><td style="text-align: left">Requirements</td><td style="text-align: left">N</td><td style="text-align: left"> </td></tr><tr style="background-color: #C8B0B0"><td style="text-align: left">7.3</td><td style="text-align: left">Regular expressions summary</td><td style="text-align: left">N</td><td style="text-align: left"> </td></tr><tr style="background-color: #C8B0B0"><td style="text-align: left">7.4</td><td style="text-align: left">Header <code class="code"><regex></code> synopsis</td><td style="text-align: left">N</td><td style="text-align: left"> </td></tr><tr style="background-color: #C8B0B0"><td style="text-align: left">7.5</td><td style="text-align: left">Namespace <code class="code">tr1::regex_constants</code></td><td style="text-align: left">N</td><td style="text-align: left"> </td></tr><tr style="background-color: #C8B0B0"><td style="text-align: left">7.5.1</td><td style="text-align: left">Bitmask Type <code class="code">syntax_option_type</code></td><td style="text-align: left">N</td><td style="text-align: left"> </td></tr><tr style="background-color: #C8B0B0"><td style="text-align: left">7.5.2</td><td style="text-align: left">Bitmask Type <code class="code">regex_constants::match_flag_type</code></td><td style="text-align: left">N</td><td style="text-align: left"> </td></tr><tr style="background-color: #C8B0B0"><td style="text-align: left">7.5.3</td><td style="text-align: left">Implementation defined <code class="code">error_type</code></td><td style="text-align: left">N</td><td style="text-align: left"> </td></tr><tr style="background-color: #C8B0B0"><td style="text-align: left">7.6</td><td style="text-align: left">Class <code class="code">regex_error</code></td><td style="text-align: left">N</td><td style="text-align: left"> </td></tr><tr style="background-color: #C8B0B0"><td style="text-align: left">7.7</td><td style="text-align: left">Class template <code class="code">regex_traits</code></td><td style="text-align: left">N</td><td style="text-align: left"> </td></tr><tr style="background-color: #C8B0B0"><td style="text-align: left">7.8</td><td style="text-align: left">Class template <code class="code">basic_regex</code></td><td style="text-align: left">N</td><td style="text-align: left"> </td></tr><tr style="background-color: #C8B0B0"><td style="text-align: left">7.8.1</td><td style="text-align: left"><code class="code">basic_regex</code> constants</td><td style="text-align: left">N</td><td style="text-align: left"> </td></tr><tr style="background-color: #C8B0B0"><td style="text-align: left">7.8.2</td><td style="text-align: left"><code class="code">basic_regex</code> constructors</td><td style="text-align: left">N</td><td style="text-align: left"> </td></tr><tr style="background-color: #C8B0B0"><td style="text-align: left">7.8.3</td><td style="text-align: left"><code class="code">basic_regex</code> assign</td><td style="text-align: left">N</td><td style="text-align: left"> </td></tr><tr style="background-color: #C8B0B0"><td style="text-align: left">7.8.4</td><td style="text-align: left"><code class="code">basic_regex</code> constant operations</td><td style="text-align: left">N</td><td style="text-align: left"> </td></tr><tr style="background-color: #C8B0B0"><td style="text-align: left">7.8.5</td><td style="text-align: left"><code class="code">basic_regex</code> locale</td><td style="text-align: left">N</td><td style="text-align: left"> </td></tr><tr style="background-color: #C8B0B0"><td style="text-align: left">7.8.6</td><td style="text-align: left"><code class="code">basic_regex</code> swap</td><td style="text-align: left">N</td><td style="text-align: left"> </td></tr><tr style="background-color: #C8B0B0"><td style="text-align: left">7.8.7</td><td style="text-align: left"><code class="code">basic_regex</code> non-member functions</td><td style="text-align: left">N</td><td style="text-align: left"> </td></tr><tr style="background-color: #C8B0B0"><td style="text-align: left">7.8.7.1</td><td style="text-align: left"><code class="code">basic_regex</code> non-member swap</td><td style="text-align: left">N</td><td style="text-align: left"> </td></tr><tr style="background-color: #C8B0B0"><td style="text-align: left">7.9</td><td style="text-align: left">Class template <code class="code">sub_match</code></td><td style="text-align: left">N</td><td style="text-align: left"> </td></tr><tr style="background-color: #C8B0B0"><td style="text-align: left">7.9.1</td><td style="text-align: left"><code class="code">sub_match</code> members</td><td style="text-align: left">N</td><td style="text-align: left"> </td></tr><tr style="background-color: #C8B0B0"><td style="text-align: left">7.9.2</td><td style="text-align: left"><code class="code">sub_match</code> non-member operators</td><td style="text-align: left">N</td><td style="text-align: left"> </td></tr><tr style="background-color: #C8B0B0"><td style="text-align: left">7.10</td><td style="text-align: left">Class template <code class="code">match_results</code></td><td style="text-align: left">N</td><td style="text-align: left"> </td></tr><tr style="background-color: #C8B0B0"><td style="text-align: left">7.10.1</td><td style="text-align: left"><code class="code">match_results</code> constructors</td><td style="text-align: left">N</td><td style="text-align: left"> </td></tr><tr style="background-color: #C8B0B0"><td style="text-align: left">7.10.2</td><td style="text-align: left"><code class="code">match_results</code> size</td><td style="text-align: left">N</td><td style="text-align: left"> </td></tr><tr style="background-color: #C8B0B0"><td style="text-align: left">7.10.3</td><td style="text-align: left"><code class="code">match_results</code> element access</td><td style="text-align: left">N</td><td style="text-align: left"> </td></tr><tr style="background-color: #C8B0B0"><td style="text-align: left">7.10.4</td><td style="text-align: left"><code class="code">match_results</code> formatting</td><td style="text-align: left">N</td><td style="text-align: left"> </td></tr><tr style="background-color: #C8B0B0"><td style="text-align: left">7.10.5</td><td style="text-align: left"><code class="code">match_results</code> allocator</td><td style="text-align: left">N</td><td style="text-align: left"> </td></tr><tr style="background-color: #C8B0B0"><td style="text-align: left">7.10.6</td><td style="text-align: left"><code class="code">match_results</code> swap</td><td style="text-align: left">N</td><td style="text-align: left"> </td></tr><tr style="background-color: #C8B0B0"><td style="text-align: left">7.11</td><td style="text-align: left">Regular expression algorithms</td><td style="text-align: left">N</td><td style="text-align: left"> </td></tr><tr style="background-color: #C8B0B0"><td style="text-align: left">7.11.1</td><td style="text-align: left">exceptions</td><td style="text-align: left">N</td><td style="text-align: left"> </td></tr><tr style="background-color: #C8B0B0"><td style="text-align: left">7.11.2</td><td style="text-align: left"><code class="code">regex_match</code></td><td style="text-align: left">N</td><td style="text-align: left"> </td></tr><tr style="background-color: #C8B0B0"><td style="text-align: left">7.11.3</td><td style="text-align: left"><code class="code">regex_search</code></td><td style="text-align: left">N</td><td style="text-align: left"> </td></tr><tr style="background-color: #C8B0B0"><td style="text-align: left">7.11.4</td><td style="text-align: left"><code class="code">regex_replace</code></td><td style="text-align: left">N</td><td style="text-align: left"> </td></tr><tr style="background-color: #C8B0B0"><td style="text-align: left">7.12</td><td style="text-align: left">Regular expression Iterators</td><td style="text-align: left">N</td><td style="text-align: left"> </td></tr><tr style="background-color: #C8B0B0"><td style="text-align: left">7.12.1</td><td style="text-align: left">Class template <code class="code">regex_iterator</code></td><td style="text-align: left">N</td><td style="text-align: left"> </td></tr><tr style="background-color: #C8B0B0"><td style="text-align: left">7.12.1.1</td><td style="text-align: left"><code class="code">regex_iterator</code> constructors</td><td style="text-align: left">N</td><td style="text-align: left"> </td></tr><tr style="background-color: #C8B0B0"><td style="text-align: left">7.12.1.2</td><td style="text-align: left"><code class="code">regex_iterator</code> comparisons</td><td style="text-align: left">N</td><td style="text-align: left"> </td></tr><tr style="background-color: #C8B0B0"><td style="text-align: left">7.12.1.3</td><td style="text-align: left"><code class="code">regex_iterator</code> dereference</td><td style="text-align: left">N</td><td style="text-align: left"> </td></tr><tr style="background-color: #C8B0B0"><td style="text-align: left">7.12.1.4</td><td style="text-align: left"><code class="code">regex_iterator</code> increment</td><td style="text-align: left">N</td><td style="text-align: left"> </td></tr><tr style="background-color: #C8B0B0"><td style="text-align: left">7.12.2</td><td style="text-align: left">Class template <code class="code">regex_token_iterator</code></td><td style="text-align: left">N</td><td style="text-align: left"> </td></tr><tr style="background-color: #C8B0B0"><td style="text-align: left">7.12.2.1</td><td style="text-align: left"><code class="code">regex_token_iterator</code> constructors</td><td style="text-align: left">N</td><td style="text-align: left"> </td></tr><tr style="background-color: #C8B0B0"><td style="text-align: left">7.12.2.2</td><td style="text-align: left"><code class="code">regex_token_iterator</code> comparisons</td><td style="text-align: left">N</td><td style="text-align: left"> </td></tr><tr style="background-color: #C8B0B0"><td style="text-align: left">7.12.2.3</td><td style="text-align: left"><code class="code">regex_token_iterator</code> dereference</td><td style="text-align: left">N</td><td style="text-align: left"> </td></tr><tr style="background-color: #C8B0B0"><td style="text-align: left">7.12.2.4</td><td style="text-align: left"><code class="code">regex_token_iterator</code> increment</td><td style="text-align: left">N</td><td style="text-align: left"> </td></tr><tr style="background-color: #C8B0B0"><td style="text-align: left">7.13</td><td style="text-align: left">Modified ECMAScript regular expression grammar</td><td style="text-align: left">N</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left"><span class="emphasis"><em>8</em></span></td><td colspan="3" style="text-align: left"><span class="emphasis"><em>C Compatibility</em></span></td></tr><tr><td style="text-align: left">8.1</td><td style="text-align: left">Additions to header <code class="code"><complex></code></td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">8.1.1</td><td style="text-align: left">Synopsis</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">8.1.2</td><td style="text-align: left">Function <code class="code">acos</code></td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">8.1.3</td><td style="text-align: left">Function <code class="code">asin</code></td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">8.1.4</td><td style="text-align: left">Function <code class="code">atan</code></td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">8.1.5</td><td style="text-align: left">Function <code class="code">acosh</code></td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">8.1.6</td><td style="text-align: left">Function <code class="code">asinh</code></td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">8.1.7</td><td style="text-align: left">Function <code class="code">atanh</code></td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">8.1.8</td><td style="text-align: left">Function <code class="code">fabs</code></td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">8.1.9</td><td style="text-align: left">Additional Overloads</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr style="background-color: #C8B0B0"><td style="text-align: left">8.2</td><td style="text-align: left">Header <code class="code"><ccomplex></code></td><td style="text-align: left">N</td><td style="text-align: left">DR 551</td></tr><tr style="background-color: #C8B0B0"><td style="text-align: left">8.3</td><td style="text-align: left">Header <code class="code"><complex.h></code></td><td style="text-align: left">N</td><td style="text-align: left">DR 551</td></tr><tr><td style="text-align: left">8.4</td><td style="text-align: left">Additions to header <code class="code"><cctype></code></td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">8.4.1</td><td style="text-align: left">Synopsis</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">8.4.2</td><td style="text-align: left">Function <code class="code">isblank</code></td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">8.5</td><td style="text-align: left">Additions to header <code class="code"><ctype.h></code></td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">8.6</td><td style="text-align: left">Header <code class="code"><cfenv></code></td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">8.6.1</td><td style="text-align: left">Synopsis</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">8.6.2</td><td style="text-align: left">Definitions</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">8.7</td><td style="text-align: left">Header <code class="code"><fenv.h></code></td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">8.8</td><td style="text-align: left">Additions to header <code class="code"><cfloat></code></td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">8.9</td><td style="text-align: left">Additions to header <code class="code"><float.h></code></td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr style="background-color: #C8B0B0"><td style="text-align: left">8.10</td><td style="text-align: left">Additions to header <code class="code"><ios></code></td><td style="text-align: left">N</td><td style="text-align: left"> </td></tr><tr style="background-color: #C8B0B0"><td style="text-align: left">8.10.1</td><td style="text-align: left">Synopsis</td><td style="text-align: left">N</td><td style="text-align: left"> </td></tr><tr style="background-color: #C8B0B0"><td style="text-align: left">8.10.2</td><td style="text-align: left">Function <code class="code">hexfloat</code></td><td style="text-align: left">N</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">8.11</td><td style="text-align: left">Header <code class="code"><cinttypes></code></td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">8.11.1</td><td style="text-align: left">Synopsis</td><td style="text-align: left">Y</td><td style="text-align: left">DR 557</td></tr><tr><td style="text-align: left">8.11.2</td><td style="text-align: left">Definitions</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">8.12</td><td style="text-align: left">Header <code class="code"><inttypes.h></code></td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">8.13</td><td style="text-align: left">Additions to header <code class="code"><climits></code></td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">8.14</td><td style="text-align: left">Additions to header <code class="code"><limits.h></code></td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr style="background-color: #C8B0B0"><td style="text-align: left">8.15</td><td style="text-align: left">Additions to header <code class="code"><locale></code></td><td style="text-align: left">N</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">8.16</td><td style="text-align: left">Additions to header <code class="code"><cmath></code></td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">8.16.1</td><td style="text-align: left">Synopsis</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">8.16.2</td><td style="text-align: left">Definitions</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">8.16.3</td><td style="text-align: left">Function template definitions</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">8.16.4</td><td style="text-align: left">Additional overloads</td><td style="text-align: left">Y</td><td style="text-align: left">DR 568; DR 550</td></tr><tr><td style="text-align: left">8.17</td><td style="text-align: left">Additions to header <code class="code"><math.h></code></td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">8.18</td><td style="text-align: left">Additions to header <code class="code"><cstdarg></code></td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">8.19</td><td style="text-align: left">Additions to header <code class="code"><stdarg.h></code></td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">8.20</td><td style="text-align: left">The header <code class="code"><cstdbool></code></td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">8.21</td><td style="text-align: left">The header <code class="code"><stdbool.h></code></td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">8.22</td><td style="text-align: left">The header <code class="code"><cstdint></code></td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">8.22.1</td><td style="text-align: left">Synopsis</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">8.22.2</td><td style="text-align: left">Definitions</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">8.23</td><td style="text-align: left">The header <code class="code"><stdint.h></code></td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">8.24</td><td style="text-align: left">Additions to header <code class="code"><cstdio></code></td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">8.24.1</td><td style="text-align: left">Synopsis</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">8.24.2</td><td style="text-align: left">Definitions</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">8.24.3</td><td style="text-align: left">Additional format specifiers</td><td style="text-align: left">Y</td><td style="text-align: left">C library dependency</td></tr><tr><td style="text-align: left">8.24.4</td><td style="text-align: left">Additions to header <code class="code"><stdio.h></code></td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">8.25</td><td style="text-align: left">Additions to header <code class="code"><cstdlib></code></td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">8.25.1</td><td style="text-align: left">Synopsis</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">8.25.2</td><td style="text-align: left">Definitions</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">8.25.3</td><td style="text-align: left">Function <code class="code">abs</code></td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">8.25.4</td><td style="text-align: left">Function <code class="code">div</code></td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">8.26</td><td style="text-align: left">Additions to header <code class="code"><stdlib.h></code></td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">8.27</td><td style="text-align: left">Header <code class="code"><ctgmath></code></td><td style="text-align: left">Y</td><td style="text-align: left">DR 551</td></tr><tr><td style="text-align: left">8.28</td><td style="text-align: left">Header <code class="code"><tgmath.h></code></td><td style="text-align: left">Y</td><td style="text-align: left">DR 551</td></tr><tr><td style="text-align: left">8.29</td><td style="text-align: left">Additions to header <code class="code"><ctime></code></td><td style="text-align: left">Y</td><td style="text-align: left">C library dependency</td></tr><tr><td style="text-align: left">8.30</td><td style="text-align: left">Additions to header <code class="code"><cwchar></code></td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">8.30.1</td><td style="text-align: left">Synopsis</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">8.30.2</td><td style="text-align: left">Definitions</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">8.30.3</td><td style="text-align: left">Additional wide format specifiers</td><td style="text-align: left">Y</td><td style="text-align: left">C library dependency</td></tr><tr><td style="text-align: left">8.31</td><td style="text-align: left">Additions to header <code class="code"><wchar.h></code></td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">8.32</td><td style="text-align: left">Additions to header <code class="code"><cwctype></code></td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">8.32.1</td><td style="text-align: left">Synopsis</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">8.32.2</td><td style="text-align: left">Function <code class="code">iswblank</code></td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">8.33</td><td style="text-align: left">Additions to header <code class="code"><wctype.h></code></td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr></tbody></table></div></div><br class="table-break"/><div class="section" title="Implementation Specific Behavior"><div class="titlepage"><div><div><h4 class="title"><a id="iso.tr1.specific"/>Implementation Specific Behavior</h4></div></div></div><p>For behaviour which is specified by the 1998 and 2003 standards, | |
2061 | + </td></tr><tr><td align="left">2.2.3.1</td><td align="left"><code class="code">shared_ptr</code> constructors</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">2.2.3.2</td><td align="left"><code class="code">shared_ptr</code> destructor</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">2.2.3.3</td><td align="left"><code class="code">shared_ptr</code> assignment</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">2.2.3.4</td><td align="left"><code class="code">shared_ptr</code> modifiers</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">2.2.3.5</td><td align="left"><code class="code">shared_ptr</code> observers</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">2.2.3.6</td><td align="left"><code class="code">shared_ptr</code> comparison</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">2.2.3.7</td><td align="left"><code class="code">shared_ptr</code> I/O</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">2.2.3.8</td><td align="left"><code class="code">shared_ptr</code> specialized algorithms</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">2.2.3.9</td><td align="left"><code class="code">shared_ptr</code> casts</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">2.2.3.10</td><td align="left"><code class="code">get_deleter</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">2.2.4</td><td align="left">Class template <code class="code">weak_ptr</code></td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">2.2.4.1</td><td align="left"><code class="code">weak_ptr</code> constructors</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">2.2.4.2</td><td align="left"><code class="code">weak_ptr</code> destructor</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">2.2.4.3</td><td align="left"><code class="code">weak_ptr</code> assignment</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">2.2.4.4</td><td align="left"><code class="code">weak_ptr</code> modifiers</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">2.2.4.5</td><td align="left"><code class="code">weak_ptr</code> observers</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">2.2.4.6</td><td align="left"><code class="code">weak_ptr</code> comparison</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">2.2.4.7</td><td align="left"><code class="code">weak_ptr</code> specialized algorithms</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">2.2.5</td><td align="left">Class template <code class="code">enable_shared_from_this</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left"><span class="emphasis"><em>3</em></span></td><td colspan="3" align="left"><span class="emphasis"><em>Function Objects</em></span></td></tr><tr><td align="left">3.1</td><td align="left">Definitions</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">3.2</td><td align="left">Additions to <code class="code"><functional> synopsis</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">3.3</td><td align="left">Requirements</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">3.4</td><td align="left">Function return types</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">3.5</td><td align="left">Function template <code class="code">mem_fn</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">3.6</td><td align="left">Function object binders</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">3.6.1</td><td align="left">Class template <code class="code">is_bind_expression</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">3.6.2</td><td align="left">Class template <code class="code">is_placeholder</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">3.6.3</td><td align="left">Function template <code class="code">bind</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">3.6.4</td><td align="left">Placeholders</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">3.7</td><td align="left">Polymorphic function wrappers</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">3.7.1</td><td align="left">Class <code class="code">bad_function_call</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">3.7.1.1</td><td align="left"><code class="code">bad_function_call</code> constructor</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">3.7.2</td><td align="left">Class template <code class="code">function</code></td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">3.7.2.1</td><td align="left"><code class="code">function</code> construct/copy/destroy</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">3.7.2.2</td><td align="left"><code class="code">function</code> modifiers</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">3.7.2.3</td><td align="left"><code class="code">function</code> capacity</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">3.7.2.4</td><td align="left"><code class="code">function</code> invocation</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">3.7.2.5</td><td align="left"><code class="code">function</code> target access</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">3.7.2.6</td><td align="left">undefined operators</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">3.7.2.7</td><td align="left">null pointer comparison operators</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">3.7.2.8</td><td align="left">specialized algorithms</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left"><span class="emphasis"><em>4</em></span></td><td colspan="3" align="left"><span class="emphasis"><em>Metaprogramming and type traits</em></span></td></tr><tr><td align="left">4.1</td><td align="left">Requirements</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">4.2</td><td align="left">Header <code class="code"><type_traits></code> synopsis</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">4.3</td><td align="left">Helper classes</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">4.4</td><td align="left">General Requirements</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">4.5</td><td align="left">Unary Type Traits</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">4.5.1</td><td align="left">Primary Type Categories</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">4.5.2</td><td align="left">Composite type traits</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">4.5.3</td><td align="left">Type properties</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">4.6</td><td align="left">Relationships between types</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">4.7</td><td align="left">Transformations between types</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">4.7.1</td><td align="left">Const-volatile modifications</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">4.7.2</td><td align="left">Reference modifications</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">4.7.3</td><td align="left">Array modifications</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">4.7.4</td><td align="left">Pointer modifications</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">4.8</td><td align="left">Other transformations</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">4.9</td><td align="left">Implementation requirements</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left"><span class="emphasis"><em>5</em></span></td><td colspan="3" align="left"><span class="emphasis"><em>Numerical Facilities</em></span></td></tr><tr><td align="left">5.1</td><td align="left">Random number generation</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">5.1.1</td><td align="left">Requirements</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">5.1.2</td><td align="left">Header <code class="code"><random></code> synopsis</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">5.1.3</td><td align="left">Class template <code class="code">variate_generator</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">5.1.4</td><td align="left">Random number engine class templates</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">5.1.4.1</td><td align="left">Class template <code class="code">linear_congruential</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">5.1.4.2</td><td align="left">Class template <code class="code">mersenne_twister</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">5.1.4.3</td><td align="left">Class template <code class="code">subtract_with_carry</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">5.1.4.4</td><td align="left">Class template <code class="code">subtract_with_carry_01</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">5.1.4.5</td><td align="left">Class template <code class="code">discard_block</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">5.1.4.6</td><td align="left">Class template <code class="code">xor_combine</code></td><td align="left">Y</td><td align="left">operator()() per N2079</td></tr><tr><td align="left">5.1.5</td><td align="left">Engines with predefined parameters</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">5.1.6</td><td align="left">Class <code class="code">random_device</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">5.1.7</td><td align="left">Random distribution class templates</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">5.1.7.1</td><td align="left">Class template <code class="code">uniform_int</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">5.1.7.2</td><td align="left">Class <code class="code">bernoulli_distribution</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">5.1.7.3</td><td align="left">Class template <code class="code">geometric_distribution</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">5.1.7.4</td><td align="left">Class template <code class="code">poisson_distribution</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">5.1.7.5</td><td align="left">Class template <code class="code">binomial_distribution</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">5.1.7.6</td><td align="left">Class template <code class="code">uniform_real</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">5.1.7.7</td><td align="left">Class template <code class="code">exponential_distribution</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">5.1.7.8</td><td align="left">Class template <code class="code">normal_distribution</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">5.1.7.9</td><td align="left">Class template <code class="code">gamma_distribution</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">5.2</td><td align="left">Mathematical special functions</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">5.2.1</td><td align="left">Additions to header <code class="code"><cmath></code> synopsis</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">5.2.1.1</td><td align="left">associated Laguerre polynomials</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">5.2.1.2</td><td align="left">associated Legendre functions</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">5.2.1.3</td><td align="left">beta function</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">5.2.1.4</td><td align="left">(complete) elliptic integral of the first kind</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">5.2.1.5</td><td align="left">(complete) elliptic integral of the second kind</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">5.2.1.6</td><td align="left">(complete) elliptic integral of the third kind</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">5.2.1.7</td><td align="left">confluent hypergeometric functions</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">5.2.1.8</td><td align="left">regular modified cylindrical Bessel functions</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">5.2.1.9</td><td align="left">cylindrical Bessel functions (of the first kind)</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">5.2.1.10</td><td align="left">irregular modified cylindrical Bessel functions</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">5.2.1.11</td><td align="left">cylindrical Neumann functions</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">5.2.1.12</td><td align="left">(incomplete) elliptic integral of the first kind</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">5.2.1.13</td><td align="left">(incomplete) elliptic integral of the second kind</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">5.2.1.14</td><td align="left">(incomplete) elliptic integral of the third kind</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">5.2.1.15</td><td align="left">exponential integral</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">5.2.1.16</td><td align="left">Hermite polynomials</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">5.2.1.17</td><td align="left">hypergeometric functions</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">5.2.1.18</td><td align="left">Laguerre polynomials</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">5.2.1.19</td><td align="left">Legendre polynomials</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">5.2.1.20</td><td align="left">Riemann zeta function</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">5.2.1.21</td><td align="left">spherical Bessel functions (of the first kind)</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">5.2.1.22</td><td align="left">spherical associated Legendre functions</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">5.2.1.23</td><td align="left">spherical Neumann functions</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">5.2.2</td><td align="left">Additions to header <code class="code"><math.h></code> synopsis</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left"><span class="emphasis"><em>6</em></span></td><td colspan="3" align="left"><span class="emphasis"><em>Containers</em></span></td></tr><tr><td align="left">6.1</td><td align="left">Tuple types</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">6.1.1</td><td align="left">Header <code class="code"><tuple></code> synopsis</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">6.1.2</td><td align="left">Additions to header <code class="code"><utility></code> synopsis</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">6.1.3</td><td align="left">Class template <code class="code">tuple</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">6.1.3.1</td><td align="left">Construction</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">6.1.3.2</td><td align="left">Tuple creation functions</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">6.1.3.3</td><td align="left">Tuple helper classes</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">6.1.3.4</td><td align="left">Element access</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">6.1.3.5</td><td align="left">Relational operators</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">6.1.4</td><td align="left">Pairs</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">6.2</td><td align="left">Fixed size array</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">6.2.1</td><td align="left">Header <code class="code"><array></code> synopsis</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">6.2.2</td><td align="left">Class template <code class="code">array</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">6.2.2.1</td><td align="left"><code class="code">array</code> constructors, copy, and assignment</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">6.2.2.2</td><td align="left"><code class="code">array</code> specialized algorithms</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">6.2.2.3</td><td align="left"><code class="code">array</code> size</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">6.2.2.4</td><td align="left">Zero sized <code class="code">array</code>s</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">6.2.2.5</td><td align="left">Tuple interface to class template <code class="code">array</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">6.3</td><td align="left">Unordered associative containers</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">6.3.1</td><td align="left">Unordered associative container requirements</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">6.3.1.1</td><td align="left">Exception safety guarantees</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">6.3.2</td><td align="left">Additions to header <code class="code"><functional></code> synopsis</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">6.3.3</td><td align="left">Class template <code class="code">hash</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">6.3.4</td><td align="left">Unordered associative container classes</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">6.3.4.1</td><td align="left">Header <code class="code"><unordered_set></code> synopsis</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">6.3.4.2</td><td align="left">Header <code class="code"><unordered_map></code> synopsis</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">6.3.4.3</td><td align="left">Class template <code class="code">unordered_set</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">6.3.4.3.1</td><td align="left"><code class="code">unordered_set</code> constructors</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">6.3.4.3.2</td><td align="left"><code class="code">unordered_set</code> swap</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">6.3.4.4</td><td align="left">Class template <code class="code">unordered_map</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">6.3.4.4.1</td><td align="left"><code class="code">unordered_map</code> constructors</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">6.3.4.4.2</td><td align="left"><code class="code">unordered_map</code> element access</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">6.3.4.4.3</td><td align="left"><code class="code">unordered_map</code> swap</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">6.3.4.5</td><td align="left">Class template <code class="code">unordered_multiset</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">6.3.4.5.1</td><td align="left"><code class="code">unordered_multiset</code> constructors</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">6.3.4.5.2</td><td align="left"><code class="code">unordered_multiset</code> swap</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">6.3.4.6</td><td align="left">Class template <code class="code">unordered_multimap</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">6.3.4.6.1</td><td align="left"><code class="code">unordered_multimap</code> constructors</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">6.3.4.6.2</td><td align="left"><code class="code">unordered_multimap</code> swap</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left"><span class="emphasis"><em>7</em></span></td><td colspan="3" align="left"><span class="emphasis"><em>Regular Expressions</em></span></td></tr><tr bgcolor="#C8B0B0"><td align="left">7.1</td><td align="left">Definitions</td><td align="left">N</td><td align="left"> </td></tr><tr bgcolor="#C8B0B0"><td align="left">7.2</td><td align="left">Requirements</td><td align="left">N</td><td align="left"> </td></tr><tr bgcolor="#C8B0B0"><td align="left">7.3</td><td align="left">Regular expressions summary</td><td align="left">N</td><td align="left"> </td></tr><tr bgcolor="#C8B0B0"><td align="left">7.4</td><td align="left">Header <code class="code"><regex></code> synopsis</td><td align="left">N</td><td align="left"> </td></tr><tr bgcolor="#C8B0B0"><td align="left">7.5</td><td align="left">Namespace <code class="code">tr1::regex_constants</code></td><td align="left">N</td><td align="left"> </td></tr><tr bgcolor="#C8B0B0"><td align="left">7.5.1</td><td align="left">Bitmask Type <code class="code">syntax_option_type</code></td><td align="left">N</td><td align="left"> </td></tr><tr bgcolor="#C8B0B0"><td align="left">7.5.2</td><td align="left">Bitmask Type <code class="code">regex_constants::match_flag_type</code></td><td align="left">N</td><td align="left"> </td></tr><tr bgcolor="#C8B0B0"><td align="left">7.5.3</td><td align="left">Implementation defined <code class="code">error_type</code></td><td align="left">N</td><td align="left"> </td></tr><tr bgcolor="#C8B0B0"><td align="left">7.6</td><td align="left">Class <code class="code">regex_error</code></td><td align="left">N</td><td align="left"> </td></tr><tr bgcolor="#C8B0B0"><td align="left">7.7</td><td align="left">Class template <code class="code">regex_traits</code></td><td align="left">N</td><td align="left"> </td></tr><tr bgcolor="#C8B0B0"><td align="left">7.8</td><td align="left">Class template <code class="code">basic_regex</code></td><td align="left">N</td><td align="left"> </td></tr><tr bgcolor="#C8B0B0"><td align="left">7.8.1</td><td align="left"><code class="code">basic_regex</code> constants</td><td align="left">N</td><td align="left"> </td></tr><tr bgcolor="#C8B0B0"><td align="left">7.8.2</td><td align="left"><code class="code">basic_regex</code> constructors</td><td align="left">N</td><td align="left"> </td></tr><tr bgcolor="#C8B0B0"><td align="left">7.8.3</td><td align="left"><code class="code">basic_regex</code> assign</td><td align="left">N</td><td align="left"> </td></tr><tr bgcolor="#C8B0B0"><td align="left">7.8.4</td><td align="left"><code class="code">basic_regex</code> constant operations</td><td align="left">N</td><td align="left"> </td></tr><tr bgcolor="#C8B0B0"><td align="left">7.8.5</td><td align="left"><code class="code">basic_regex</code> locale</td><td align="left">N</td><td align="left"> </td></tr><tr bgcolor="#C8B0B0"><td align="left">7.8.6</td><td align="left"><code class="code">basic_regex</code> swap</td><td align="left">N</td><td align="left"> </td></tr><tr bgcolor="#C8B0B0"><td align="left">7.8.7</td><td align="left"><code class="code">basic_regex</code> non-member functions</td><td align="left">N</td><td align="left"> </td></tr><tr bgcolor="#C8B0B0"><td align="left">7.8.7.1</td><td align="left"><code class="code">basic_regex</code> non-member swap</td><td align="left">N</td><td align="left"> </td></tr><tr bgcolor="#C8B0B0"><td align="left">7.9</td><td align="left">Class template <code class="code">sub_match</code></td><td align="left">N</td><td align="left"> </td></tr><tr bgcolor="#C8B0B0"><td align="left">7.9.1</td><td align="left"><code class="code">sub_match</code> members</td><td align="left">N</td><td align="left"> </td></tr><tr bgcolor="#C8B0B0"><td align="left">7.9.2</td><td align="left"><code class="code">sub_match</code> non-member operators</td><td align="left">N</td><td align="left"> </td></tr><tr bgcolor="#C8B0B0"><td align="left">7.10</td><td align="left">Class template <code class="code">match_results</code></td><td align="left">N</td><td align="left"> </td></tr><tr bgcolor="#C8B0B0"><td align="left">7.10.1</td><td align="left"><code class="code">match_results</code> constructors</td><td align="left">N</td><td align="left"> </td></tr><tr bgcolor="#C8B0B0"><td align="left">7.10.2</td><td align="left"><code class="code">match_results</code> size</td><td align="left">N</td><td align="left"> </td></tr><tr bgcolor="#C8B0B0"><td align="left">7.10.3</td><td align="left"><code class="code">match_results</code> element access</td><td align="left">N</td><td align="left"> </td></tr><tr bgcolor="#C8B0B0"><td align="left">7.10.4</td><td align="left"><code class="code">match_results</code> formatting</td><td align="left">N</td><td align="left"> </td></tr><tr bgcolor="#C8B0B0"><td align="left">7.10.5</td><td align="left"><code class="code">match_results</code> allocator</td><td align="left">N</td><td align="left"> </td></tr><tr bgcolor="#C8B0B0"><td align="left">7.10.6</td><td align="left"><code class="code">match_results</code> swap</td><td align="left">N</td><td align="left"> </td></tr><tr bgcolor="#C8B0B0"><td align="left">7.11</td><td align="left">Regular expression algorithms</td><td align="left">N</td><td align="left"> </td></tr><tr bgcolor="#C8B0B0"><td align="left">7.11.1</td><td align="left">exceptions</td><td align="left">N</td><td align="left"> </td></tr><tr bgcolor="#C8B0B0"><td align="left">7.11.2</td><td align="left"><code class="code">regex_match</code></td><td align="left">N</td><td align="left"> </td></tr><tr bgcolor="#C8B0B0"><td align="left">7.11.3</td><td align="left"><code class="code">regex_search</code></td><td align="left">N</td><td align="left"> </td></tr><tr bgcolor="#C8B0B0"><td align="left">7.11.4</td><td align="left"><code class="code">regex_replace</code></td><td align="left">N</td><td align="left"> </td></tr><tr bgcolor="#C8B0B0"><td align="left">7.12</td><td align="left">Regular expression Iterators</td><td align="left">N</td><td align="left"> </td></tr><tr bgcolor="#C8B0B0"><td align="left">7.12.1</td><td align="left">Class template <code class="code">regex_iterator</code></td><td align="left">N</td><td align="left"> </td></tr><tr bgcolor="#C8B0B0"><td align="left">7.12.1.1</td><td align="left"><code class="code">regex_iterator</code> constructors</td><td align="left">N</td><td align="left"> </td></tr><tr bgcolor="#C8B0B0"><td align="left">7.12.1.2</td><td align="left"><code class="code">regex_iterator</code> comparisons</td><td align="left">N</td><td align="left"> </td></tr><tr bgcolor="#C8B0B0"><td align="left">7.12.1.3</td><td align="left"><code class="code">regex_iterator</code> dereference</td><td align="left">N</td><td align="left"> </td></tr><tr bgcolor="#C8B0B0"><td align="left">7.12.1.4</td><td align="left"><code class="code">regex_iterator</code> increment</td><td align="left">N</td><td align="left"> </td></tr><tr bgcolor="#C8B0B0"><td align="left">7.12.2</td><td align="left">Class template <code class="code">regex_token_iterator</code></td><td align="left">N</td><td align="left"> </td></tr><tr bgcolor="#C8B0B0"><td align="left">7.12.2.1</td><td align="left"><code class="code">regex_token_iterator</code> constructors</td><td align="left">N</td><td align="left"> </td></tr><tr bgcolor="#C8B0B0"><td align="left">7.12.2.2</td><td align="left"><code class="code">regex_token_iterator</code> comparisons</td><td align="left">N</td><td align="left"> </td></tr><tr bgcolor="#C8B0B0"><td align="left">7.12.2.3</td><td align="left"><code class="code">regex_token_iterator</code> dereference</td><td align="left">N</td><td align="left"> </td></tr><tr bgcolor="#C8B0B0"><td align="left">7.12.2.4</td><td align="left"><code class="code">regex_token_iterator</code> increment</td><td align="left">N</td><td align="left"> </td></tr><tr bgcolor="#C8B0B0"><td align="left">7.13</td><td align="left">Modified ECMAScript regular expression grammar</td><td align="left">N</td><td align="left"> </td></tr><tr><td align="left"><span class="emphasis"><em>8</em></span></td><td colspan="3" align="left"><span class="emphasis"><em>C Compatibility</em></span></td></tr><tr><td align="left">8.1</td><td align="left">Additions to header <code class="code"><complex></code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">8.1.1</td><td align="left">Synopsis</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">8.1.2</td><td align="left">Function <code class="code">acos</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">8.1.3</td><td align="left">Function <code class="code">asin</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">8.1.4</td><td align="left">Function <code class="code">atan</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">8.1.5</td><td align="left">Function <code class="code">acosh</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">8.1.6</td><td align="left">Function <code class="code">asinh</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">8.1.7</td><td align="left">Function <code class="code">atanh</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">8.1.8</td><td align="left">Function <code class="code">fabs</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">8.1.9</td><td align="left">Additional Overloads</td><td align="left">Y</td><td align="left"> </td></tr><tr bgcolor="#C8B0B0"><td align="left">8.2</td><td align="left">Header <code class="code"><ccomplex></code></td><td align="left">N</td><td align="left">DR 551</td></tr><tr bgcolor="#C8B0B0"><td align="left">8.3</td><td align="left">Header <code class="code"><complex.h></code></td><td align="left">N</td><td align="left">DR 551</td></tr><tr><td align="left">8.4</td><td align="left">Additions to header <code class="code"><cctype></code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">8.4.1</td><td align="left">Synopsis</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">8.4.2</td><td align="left">Function <code class="code">isblank</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">8.5</td><td align="left">Additions to header <code class="code"><ctype.h></code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">8.6</td><td align="left">Header <code class="code"><cfenv></code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">8.6.1</td><td align="left">Synopsis</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">8.6.2</td><td align="left">Definitions</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">8.7</td><td align="left">Header <code class="code"><fenv.h></code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">8.8</td><td align="left">Additions to header <code class="code"><cfloat></code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">8.9</td><td align="left">Additions to header <code class="code"><float.h></code></td><td align="left">Y</td><td align="left"> </td></tr><tr bgcolor="#C8B0B0"><td align="left">8.10</td><td align="left">Additions to header <code class="code"><ios></code></td><td align="left">N</td><td align="left"> </td></tr><tr bgcolor="#C8B0B0"><td align="left">8.10.1</td><td align="left">Synopsis</td><td align="left">N</td><td align="left"> </td></tr><tr bgcolor="#C8B0B0"><td align="left">8.10.2</td><td align="left">Function <code class="code">hexfloat</code></td><td align="left">N</td><td align="left"> </td></tr><tr><td align="left">8.11</td><td align="left">Header <code class="code"><cinttypes></code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">8.11.1</td><td align="left">Synopsis</td><td align="left">Y</td><td align="left">DR 557</td></tr><tr><td align="left">8.11.2</td><td align="left">Definitions</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">8.12</td><td align="left">Header <code class="code"><inttypes.h></code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">8.13</td><td align="left">Additions to header <code class="code"><climits></code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">8.14</td><td align="left">Additions to header <code class="code"><limits.h></code></td><td align="left">Y</td><td align="left"> </td></tr><tr bgcolor="#C8B0B0"><td align="left">8.15</td><td align="left">Additions to header <code class="code"><locale></code></td><td align="left">N</td><td align="left"> </td></tr><tr><td align="left">8.16</td><td align="left">Additions to header <code class="code"><cmath></code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">8.16.1</td><td align="left">Synopsis</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">8.16.2</td><td align="left">Definitions</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">8.16.3</td><td align="left">Function template definitions</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">8.16.4</td><td align="left">Additional overloads</td><td align="left">Y</td><td align="left">DR 568; DR 550</td></tr><tr><td align="left">8.17</td><td align="left">Additions to header <code class="code"><math.h></code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">8.18</td><td align="left">Additions to header <code class="code"><cstdarg></code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">8.19</td><td align="left">Additions to header <code class="code"><stdarg.h></code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">8.20</td><td align="left">The header <code class="code"><cstdbool></code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">8.21</td><td align="left">The header <code class="code"><stdbool.h></code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">8.22</td><td align="left">The header <code class="code"><cstdint></code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">8.22.1</td><td align="left">Synopsis</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">8.22.2</td><td align="left">Definitions</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">8.23</td><td align="left">The header <code class="code"><stdint.h></code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">8.24</td><td align="left">Additions to header <code class="code"><cstdio></code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">8.24.1</td><td align="left">Synopsis</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">8.24.2</td><td align="left">Definitions</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">8.24.3</td><td align="left">Additional format specifiers</td><td align="left">Y</td><td align="left">C library dependency</td></tr><tr><td align="left">8.24.4</td><td align="left">Additions to header <code class="code"><stdio.h></code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">8.25</td><td align="left">Additions to header <code class="code"><cstdlib></code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">8.25.1</td><td align="left">Synopsis</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">8.25.2</td><td align="left">Definitions</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">8.25.3</td><td align="left">Function <code class="code">abs</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">8.25.4</td><td align="left">Function <code class="code">div</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">8.26</td><td align="left">Additions to header <code class="code"><stdlib.h></code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">8.27</td><td align="left">Header <code class="code"><ctgmath></code></td><td align="left">Y</td><td align="left">DR 551</td></tr><tr><td align="left">8.28</td><td align="left">Header <code class="code"><tgmath.h></code></td><td align="left">Y</td><td align="left">DR 551</td></tr><tr><td align="left">8.29</td><td align="left">Additions to header <code class="code"><ctime></code></td><td align="left">Y</td><td align="left">C library dependency</td></tr><tr><td align="left">8.30</td><td align="left">Additions to header <code class="code"><cwchar></code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">8.30.1</td><td align="left">Synopsis</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">8.30.2</td><td align="left">Definitions</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">8.30.3</td><td align="left">Additional wide format specifiers</td><td align="left">Y</td><td align="left">C library dependency</td></tr><tr><td align="left">8.31</td><td align="left">Additions to header <code class="code"><wchar.h></code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">8.32</td><td align="left">Additions to header <code class="code"><cwctype></code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">8.32.1</td><td align="left">Synopsis</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">8.32.2</td><td align="left">Function <code class="code">iswblank</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">8.33</td><td align="left">Additions to header <code class="code"><wctype.h></code></td><td align="left">Y</td><td align="left"> </td></tr></tbody></table></div></div><br class="table-break" /><div class="section" title="Implementation Specific Behavior"><div class="titlepage"><div><div><h4 class="title"><a id="iso.tr1.specific"></a>Implementation Specific Behavior</h4></div></div></div><p>For behaviour which is specified by the 1998 and 2003 standards, | |
2062 | see <a class="link" href="status.html#iso.1998.specific" title="Implementation Specific Behavior">C++ 1998/2003 Implementation | |
2063 | Specific Behavior</a>. This section documents behaviour which | |
2064 | is required by TR1. | |
2065 | @@ -303,7 +299,7 @@ | |
2066 | <span class="emphasis"><em>3.6.4 [tr.func.bind.place]/1</em></span> There are 29 | |
2067 | placeholders defined and the placeholder types are | |
2068 | <code class="literal">Assignable</code>. | |
2069 | - </p></div></div><div class="section" title="C++ TR 24733"><div class="titlepage"><div><div><h3 class="title"><a id="status.iso.tr24733"/>C++ TR 24733</h3></div></div></div><p> | |
2070 | + </p></div></div><div class="section" title="C++ TR 24733"><div class="titlepage"><div><div><h3 class="title"><a id="status.iso.tr24733"></a>C++ TR 24733</h3></div></div></div><p> | |
2071 | This table is based on the table of contents of | |
2072 | ISO/IEC TR 24733 Date: 2009-08-28 | |
2073 | Extension for the programming language C++ to support | |
2074 | @@ -311,27 +307,27 @@ | |
2075 | </p><p> | |
2076 | This page describes the TR 24733 support in mainline GCC SVN, not in any | |
2077 | particular release. | |
2078 | -</p><div class="table"><a id="id473964"/><p class="title"><strong>Table 1.4. C++ TR 24733 Implementation Status</strong></p><div class="table-contents"><table summary="C++ TR 24733 Implementation Status" border="1"><colgroup><col style="text-align: left" class="c1"/><col style="text-align: left" class="c2"/><col style="text-align: left" class="c3"/><col style="text-align: left" class="c4"/></colgroup><thead><tr><th style="text-align: left">Section</th><th style="text-align: left">Description</th><th style="text-align: left">Status</th><th style="text-align: left">Comments</th></tr></thead><tbody><tr><td style="text-align: left"> | |
2079 | +</p><div class="table"><a id="id652443"></a><p class="title"><strong>Table 1.4. C++ TR 24733 Implementation Status</strong></p><div class="table-contents"><table summary="C++ TR 24733 Implementation Status" border="1"><colgroup><col align="left" class="c1" /><col align="left" class="c2" /><col align="left" class="c3" /><col align="left" class="c4" /></colgroup><thead><tr><th align="left">Section</th><th align="left">Description</th><th align="left">Status</th><th align="left">Comments</th></tr></thead><tbody><tr><td align="left"> | |
2080 | <span class="emphasis"><em>0</em></span> | |
2081 | - </td><td colspan="3" style="text-align: left"> | |
2082 | + </td><td colspan="3" align="left"> | |
2083 | <span class="emphasis"><em>Introduction</em></span> | |
2084 | - </td></tr><tr><td style="text-align: left"> | |
2085 | + </td></tr><tr><td align="left"> | |
2086 | <span class="emphasis"><em>1</em></span> | |
2087 | - </td><td colspan="3" style="text-align: left"> | |
2088 | + </td><td colspan="3" align="left"> | |
2089 | <span class="emphasis"><em>Normative references</em></span> | |
2090 | - </td></tr><tr><td style="text-align: left"> | |
2091 | + </td></tr><tr><td align="left"> | |
2092 | <span class="emphasis"><em>2</em></span> | |
2093 | - </td><td colspan="3" style="text-align: left"> | |
2094 | + </td><td colspan="3" align="left"> | |
2095 | <span class="emphasis"><em>Conventions</em></span> | |
2096 | - </td></tr><tr><td style="text-align: left"> | |
2097 | + </td></tr><tr><td align="left"> | |
2098 | <span class="emphasis"><em>3</em></span> | |
2099 | - </td><td colspan="3" style="text-align: left"> | |
2100 | + </td><td colspan="3" align="left"> | |
2101 | <span class="emphasis"><em>Decimal floating-point types</em></span> | |
2102 | - </td></tr><tr><td style="text-align: left">3.1</td><td style="text-align: left">Characteristics of decimal floating-point types</td><td style="text-align: left"> </td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">3.2</td><td style="text-align: left">Decimal Types</td><td style="text-align: left"> </td><td style="text-align: left"> </td></tr><tr style="background-color: #B0B0B0"><td style="text-align: left">3.2.1</td><td style="text-align: left">Class <code class="code">decimal</code> synopsis</td><td style="text-align: left">Partial</td><td style="text-align: left">Missing declarations for formatted input/output; non-conforming extension for functions converting to integral type</td></tr><tr style="background-color: #B0B0B0"><td style="text-align: left">3.2.2</td><td style="text-align: left">Class <code class="code">decimal32</code></td><td style="text-align: left">Partial</td><td style="text-align: left">Missing 3.2.2.5 conversion to integral type; conforming extension for conversion from scalar decimal floating-point</td></tr><tr style="background-color: #B0B0B0"><td style="text-align: left">3.2.3</td><td style="text-align: left">Class <code class="code">decimal64</code></td><td style="text-align: left">Partial</td><td style="text-align: left">Missing 3.2.3.5 conversion to integral type; conforming extension for conversion from scalar decimal floating-point</td></tr><tr style="background-color: #B0B0B0"><td style="text-align: left">3.2.4</td><td style="text-align: left">Class <code class="code">decimal128</code></td><td style="text-align: left">Partial</td><td style="text-align: left">Missing 3.2.4.5 conversion to integral type; conforming extension for conversion from scalar decimal floating-point</td></tr><tr><td style="text-align: left">3.2.5</td><td style="text-align: left">Initialization from coefficient and exponent</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">3.2.6</td><td style="text-align: left">Conversion to generic floating-point type</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">3.2.7</td><td style="text-align: left">Unary arithmetic operators</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">3.2.8</td><td style="text-align: left">Binary arithmetic operators</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">3.2.9</td><td style="text-align: left">Comparison operators</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr style="background-color: #C8B0B0"><td style="text-align: left">3.2.10</td><td style="text-align: left">Formatted input</td><td style="text-align: left">N</td><td style="text-align: left"> </td></tr><tr style="background-color: #C8B0B0"><td style="text-align: left">3.2.11</td><td style="text-align: left">Formatted output</td><td style="text-align: left">N</td><td style="text-align: left"> </td></tr><tr style="background-color: #C8B0B0"><td style="text-align: left">3.3</td><td style="text-align: left">Additions to header <code class="code">limits</code></td><td style="text-align: left">N</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">3.4</td><td style="text-align: left">Headers <code class="code">cfloat</code> and <code class="code">float.h</code></td><td style="text-align: left"> </td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">3.4.2</td><td style="text-align: left">Additions to header <code class="code">cfloat</code> synopsis</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr style="background-color: #B0B0B0"><td style="text-align: left">3.4.3</td><td style="text-align: left">Additions to header <code class="code">float.h</code> synopsis</td><td style="text-align: left">N</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">3.4.4</td><td style="text-align: left">Maximum finite value</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">3.4.5</td><td style="text-align: left">Epsilon</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">3.4.6</td><td style="text-align: left">Minimum positive normal value</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">3.4.7</td><td style="text-align: left">Minimum positive subnormal value</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">3.4.8</td><td style="text-align: left">Evaluation format</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr style="background-color: #C8B0B0"><td style="text-align: left">3.5</td><td style="text-align: left">Additions to <code class="code">cfenv</code> and <code class="code">fenv.h</code></td><td style="text-align: left">Outside the scope of GCC</td><td style="text-align: left"> </td></tr><tr style="background-color: #C8B0B0"><td style="text-align: left">3.6</td><td style="text-align: left">Additions to <code class="code">cmath</code> and <code class="code">math.h</code></td><td style="text-align: left">Outside the scope of GCC</td><td style="text-align: left"> </td></tr><tr style="background-color: #C8B0B0"><td style="text-align: left">3.7</td><td style="text-align: left">Additions to <code class="code">cstdio</code> and <code class="code">stdio.h</code></td><td style="text-align: left">Outside the scope of GCC</td><td style="text-align: left"> </td></tr><tr style="background-color: #C8B0B0"><td style="text-align: left">3.8</td><td style="text-align: left">Additions to <code class="code">cstdlib</code> and <code class="code">stdlib.h</code></td><td style="text-align: left">Outside the scope of GCC</td><td style="text-align: left"> </td></tr><tr style="background-color: #C8B0B0"><td style="text-align: left">3.9</td><td style="text-align: left">Additions to <code class="code">cwchar</code> and <code class="code">wchar.h</code></td><td style="text-align: left">Outside the scope of GCC</td><td style="text-align: left"> </td></tr><tr style="background-color: #C8B0B0"><td style="text-align: left">3.10</td><td style="text-align: left">Facets</td><td style="text-align: left">N</td><td style="text-align: left"> </td></tr><tr style="background-color: #C8B0B0"><td style="text-align: left">3.11</td><td style="text-align: left">Type traits</td><td style="text-align: left">N</td><td style="text-align: left"> </td></tr><tr style="background-color: #C8B0B0"><td style="text-align: left">3.12</td><td style="text-align: left">Hash functions</td><td style="text-align: left">N</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left"> | |
2103 | + </td></tr><tr><td align="left">3.1</td><td align="left">Characteristics of decimal floating-point types</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">3.2</td><td align="left">Decimal Types</td><td align="left"> </td><td align="left"> </td></tr><tr bgcolor="#B0B0B0"><td align="left">3.2.1</td><td align="left">Class <code class="code">decimal</code> synopsis</td><td align="left">Partial</td><td align="left">Missing declarations for formatted input/output; non-conforming extension for functions converting to integral type</td></tr><tr bgcolor="#B0B0B0"><td align="left">3.2.2</td><td align="left">Class <code class="code">decimal32</code></td><td align="left">Partial</td><td align="left">Missing 3.2.2.5 conversion to integral type; conforming extension for conversion from scalar decimal floating-point</td></tr><tr bgcolor="#B0B0B0"><td align="left">3.2.3</td><td align="left">Class <code class="code">decimal64</code></td><td align="left">Partial</td><td align="left">Missing 3.2.3.5 conversion to integral type; conforming extension for conversion from scalar decimal floating-point</td></tr><tr bgcolor="#B0B0B0"><td align="left">3.2.4</td><td align="left">Class <code class="code">decimal128</code></td><td align="left">Partial</td><td align="left">Missing 3.2.4.5 conversion to integral type; conforming extension for conversion from scalar decimal floating-point</td></tr><tr><td align="left">3.2.5</td><td align="left">Initialization from coefficient and exponent</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">3.2.6</td><td align="left">Conversion to generic floating-point type</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">3.2.7</td><td align="left">Unary arithmetic operators</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">3.2.8</td><td align="left">Binary arithmetic operators</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">3.2.9</td><td align="left">Comparison operators</td><td align="left">Y</td><td align="left"> </td></tr><tr bgcolor="#C8B0B0"><td align="left">3.2.10</td><td align="left">Formatted input</td><td align="left">N</td><td align="left"> </td></tr><tr bgcolor="#C8B0B0"><td align="left">3.2.11</td><td align="left">Formatted output</td><td align="left">N</td><td align="left"> </td></tr><tr bgcolor="#C8B0B0"><td align="left">3.3</td><td align="left">Additions to header <code class="code">limits</code></td><td align="left">N</td><td align="left"> </td></tr><tr><td align="left">3.4</td><td align="left">Headers <code class="code">cfloat</code> and <code class="code">float.h</code></td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">3.4.2</td><td align="left">Additions to header <code class="code">cfloat</code> synopsis</td><td align="left">Y</td><td align="left"> </td></tr><tr bgcolor="#B0B0B0"><td align="left">3.4.3</td><td align="left">Additions to header <code class="code">float.h</code> synopsis</td><td align="left">N</td><td align="left"> </td></tr><tr><td align="left">3.4.4</td><td align="left">Maximum finite value</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">3.4.5</td><td align="left">Epsilon</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">3.4.6</td><td align="left">Minimum positive normal value</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">3.4.7</td><td align="left">Minimum positive subnormal value</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">3.4.8</td><td align="left">Evaluation format</td><td align="left">Y</td><td align="left"> </td></tr><tr bgcolor="#C8B0B0"><td align="left">3.5</td><td align="left">Additions to <code class="code">cfenv</code> and <code class="code">fenv.h</code></td><td align="left">Outside the scope of GCC</td><td align="left"> </td></tr><tr bgcolor="#C8B0B0"><td align="left">3.6</td><td align="left">Additions to <code class="code">cmath</code> and <code class="code">math.h</code></td><td align="left">Outside the scope of GCC</td><td align="left"> </td></tr><tr bgcolor="#C8B0B0"><td align="left">3.7</td><td align="left">Additions to <code class="code">cstdio</code> and <code class="code">stdio.h</code></td><td align="left">Outside the scope of GCC</td><td align="left"> </td></tr><tr bgcolor="#C8B0B0"><td align="left">3.8</td><td align="left">Additions to <code class="code">cstdlib</code> and <code class="code">stdlib.h</code></td><td align="left">Outside the scope of GCC</td><td align="left"> </td></tr><tr bgcolor="#C8B0B0"><td align="left">3.9</td><td align="left">Additions to <code class="code">cwchar</code> and <code class="code">wchar.h</code></td><td align="left">Outside the scope of GCC</td><td align="left"> </td></tr><tr bgcolor="#C8B0B0"><td align="left">3.10</td><td align="left">Facets</td><td align="left">N</td><td align="left"> </td></tr><tr bgcolor="#C8B0B0"><td align="left">3.11</td><td align="left">Type traits</td><td align="left">N</td><td align="left"> </td></tr><tr bgcolor="#C8B0B0"><td align="left">3.12</td><td align="left">Hash functions</td><td align="left">N</td><td align="left"> </td></tr><tr><td align="left"> | |
2104 | <span class="emphasis"><em>4</em></span> | |
2105 | - </td><td colspan="3" style="text-align: left"> | |
2106 | + </td><td colspan="3" align="left"> | |
2107 | <span class="emphasis"><em>Notes on C compatibility</em></span> | |
2108 | - </td></tr></tbody></table></div></div><br class="table-break"/></div></div></div><div class="navfooter"><hr/><table width="100%" summary="Navigation footer"><tr><td align="left"><a accesskey="p" href="intro.html">Prev</a> </td><td align="center"><a accesskey="u" href="intro.html">Up</a></td><td align="right"> <a accesskey="n" href="license.html">Next</a></td></tr><tr><td align="left" valign="top">Part I. | |
2109 | + </td></tr></tbody></table></div></div><br class="table-break" /></div></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="intro.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="intro.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="license.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Part I. | |
2110 | Introduction | |
2111 | ||
2112 | - </td><td align="center"><a accesskey="h" href="../index.html">Home</a></td><td align="right" valign="top"> License</td></tr></table></div></body></html> | |
2113 | + </td><td width="20%" align="center"><a accesskey="h" href="../index.html">Home</a></td><td width="40%" align="right" valign="top"> License</td></tr></table></div></body></html> | |
2114 | Index: libstdc++-v3/doc/html/manual/policy_data_structures_design.html | |
2115 | =================================================================== | |
9f95000d AM |
2116 | --- libstdc++-v3/doc/html/manual/policy_data_structures_design.html (.../tags/gcc_4_7_2_release) (wersja 192468) |
2117 | +++ libstdc++-v3/doc/html/manual/policy_data_structures_design.html (.../branches/gcc-4_7-branch) (wersja 192468) | |
5a87b929 AM |
2118 | @@ -1,6 +1,6 @@ |
2119 | <?xml version="1.0" encoding="UTF-8" standalone="no"?> | |
2120 | -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> | |
2121 | -<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Design</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1"/><meta name="keywords" content=" 	ISO C++ , 	policy , 	container , 	data , 	structure , 	associated , 	tree , 	trie , 	hash , 	metaprogramming "/><meta name="keywords" content=" ISO C++ , library "/><meta name="keywords" content=" ISO C++ , runtime , library "/><link rel="home" href="../index.html" title="The GNU C++ Library"/><link rel="up" href="policy_data_structures.html" title="Chapter 22. Policy-Based Data Structures"/><link rel="prev" href="policy_data_structures_using.html" title="Using"/><link rel="next" href="policy_based_data_structures_test.html" title="Testing"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Design</th></tr><tr><td align="left"><a accesskey="p" href="policy_data_structures_using.html">Prev</a> </td><th width="60%" align="center">Chapter 22. Policy-Based Data Structures</th><td align="right"> <a accesskey="n" href="policy_based_data_structures_test.html">Next</a></td></tr></table><hr/></div><div class="section" title="Design"><div class="titlepage"><div><div><h2 class="title"><a id="containers.pbds.design"/>Design</h2></div></div></div><p/><div class="section" title="Concepts"><div class="titlepage"><div><div><h3 class="title"><a id="pbds.design.concepts"/>Concepts</h3></div></div></div><div class="section" title="Null Policy Classes"><div class="titlepage"><div><div><h4 class="title"><a id="pbds.design.concepts.null_type"/>Null Policy Classes</h4></div></div></div><p> | |
2122 | +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> | |
2123 | +<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Design</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1" /><meta name="keywords" content=" 	ISO C++ , 	policy , 	container , 	data , 	structure , 	associated , 	tree , 	trie , 	hash , 	metaprogramming " /><meta name="keywords" content=" ISO C++ , library " /><meta name="keywords" content=" ISO C++ , runtime , library " /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="policy_data_structures.html" title="Chapter 22. Policy-Based Data Structures" /><link rel="prev" href="policy_data_structures_using.html" title="Using" /><link rel="next" href="policy_based_data_structures_test.html" title="Testing" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Design</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="policy_data_structures_using.html">Prev</a> </td><th width="60%" align="center">Chapter 22. Policy-Based Data Structures</th><td width="20%" align="right"> <a accesskey="n" href="policy_based_data_structures_test.html">Next</a></td></tr></table><hr /></div><div class="section" title="Design"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="containers.pbds.design"></a>Design</h2></div></div></div><p></p><div class="section" title="Concepts"><div class="titlepage"><div><div><h3 class="title"><a id="pbds.design.concepts"></a>Concepts</h3></div></div></div><div class="section" title="Null Policy Classes"><div class="titlepage"><div><div><h4 class="title"><a id="pbds.design.concepts.null_type"></a>Null Policy Classes</h4></div></div></div><p> | |
2124 | Associative containers are typically parametrized by various | |
2125 | policies. For example, a hash-based associative container is | |
2126 | parametrized by a hash-functor, transforming each key into an | |
2127 | @@ -27,7 +27,7 @@ | |
2128 | places simplifications are made possible with this technique | |
2129 | include node updates in tree and trie data structures, and hash | |
2130 | and probe functions for hash data structures. | |
2131 | - </p></div><div class="section" title="Map and Set Semantics"><div class="titlepage"><div><div><h4 class="title"><a id="pbds.design.concepts.associative_semantics"/>Map and Set Semantics</h4></div></div></div><div class="section" title="Distinguishing Between Maps and Sets"><div class="titlepage"><div><div><h5 class="title"><a id="concepts.associative_semantics.set_vs_map"/> | |
2132 | + </p></div><div class="section" title="Map and Set Semantics"><div class="titlepage"><div><div><h4 class="title"><a id="pbds.design.concepts.associative_semantics"></a>Map and Set Semantics</h4></div></div></div><div class="section" title="Distinguishing Between Maps and Sets"><div class="titlepage"><div><div><h5 class="title"><a id="concepts.associative_semantics.set_vs_map"></a> | |
2133 | Distinguishing Between Maps and Sets | |
2134 | </h5></div></div></div><p> | |
2135 | Anyone familiar with the standard knows that there are four kinds | |
2136 | @@ -93,7 +93,7 @@ | |
2137 | </p><p> | |
2138 | When one uses a "multimap," one should choose with care the | |
2139 | type of container used for secondary keys. | |
2140 | - </p></div><div class="section" title="Alternatives to std::multiset and std::multimap"><div class="titlepage"><div><div><h5 class="title"><a id="concepts.associative_semantics.multi"/>Alternatives to <code class="classname">std::multiset</code> and <code class="classname">std::multimap</code></h5></div></div></div><p> | |
2141 | + </p></div><div class="section" title="Alternatives to std::multiset and std::multimap"><div class="titlepage"><div><div><h5 class="title"><a id="concepts.associative_semantics.multi"></a>Alternatives to <code class="classname">std::multiset</code> and <code class="classname">std::multimap</code></h5></div></div></div><p> | |
2142 | Brace onself: this library does not contain containers like | |
2143 | <code class="classname">std::multimap</code> or | |
2144 | <code class="classname">std::multiset</code>. Instead, these data | |
2145 | @@ -171,7 +171,7 @@ | |
2146 | naturally; collision-chaining hash tables (label B) store | |
2147 | equivalent-key values in the same bucket, the bucket can be | |
2148 | arranged so that equivalent-key values are consecutive. | |
2149 | - </p><div class="figure"><a id="id519449"/><p class="title"><strong>Figure 22.8. Non-unique Mapping Standard Containers</strong></p><div class="figure-contents"><div class="mediaobject" style="text-align: center"><img src="../images/pbds_embedded_lists_1.png" style="text-align: middle" alt="Non-unique Mapping Standard Containers"/></div></div></div><br class="figure-break"/><p> | |
2150 | + </p><div class="figure"><a id="id697936"></a><p class="title"><strong>Figure 22.8. Non-unique Mapping Standard Containers</strong></p><div class="figure-contents"><div class="mediaobject" align="center"><img src="../images/pbds_embedded_lists_1.png" align="middle" alt="Non-unique Mapping Standard Containers" /></div></div></div><br class="figure-break" /><p> | |
2151 | Put differently, the standards' non-unique mapping | |
2152 | associative-containers are associative containers that map | |
2153 | primary keys to linked lists that are embedded into the | |
2154 | @@ -179,12 +179,12 @@ | |
2155 | containers from the first graphic above, this time with | |
2156 | the embedded linked lists of the grayed nodes marked | |
2157 | explicitly. | |
2158 | - </p><div class="figure"><a id="fig.pbds_embedded_lists_2"/><p class="title"><strong>Figure 22.9. | |
2159 | + </p><div class="figure"><a id="fig.pbds_embedded_lists_2"></a><p class="title"><strong>Figure 22.9. | |
2160 | Effect of embedded lists in | |
2161 | <code class="classname">std::multimap</code> | |
2162 | - </strong></p><div class="figure-contents"><div class="mediaobject" style="text-align: center"><img src="../images/pbds_embedded_lists_2.png" style="text-align: middle" alt="Effect of embedded lists in std::multimap"/></div></div></div><br class="figure-break"/><p> | |
2163 | + </strong></p><div class="figure-contents"><div class="mediaobject" align="center"><img src="../images/pbds_embedded_lists_2.png" align="middle" alt="Effect of embedded lists in std::multimap" /></div></div></div><br class="figure-break" /><p> | |
2164 | These embedded linked lists have several disadvantages. | |
2165 | - </p><div class="orderedlist"><ol class="orderedlist"><li class="listitem"><p> | |
2166 | + </p><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><p> | |
2167 | The underlying data structure embeds the linked lists | |
2168 | according to its own consideration, which means that the | |
2169 | search path for a value might include several different | |
2170 | @@ -215,7 +215,7 @@ | |
2171 | The above reasons hold even when the ratio of secondary keys to | |
2172 | primary keys (or average number of identical keys) is small, but | |
2173 | when it is large, there are more severe problems: | |
2174 | - </p><div class="orderedlist"><ol class="orderedlist"><li class="listitem"><p> | |
2175 | + </p><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><p> | |
2176 | The underlying data structures order the links inside each | |
2177 | embedded linked-lists according to their internal | |
2178 | considerations, which effectively means that each of the | |
2179 | @@ -253,7 +253,7 @@ | |
2180 | first graphic above. Labels A and B, respectively. Each shaded | |
2181 | box represents some size-type or secondary | |
2182 | associative-container. | |
2183 | - </p><div class="figure"><a id="id519645"/><p class="title"><strong>Figure 22.10. Non-unique Mapping Containers</strong></p><div class="figure-contents"><div class="mediaobject" style="text-align: center"><img src="../images/pbds_embedded_lists_3.png" style="text-align: middle" alt="Non-unique Mapping Containers"/></div></div></div><br class="figure-break"/><p> | |
2184 | + </p><div class="figure"><a id="id698132"></a><p class="title"><strong>Figure 22.10. Non-unique Mapping Containers</strong></p><div class="figure-contents"><div class="mediaobject" align="center"><img src="../images/pbds_embedded_lists_3.png" align="middle" alt="Non-unique Mapping Containers" /></div></div></div><br class="figure-break" /><p> | |
2185 | In the first example above, then, one would use an associative | |
2186 | container mapping each user to an associative container which | |
2187 | maps each application id to a start time (see | |
2188 | @@ -265,7 +265,7 @@ | |
2189 | </p><p> | |
2190 | See the discussion in list-based container types for containers | |
2191 | especially suited as secondary associative-containers. | |
2192 | - </p></div></div><div class="section" title="Iterator Semantics"><div class="titlepage"><div><div><h4 class="title"><a id="pbds.design.concepts.iterator_semantics"/>Iterator Semantics</h4></div></div></div><div class="section" title="Point and Range Iterators"><div class="titlepage"><div><div><h5 class="title"><a id="concepts.iterator_semantics.point_and_range"/>Point and Range Iterators</h5></div></div></div><p> | |
2193 | + </p></div></div><div class="section" title="Iterator Semantics"><div class="titlepage"><div><div><h4 class="title"><a id="pbds.design.concepts.iterator_semantics"></a>Iterator Semantics</h4></div></div></div><div class="section" title="Point and Range Iterators"><div class="titlepage"><div><div><h5 class="title"><a id="concepts.iterator_semantics.point_and_range"></a>Point and Range Iterators</h5></div></div></div><p> | |
2194 | Iterator concepts are bifurcated in this design, and are | |
2195 | comprised of point-type and range-type iteration. | |
2196 | </p><p> | |
2197 | @@ -286,7 +286,7 @@ | |
2198 | implementation, including that of C++ standard library | |
2199 | components), but in this design, it is made explicit. They are | |
2200 | distinct types. | |
2201 | - </p></div><div class="section" title="Distinguishing Point and Range Iterators"><div class="titlepage"><div><div><h5 class="title"><a id="concepts.iterator_semantics.both"/>Distinguishing Point and Range Iterators</h5></div></div></div><p>When using this library, is necessary to differentiate | |
2202 | + </p></div><div class="section" title="Distinguishing Point and Range Iterators"><div class="titlepage"><div><div><h5 class="title"><a id="concepts.iterator_semantics.both"></a>Distinguishing Point and Range Iterators</h5></div></div></div><p>When using this library, is necessary to differentiate | |
2203 | between two types of methods and iterators: point-type methods and | |
2204 | iterators, and range-type methods and iterators. Each associative | |
2205 | container's interface includes the methods:</p><pre class="programlisting"> | |
2206 | @@ -306,7 +306,7 @@ | |
2207 | shows invariants for order-preserving containers: point-type | |
2208 | iterators are synonymous with range-type iterators. | |
2209 | Orthogonally, <span class="emphasis"><em>C</em></span>shows invariants for "set" | |
2210 | - containers: iterators are synonymous with const iterators.</p><div class="figure"><a id="id519810"/><p class="title"><strong>Figure 22.11. Point Iterator Hierarchy</strong></p><div class="figure-contents"><div class="mediaobject" style="text-align: center"><img src="../images/pbds_point_iterator_hierarchy.png" style="text-align: middle" alt="Point Iterator Hierarchy"/></div></div></div><br class="figure-break"/><p>Note that point-type iterators in self-organizing containers | |
2211 | + containers: iterators are synonymous with const iterators.</p><div class="figure"><a id="id698297"></a><p class="title"><strong>Figure 22.11. Point Iterator Hierarchy</strong></p><div class="figure-contents"><div class="mediaobject" align="center"><img src="../images/pbds_point_iterator_hierarchy.png" align="middle" alt="Point Iterator Hierarchy" /></div></div></div><br class="figure-break" /><p>Note that point-type iterators in self-organizing containers | |
2212 | (hash-based associative containers) lack movement | |
2213 | operators, such as <code class="literal">operator++</code> - in fact, this | |
2214 | is the reason why this library differentiates from the standard C++ librarys | |
2215 | @@ -322,7 +322,7 @@ | |
2216 | a concept in C++ standardese, which is the category of iterators | |
2217 | with no movement capabilities.) All other standard C++ library | |
2218 | tags, such as <code class="literal">forward_iterator_tag</code> retain their | |
2219 | - common use.</p></div><div class="section" title="Invalidation Guarantees"><div class="titlepage"><div><div><h5 class="title"><a id="pbds.design.concepts.invalidation"/>Invalidation Guarantees</h5></div></div></div><p> | |
2220 | + common use.</p></div><div class="section" title="Invalidation Guarantees"><div class="titlepage"><div><div><h5 class="title"><a id="pbds.design.concepts.invalidation"></a>Invalidation Guarantees</h5></div></div></div><p> | |
2221 | If one manipulates a container object, then iterators previously | |
2222 | obtained from it can be invalidated. In some cases a | |
2223 | previously-obtained iterator cannot be de-referenced; in other cases, | |
2224 | @@ -345,7 +345,7 @@ | |
2225 | to the question of whether point-type iterators and range-type | |
2226 | iterators are valid. The graphic below shows tags corresponding to | |
2227 | different types of invalidation guarantees. | |
2228 | - </p><div class="figure"><a id="id519922"/><p class="title"><strong>Figure 22.12. Invalidation Guarantee Tags Hierarchy</strong></p><div class="figure-contents"><div class="mediaobject" style="text-align: center"><img src="../images/pbds_invalidation_tag_hierarchy.png" style="text-align: middle" alt="Invalidation Guarantee Tags Hierarchy"/></div></div></div><br class="figure-break"/><div class="itemizedlist"><ul class="itemizedlist"><li class="listitem"><p> | |
2229 | + </p><div class="figure"><a id="id698408"></a><p class="title"><strong>Figure 22.12. Invalidation Guarantee Tags Hierarchy</strong></p><div class="figure-contents"><div class="mediaobject" align="center"><img src="../images/pbds_invalidation_tag_hierarchy.png" align="middle" alt="Invalidation Guarantee Tags Hierarchy" /></div></div></div><br class="figure-break" /><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p> | |
2230 | <code class="classname">basic_invalidation_guarantee</code> | |
2231 | corresponds to a basic guarantee that a point-type iterator, | |
2232 | a found pointer, or a found reference, remains valid as long | |
2233 | @@ -376,7 +376,7 @@ | |
2234 | our opinion, an invalidation-guarantee hierarchy would solve | |
2235 | these problems in all container types - not just associative | |
2236 | containers. | |
2237 | - </p></div></div><div class="section" title="Genericity"><div class="titlepage"><div><div><h4 class="title"><a id="pbds.design.concepts.genericity"/>Genericity</h4></div></div></div><p> | |
2238 | + </p></div></div><div class="section" title="Genericity"><div class="titlepage"><div><div><h4 class="title"><a id="pbds.design.concepts.genericity"></a>Genericity</h4></div></div></div><p> | |
2239 | The design attempts to address the following problem of | |
2240 | data-structure genericity. When writing a function manipulating | |
2241 | a generic container object, what is the behavior of the object? | |
2242 | @@ -391,7 +391,7 @@ | |
2243 | </pre><p> | |
2244 | then one needs to address the following questions in the body | |
2245 | of <code class="function">some_op_sequence</code>: | |
2246 | - </p><div class="itemizedlist"><ul class="itemizedlist"><li class="listitem"><p> | |
2247 | + </p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p> | |
2248 | Which types and methods does <code class="literal">Cntnr</code> support? | |
2249 | Containers based on hash tables can be queries for the | |
2250 | hash-functor type and object; this is meaningless for tree-based | |
2251 | @@ -418,7 +418,7 @@ | |
2252 | capabilities? What is the relationship between two different | |
2253 | data structures, if anything? | |
2254 | </p></li></ul></div><p>The remainder of this section explains these issues in | |
2255 | - detail.</p><div class="section" title="Tag"><div class="titlepage"><div><div><h5 class="title"><a id="concepts.genericity.tag"/>Tag</h5></div></div></div><p> | |
2256 | + detail.</p><div class="section" title="Tag"><div class="titlepage"><div><div><h5 class="title"><a id="concepts.genericity.tag"></a>Tag</h5></div></div></div><p> | |
2257 | Tags are very useful for manipulating generic types. For example, if | |
2258 | <code class="literal">It</code> is an iterator class, then <code class="literal">typename | |
2259 | It::iterator_category</code> or <code class="literal">typename | |
2260 | @@ -429,11 +429,11 @@ | |
2261 | </p><p> | |
2262 | This library contains a container tag hierarchy corresponding to the | |
2263 | diagram below. | |
2264 | - </p><div class="figure"><a id="id520174"/><p class="title"><strong>Figure 22.13. Container Tag Hierarchy</strong></p><div class="figure-contents"><div class="mediaobject" style="text-align: center"><img src="../images/pbds_container_tag_hierarchy.png" style="text-align: middle" alt="Container Tag Hierarchy"/></div></div></div><br class="figure-break"/><p> | |
2265 | + </p><div class="figure"><a id="id698660"></a><p class="title"><strong>Figure 22.13. Container Tag Hierarchy</strong></p><div class="figure-contents"><div class="mediaobject" align="center"><img src="../images/pbds_container_tag_hierarchy.png" align="middle" alt="Container Tag Hierarchy" /></div></div></div><br class="figure-break" /><p> | |
2266 | Given any container <span class="type">Cntnr</span>, the tag of | |
2267 | the underlying data structure can be found via <code class="literal">typename | |
2268 | Cntnr::container_category</code>. | |
2269 | - </p></div><div class="section" title="Traits"><div class="titlepage"><div><div><h5 class="title"><a id="concepts.genericity.traits"/>Traits</h5></div></div></div><p/><p>Additionally, a traits mechanism can be used to query a | |
2270 | + </p></div><div class="section" title="Traits"><div class="titlepage"><div><div><h5 class="title"><a id="concepts.genericity.traits"></a>Traits</h5></div></div></div><p></p><p>Additionally, a traits mechanism can be used to query a | |
2271 | container type for its attributes. Given any container | |
2272 | <code class="literal">Cntnr</code>, then <code class="literal"><Cntnr></code> | |
2273 | is a traits class identifying the properties of the | |
2274 | @@ -453,7 +453,7 @@ | |
2275 | otherwise <code class="classname">container_traits<Cntnr>::split_join_can_throw</code> | |
2276 | will yield a compilation error. (This is somewhat similar to a | |
2277 | compile-time version of the COM model). | |
2278 | - </p></div></div></div><div class="section" title="By Container"><div class="titlepage"><div><div><h3 class="title"><a id="pbds.design.container"/>By Container</h3></div></div></div><div class="section" title="hash"><div class="titlepage"><div><div><h4 class="title"><a id="pbds.design.container.hash"/>hash</h4></div></div></div><div class="section" title="Interface"><div class="titlepage"><div><div><h5 class="title"><a id="container.hash.interface"/>Interface</h5></div></div></div><p> | |
2279 | + </p></div></div></div><div class="section" title="By Container"><div class="titlepage"><div><div><h3 class="title"><a id="pbds.design.container"></a>By Container</h3></div></div></div><div class="section" title="hash"><div class="titlepage"><div><div><h4 class="title"><a id="pbds.design.container.hash"></a>hash</h4></div></div></div><div class="section" title="Interface"><div class="titlepage"><div><div><h5 class="title"><a id="container.hash.interface"></a>Interface</h5></div></div></div><p> | |
2280 | The collision-chaining hash-based container has the | |
2281 | following declaration.</p><pre class="programlisting"> | |
2282 | template< | |
2283 | @@ -466,7 +466,7 @@ | |
2284 | bool Store_Hash = false, | |
2285 | typename Allocator = std::allocator<char> > | |
2286 | class cc_hash_table; | |
2287 | - </pre><p>The parameters have the following meaning:</p><div class="orderedlist"><ol class="orderedlist"><li class="listitem"><p><code class="classname">Key</code> is the key type.</p></li><li class="listitem"><p><code class="classname">Mapped</code> is the mapped-policy.</p></li><li class="listitem"><p><code class="classname">Hash_Fn</code> is a key hashing functor.</p></li><li class="listitem"><p><code class="classname">Eq_Fn</code> is a key equivalence functor.</p></li><li class="listitem"><p><code class="classname">Comb_Hash_Fn</code> is a range-hashing_functor; | |
2288 | + </pre><p>The parameters have the following meaning:</p><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><p><code class="classname">Key</code> is the key type.</p></li><li class="listitem"><p><code class="classname">Mapped</code> is the mapped-policy.</p></li><li class="listitem"><p><code class="classname">Hash_Fn</code> is a key hashing functor.</p></li><li class="listitem"><p><code class="classname">Eq_Fn</code> is a key equivalence functor.</p></li><li class="listitem"><p><code class="classname">Comb_Hash_Fn</code> is a range-hashing_functor; | |
2289 | it describes how to translate hash values into positions | |
2290 | within the table. </p></li><li class="listitem"><p><code class="classname">Resize_Policy</code> describes how a container object | |
2291 | should change its internal size. </p></li><li class="listitem"><p><code class="classname">Store_Hash</code> indicates whether the hash value | |
2292 | @@ -485,11 +485,11 @@ | |
2293 | typename Allocator = std::allocator<char> > | |
2294 | class gp_hash_table; | |
2295 | </pre><p>The parameters are identical to those of the | |
2296 | - collision-chaining container, except for the following.</p><div class="orderedlist"><ol class="orderedlist"><li class="listitem"><p><code class="classname">Comb_Probe_Fn</code> describes how to transform a probe | |
2297 | + collision-chaining container, except for the following.</p><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><p><code class="classname">Comb_Probe_Fn</code> describes how to transform a probe | |
2298 | sequence into a sequence of positions within the table.</p></li><li class="listitem"><p><code class="classname">Probe_Fn</code> describes a probe sequence policy.</p></li></ol></div><p>Some of the default template values depend on the values of | |
2299 | - other parameters, and are explained below.</p></div><div class="section" title="Details"><div class="titlepage"><div><div><h5 class="title"><a id="container.hash.details"/>Details</h5></div></div></div><div class="section" title="Hash Policies"><div class="titlepage"><div><div><h6 class="title"><a id="container.hash.details.hash_policies"/>Hash Policies</h6></div></div></div><div class="section" title="General"><div class="titlepage"><div><div><h6 class="title"><a id="details.hash_policies.general"/>General</h6></div></div></div><p>Following is an explanation of some functions which hashing | |
2300 | - involves. The graphic below illustrates the discussion.</p><div class="figure"><a id="id520506"/><p class="title"><strong>Figure 22.14. Hash functions, ranged-hash functions, and | |
2301 | - range-hashing functions</strong></p><div class="figure-contents"><div class="mediaobject" style="text-align: center"><img src="../images/pbds_hash_ranged_hash_range_hashing_fns.png" style="text-align: middle" alt="Hash functions, ranged-hash functions, and range-hashing functions"/></div></div></div><br class="figure-break"/><p>Let U be a domain (e.g., the integers, or the | |
2302 | + other parameters, and are explained below.</p></div><div class="section" title="Details"><div class="titlepage"><div><div><h5 class="title"><a id="container.hash.details"></a>Details</h5></div></div></div><div class="section" title="Hash Policies"><div class="titlepage"><div><div><h6 class="title"><a id="container.hash.details.hash_policies"></a>Hash Policies</h6></div></div></div><div class="section" title="General"><div class="titlepage"><div><div><h6 class="title"><a id="details.hash_policies.general"></a>General</h6></div></div></div><p>Following is an explanation of some functions which hashing | |
2303 | + involves. The graphic below illustrates the discussion.</p><div class="figure"><a id="id698993"></a><p class="title"><strong>Figure 22.14. Hash functions, ranged-hash functions, and | |
2304 | + range-hashing functions</strong></p><div class="figure-contents"><div class="mediaobject" align="center"><img src="../images/pbds_hash_ranged_hash_range_hashing_fns.png" align="middle" alt="Hash functions, ranged-hash functions, and range-hashing functions" /></div></div></div><br class="figure-break" /><p>Let U be a domain (e.g., the integers, or the | |
2305 | strings of 3 characters). A hash-table algorithm needs to map | |
2306 | elements of U "uniformly" into the range [0,..., m - | |
2307 | 1] (where m is a non-negative integral value, and | |
2308 | @@ -505,9 +505,9 @@ | |
2309 | Z<sub>+</sub>,</p><p>which maps a non-negative hash value, and a non-negative | |
2310 | range upper-bound into a non-negative integral in the range | |
2311 | between 0 (inclusive) and the range upper bound (exclusive), | |
2312 | - i.e., for any r in Z<sub>+</sub>,</p><p>0 ≤ g(r, m) ≤ m - 1</p><p>The resulting ranged-hash function, is</p><div class="equation"><a id="id520621"/><p class="title"><strong>Equation 22.1. Ranged Hash Function</strong></p><div class="equation-contents"><span class="mathphrase"> | |
2313 | + i.e., for any r in Z<sub>+</sub>,</p><p>0 ≤ g(r, m) ≤ m - 1</p><p>The resulting ranged-hash function, is</p><div class="equation"><a id="id699108"></a><p class="title"><strong>Equation 22.1. Ranged Hash Function</strong></p><div class="equation-contents"><span class="mathphrase"> | |
2314 | f(u , m) = g(h(u), m) | |
2315 | - </span></div></div><br class="equation-break"/><p>From the above, it is obvious that given g and | |
2316 | + </span></div></div><br class="equation-break" /><p>From the above, it is obvious that given g and | |
2317 | h, f can always be composed (however the converse | |
2318 | is not true). The standard's hash-based containers allow specifying | |
2319 | a hash function, and use a hard-wired range-hashing function; | |
2320 | @@ -523,11 +523,11 @@ | |
2321 | probe function transforming the hash value into a | |
2322 | sequence of hash values, and a range-hashing function | |
2323 | transforming the sequence of hash values into a sequence of | |
2324 | - positions.</p></div><div class="section" title="Range Hashing"><div class="titlepage"><div><div><h6 class="title"><a id="details.hash_policies.range"/>Range Hashing</h6></div></div></div><p>Some common choices for range-hashing functions are the | |
2325 | + positions.</p></div><div class="section" title="Range Hashing"><div class="titlepage"><div><div><h6 class="title"><a id="details.hash_policies.range"></a>Range Hashing</h6></div></div></div><p>Some common choices for range-hashing functions are the | |
2326 | division, multiplication, and middle-square methods (<a class="xref" href="policy_data_structures.html#biblio.knuth98sorting" title="The Art of Computer Programming - Sorting and Searching">[biblio.knuth98sorting]</a>), defined | |
2327 | - as</p><div class="equation"><a id="id520670"/><p class="title"><strong>Equation 22.2. Range-Hashing, Division Method</strong></p><div class="equation-contents"><span class="mathphrase"> | |
2328 | + as</p><div class="equation"><a id="id699157"></a><p class="title"><strong>Equation 22.2. Range-Hashing, Division Method</strong></p><div class="equation-contents"><span class="mathphrase"> | |
2329 | g(r, m) = r mod m | |
2330 | - </span></div></div><br class="equation-break"/><p>g(r, m) = ⌈ u/v ( a r mod v ) ⌉</p><p>and</p><p>g(r, m) = ⌈ u/v ( r<sup>2</sup> mod v ) ⌉</p><p>respectively, for some positive integrals u and | |
2331 | + </span></div></div><br class="equation-break" /><p>g(r, m) = ⌈ u/v ( a r mod v ) ⌉</p><p>and</p><p>g(r, m) = ⌈ u/v ( r<sup>2</sup> mod v ) ⌉</p><p>respectively, for some positive integrals u and | |
2332 | v (typically powers of 2), and some a. Each of | |
2333 | these range-hashing functions works best for some different | |
2334 | setting.</p><p>The division method (see above) is a | |
2335 | @@ -536,12 +536,12 @@ | |
2336 | implement using the low | |
2337 | level % (modulo) operation (for any m), or the | |
2338 | low level & (bit-mask) operation (for the case where | |
2339 | - m is a power of 2), i.e.,</p><div class="equation"><a id="id520708"/><p class="title"><strong>Equation 22.3. Division via Prime Modulo</strong></p><div class="equation-contents"><span class="mathphrase"> | |
2340 | + m is a power of 2), i.e.,</p><div class="equation"><a id="id699194"></a><p class="title"><strong>Equation 22.3. Division via Prime Modulo</strong></p><div class="equation-contents"><span class="mathphrase"> | |
2341 | g(r, m) = r % m | |
2342 | - </span></div></div><br class="equation-break"/><p>and</p><div class="equation"><a id="id520723"/><p class="title"><strong>Equation 22.4. Division via Bit Mask</strong></p><div class="equation-contents"><span class="mathphrase"> | |
2343 | + </span></div></div><br class="equation-break" /><p>and</p><div class="equation"><a id="id699210"></a><p class="title"><strong>Equation 22.4. Division via Bit Mask</strong></p><div class="equation-contents"><span class="mathphrase"> | |
2344 | g(r, m) = r & m - 1, (with m = | |
2345 | 2<sup>k</sup> for some k) | |
2346 | - </span></div></div><br class="equation-break"/><p>respectively.</p><p>The % (modulo) implementation has the advantage that for | |
2347 | + </span></div></div><br class="equation-break" /><p>respectively.</p><p>The % (modulo) implementation has the advantage that for | |
2348 | m a prime far from a power of 2, g(r, m) is | |
2349 | affected by all the bits of r (minimizing the chance of | |
2350 | collision). It has the disadvantage of using the costly modulo | |
2351 | @@ -550,7 +550,7 @@ | |
2352 | relying on the fast bit-wise and operation. It has the | |
2353 | disadvantage that for g(r, m) is affected only by the | |
2354 | low order bits of r. This method is hard-wired into | |
2355 | - Dinkumware's implementation.</p></div><div class="section" title="Ranged Hash"><div class="titlepage"><div><div><h6 class="title"><a id="details.hash_policies.ranged"/>Ranged Hash</h6></div></div></div><p>In cases it is beneficial to allow the | |
2356 | + Dinkumware's implementation.</p></div><div class="section" title="Ranged Hash"><div class="titlepage"><div><div><h6 class="title"><a id="details.hash_policies.ranged"></a>Ranged Hash</h6></div></div></div><p>In cases it is beneficial to allow the | |
2357 | client to directly specify a ranged-hash hash function. It is | |
2358 | true, that the writer of the ranged-hash function cannot rely | |
2359 | on the values of m having specific numerical properties | |
2360 | @@ -564,24 +564,24 @@ | |
2361 | s = [ s<sub>0</sub>,..., s<sub>t - 1</sub>] | |
2362 | </p><p>be a string of t characters, each of which is from | |
2363 | domain S. Consider the following ranged-hash | |
2364 | - function:</p><div class="equation"><a id="id520803"/><p class="title"><strong>Equation 22.5. | |
2365 | + function:</p><div class="equation"><a id="id699290"></a><p class="title"><strong>Equation 22.5. | |
2366 | A Standard String Hash Function | |
2367 | </strong></p><div class="equation-contents"><span class="mathphrase"> | |
2368 | f<sub>1</sub>(s, m) = ∑ <sub>i = | |
2369 | 0</sub><sup>t - 1</sup> s<sub>i</sub> a<sup>i</sup> mod m | |
2370 | - </span></div></div><br class="equation-break"/><p>where a is some non-negative integral value. This is | |
2371 | + </span></div></div><br class="equation-break" /><p>where a is some non-negative integral value. This is | |
2372 | the standard string-hashing function used in SGI's | |
2373 | implementation (with a = 5). Its advantage is that | |
2374 | it takes into account all of the characters of the string.</p><p>Now assume that s is the string representation of a | |
2375 | of a long DNA sequence (and so S = {'A', 'C', 'G', | |
2376 | 'T'}). In this case, scanning the entire string might be | |
2377 | prohibitively expensive. A possible alternative might be to use | |
2378 | - only the first k characters of the string, where</p><p>|S|<sup>k</sup> ≥ m ,</p><p>i.e., using the hash function</p><div class="equation"><a id="id520854"/><p class="title"><strong>Equation 22.6. | |
2379 | + only the first k characters of the string, where</p><p>|S|<sup>k</sup> ≥ m ,</p><p>i.e., using the hash function</p><div class="equation"><a id="id699341"></a><p class="title"><strong>Equation 22.6. | |
2380 | Only k String DNA Hash | |
2381 | </strong></p><div class="equation-contents"><span class="mathphrase"> | |
2382 | f<sub>2</sub>(s, m) = ∑ <sub>i | |
2383 | = 0</sub><sup>k - 1</sup> s<sub>i</sub> a<sup>i</sup> mod m | |
2384 | - </span></div></div><br class="equation-break"/><p>requiring scanning over only</p><p>k = log<sub>4</sub>( m )</p><p>characters.</p><p>Other more elaborate hash-functions might scan k | |
2385 | + </span></div></div><br class="equation-break" /><p>requiring scanning over only</p><p>k = log<sub>4</sub>( m )</p><p>characters.</p><p>Other more elaborate hash-functions might scan k | |
2386 | characters starting at a random position (determined at each | |
2387 | resize), or scanning k random positions (determined at | |
2388 | each resize), i.e., using</p><p>f<sub>3</sub>(s, m) = ∑ <sub>i = | |
2389 | @@ -590,12 +590,12 @@ | |
2390 | 1</sup> s<sub>r</sub>i a<sup>r<sub>i</sub></sup> mod | |
2391 | m ,</p><p>respectively, for r<sub>0</sub>,..., r<sub>k-1</sub> | |
2392 | each in the (inclusive) range [0,...,t-1].</p><p>It should be noted that the above functions cannot be | |
2393 | - decomposed as per a ranged hash composed of hash and range hashing.</p></div><div class="section" title="Implementation"><div class="titlepage"><div><div><h6 class="title"><a id="details.hash_policies.implementation"/>Implementation</h6></div></div></div><p>This sub-subsection describes the implementation of | |
2394 | + decomposed as per a ranged hash composed of hash and range hashing.</p></div><div class="section" title="Implementation"><div class="titlepage"><div><div><h6 class="title"><a id="details.hash_policies.implementation"></a>Implementation</h6></div></div></div><p>This sub-subsection describes the implementation of | |
2395 | the above in this library. It first explains range-hashing | |
2396 | functions in collision-chaining tables, then ranged-hash | |
2397 | functions in collision-chaining tables, then probing-based | |
2398 | tables, and finally lists the relevant classes in this | |
2399 | - library.</p><div class="section" title="Range-Hashing and Ranged-Hashes in Collision-Chaining Tables"><div class="titlepage"><div><div><h6 class="title"><a id="hash_policies.implementation.collision-chaining"/> | |
2400 | + library.</p><div class="section" title="Range-Hashing and Ranged-Hashes in Collision-Chaining Tables"><div class="titlepage"><div><div><h6 class="title"><a id="hash_policies.implementation.collision-chaining"></a> | |
2401 | Range-Hashing and Ranged-Hashes in Collision-Chaining Tables | |
2402 | </h6></div></div></div><p><code class="classname">cc_hash_table</code> is | |
2403 | parametrized by <code class="classname">Hash_Fn</code> and <code class="classname">Comb_Hash_Fn</code>, a | |
2404 | @@ -607,12 +607,12 @@ | |
2405 | the container transforms the key into a non-negative integral | |
2406 | using the hash functor (points B and C), and transforms the | |
2407 | result into a position using the combining functor (points D | |
2408 | - and E).</p><div class="figure"><a id="id521043"/><p class="title"><strong>Figure 22.15. Insert hash sequence diagram</strong></p><div class="figure-contents"><div class="mediaobject" style="text-align: center"><img src="../images/pbds_hash_range_hashing_seq_diagram.png" style="text-align: middle" alt="Insert hash sequence diagram"/></div></div></div><br class="figure-break"/><p>If <code class="classname">cc_hash_table</code>'s | |
2409 | + and E).</p><div class="figure"><a id="id699530"></a><p class="title"><strong>Figure 22.15. Insert hash sequence diagram</strong></p><div class="figure-contents"><div class="mediaobject" align="center"><img src="../images/pbds_hash_range_hashing_seq_diagram.png" align="middle" alt="Insert hash sequence diagram" /></div></div></div><br class="figure-break" /><p>If <code class="classname">cc_hash_table</code>'s | |
2410 | hash-functor, <code class="classname">Hash_Fn</code> is instantiated by <code class="classname">null_type</code> , then <code class="classname">Comb_Hash_Fn</code> is taken to be | |
2411 | a ranged-hash function. The graphic below shows an <code class="function">insert</code> sequence | |
2412 | diagram. The user inserts an element (point A), the container | |
2413 | transforms the key into a position using the combining functor | |
2414 | - (points B and C).</p><div class="figure"><a id="id521102"/><p class="title"><strong>Figure 22.16. Insert hash sequence diagram with a null policy</strong></p><div class="figure-contents"><div class="mediaobject" style="text-align: center"><img src="../images/pbds_hash_range_hashing_seq_diagram2.png" style="text-align: middle" alt="Insert hash sequence diagram with a null policy"/></div></div></div><br class="figure-break"/></div><div class="section" title="Probing tables"><div class="titlepage"><div><div><h6 class="title"><a id="hash_policies.implementation.probe"/> | |
2415 | + (points B and C).</p><div class="figure"><a id="id699588"></a><p class="title"><strong>Figure 22.16. Insert hash sequence diagram with a null policy</strong></p><div class="figure-contents"><div class="mediaobject" align="center"><img src="../images/pbds_hash_range_hashing_seq_diagram2.png" align="middle" alt="Insert hash sequence diagram with a null policy" /></div></div></div><br class="figure-break" /></div><div class="section" title="Probing tables"><div class="titlepage"><div><div><h6 class="title"><a id="hash_policies.implementation.probe"></a> | |
2416 | Probing tables | |
2417 | </h6></div></div></div><p><code class="classname">gp_hash_table</code> is parametrized by | |
2418 | <code class="classname">Hash_Fn</code>, <code class="classname">Probe_Fn</code>, | |
2419 | @@ -624,10 +624,10 @@ | |
2420 | functor, <code class="classname">Probe_Fn</code> is a functor for offsets | |
2421 | from a hash value, and <code class="classname">Comb_Probe_Fn</code> | |
2422 | transforms a probe sequence into a sequence of positions within | |
2423 | - the table.</p></div><div class="section" title="Pre-Defined Policies"><div class="titlepage"><div><div><h6 class="title"><a id="hash_policies.implementation.predefined"/> | |
2424 | + the table.</p></div><div class="section" title="Pre-Defined Policies"><div class="titlepage"><div><div><h6 class="title"><a id="hash_policies.implementation.predefined"></a> | |
2425 | Pre-Defined Policies | |
2426 | </h6></div></div></div><p>This library contains some pre-defined classes | |
2427 | - implementing range-hashing and probing functions:</p><div class="orderedlist"><ol class="orderedlist"><li class="listitem"><p><code class="classname">direct_mask_range_hashing</code> | |
2428 | + implementing range-hashing and probing functions:</p><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><p><code class="classname">direct_mask_range_hashing</code> | |
2429 | and <code class="classname">direct_mod_range_hashing</code> | |
2430 | are range-hashing functions based on a bit-mask and a modulo | |
2431 | operation, respectively.</p></li><li class="listitem"><p><code class="classname">linear_probe_fn</code>, and | |
2432 | @@ -635,14 +635,14 @@ | |
2433 | a linear probe and a quadratic probe function, | |
2434 | respectively.</p></li></ol></div><p> | |
2435 | The graphic below shows the relationships. | |
2436 | - </p><div class="figure"><a id="id521241"/><p class="title"><strong>Figure 22.17. Hash policy class diagram</strong></p><div class="figure-contents"><div class="mediaobject" style="text-align: center"><img src="../images/pbds_hash_policy_cd.png" style="text-align: middle" alt="Hash policy class diagram"/></div></div></div><br class="figure-break"/></div></div></div><div class="section" title="Resize Policies"><div class="titlepage"><div><div><h6 class="title"><a id="container.hash.details.resize_policies"/>Resize Policies</h6></div></div></div><div class="section" title="General"><div class="titlepage"><div><div><h6 class="title"><a id="resize_policies.general"/>General</h6></div></div></div><p>Hash-tables, as opposed to trees, do not naturally grow or | |
2437 | + </p><div class="figure"><a id="id699728"></a><p class="title"><strong>Figure 22.17. Hash policy class diagram</strong></p><div class="figure-contents"><div class="mediaobject" align="center"><img src="../images/pbds_hash_policy_cd.png" align="middle" alt="Hash policy class diagram" /></div></div></div><br class="figure-break" /></div></div></div><div class="section" title="Resize Policies"><div class="titlepage"><div><div><h6 class="title"><a id="container.hash.details.resize_policies"></a>Resize Policies</h6></div></div></div><div class="section" title="General"><div class="titlepage"><div><div><h6 class="title"><a id="resize_policies.general"></a>General</h6></div></div></div><p>Hash-tables, as opposed to trees, do not naturally grow or | |
2438 | shrink. It is necessary to specify policies to determine how | |
2439 | and when a hash table should change its size. Usually, resize | |
2440 | - policies can be decomposed into orthogonal policies:</p><div class="orderedlist"><ol class="orderedlist"><li class="listitem"><p>A size policy indicating how a hash table | |
2441 | + policies can be decomposed into orthogonal policies:</p><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><p>A size policy indicating how a hash table | |
2442 | should grow (e.g., it should multiply by powers of | |
2443 | 2).</p></li><li class="listitem"><p>A trigger policy indicating when a hash | |
2444 | table should grow (e.g., a load factor is | |
2445 | - exceeded).</p></li></ol></div></div><div class="section" title="Size Policies"><div class="titlepage"><div><div><h6 class="title"><a id="resize_policies.size"/>Size Policies</h6></div></div></div><p>Size policies determine how a hash table changes size. These | |
2446 | + exceeded).</p></li></ol></div></div><div class="section" title="Size Policies"><div class="titlepage"><div><div><h6 class="title"><a id="resize_policies.size"></a>Size Policies</h6></div></div></div><p>Size policies determine how a hash table changes size. These | |
2447 | policies are simple, and there are relatively few sensible | |
2448 | options. An exponential-size policy (with the initial size and | |
2449 | growth factors both powers of 2) works well with a mask-based | |
2450 | @@ -650,7 +650,7 @@ | |
2451 | hard-wired policy used by Dinkumware. A | |
2452 | prime-list based policy works well with a modulo-prime range | |
2453 | hashing function and is the hard-wired policy used by SGI's | |
2454 | - implementation.</p></div><div class="section" title="Trigger Policies"><div class="titlepage"><div><div><h6 class="title"><a id="resize_policies.trigger"/>Trigger Policies</h6></div></div></div><p>Trigger policies determine when a hash table changes size. | |
2455 | + implementation.</p></div><div class="section" title="Trigger Policies"><div class="titlepage"><div><div><h6 class="title"><a id="resize_policies.trigger"></a>Trigger Policies</h6></div></div></div><p>Trigger policies determine when a hash table changes size. | |
2456 | Following is a description of two policies: load-check | |
2457 | policies, and collision-check policies.</p><p>Load-check policies are straightforward. The user specifies | |
2458 | two factors, Α<sub>min</sub> and | |
2459 | @@ -668,14 +668,14 @@ | |
2460 | and some load factor be denoted by Α. We would like to | |
2461 | calculate the minimal length of k, such that if there were Α | |
2462 | m elements in the hash table, a probe sequence of length k would | |
2463 | - be found with probability at most 1/m.</p><div class="figure"><a id="id521400"/><p class="title"><strong>Figure 22.18. Balls and bins</strong></p><div class="figure-contents"><div class="mediaobject" style="text-align: center"><img src="../images/pbds_balls_and_bins.png" style="text-align: middle" alt="Balls and bins"/></div></div></div><br class="figure-break"/><p>Denote the probability that a probe sequence of length | |
2464 | + be found with probability at most 1/m.</p><div class="figure"><a id="id699887"></a><p class="title"><strong>Figure 22.18. Balls and bins</strong></p><div class="figure-contents"><div class="mediaobject" align="center"><img src="../images/pbds_balls_and_bins.png" align="middle" alt="Balls and bins" /></div></div></div><br class="figure-break" /><p>Denote the probability that a probe sequence of length | |
2465 | k appears in bin i by p<sub>i</sub>, the | |
2466 | length of the probe sequence of bin i by | |
2467 | - l<sub>i</sub>, and assume uniform distribution. Then</p><div class="equation"><a id="id521446"/><p class="title"><strong>Equation 22.7. | |
2468 | + l<sub>i</sub>, and assume uniform distribution. Then</p><div class="equation"><a id="id699932"></a><p class="title"><strong>Equation 22.7. | |
2469 | Probability of Probe Sequence of Length k | |
2470 | </strong></p><div class="equation-contents"><span class="mathphrase"> | |
2471 | p<sub>1</sub> = | |
2472 | - </span></div></div><br class="equation-break"/><p>P(l<sub>1</sub> ≥ k) =</p><p> | |
2473 | + </span></div></div><br class="equation-break" /><p>P(l<sub>1</sub> ≥ k) =</p><p> | |
2474 | P(l<sub>1</sub> ≥ α ( 1 + k / α - 1) ≤ (a) | |
2475 | </p><p> | |
2476 | e ^ ( - ( α ( k / α - 1 )<sup>2</sup> ) /2) | |
2477 | @@ -685,11 +685,11 @@ | |
2478 | l<sub>i</sub> are negatively-dependent | |
2479 | (<a class="xref" href="policy_data_structures.html#biblio.dubhashi98neg" title="Balls and bins: A study in negative dependence">[biblio.dubhashi98neg]</a>) | |
2480 | . Let | |
2481 | - I(.) denote the indicator function. Then</p><div class="equation"><a id="id521502"/><p class="title"><strong>Equation 22.8. | |
2482 | + I(.) denote the indicator function. Then</p><div class="equation"><a id="id699989"></a><p class="title"><strong>Equation 22.8. | |
2483 | Probability Probe Sequence in Some Bin | |
2484 | </strong></p><div class="equation-contents"><span class="mathphrase"> | |
2485 | P( exists<sub>i</sub> l<sub>i</sub> ≥ k ) = | |
2486 | - </span></div></div><br class="equation-break"/><p>P ( ∑ <sub>i = 1</sub><sup>m</sup> | |
2487 | + </span></div></div><br class="equation-break" /><p>P ( ∑ <sub>i = 1</sub><sup>m</sup> | |
2488 | I(l<sub>i</sub> ≥ k) ≥ 1 ) =</p><p>P ( ∑ <sub>i = 1</sub><sup>m</sup> I ( | |
2489 | l<sub>i</sub> ≥ k ) ≥ m p<sub>1</sub> ( 1 + 1 / (m | |
2490 | p<sub>1</sub>) - 1 ) ) ≤ (a)</p><p>e ^ ( ( - m p<sub>1</sub> ( 1 / (m p<sub>1</sub>) | |
2491 | @@ -697,11 +697,11 @@ | |
2492 | be applied to negatively-dependent variables (<a class="xref" href="policy_data_structures.html#biblio.dubhashi98neg" title="Balls and bins: A study in negative dependence">[biblio.dubhashi98neg]</a>). Inserting the first probability | |
2493 | equation into the second one, and equating with 1/m, we | |
2494 | obtain</p><p>k ~ √ ( 2 α ln 2 m ln(m) ) | |
2495 | - ) .</p></div><div class="section" title="Implementation"><div class="titlepage"><div><div><h6 class="title"><a id="resize_policies.impl"/>Implementation</h6></div></div></div><p>This sub-subsection describes the implementation of the | |
2496 | + ) .</p></div><div class="section" title="Implementation"><div class="titlepage"><div><div><h6 class="title"><a id="resize_policies.impl"></a>Implementation</h6></div></div></div><p>This sub-subsection describes the implementation of the | |
2497 | above in this library. It first describes resize policies and | |
2498 | their decomposition into trigger and size policies, then | |
2499 | describes pre-defined classes, and finally discusses controlled | |
2500 | - access the policies' internals.</p><div class="section" title="Decomposition"><div class="titlepage"><div><div><h6 class="title"><a id="resize_policies.impl.decomposition"/>Decomposition</h6></div></div></div><p>Each hash-based container is parametrized by a | |
2501 | + access the policies' internals.</p><div class="section" title="Decomposition"><div class="titlepage"><div><div><h6 class="title"><a id="resize_policies.impl.decomposition"></a>Decomposition</h6></div></div></div><p>Each hash-based container is parametrized by a | |
2502 | <code class="classname">Resize_Policy</code> parameter; the container derives | |
2503 | <code class="classname">public</code>ly from <code class="classname">Resize_Policy</code>. For | |
2504 | example:</p><pre class="programlisting"> | |
2505 | @@ -724,7 +724,7 @@ | |
2506 | a resize is needed, and if so, what is the new size (points D | |
2507 | to G); following the resize, it notifies the policy that a | |
2508 | resize has completed (point H); finally, the element is | |
2509 | - inserted, and the policy notified (point I).</p><div class="figure"><a id="id521656"/><p class="title"><strong>Figure 22.19. Insert resize sequence diagram</strong></p><div class="figure-contents"><div class="mediaobject" style="text-align: center"><img src="../images/pbds_insert_resize_sequence_diagram1.png" style="text-align: middle" alt="Insert resize sequence diagram"/></div></div></div><br class="figure-break"/><p>In practice, a resize policy can be usually orthogonally | |
2510 | + inserted, and the policy notified (point I).</p><div class="figure"><a id="id700143"></a><p class="title"><strong>Figure 22.19. Insert resize sequence diagram</strong></p><div class="figure-contents"><div class="mediaobject" align="center"><img src="../images/pbds_insert_resize_sequence_diagram1.png" align="middle" alt="Insert resize sequence diagram" /></div></div></div><br class="figure-break" /><p>In practice, a resize policy can be usually orthogonally | |
2511 | decomposed to a size policy and a trigger policy. Consequently, | |
2512 | the library contains a single class for instantiating a resize | |
2513 | policy: <code class="classname">hash_standard_resize_policy</code> | |
2514 | @@ -733,10 +733,10 @@ | |
2515 | both, and acts as a standard delegate (<a class="xref" href="policy_data_structures.html#biblio.gof" title="Design Patterns - Elements of Reusable Object-Oriented Software">[biblio.gof]</a>) | |
2516 | to these policies.</p><p>The two graphics immediately below show sequence diagrams | |
2517 | illustrating the interaction between the standard resize policy | |
2518 | - and its trigger and size policies, respectively.</p><div class="figure"><a id="id521721"/><p class="title"><strong>Figure 22.20. Standard resize policy trigger sequence | |
2519 | - diagram</strong></p><div class="figure-contents"><div class="mediaobject" style="text-align: center"><img src="../images/pbds_insert_resize_sequence_diagram2.png" style="text-align: middle" alt="Standard resize policy trigger sequence diagram"/></div></div></div><br class="figure-break"/><div class="figure"><a id="id521756"/><p class="title"><strong>Figure 22.21. Standard resize policy size sequence | |
2520 | - diagram</strong></p><div class="figure-contents"><div class="mediaobject" style="text-align: center"><img src="../images/pbds_insert_resize_sequence_diagram3.png" style="text-align: middle" alt="Standard resize policy size sequence diagram"/></div></div></div><br class="figure-break"/></div><div class="section" title="Predefined Policies"><div class="titlepage"><div><div><h6 class="title"><a id="resize_policies.impl.predefined"/>Predefined Policies</h6></div></div></div><p>The library includes the following | |
2521 | - instantiations of size and trigger policies:</p><div class="orderedlist"><ol class="orderedlist"><li class="listitem"><p><code class="classname">hash_load_check_resize_trigger</code> | |
2522 | + and its trigger and size policies, respectively.</p><div class="figure"><a id="id700208"></a><p class="title"><strong>Figure 22.20. Standard resize policy trigger sequence | |
2523 | + diagram</strong></p><div class="figure-contents"><div class="mediaobject" align="center"><img src="../images/pbds_insert_resize_sequence_diagram2.png" align="middle" alt="Standard resize policy trigger sequence diagram" /></div></div></div><br class="figure-break" /><div class="figure"><a id="id700243"></a><p class="title"><strong>Figure 22.21. Standard resize policy size sequence | |
2524 | + diagram</strong></p><div class="figure-contents"><div class="mediaobject" align="center"><img src="../images/pbds_insert_resize_sequence_diagram3.png" align="middle" alt="Standard resize policy size sequence diagram" /></div></div></div><br class="figure-break" /></div><div class="section" title="Predefined Policies"><div class="titlepage"><div><div><h6 class="title"><a id="resize_policies.impl.predefined"></a>Predefined Policies</h6></div></div></div><p>The library includes the following | |
2525 | + instantiations of size and trigger policies:</p><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><p><code class="classname">hash_load_check_resize_trigger</code> | |
2526 | implements a load check trigger policy.</p></li><li class="listitem"><p><code class="classname">cc_hash_max_collision_check_resize_trigger</code> | |
2527 | implements a collision check trigger policy.</p></li><li class="listitem"><p><code class="classname">hash_exponential_size_policy</code> | |
2528 | implements an exponential-size policy (which should be used | |
2529 | @@ -753,7 +753,7 @@ | |
2530 | instantiated by <code class="classname">hash_load_check_resize_trigger</code>, | |
2531 | or <code class="classname">cc_hash_max_collision_check_resize_trigger</code>; | |
2532 | <code class="classname">Size_Policy</code> is instantiated by <code class="classname">hash_exponential_size_policy</code>, | |
2533 | - or <code class="classname">hash_prime_size_policy</code>.</p></div><div class="section" title="Controling Access to Internals"><div class="titlepage"><div><div><h6 class="title"><a id="resize_policies.impl.internals"/>Controling Access to Internals</h6></div></div></div><p>There are cases where (controlled) access to resize | |
2534 | + or <code class="classname">hash_prime_size_policy</code>.</p></div><div class="section" title="Controling Access to Internals"><div class="titlepage"><div><div><h6 class="title"><a id="resize_policies.impl.internals"></a>Controling Access to Internals</h6></div></div></div><p>There are cases where (controlled) access to resize | |
2535 | policies' internals is beneficial. E.g., it is sometimes | |
2536 | useful to query a hash-table for the table's actual size (as | |
2537 | opposed to its <code class="function">size()</code> - the number of values it | |
2538 | @@ -798,11 +798,11 @@ | |
2539 | </pre><p>which resizes the container. Implementations of | |
2540 | <code class="classname">Resize_Policy</code> can export public methods for resizing | |
2541 | the container externally; these methods internally call | |
2542 | - <code class="classname">do_resize</code> to resize the table.</p></div></div></div><div class="section" title="Policy Interactions"><div class="titlepage"><div><div><h6 class="title"><a id="container.hash.details.policy_interaction"/>Policy Interactions</h6></div></div></div><p> | |
2543 | + <code class="classname">do_resize</code> to resize the table.</p></div></div></div><div class="section" title="Policy Interactions"><div class="titlepage"><div><div><h6 class="title"><a id="container.hash.details.policy_interaction"></a>Policy Interactions</h6></div></div></div><p> | |
2544 | </p><p>Hash-tables are unfortunately especially susceptible to | |
2545 | choice of policies. One of the more complicated aspects of this | |
2546 | is that poor combinations of good policies can form a poor | |
2547 | - container. Following are some considerations.</p><div class="section" title="probe/size/trigger"><div class="titlepage"><div><div><h6 class="title"><a id="policy_interaction.probesizetrigger"/>probe/size/trigger</h6></div></div></div><p>Some combinations do not work well for probing containers. | |
2548 | + container. Following are some considerations.</p><div class="section" title="probe/size/trigger"><div class="titlepage"><div><div><h6 class="title"><a id="policy_interaction.probesizetrigger"></a>probe/size/trigger</h6></div></div></div><p>Some combinations do not work well for probing containers. | |
2549 | For example, combining a quadratic probe policy with an | |
2550 | exponential size policy can yield a poor container: when an | |
2551 | element is inserted, a trigger policy might decide that there | |
2552 | @@ -811,13 +811,13 @@ | |
2553 | the unused entries.</p><p>Unfortunately, this library cannot detect such problems at | |
2554 | compilation (they are halting reducible). It therefore defines | |
2555 | an exception class <code class="classname">insert_error</code> to throw an | |
2556 | - exception in this case.</p></div><div class="section" title="hash/trigger"><div class="titlepage"><div><div><h6 class="title"><a id="policy_interaction.hashtrigger"/>hash/trigger</h6></div></div></div><p>Some trigger policies are especially susceptible to poor | |
2557 | + exception in this case.</p></div><div class="section" title="hash/trigger"><div class="titlepage"><div><div><h6 class="title"><a id="policy_interaction.hashtrigger"></a>hash/trigger</h6></div></div></div><p>Some trigger policies are especially susceptible to poor | |
2558 | hash functions. Suppose, as an extreme case, that the hash | |
2559 | function transforms each key to the same hash value. After some | |
2560 | inserts, a collision detecting policy will always indicate that | |
2561 | the container needs to grow.</p><p>The library, therefore, by design, limits each operation to | |
2562 | one resize. For each <code class="classname">insert</code>, for example, it queries | |
2563 | - only once whether a resize is needed.</p></div><div class="section" title="equivalence functors/storing hash values/hash"><div class="titlepage"><div><div><h6 class="title"><a id="policy_interaction.eqstorehash"/>equivalence functors/storing hash values/hash</h6></div></div></div><p><code class="classname">cc_hash_table</code> and | |
2564 | + only once whether a resize is needed.</p></div><div class="section" title="equivalence functors/storing hash values/hash"><div class="titlepage"><div><div><h6 class="title"><a id="policy_interaction.eqstorehash"></a>equivalence functors/storing hash values/hash</h6></div></div></div><p><code class="classname">cc_hash_table</code> and | |
2565 | <code class="classname">gp_hash_table</code> are | |
2566 | parametrized by an equivalence functor and by a | |
2567 | <code class="classname">Store_Hash</code> parameter. If the latter parameter is | |
2568 | @@ -828,15 +828,15 @@ | |
2569 | collisions for other types.</p><p>If a ranged-hash function or ranged probe function is | |
2570 | directly supplied, however, then it makes no sense to store the | |
2571 | hash value with each entry. This library's container will | |
2572 | - fail at compilation, by design, if this is attempted.</p></div><div class="section" title="size/load-check trigger"><div class="titlepage"><div><div><h6 class="title"><a id="policy_interaction.sizeloadtrigger"/>size/load-check trigger</h6></div></div></div><p>Assume a size policy issues an increasing sequence of sizes | |
2573 | + fail at compilation, by design, if this is attempted.</p></div><div class="section" title="size/load-check trigger"><div class="titlepage"><div><div><h6 class="title"><a id="policy_interaction.sizeloadtrigger"></a>size/load-check trigger</h6></div></div></div><p>Assume a size policy issues an increasing sequence of sizes | |
2574 | a, a q, a q<sup>1</sup>, a q<sup>2</sup>, ... For | |
2575 | example, an exponential size policy might issue the sequence of | |
2576 | sizes 8, 16, 32, 64, ...</p><p>If a load-check trigger policy is used, with loads | |
2577 | α<sub>min</sub> and α<sub>max</sub>, | |
2578 | - respectively, then it is a good idea to have:</p><div class="orderedlist"><ol class="orderedlist"><li class="listitem"><p>α<sub>max</sub> ~ 1 / q</p></li><li class="listitem"><p>α<sub>min</sub> < 1 / (2 q)</p></li></ol></div><p>This will ensure that the amortized hash cost of each | |
2579 | + respectively, then it is a good idea to have:</p><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><p>α<sub>max</sub> ~ 1 / q</p></li><li class="listitem"><p>α<sub>min</sub> < 1 / (2 q)</p></li></ol></div><p>This will ensure that the amortized hash cost of each | |
2580 | modifying operation is at most approximately 3.</p><p>α<sub>min</sub> ~ α<sub>max</sub> is, in | |
2581 | any case, a bad choice, and α<sub>min</sub> > | |
2582 | - α <sub>max</sub> is horrendous.</p></div></div></div></div><div class="section" title="tree"><div class="titlepage"><div><div><h4 class="title"><a id="pbds.design.container.tree"/>tree</h4></div></div></div><div class="section" title="Interface"><div class="titlepage"><div><div><h5 class="title"><a id="container.tree.interface"/>Interface</h5></div></div></div><p>The tree-based container has the following declaration:</p><pre class="programlisting"> | |
2583 | + α <sub>max</sub> is horrendous.</p></div></div></div></div><div class="section" title="tree"><div class="titlepage"><div><div><h4 class="title"><a id="pbds.design.container.tree"></a>tree</h4></div></div></div><div class="section" title="Interface"><div class="titlepage"><div><div><h5 class="title"><a id="container.tree.interface"></a>Interface</h5></div></div></div><p>The tree-based container has the following declaration:</p><pre class="programlisting"> | |
2584 | template< | |
2585 | typename Key, | |
2586 | typename Mapped, | |
2587 | @@ -850,7 +850,7 @@ | |
2588 | class Node_Update = null_node_update, | |
2589 | typename Allocator = std::allocator<char> > | |
2590 | class tree; | |
2591 | - </pre><p>The parameters have the following meaning:</p><div class="orderedlist"><ol class="orderedlist"><li class="listitem"><p><code class="classname">Key</code> is the key type.</p></li><li class="listitem"><p><code class="classname">Mapped</code> is the mapped-policy.</p></li><li class="listitem"><p><code class="classname">Cmp_Fn</code> is a key comparison functor</p></li><li class="listitem"><p><code class="classname">Tag</code> specifies which underlying data structure | |
2592 | + </pre><p>The parameters have the following meaning:</p><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><p><code class="classname">Key</code> is the key type.</p></li><li class="listitem"><p><code class="classname">Mapped</code> is the mapped-policy.</p></li><li class="listitem"><p><code class="classname">Cmp_Fn</code> is a key comparison functor</p></li><li class="listitem"><p><code class="classname">Tag</code> specifies which underlying data structure | |
2593 | to use.</p></li><li class="listitem"><p><code class="classname">Node_Update</code> is a policy for updating node | |
2594 | invariants.</p></li><li class="listitem"><p><code class="classname">Allocator</code> is an allocator | |
2595 | type.</p></li></ol></div><p>The <code class="classname">Tag</code> parameter specifies which underlying | |
2596 | @@ -861,7 +861,7 @@ | |
2597 | Note that containers based on the former two contain more types | |
2598 | and methods than the latter (e.g., | |
2599 | <code class="classname">reverse_iterator</code> and <code class="classname">rbegin</code>), and different | |
2600 | - exception and invalidation guarantees.</p></div><div class="section" title="Details"><div class="titlepage"><div><div><h5 class="title"><a id="container.tree.details"/>Details</h5></div></div></div><div class="section" title="Node Invariants"><div class="titlepage"><div><div><h6 class="title"><a id="container.tree.node"/>Node Invariants</h6></div></div></div><p>Consider the two trees in the graphic below, labels A and B. The first | |
2601 | + exception and invalidation guarantees.</p></div><div class="section" title="Details"><div class="titlepage"><div><div><h5 class="title"><a id="container.tree.details"></a>Details</h5></div></div></div><div class="section" title="Node Invariants"><div class="titlepage"><div><div><h6 class="title"><a id="container.tree.node"></a>Node Invariants</h6></div></div></div><p>Consider the two trees in the graphic below, labels A and B. The first | |
2602 | is a tree of floats; the second is a tree of pairs, each | |
2603 | signifying a geometric line interval. Each element in a tree is refered to as a node of the tree. Of course, each of | |
2604 | these trees can support the usual queries: the first can easily | |
2605 | @@ -877,8 +877,8 @@ | |
2606 | each node, and maintains node invariants (see <a class="xref" href="policy_data_structures.html#biblio.clrs2001" title="Introduction to Algorithms, 2nd edition">[biblio.clrs2001]</a>.) The first stores in | |
2607 | each node the size of the sub-tree rooted at the node; the | |
2608 | second stores at each node the maximal endpoint of the | |
2609 | - intervals at the sub-tree rooted at the node.</p><div class="figure"><a id="id522406"/><p class="title"><strong>Figure 22.22. Tree node invariants</strong></p><div class="figure-contents"><div class="mediaobject" style="text-align: center"><img src="../images/pbds_tree_node_invariants.png" style="text-align: middle" alt="Tree node invariants"/></div></div></div><br class="figure-break"/><p>Supporting such trees is difficult for a number of | |
2610 | - reasons:</p><div class="orderedlist"><ol class="orderedlist"><li class="listitem"><p>There must be a way to specify what a node's metadata | |
2611 | + intervals at the sub-tree rooted at the node.</p><div class="figure"><a id="id700892"></a><p class="title"><strong>Figure 22.22. Tree node invariants</strong></p><div class="figure-contents"><div class="mediaobject" align="center"><img src="../images/pbds_tree_node_invariants.png" align="middle" alt="Tree node invariants" /></div></div></div><br class="figure-break" /><p>Supporting such trees is difficult for a number of | |
2612 | + reasons:</p><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><p>There must be a way to specify what a node's metadata | |
2613 | should be (if any).</p></li><li class="listitem"><p>Various operations can invalidate node | |
2614 | invariants. The graphic below shows how a right rotation, | |
2615 | performed on A, results in B, with nodes x and y having | |
2616 | @@ -891,9 +891,9 @@ | |
2617 | metadata.</p></li><li class="listitem"><p>It is not feasible to know in advance which methods trees | |
2618 | can support. Besides the usual <code class="classname">find</code> method, the | |
2619 | first tree can support a <code class="classname">find_by_order</code> method, while | |
2620 | - the second can support an <code class="classname">overlaps</code> method.</p></li></ol></div><div class="figure"><a id="id522484"/><p class="title"><strong>Figure 22.23. Tree node invalidation</strong></p><div class="figure-contents"><div class="mediaobject" style="text-align: center"><img src="../images/pbds_tree_node_invalidations.png" style="text-align: middle" alt="Tree node invalidation"/></div></div></div><br class="figure-break"/><p>These problems are solved by a combination of two means: | |
2621 | + the second can support an <code class="classname">overlaps</code> method.</p></li></ol></div><div class="figure"><a id="id700971"></a><p class="title"><strong>Figure 22.23. Tree node invalidation</strong></p><div class="figure-contents"><div class="mediaobject" align="center"><img src="../images/pbds_tree_node_invalidations.png" align="middle" alt="Tree node invalidation" /></div></div></div><br class="figure-break" /><p>These problems are solved by a combination of two means: | |
2622 | node iterators, and template-template node updater | |
2623 | - parameters.</p><div class="section" title="Node Iterators"><div class="titlepage"><div><div><h6 class="title"><a id="container.tree.node.iterators"/>Node Iterators</h6></div></div></div><p>Each tree-based container defines two additional iterator | |
2624 | + parameters.</p><div class="section" title="Node Iterators"><div class="titlepage"><div><div><h6 class="title"><a id="container.tree.node.iterators"></a>Node Iterators</h6></div></div></div><p>Each tree-based container defines two additional iterator | |
2625 | types, <code class="classname">const_node_iterator</code> | |
2626 | and <code class="classname">node_iterator</code>. | |
2627 | These iterators allow descending from a node to one of its | |
2628 | @@ -913,14 +913,14 @@ | |
2629 | node_end(); | |
2630 | </pre><p>The first pairs return node iterators corresponding to the | |
2631 | root node of the tree; the latter pair returns node iterators | |
2632 | - corresponding to a just-after-leaf node.</p></div><div class="section" title="Node Updator"><div class="titlepage"><div><div><h6 class="title"><a id="container.tree.node.updator"/>Node Updator</h6></div></div></div><p>The tree-based containers are parametrized by a | |
2633 | + corresponding to a just-after-leaf node.</p></div><div class="section" title="Node Updator"><div class="titlepage"><div><div><h6 class="title"><a id="container.tree.node.updator"></a>Node Updator</h6></div></div></div><p>The tree-based containers are parametrized by a | |
2634 | <code class="classname">Node_Update</code> template-template parameter. A | |
2635 | tree-based container instantiates | |
2636 | <code class="classname">Node_Update</code> to some | |
2637 | <code class="classname">node_update</code> class, and publicly subclasses | |
2638 | <code class="classname">node_update</code>. The graphic below shows this | |
2639 | scheme, as well as some predefined policies (which are explained | |
2640 | - below).</p><div class="figure"><a id="id522594"/><p class="title"><strong>Figure 22.24. A tree and its update policy</strong></p><div class="figure-contents"><div class="mediaobject" style="text-align: center"><img src="../images/pbds_tree_node_updator_policy_cd.png" style="text-align: middle" alt="A tree and its update policy"/></div></div></div><br class="figure-break"/><p><code class="classname">node_update</code> (an instantiation of | |
2641 | + below).</p><div class="figure"><a id="id701081"></a><p class="title"><strong>Figure 22.24. A tree and its update policy</strong></p><div class="figure-contents"><div class="mediaobject" align="center"><img src="../images/pbds_tree_node_updator_policy_cd.png" align="middle" alt="A tree and its update policy" /></div></div></div><br class="figure-break" /><p><code class="classname">node_update</code> (an instantiation of | |
2642 | <code class="classname">Node_Update</code>) must define <code class="classname">metadata_type</code> as | |
2643 | the type of metadata it requires. For order statistics, | |
2644 | e.g., <code class="classname">metadata_type</code> might be <code class="classname">size_t</code>. | |
2645 | @@ -939,7 +939,7 @@ | |
2646 | <code class="classname">nd_it</code>. For example, say node x in the | |
2647 | graphic below label A has an invalid invariant, but its' children, | |
2648 | y and z have valid invariants. After the invocation, all three | |
2649 | - nodes should have valid invariants, as in label B.</p><div class="figure"><a id="id522691"/><p class="title"><strong>Figure 22.25. Restoring node invariants</strong></p><div class="figure-contents"><div class="mediaobject" style="text-align: center"><img src="../images/pbds_restoring_node_invariants.png" style="text-align: middle" alt="Restoring node invariants"/></div></div></div><br class="figure-break"/><p>When a tree operation might invalidate some node invariant, | |
2650 | + nodes should have valid invariants, as in label B.</p><div class="figure"><a id="id701178"></a><p class="title"><strong>Figure 22.25. Restoring node invariants</strong></p><div class="figure-contents"><div class="mediaobject" align="center"><img src="../images/pbds_restoring_node_invariants.png" align="middle" alt="Restoring node invariants" /></div></div></div><br class="figure-break" /><p>When a tree operation might invalidate some node invariant, | |
2651 | it invokes this method in its <code class="classname">node_update</code> base to | |
2652 | restore the invariant. For example, the graphic below shows | |
2653 | an <code class="function">insert</code> operation (point A); the tree performs some | |
2654 | @@ -947,15 +947,15 @@ | |
2655 | C, and D). (It is well known that any <code class="function">insert</code>, | |
2656 | <code class="function">erase</code>, <code class="function">split</code> or <code class="function">join</code>, can restore | |
2657 | all node invariants by a small number of node invariant updates (<a class="xref" href="policy_data_structures.html#biblio.clrs2001" title="Introduction to Algorithms, 2nd edition">[biblio.clrs2001]</a>) | |
2658 | - .</p><div class="figure"><a id="id522759"/><p class="title"><strong>Figure 22.26. Insert update sequence</strong></p><div class="figure-contents"><div class="mediaobject" style="text-align: center"><img src="../images/pbds_update_seq_diagram.png" style="text-align: middle" alt="Insert update sequence"/></div></div></div><br class="figure-break"/><p>To complete the description of the scheme, three questions | |
2659 | - need to be answered:</p><div class="orderedlist"><ol class="orderedlist"><li class="listitem"><p>How can a tree which supports order statistics define a | |
2660 | + .</p><div class="figure"><a id="id701246"></a><p class="title"><strong>Figure 22.26. Insert update sequence</strong></p><div class="figure-contents"><div class="mediaobject" align="center"><img src="../images/pbds_update_seq_diagram.png" align="middle" alt="Insert update sequence" /></div></div></div><br class="figure-break" /><p>To complete the description of the scheme, three questions | |
2661 | + need to be answered:</p><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><p>How can a tree which supports order statistics define a | |
2662 | method such as <code class="classname">find_by_order</code>?</p></li><li class="listitem"><p>How can the node updater base access methods of the | |
2663 | tree?</p></li><li class="listitem"><p>How can the following cyclic dependency be resolved? | |
2664 | <code class="classname">node_update</code> is a base class of the tree, yet it | |
2665 | uses node iterators defined in the tree (its child).</p></li></ol></div><p>The first two questions are answered by the fact that | |
2666 | <code class="classname">node_update</code> (an instantiation of | |
2667 | <code class="classname">Node_Update</code>) is a <span class="emphasis"><em>public</em></span> base class | |
2668 | - of the tree. Consequently:</p><div class="orderedlist"><ol class="orderedlist"><li class="listitem"><p>Any public methods of | |
2669 | + of the tree. Consequently:</p><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><p>Any public methods of | |
2670 | <code class="classname">node_update</code> are automatically methods of | |
2671 | the tree (<a class="xref" href="policy_data_structures.html#biblio.alexandrescu01modern" title="Modern C++ Design: Generic Programming and Design Patterns Applied">[biblio.alexandrescu01modern]</a>). | |
2672 | Thus an order-statistics node updater, | |
2673 | @@ -983,25 +983,25 @@ | |
2674 | support order statistics or interval overlap queries. | |
2675 | Seemingly, in this case a redundant policy - a policy which | |
2676 | doesn't affect nodes' contents would suffice. This, would lead | |
2677 | - to the following drawbacks:</p><div class="orderedlist"><ol class="orderedlist"><li class="listitem"><p>Each node would carry a useless metadata object, wasting | |
2678 | + to the following drawbacks:</p><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><p>Each node would carry a useless metadata object, wasting | |
2679 | space.</p></li><li class="listitem"><p>The tree cannot know if its | |
2680 | <code class="classname">Node_Update</code> policy actually modifies a | |
2681 | node's metadata (this is halting reducible). In the graphic | |
2682 | below, assume the shaded node is inserted. The tree would have | |
2683 | to traverse the useless path shown to the root, applying | |
2684 | - redundant updates all the way.</p></li></ol></div><div class="figure"><a id="id522945"/><p class="title"><strong>Figure 22.27. Useless update path</strong></p><div class="figure-contents"><div class="mediaobject" style="text-align: center"><img src="../images/pbds_rationale_null_node_updator.png" style="text-align: middle" alt="Useless update path"/></div></div></div><br class="figure-break"/><p>A null policy class, <code class="classname">null_node_update</code> | |
2685 | + redundant updates all the way.</p></li></ol></div><div class="figure"><a id="id701432"></a><p class="title"><strong>Figure 22.27. Useless update path</strong></p><div class="figure-contents"><div class="mediaobject" align="center"><img src="../images/pbds_rationale_null_node_updator.png" align="middle" alt="Useless update path" /></div></div></div><br class="figure-break" /><p>A null policy class, <code class="classname">null_node_update</code> | |
2686 | solves both these problems. The tree detects that node | |
2687 | - invariants are irrelevant, and defines all accordingly.</p></div></div><div class="section" title="Split and Join"><div class="titlepage"><div><div><h6 class="title"><a id="container.tree.details.split"/>Split and Join</h6></div></div></div><p>Tree-based containers support split and join methods. | |
2688 | + invariants are irrelevant, and defines all accordingly.</p></div></div><div class="section" title="Split and Join"><div class="titlepage"><div><div><h6 class="title"><a id="container.tree.details.split"></a>Split and Join</h6></div></div></div><p>Tree-based containers support split and join methods. | |
2689 | It is possible to split a tree so that it passes | |
2690 | all nodes with keys larger than a given key to a different | |
2691 | tree. These methods have the following advantages over the | |
2692 | alternative of externally inserting to the destination | |
2693 | - tree and erasing from the source tree:</p><div class="orderedlist"><ol class="orderedlist"><li class="listitem"><p>These methods are efficient - red-black trees are split | |
2694 | + tree and erasing from the source tree:</p><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><p>These methods are efficient - red-black trees are split | |
2695 | and joined in poly-logarithmic complexity; ordered-vector | |
2696 | trees are split and joined at linear complexity. The | |
2697 | alternatives have super-linear complexity.</p></li><li class="listitem"><p>Aside from orders of growth, these operations perform | |
2698 | few allocations and de-allocations. For red-black trees, allocations are not performed, | |
2699 | - and the methods are exception-free. </p></li></ol></div></div></div></div><div class="section" title="Trie"><div class="titlepage"><div><div><h4 class="title"><a id="pbds.design.container.trie"/>Trie</h4></div></div></div><div class="section" title="Interface"><div class="titlepage"><div><div><h5 class="title"><a id="container.trie.interface"/>Interface</h5></div></div></div><p>The trie-based container has the following declaration:</p><pre class="programlisting"> | |
2700 | + and the methods are exception-free. </p></li></ol></div></div></div></div><div class="section" title="Trie"><div class="titlepage"><div><div><h4 class="title"><a id="pbds.design.container.trie"></a>Trie</h4></div></div></div><div class="section" title="Interface"><div class="titlepage"><div><div><h5 class="title"><a id="container.trie.interface"></a>Interface</h5></div></div></div><p>The trie-based container has the following declaration:</p><pre class="programlisting"> | |
2701 | template<typename Key, | |
2702 | typename Mapped, | |
2703 | typename Cmp_Fn = std::less<Key>, | |
2704 | @@ -1013,7 +1013,7 @@ | |
2705 | class Node_Update = null_node_update, | |
2706 | typename Allocator = std::allocator<char> > | |
2707 | class trie; | |
2708 | - </pre><p>The parameters have the following meaning:</p><div class="orderedlist"><ol class="orderedlist"><li class="listitem"><p><code class="classname">Key</code> is the key type.</p></li><li class="listitem"><p><code class="classname">Mapped</code> is the mapped-policy.</p></li><li class="listitem"><p><code class="classname">E_Access_Traits</code> is described in below.</p></li><li class="listitem"><p><code class="classname">Tag</code> specifies which underlying data structure | |
2709 | + </pre><p>The parameters have the following meaning:</p><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><p><code class="classname">Key</code> is the key type.</p></li><li class="listitem"><p><code class="classname">Mapped</code> is the mapped-policy.</p></li><li class="listitem"><p><code class="classname">E_Access_Traits</code> is described in below.</p></li><li class="listitem"><p><code class="classname">Tag</code> specifies which underlying data structure | |
2710 | to use, and is described shortly.</p></li><li class="listitem"><p><code class="classname">Node_Update</code> is a policy for updating node | |
2711 | invariants. This is described below.</p></li><li class="listitem"><p><code class="classname">Allocator</code> is an allocator | |
2712 | type.</p></li></ol></div><p>The <code class="classname">Tag</code> parameter specifies which underlying | |
2713 | @@ -1023,19 +1023,19 @@ | |
2714 | (this implementation follows <a class="xref" href="policy_data_structures.html#biblio.okasaki98mereable" title="Fast mergeable integer maps">[biblio.okasaki98mereable]</a> and | |
2715 | <a class="xref" href="policy_data_structures.html#biblio.filliatre2000ptset" title="Ptset: Sets of integers implemented as Patricia trees">[biblio.filliatre2000ptset]</a>). | |
2716 | </p><p>A (PATRICIA) trie is similar to a tree, but with the | |
2717 | - following differences:</p><div class="orderedlist"><ol class="orderedlist"><li class="listitem"><p>It explicitly views keys as a sequence of elements. | |
2718 | + following differences:</p><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><p>It explicitly views keys as a sequence of elements. | |
2719 | E.g., a trie can view a string as a sequence of | |
2720 | characters; a trie can view a number as a sequence of | |
2721 | bits.</p></li><li class="listitem"><p>It is not (necessarily) binary. Each node has fan-out n | |
2722 | + 1, where n is the number of distinct | |
2723 | elements.</p></li><li class="listitem"><p>It stores values only at leaf nodes.</p></li><li class="listitem"><p>Internal nodes have the properties that A) each has at | |
2724 | least two children, and B) each shares the same prefix with | |
2725 | - any of its descendant.</p></li></ol></div><p>A (PATRICIA) trie has some useful properties:</p><div class="orderedlist"><ol class="orderedlist"><li class="listitem"><p>It can be configured to use large node fan-out, giving it | |
2726 | + any of its descendant.</p></li></ol></div><p>A (PATRICIA) trie has some useful properties:</p><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><p>It can be configured to use large node fan-out, giving it | |
2727 | very efficient find performance (albeit at insertion | |
2728 | complexity and size).</p></li><li class="listitem"><p>It works well for common-prefix keys.</p></li><li class="listitem"><p>It can support efficiently queries such as which | |
2729 | keys match a certain prefix. This is sometimes useful in file | |
2730 | systems and routers, and for "type-ahead" aka predictive text matching | |
2731 | - on mobile devices.</p></li></ol></div></div><div class="section" title="Details"><div class="titlepage"><div><div><h5 class="title"><a id="container.trie.details"/>Details</h5></div></div></div><div class="section" title="Element Access Traits"><div class="titlepage"><div><div><h6 class="title"><a id="container.trie.details.etraits"/>Element Access Traits</h6></div></div></div><p>A trie inherently views its keys as sequences of elements. | |
2732 | + on mobile devices.</p></li></ol></div></div><div class="section" title="Details"><div class="titlepage"><div><div><h5 class="title"><a id="container.trie.details"></a>Details</h5></div></div></div><div class="section" title="Element Access Traits"><div class="titlepage"><div><div><h6 class="title"><a id="container.trie.details.etraits"></a>Element Access Traits</h6></div></div></div><p>A trie inherently views its keys as sequences of elements. | |
2733 | For example, a trie can view a string as a sequence of | |
2734 | characters. A trie needs to map each of n elements to a | |
2735 | number in {0, n - 1}. For example, a trie can map a | |
2736 | @@ -1044,7 +1044,7 @@ | |
2737 | (const) iterators, and that the <code class="classname">value_type</code> of this | |
2738 | iterator can be cast to a <code class="classname">size_t</code>. There are several | |
2739 | reasons, though, to decouple the mechanism by which the trie | |
2740 | - accesses its keys' elements from the trie:</p><div class="orderedlist"><ol class="orderedlist"><li class="listitem"><p>In some cases, the numerical value of an element is | |
2741 | + accesses its keys' elements from the trie:</p><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><p>In some cases, the numerical value of an element is | |
2742 | inappropriate. Consider a trie storing DNA strings. It is | |
2743 | logical to use a trie with a fan-out of 5 = 1 + |{'A', 'C', | |
2744 | 'G', 'T'}|. This requires mapping 'T' to 3, though.</p></li><li class="listitem"><p>In some cases the keys' iterators are different than what | |
2745 | @@ -1072,31 +1072,31 @@ | |
2746 | sub-tree with leafs "a" and "as". The maximal common prefix is | |
2747 | "a". The internal node contains, consequently, to const | |
2748 | iterators, one pointing to <code class="varname">'a'</code>, and the other to | |
2749 | - <code class="varname">'s'</code>.</p><div class="figure"><a id="id523317"/><p class="title"><strong>Figure 22.28. A PATRICIA trie</strong></p><div class="figure-contents"><div class="mediaobject" style="text-align: center"><img src="../images/pbds_pat_trie.png" style="text-align: middle" alt="A PATRICIA trie"/></div></div></div><br class="figure-break"/></div><div class="section" title="Node Invariants"><div class="titlepage"><div><div><h6 class="title"><a id="container.trie.details.node"/>Node Invariants</h6></div></div></div><p>Trie-based containers support node invariants, as do | |
2750 | + <code class="varname">'s'</code>.</p><div class="figure"><a id="id701804"></a><p class="title"><strong>Figure 22.28. A PATRICIA trie</strong></p><div class="figure-contents"><div class="mediaobject" align="center"><img src="../images/pbds_pat_trie.png" align="middle" alt="A PATRICIA trie" /></div></div></div><br class="figure-break" /></div><div class="section" title="Node Invariants"><div class="titlepage"><div><div><h6 class="title"><a id="container.trie.details.node"></a>Node Invariants</h6></div></div></div><p>Trie-based containers support node invariants, as do | |
2751 | tree-based containers. There are two minor | |
2752 | differences, though, which, unfortunately, thwart sharing them | |
2753 | - sharing the same node-updating policies:</p><div class="orderedlist"><ol class="orderedlist"><li class="listitem"><p>A trie's <code class="classname">Node_Update</code> template-template | |
2754 | + sharing the same node-updating policies:</p><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><p>A trie's <code class="classname">Node_Update</code> template-template | |
2755 | parameter is parametrized by <code class="classname">E_Access_Traits</code>, while | |
2756 | a tree's <code class="classname">Node_Update</code> template-template parameter is | |
2757 | parametrized by <code class="classname">Cmp_Fn</code>.</p></li><li class="listitem"><p>Tree-based containers store values in all nodes, while | |
2758 | trie-based containers (at least in this implementation) store | |
2759 | values in leafs.</p></li></ol></div><p>The graphic below shows the scheme, as well as some predefined | |
2760 | - policies (which are explained below).</p><div class="figure"><a id="id523405"/><p class="title"><strong>Figure 22.29. A trie and its update policy</strong></p><div class="figure-contents"><div class="mediaobject" style="text-align: center"><img src="../images/pbds_trie_node_updator_policy_cd.png" style="text-align: middle" alt="A trie and its update policy"/></div></div></div><br class="figure-break"/><p>This library offers the following pre-defined trie node | |
2761 | - updating policies:</p><div class="orderedlist"><ol class="orderedlist"><li class="listitem"><p> | |
2762 | + policies (which are explained below).</p><div class="figure"><a id="id701891"></a><p class="title"><strong>Figure 22.29. A trie and its update policy</strong></p><div class="figure-contents"><div class="mediaobject" align="center"><img src="../images/pbds_trie_node_updator_policy_cd.png" align="middle" alt="A trie and its update policy" /></div></div></div><br class="figure-break" /><p>This library offers the following pre-defined trie node | |
2763 | + updating policies:</p><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><p> | |
2764 | <code class="classname">trie_order_statistics_node_update</code> | |
2765 | supports order statistics. | |
2766 | </p></li><li class="listitem"><p><code class="classname">trie_prefix_search_node_update</code> | |
2767 | supports searching for ranges that match a given prefix.</p></li><li class="listitem"><p><code class="classname">null_node_update</code> | |
2768 | - is the null node updater.</p></li></ol></div></div><div class="section" title="Split and Join"><div class="titlepage"><div><div><h6 class="title"><a id="container.trie.details.split"/>Split and Join</h6></div></div></div><p>Trie-based containers support split and join methods; the | |
2769 | + is the null node updater.</p></li></ol></div></div><div class="section" title="Split and Join"><div class="titlepage"><div><div><h6 class="title"><a id="container.trie.details.split"></a>Split and Join</h6></div></div></div><p>Trie-based containers support split and join methods; the | |
2770 | rationale is equal to that of tree-based containers supporting | |
2771 | - these methods.</p></div></div></div><div class="section" title="List"><div class="titlepage"><div><div><h4 class="title"><a id="pbds.design.container.list"/>List</h4></div></div></div><div class="section" title="Interface"><div class="titlepage"><div><div><h5 class="title"><a id="container.list.interface"/>Interface</h5></div></div></div><p>The list-based container has the following declaration:</p><pre class="programlisting"> | |
2772 | + these methods.</p></div></div></div><div class="section" title="List"><div class="titlepage"><div><div><h4 class="title"><a id="pbds.design.container.list"></a>List</h4></div></div></div><div class="section" title="Interface"><div class="titlepage"><div><div><h5 class="title"><a id="container.list.interface"></a>Interface</h5></div></div></div><p>The list-based container has the following declaration:</p><pre class="programlisting"> | |
2773 | template<typename Key, | |
2774 | typename Mapped, | |
2775 | typename Eq_Fn = std::equal_to<Key>, | |
2776 | typename Update_Policy = move_to_front_lu_policy<>, | |
2777 | typename Allocator = std::allocator<char> > | |
2778 | class list_update; | |
2779 | - </pre><p>The parameters have the following meaning:</p><div class="orderedlist"><ol class="orderedlist"><li class="listitem"><p> | |
2780 | + </pre><p>The parameters have the following meaning:</p><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><p> | |
2781 | <code class="classname">Key</code> is the key type. | |
2782 | </p></li><li class="listitem"><p> | |
2783 | <code class="classname">Mapped</code> is the mapped-policy. | |
2784 | @@ -1124,12 +1124,12 @@ | |
2785 | useful manner? Remarkably, many on-line competitive | |
2786 | algorithms exist for reordering lists to reflect access | |
2787 | prediction. (See <a class="xref" href="policy_data_structures.html#biblio.motwani95random" title="Randomized Algorithms">[biblio.motwani95random]</a> and <a class="xref" href="policy_data_structures.html#biblio.andrew04mtf" title="MTF, Bit, and COMB: A Guide to Deterministic and Randomized Algorithms for the List Update Problem">[biblio.andrew04mtf]</a>). | |
2788 | - </p></div><div class="section" title="Details"><div class="titlepage"><div><div><h5 class="title"><a id="container.list.details"/>Details</h5></div></div></div><p> | |
2789 | - </p><div class="section" title="Underlying Data Structure"><div class="titlepage"><div><div><h6 class="title"><a id="container.list.details.ds"/>Underlying Data Structure</h6></div></div></div><p>The graphic below shows a | |
2790 | + </p></div><div class="section" title="Details"><div class="titlepage"><div><div><h5 class="title"><a id="container.list.details"></a>Details</h5></div></div></div><p> | |
2791 | + </p><div class="section" title="Underlying Data Structure"><div class="titlepage"><div><div><h6 class="title"><a id="container.list.details.ds"></a>Underlying Data Structure</h6></div></div></div><p>The graphic below shows a | |
2792 | simple list of integer keys. If we search for the integer 6, we | |
2793 | are paying an overhead: the link with key 6 is only the fifth | |
2794 | link; if it were the first link, it could be accessed | |
2795 | - faster.</p><div class="figure"><a id="id523660"/><p class="title"><strong>Figure 22.30. A simple list</strong></p><div class="figure-contents"><div class="mediaobject" style="text-align: center"><img src="../images/pbds_simple_list.png" style="text-align: middle" alt="A simple list"/></div></div></div><br class="figure-break"/><p>List-update algorithms reorder lists as elements are | |
2796 | + faster.</p><div class="figure"><a id="id702146"></a><p class="title"><strong>Figure 22.30. A simple list</strong></p><div class="figure-contents"><div class="mediaobject" align="center"><img src="../images/pbds_simple_list.png" align="middle" alt="A simple list" /></div></div></div><br class="figure-break" /><p>List-update algorithms reorder lists as elements are | |
2797 | accessed. They try to determine, by the access history, which | |
2798 | keys to move to the front of the list. Some of these algorithms | |
2799 | require adding some metadata alongside each entry.</p><p>For example, in the graphic below label A shows the counter | |
2800 | @@ -1139,7 +1139,7 @@ | |
2801 | predetermined value, say 10, as shown in label C, the count is set | |
2802 | to 0 and the node is moved to the front of the list, as in label | |
2803 | D. | |
2804 | - </p><div class="figure"><a id="id523706"/><p class="title"><strong>Figure 22.31. The counter algorithm</strong></p><div class="figure-contents"><div class="mediaobject" style="text-align: center"><img src="../images/pbds_list_update.png" style="text-align: middle" alt="The counter algorithm"/></div></div></div><br class="figure-break"/></div><div class="section" title="Policies"><div class="titlepage"><div><div><h6 class="title"><a id="container.list.details.policies"/>Policies</h6></div></div></div><p>this library allows instantiating lists with policies | |
2805 | + </p><div class="figure"><a id="id702193"></a><p class="title"><strong>Figure 22.31. The counter algorithm</strong></p><div class="figure-contents"><div class="mediaobject" align="center"><img src="../images/pbds_list_update.png" align="middle" alt="The counter algorithm" /></div></div></div><br class="figure-break" /></div><div class="section" title="Policies"><div class="titlepage"><div><div><h6 class="title"><a id="container.list.details.policies"></a>Policies</h6></div></div></div><p>this library allows instantiating lists with policies | |
2806 | implementing any algorithm moving nodes to the front of the | |
2807 | list (policies implementing algorithms interchanging nodes are | |
2808 | unsupported).</p><p>Associative containers based on lists are parametrized by a | |
2809 | @@ -1174,7 +1174,7 @@ | |
2810 | the list. The latter type is very useful in this library, | |
2811 | since there is no need to associate metadata with each element. | |
2812 | (See <a class="xref" href="policy_data_structures.html#biblio.andrew04mtf" title="MTF, Bit, and COMB: A Guide to Deterministic and Randomized Algorithms for the List Update Problem">[biblio.andrew04mtf]</a> | |
2813 | - </p></div><div class="section" title="Use in Multimaps"><div class="titlepage"><div><div><h6 class="title"><a id="container.list.details.mapped"/>Use in Multimaps</h6></div></div></div><p>In this library, there are no equivalents for the standard's | |
2814 | + </p></div><div class="section" title="Use in Multimaps"><div class="titlepage"><div><div><h6 class="title"><a id="container.list.details.mapped"></a>Use in Multimaps</h6></div></div></div><p>In this library, there are no equivalents for the standard's | |
2815 | multimaps and multisets; instead one uses an associative | |
2816 | container mapping primary keys to secondary keys.</p><p>List-based containers are especially useful as associative | |
2817 | containers for secondary keys. In fact, they are implemented | |
2818 | @@ -1189,7 +1189,7 @@ | |
2819 | associative-containers in situations where the average ratio of | |
2820 | secondary keys to primary keys is low (or even 1).</p><p>In order to reduce the per-container memory overhead as much | |
2821 | as possible, they are implemented as closely as possible to | |
2822 | - singly-linked lists.</p><div class="orderedlist"><ol class="orderedlist"><li class="listitem"><p> | |
2823 | + singly-linked lists.</p><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><p> | |
2824 | List-based containers do not store internally the number | |
2825 | of values that they hold. This means that their <code class="function">size</code> | |
2826 | method has linear complexity (just like <code class="classname">std::list</code>). | |
2827 | @@ -1203,7 +1203,7 @@ | |
2828 | object (a hash-based container object holds a | |
2829 | hash functor). List-based containers, conversely, only have | |
2830 | class-wide policy objects. | |
2831 | - </p></li></ol></div></div></div></div><div class="section" title="Priority Queue"><div class="titlepage"><div><div><h4 class="title"><a id="pbds.design.container.priority_queue"/>Priority Queue</h4></div></div></div><div class="section" title="Interface"><div class="titlepage"><div><div><h5 class="title"><a id="container.priority_queue.interface"/>Interface</h5></div></div></div><p>The priority queue container has the following | |
2832 | + </p></li></ol></div></div></div></div><div class="section" title="Priority Queue"><div class="titlepage"><div><div><h4 class="title"><a id="pbds.design.container.priority_queue"></a>Priority Queue</h4></div></div></div><div class="section" title="Interface"><div class="titlepage"><div><div><h5 class="title"><a id="container.priority_queue.interface"></a>Interface</h5></div></div></div><p>The priority queue container has the following | |
2833 | declaration: | |
2834 | </p><pre class="programlisting"> | |
2835 | template<typename Value_Type, | |
2836 | @@ -1211,7 +1211,7 @@ | |
2837 | typename Tag = pairing_heap_tag, | |
2838 | typename Allocator = std::allocator<char > > | |
2839 | class priority_queue; | |
2840 | - </pre><p>The parameters have the following meaning:</p><div class="orderedlist"><ol class="orderedlist"><li class="listitem"><p><code class="classname">Value_Type</code> is the value type.</p></li><li class="listitem"><p><code class="classname">Cmp_Fn</code> is a value comparison functor</p></li><li class="listitem"><p><code class="classname">Tag</code> specifies which underlying data structure | |
2841 | + </pre><p>The parameters have the following meaning:</p><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><p><code class="classname">Value_Type</code> is the value type.</p></li><li class="listitem"><p><code class="classname">Cmp_Fn</code> is a value comparison functor</p></li><li class="listitem"><p><code class="classname">Tag</code> specifies which underlying data structure | |
2842 | to use.</p></li><li class="listitem"><p><code class="classname">Allocator</code> is an allocator | |
2843 | type.</p></li></ol></div><p>The <code class="classname">Tag</code> parameter specifies which underlying | |
2844 | data structure to use. Instantiating it by<code class="classname">pairing_heap_tag</code>,<code class="classname">binary_heap_tag</code>, | |
2845 | @@ -1239,7 +1239,7 @@ | |
2846 | insufficient for manipulating priority-queues. </p><p>Different settings require different priority-queue | |
2847 | implementations which are described in later; see traits | |
2848 | discusses ways to differentiate between the different traits of | |
2849 | - different implementations.</p></div><div class="section" title="Details"><div class="titlepage"><div><div><h5 class="title"><a id="container.priority_queue.details"/>Details</h5></div></div></div><div class="section" title="Iterators"><div class="titlepage"><div><div><h6 class="title"><a id="container.priority_queue.details.iterators"/>Iterators</h6></div></div></div><p>There are many different underlying-data structures for | |
2850 | + different implementations.</p></div><div class="section" title="Details"><div class="titlepage"><div><div><h5 class="title"><a id="container.priority_queue.details"></a>Details</h5></div></div></div><div class="section" title="Iterators"><div class="titlepage"><div><div><h6 class="title"><a id="container.priority_queue.details.iterators"></a>Iterators</h6></div></div></div><p>There are many different underlying-data structures for | |
2851 | implementing priority queues. Unfortunately, most such | |
2852 | structures are oriented towards making <code class="function">push</code> and | |
2853 | <code class="function">top</code> efficient, and consequently don't allow efficient | |
2854 | @@ -1306,12 +1306,12 @@ | |
2855 | this data and a priority queue's iterator. Using the embedded | |
2856 | method would need to use two associative containers. Similar | |
2857 | problems might arise in cases where a value can reside | |
2858 | - simultaneously in many priority queues.</p></div><div class="section" title="Underlying Data Structure"><div class="titlepage"><div><div><h6 class="title"><a id="container.priority_queue.details.d"/>Underlying Data Structure</h6></div></div></div><p>There are three main implementations of priority queues: the | |
2859 | + simultaneously in many priority queues.</p></div><div class="section" title="Underlying Data Structure"><div class="titlepage"><div><div><h6 class="title"><a id="container.priority_queue.details.d"></a>Underlying Data Structure</h6></div></div></div><p>There are three main implementations of priority queues: the | |
2860 | first employs a binary heap, typically one which uses a | |
2861 | sequence; the second uses a tree (or forest of trees), which is | |
2862 | typically less structured than an associative container's tree; | |
2863 | the third simply uses an associative container. These are | |
2864 | - shown in the graphic below, in labels A1 and A2, label B, and label C.</p><div class="figure"><a id="id524238"/><p class="title"><strong>Figure 22.32. Underlying Priority-Queue Data-Structures.</strong></p><div class="figure-contents"><div class="mediaobject" style="text-align: center"><img src="../images/pbds_priority_queue_different_underlying_dss.png" style="text-align: middle" alt="Underlying Priority-Queue Data-Structures."/></div></div></div><br class="figure-break"/><p>Roughly speaking, any value that is both pushed and popped | |
2865 | + shown in the graphic below, in labels A1 and A2, label B, and label C.</p><div class="figure"><a id="id702724"></a><p class="title"><strong>Figure 22.32. Underlying Priority-Queue Data-Structures.</strong></p><div class="figure-contents"><div class="mediaobject" align="center"><img src="../images/pbds_priority_queue_different_underlying_dss.png" align="middle" alt="Underlying Priority-Queue Data-Structures." /></div></div></div><br class="figure-break" /><p>Roughly speaking, any value that is both pushed and popped | |
2866 | from a priority queue must incur a logarithmic expense (in the | |
2867 | amortized sense). Any priority queue implementation that would | |
2868 | avoid this, would violate known bounds on comparison-based | |
2869 | @@ -1327,7 +1327,7 @@ | |
2870 | of <code class="function">push</code> and <code class="function">pop</code> operations.</p><p>This library implements different algorithms using a | |
2871 | single class: <code class="classname">priority_queue</code>. | |
2872 | Instantiating the <code class="classname">Tag</code> template parameter, "selects" | |
2873 | - the implementation:</p><div class="orderedlist"><ol class="orderedlist"><li class="listitem"><p> | |
2874 | + the implementation:</p><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><p> | |
2875 | Instantiating <code class="classname">Tag = binary_heap_tag</code> creates | |
2876 | a binary heap of the form in represented in the graphic with labels A1 or A2. The former is internally | |
2877 | selected by priority_queue | |
2878 | @@ -1381,7 +1381,7 @@ | |
2879 | at all; the priority queue itself is an associative container. | |
2880 | Most associative containers are too structured to compete with | |
2881 | priority queues in terms of <code class="function">push</code> and <code class="function">pop</code> | |
2882 | - performance.</p></div><div class="section" title="Traits"><div class="titlepage"><div><div><h6 class="title"><a id="container.priority_queue.details.traits"/>Traits</h6></div></div></div><p>It would be nice if all priority queues could | |
2883 | + performance.</p></div><div class="section" title="Traits"><div class="titlepage"><div><div><h6 class="title"><a id="container.priority_queue.details.traits"></a>Traits</h6></div></div></div><p>It would be nice if all priority queues could | |
2884 | share exactly the same behavior regardless of implementation. Sadly, this is not possible. Just one for instance is in join operations: joining | |
2885 | two binary heaps might throw an exception (not corrupt | |
2886 | any of the heaps on which it operates), but joining two pairing | |
2887 | @@ -1391,7 +1391,7 @@ | |
2888 | container <code class="classname">Cntnr</code>, the tag of the underlying | |
2889 | data structure can be found via <code class="classname">typename | |
2890 | Cntnr::container_category</code>; this is one of the possible tags shown in the graphic below. | |
2891 | - </p><div class="figure"><a id="id524529"/><p class="title"><strong>Figure 22.33. Priority-Queue Data-Structure Tags.</strong></p><div class="figure-contents"><div class="mediaobject" style="text-align: center"><img src="../images/pbds_priority_queue_tag_hierarchy.png" style="text-align: middle" alt="Priority-Queue Data-Structure Tags."/></div></div></div><br class="figure-break"/><p>Additionally, a traits mechanism can be used to query a | |
2892 | + </p><div class="figure"><a id="id703016"></a><p class="title"><strong>Figure 22.33. Priority-Queue Data-Structure Tags.</strong></p><div class="figure-contents"><div class="mediaobject" align="center"><img src="../images/pbds_priority_queue_tag_hierarchy.png" align="middle" alt="Priority-Queue Data-Structure Tags." /></div></div></div><br class="figure-break" /><p>Additionally, a traits mechanism can be used to query a | |
2893 | container type for its attributes. Given any container | |
2894 | <code class="classname">Cntnr</code>, then </p><pre class="programlisting">__gnu_pbds::container_traits<Cntnr></pre><p> | |
2895 | is a traits class identifying the properties of the | |
2896 | @@ -1427,4 +1427,4 @@ | |
2897 | <code class="function">erase</code> operations is non-negligible (say | |
2898 | super-logarithmic in the total sequence of operations) - binary | |
2899 | heaps will perform badly. | |
2900 | - </p></div></div></div></div></div><div class="navfooter"><hr/><table width="100%" summary="Navigation footer"><tr><td align="left"><a accesskey="p" href="policy_data_structures_using.html">Prev</a> </td><td align="center"><a accesskey="u" href="policy_data_structures.html">Up</a></td><td align="right"> <a accesskey="n" href="policy_based_data_structures_test.html">Next</a></td></tr><tr><td align="left" valign="top">Using </td><td align="center"><a accesskey="h" href="../index.html">Home</a></td><td align="right" valign="top"> Testing</td></tr></table></div></body></html> | |
2901 | + </p></div></div></div></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="policy_data_structures_using.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="policy_data_structures.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="policy_based_data_structures_test.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Using </td><td width="20%" align="center"><a accesskey="h" href="../index.html">Home</a></td><td width="40%" align="right" valign="top"> Testing</td></tr></table></div></body></html> | |
2902 | Index: libstdc++-v3/doc/html/manual/using.html | |
2903 | =================================================================== | |
9f95000d AM |
2904 | --- libstdc++-v3/doc/html/manual/using.html (.../tags/gcc_4_7_2_release) (wersja 192468) |
2905 | +++ libstdc++-v3/doc/html/manual/using.html (.../branches/gcc-4_7-branch) (wersja 192468) | |
5a87b929 AM |
2906 | @@ -1,15 +1,15 @@ |
2907 | <?xml version="1.0" encoding="UTF-8" standalone="no"?> | |
2908 | -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> | |
2909 | -<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Chapter 3. Using</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1"/><meta name="keywords" content=" ISO C++ , library "/><meta name="keywords" content=" ISO C++ , runtime , library "/><link rel="home" href="../index.html" title="The GNU C++ Library"/><link rel="up" href="intro.html" title="Part I. Introduction"/><link rel="prev" href="make.html" title="Make"/><link rel="next" href="using_headers.html" title="Headers"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 3. Using</th></tr><tr><td align="left"><a accesskey="p" href="make.html">Prev</a> </td><th width="60%" align="center">Part I. | |
2910 | +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> | |
2911 | +<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Chapter 3. Using</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1" /><meta name="keywords" content=" ISO C++ , library " /><meta name="keywords" content=" ISO C++ , runtime , library " /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="intro.html" title="Part I. Introduction" /><link rel="prev" href="make.html" title="Make" /><link rel="next" href="using_headers.html" title="Headers" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 3. Using</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="make.html">Prev</a> </td><th width="60%" align="center">Part I. | |
2912 | Introduction | |
2913 | ||
2914 | -</th><td align="right"> <a accesskey="n" href="using_headers.html">Next</a></td></tr></table><hr/></div><div class="chapter" title="Chapter 3. Using"><div class="titlepage"><div><div><h2 class="title"><a id="manual.intro.using"/>Chapter 3. Using</h2></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl><dt><span class="section"><a href="using.html#manual.intro.using.flags">Command Options</a></span></dt><dt><span class="section"><a href="using_headers.html">Headers</a></span></dt><dd><dl><dt><span class="section"><a href="using_headers.html#manual.intro.using.headers.all">Header Files</a></span></dt><dt><span class="section"><a href="using_headers.html#manual.intro.using.headers.mixing">Mixing Headers</a></span></dt><dt><span class="section"><a href="using_headers.html#manual.intro.using.headers.cheaders">The C Headers and <code class="code">namespace std</code></a></span></dt><dt><span class="section"><a href="using_headers.html#manual.intro.using.headers.pre">Precompiled Headers</a></span></dt></dl></dd><dt><span class="section"><a href="using_macros.html">Macros</a></span></dt><dt><span class="section"><a href="using_namespaces.html">Namespaces</a></span></dt><dd><dl><dt><span class="section"><a href="using_namespaces.html#manual.intro.using.namespaces.all">Available Namespaces</a></span></dt><dt><span class="section"><a href="using_namespaces.html#manual.intro.using.namespaces.std">namespace std</a></span></dt><dt><span class="section"><a href="using_namespaces.html#manual.intro.using.namespaces.comp">Using Namespace Composition</a></span></dt></dl></dd><dt><span class="section"><a href="using_dynamic_or_shared.html">Linking</a></span></dt><dd><dl><dt><span class="section"><a href="using_dynamic_or_shared.html#manual.intro.using.linkage.freestanding">Almost Nothing</a></span></dt><dt><span class="section"><a href="using_dynamic_or_shared.html#manual.intro.using.linkage.dynamic">Finding Dynamic or Shared Libraries</a></span></dt></dl></dd><dt><span class="section"><a href="using_concurrency.html">Concurrency</a></span></dt><dd><dl><dt><span class="section"><a href="using_concurrency.html#manual.intro.using.concurrency.prereq">Prerequisites</a></span></dt><dt><span class="section"><a href="using_concurrency.html#manual.intro.using.concurrency.thread_safety">Thread Safety</a></span></dt><dt><span class="section"><a href="using_concurrency.html#manual.intro.using.concurrency.atomics">Atomics</a></span></dt><dt><span class="section"><a href="using_concurrency.html#manual.intro.using.concurrency.io">IO</a></span></dt><dd><dl><dt><span class="section"><a href="using_concurrency.html#concurrency.io.structure">Structure</a></span></dt><dt><span class="section"><a href="using_concurrency.html#concurrency.io.defaults">Defaults</a></span></dt><dt><span class="section"><a href="using_concurrency.html#concurrency.io.future">Future</a></span></dt><dt><span class="section"><a href="using_concurrency.html#concurrency.io.alt">Alternatives</a></span></dt></dl></dd><dt><span class="section"><a href="using_concurrency.html#manual.intro.using.concurrency.containers">Containers</a></span></dt></dl></dd><dt><span class="section"><a href="using_exceptions.html">Exceptions</a></span></dt><dd><dl><dt><span class="section"><a href="using_exceptions.html#intro.using.exception.safety">Exception Safety</a></span></dt><dt><span class="section"><a href="using_exceptions.html#intro.using.exception.propagating">Exception Neutrality</a></span></dt><dt><span class="section"><a href="using_exceptions.html#intro.using.exception.no">Doing without</a></span></dt><dt><span class="section"><a href="using_exceptions.html#intro.using.exception.compat">Compatibility</a></span></dt><dd><dl><dt><span class="section"><a href="using_exceptions.html#using.exception.compat.c">With <code class="literal">C</code></a></span></dt><dt><span class="section"><a href="using_exceptions.html#using.exception.compat.posix">With <code class="literal">POSIX</code> thread cancellation</a></span></dt></dl></dd></dl></dd><dt><span class="section"><a href="debug.html">Debugging Support</a></span></dt><dd><dl><dt><span class="section"><a href="debug.html#debug.compiler">Using <span class="command"><strong>g++</strong></span></a></span></dt><dt><span class="section"><a href="debug.html#debug.req">Debug Versions of Library Binary Files</a></span></dt><dt><span class="section"><a href="debug.html#debug.memory">Memory Leak Hunting</a></span></dt><dt><span class="section"><a href="debug.html#debug.races">Data Race Hunting</a></span></dt><dt><span class="section"><a href="debug.html#debug.gdb">Using <span class="command"><strong>gdb</strong></span></a></span></dt><dt><span class="section"><a href="debug.html#debug.exceptions">Tracking uncaught exceptions</a></span></dt><dt><span class="section"><a href="debug.html#debug.debug_mode">Debug Mode</a></span></dt><dt><span class="section"><a href="debug.html#debug.compile_time_checks">Compile Time Checking</a></span></dt><dt><span class="section"><a href="debug.html#debug.profile_mode">Profile-based Performance Analysis</a></span></dt></dl></dd></dl></div><div class="section" title="Command Options"><div class="titlepage"><div><div><h2 class="title"><a id="manual.intro.using.flags"/>Command Options</h2></div></div></div><p> | |
2915 | +</th><td width="20%" align="right"> <a accesskey="n" href="using_headers.html">Next</a></td></tr></table><hr /></div><div class="chapter" title="Chapter 3. Using"><div class="titlepage"><div><div><h2 class="title"><a id="manual.intro.using"></a>Chapter 3. Using</h2></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl><dt><span class="section"><a href="using.html#manual.intro.using.flags">Command Options</a></span></dt><dt><span class="section"><a href="using_headers.html">Headers</a></span></dt><dd><dl><dt><span class="section"><a href="using_headers.html#manual.intro.using.headers.all">Header Files</a></span></dt><dt><span class="section"><a href="using_headers.html#manual.intro.using.headers.mixing">Mixing Headers</a></span></dt><dt><span class="section"><a href="using_headers.html#manual.intro.using.headers.cheaders">The C Headers and <code class="code">namespace std</code></a></span></dt><dt><span class="section"><a href="using_headers.html#manual.intro.using.headers.pre">Precompiled Headers</a></span></dt></dl></dd><dt><span class="section"><a href="using_macros.html">Macros</a></span></dt><dt><span class="section"><a href="using_namespaces.html">Namespaces</a></span></dt><dd><dl><dt><span class="section"><a href="using_namespaces.html#manual.intro.using.namespaces.all">Available Namespaces</a></span></dt><dt><span class="section"><a href="using_namespaces.html#manual.intro.using.namespaces.std">namespace std</a></span></dt><dt><span class="section"><a href="using_namespaces.html#manual.intro.using.namespaces.comp">Using Namespace Composition</a></span></dt></dl></dd><dt><span class="section"><a href="using_dynamic_or_shared.html">Linking</a></span></dt><dd><dl><dt><span class="section"><a href="using_dynamic_or_shared.html#manual.intro.using.linkage.freestanding">Almost Nothing</a></span></dt><dt><span class="section"><a href="using_dynamic_or_shared.html#manual.intro.using.linkage.dynamic">Finding Dynamic or Shared Libraries</a></span></dt></dl></dd><dt><span class="section"><a href="using_concurrency.html">Concurrency</a></span></dt><dd><dl><dt><span class="section"><a href="using_concurrency.html#manual.intro.using.concurrency.prereq">Prerequisites</a></span></dt><dt><span class="section"><a href="using_concurrency.html#manual.intro.using.concurrency.thread_safety">Thread Safety</a></span></dt><dt><span class="section"><a href="using_concurrency.html#manual.intro.using.concurrency.atomics">Atomics</a></span></dt><dt><span class="section"><a href="using_concurrency.html#manual.intro.using.concurrency.io">IO</a></span></dt><dd><dl><dt><span class="section"><a href="using_concurrency.html#concurrency.io.structure">Structure</a></span></dt><dt><span class="section"><a href="using_concurrency.html#concurrency.io.defaults">Defaults</a></span></dt><dt><span class="section"><a href="using_concurrency.html#concurrency.io.future">Future</a></span></dt><dt><span class="section"><a href="using_concurrency.html#concurrency.io.alt">Alternatives</a></span></dt></dl></dd><dt><span class="section"><a href="using_concurrency.html#manual.intro.using.concurrency.containers">Containers</a></span></dt></dl></dd><dt><span class="section"><a href="using_exceptions.html">Exceptions</a></span></dt><dd><dl><dt><span class="section"><a href="using_exceptions.html#intro.using.exception.safety">Exception Safety</a></span></dt><dt><span class="section"><a href="using_exceptions.html#intro.using.exception.propagating">Exception Neutrality</a></span></dt><dt><span class="section"><a href="using_exceptions.html#intro.using.exception.no">Doing without</a></span></dt><dt><span class="section"><a href="using_exceptions.html#intro.using.exception.compat">Compatibility</a></span></dt><dd><dl><dt><span class="section"><a href="using_exceptions.html#using.exception.compat.c">With <code class="literal">C</code></a></span></dt><dt><span class="section"><a href="using_exceptions.html#using.exception.compat.posix">With <code class="literal">POSIX</code> thread cancellation</a></span></dt></dl></dd></dl></dd><dt><span class="section"><a href="debug.html">Debugging Support</a></span></dt><dd><dl><dt><span class="section"><a href="debug.html#debug.compiler">Using <span class="command"><strong>g++</strong></span></a></span></dt><dt><span class="section"><a href="debug.html#debug.req">Debug Versions of Library Binary Files</a></span></dt><dt><span class="section"><a href="debug.html#debug.memory">Memory Leak Hunting</a></span></dt><dt><span class="section"><a href="debug.html#debug.races">Data Race Hunting</a></span></dt><dt><span class="section"><a href="debug.html#debug.gdb">Using <span class="command"><strong>gdb</strong></span></a></span></dt><dt><span class="section"><a href="debug.html#debug.exceptions">Tracking uncaught exceptions</a></span></dt><dt><span class="section"><a href="debug.html#debug.debug_mode">Debug Mode</a></span></dt><dt><span class="section"><a href="debug.html#debug.compile_time_checks">Compile Time Checking</a></span></dt><dt><span class="section"><a href="debug.html#debug.profile_mode">Profile-based Performance Analysis</a></span></dt></dl></dd></dl></div><div class="section" title="Command Options"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="manual.intro.using.flags"></a>Command Options</h2></div></div></div><p> | |
2916 | The set of features available in the GNU C++ library is shaped | |
2917 | by | |
2918 | - several <a class="link" href="http://gcc.gnu.org/onlinedocs/gcc-4.3.2/gcc/Invoking-GCC.html">GCC | |
2919 | + several <a class="link" href="http://gcc.gnu.org/onlinedocs/gcc-4.3.2/gcc/Invoking-GCC.html" target="_top">GCC | |
2920 | Command Options</a>. Options that impact libstdc++ are | |
2921 | enumerated and detailed in the table below. | |
2922 | </p><p> | |
2923 | By default, <span class="command"><strong>g++</strong></span> is equivalent to <span class="command"><strong>g++ -std=gnu++98</strong></span>. The standard library also defaults to this dialect. | |
2924 | - </p><div class="table"><a id="id478045"/><p class="title"><strong>Table 3.1. C++ Command Options</strong></p><div class="table-contents"><table summary="C++ Command Options" border="1"><colgroup><col style="text-align: left" class="c1"/><col style="text-align: left" class="c2"/></colgroup><thead><tr><th style="text-align: left">Option Flags</th><th style="text-align: left">Description</th></tr></thead><tbody><tr><td style="text-align: left"><code class="literal">-std=c++98</code></td><td style="text-align: left">Use the 1998 ISO C++ standard plus amendments.</td></tr><tr><td style="text-align: left"><code class="literal">-std=gnu++98</code></td><td style="text-align: left">As directly above, with GNU extensions.</td></tr><tr><td style="text-align: left"><code class="literal">-std=c++11</code></td><td style="text-align: left">Use the 2011 ISO C++ standard.</td></tr><tr><td style="text-align: left"><code class="literal">-std=gnu++11</code></td><td style="text-align: left">As directly above, with GNU extensions.</td></tr><tr><td style="text-align: left"><code class="literal">-fexceptions</code></td><td style="text-align: left">See <a class="link" href="using_exceptions.html#intro.using.exception.no" title="Doing without">exception-free dialect</a></td></tr><tr><td style="text-align: left"><code class="literal">-frtti</code></td><td style="text-align: left">As above, but RTTI-free dialect.</td></tr><tr><td style="text-align: left"><code class="literal">-pthread</code> or <code class="literal">-pthreads</code></td><td style="text-align: left">For ISO C++11 <thread>, <future>, | |
2925 | - <mutex>, or <condition_variable>.</td></tr><tr><td style="text-align: left"><code class="literal">-fopenmp</code></td><td style="text-align: left">For <a class="link" href="parallel_mode.html" title="Chapter 18. Parallel Mode">parallel</a> mode.</td></tr></tbody></table></div></div><br class="table-break"/></div></div><div class="navfooter"><hr/><table width="100%" summary="Navigation footer"><tr><td align="left"><a accesskey="p" href="make.html">Prev</a> </td><td align="center"><a accesskey="u" href="intro.html">Up</a></td><td align="right"> <a accesskey="n" href="using_headers.html">Next</a></td></tr><tr><td align="left" valign="top">Make </td><td align="center"><a accesskey="h" href="../index.html">Home</a></td><td align="right" valign="top"> Headers</td></tr></table></div></body></html> | |
2926 | + </p><div class="table"><a id="id656533"></a><p class="title"><strong>Table 3.1. C++ Command Options</strong></p><div class="table-contents"><table summary="C++ Command Options" border="1"><colgroup><col align="left" class="c1" /><col align="left" class="c2" /></colgroup><thead><tr><th align="left">Option Flags</th><th align="left">Description</th></tr></thead><tbody><tr><td align="left"><code class="literal">-std=c++98</code></td><td align="left">Use the 1998 ISO C++ standard plus amendments.</td></tr><tr><td align="left"><code class="literal">-std=gnu++98</code></td><td align="left">As directly above, with GNU extensions.</td></tr><tr><td align="left"><code class="literal">-std=c++11</code></td><td align="left">Use the 2011 ISO C++ standard.</td></tr><tr><td align="left"><code class="literal">-std=gnu++11</code></td><td align="left">As directly above, with GNU extensions.</td></tr><tr><td align="left"><code class="literal">-fexceptions</code></td><td align="left">See <a class="link" href="using_exceptions.html#intro.using.exception.no" title="Doing without">exception-free dialect</a></td></tr><tr><td align="left"><code class="literal">-frtti</code></td><td align="left">As above, but RTTI-free dialect.</td></tr><tr><td align="left"><code class="literal">-pthread</code> or <code class="literal">-pthreads</code></td><td align="left">For ISO C++11 <thread>, <future>, | |
2927 | + <mutex>, or <condition_variable>.</td></tr><tr><td align="left"><code class="literal">-fopenmp</code></td><td align="left">For <a class="link" href="parallel_mode.html" title="Chapter 18. Parallel Mode">parallel</a> mode.</td></tr></tbody></table></div></div><br class="table-break" /></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="make.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="intro.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="using_headers.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Make </td><td width="20%" align="center"><a accesskey="h" href="../index.html">Home</a></td><td width="40%" align="right" valign="top"> Headers</td></tr></table></div></body></html> | |
2928 | Index: libstdc++-v3/doc/html/manual/ext_containers.html | |
2929 | =================================================================== | |
9f95000d AM |
2930 | --- libstdc++-v3/doc/html/manual/ext_containers.html (.../tags/gcc_4_7_2_release) (wersja 192468) |
2931 | +++ libstdc++-v3/doc/html/manual/ext_containers.html (.../branches/gcc-4_7-branch) (wersja 192468) | |
5a87b929 AM |
2932 | @@ -1,9 +1,9 @@ |
2933 | <?xml version="1.0" encoding="UTF-8" standalone="no"?> | |
2934 | -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> | |
2935 | -<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Chapter 23. HP/SGI Extensions</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1"/><meta name="keywords" content=" ISO C++ , library "/><meta name="keywords" content=" ISO C++ , runtime , library "/><link rel="home" href="../index.html" title="The GNU C++ Library"/><link rel="up" href="extensions.html" title="Part III. Extensions"/><link rel="prev" href="policy_data_structures_biblio.html" title="Acknowledgments"/><link rel="next" href="bk01pt03ch23s02.html" title="Deprecated"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 23. HP/SGI Extensions</th></tr><tr><td align="left"><a accesskey="p" href="policy_data_structures_biblio.html">Prev</a> </td><th width="60%" align="center">Part III. | |
2936 | +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> | |
2937 | +<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Chapter 23. HP/SGI Extensions</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1" /><meta name="keywords" content=" ISO C++ , library " /><meta name="keywords" content=" ISO C++ , runtime , library " /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="extensions.html" title="Part III. Extensions" /><link rel="prev" href="policy_data_structures_biblio.html" title="Acknowledgments" /><link rel="next" href="bk01pt03ch23s02.html" title="Deprecated" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 23. HP/SGI Extensions</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="policy_data_structures_biblio.html">Prev</a> </td><th width="60%" align="center">Part III. | |
2938 | Extensions | |
2939 | ||
2940 | -</th><td align="right"> <a accesskey="n" href="bk01pt03ch23s02.html">Next</a></td></tr></table><hr/></div><div class="chapter" title="Chapter 23. HP/SGI Extensions"><div class="titlepage"><div><div><h2 class="title"><a id="manual.ext.containers"/>Chapter 23. HP/SGI Extensions</h2></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl><dt><span class="section"><a href="ext_containers.html#manual.ext.containers.sgi">Backwards Compatibility</a></span></dt><dt><span class="section"><a href="bk01pt03ch23s02.html">Deprecated</a></span></dt></dl></div><div class="section" title="Backwards Compatibility"><div class="titlepage"><div><div><h2 class="title"><a id="manual.ext.containers.sgi"/>Backwards Compatibility</h2></div></div></div><p>A few extensions and nods to backwards-compatibility have | |
2941 | +</th><td width="20%" align="right"> <a accesskey="n" href="bk01pt03ch23s02.html">Next</a></td></tr></table><hr /></div><div class="chapter" title="Chapter 23. HP/SGI Extensions"><div class="titlepage"><div><div><h2 class="title"><a id="manual.ext.containers"></a>Chapter 23. HP/SGI Extensions</h2></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl><dt><span class="section"><a href="ext_containers.html#manual.ext.containers.sgi">Backwards Compatibility</a></span></dt><dt><span class="section"><a href="bk01pt03ch23s02.html">Deprecated</a></span></dt></dl></div><div class="section" title="Backwards Compatibility"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="manual.ext.containers.sgi"></a>Backwards Compatibility</h2></div></div></div><p>A few extensions and nods to backwards-compatibility have | |
2942 | been made with containers. Those dealing with older SGI-style | |
2943 | allocators are dealt with elsewhere. The remaining ones all deal | |
2944 | with bits: | |
2945 | @@ -39,4 +39,4 @@ | |
2946 | </p><pre class="programlisting"> | |
2947 | size_t _Find_first() const; | |
2948 | size_t _Find_next (size_t prev) const;</pre><p>The same caveat given for the _Unchecked_* functions applies here also. | |
2949 | -</p></div></div><div class="navfooter"><hr/><table width="100%" summary="Navigation footer"><tr><td align="left"><a accesskey="p" href="policy_data_structures_biblio.html">Prev</a> </td><td align="center"><a accesskey="u" href="extensions.html">Up</a></td><td align="right"> <a accesskey="n" href="bk01pt03ch23s02.html">Next</a></td></tr><tr><td align="left" valign="top">Acknowledgments </td><td align="center"><a accesskey="h" href="../index.html">Home</a></td><td align="right" valign="top"> Deprecated</td></tr></table></div></body></html> | |
2950 | +</p></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="policy_data_structures_biblio.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="extensions.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="bk01pt03ch23s02.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Acknowledgments </td><td width="20%" align="center"><a accesskey="h" href="../index.html">Home</a></td><td width="40%" align="right" valign="top"> Deprecated</td></tr></table></div></body></html> | |
2951 | Index: libstdc++-v3/doc/html/manual/ext_io.html | |
2952 | =================================================================== | |
9f95000d AM |
2953 | --- libstdc++-v3/doc/html/manual/ext_io.html (.../tags/gcc_4_7_2_release) (wersja 192468) |
2954 | +++ libstdc++-v3/doc/html/manual/ext_io.html (.../branches/gcc-4_7-branch) (wersja 192468) | |
5a87b929 AM |
2955 | @@ -1,25 +1,25 @@ |
2956 | <?xml version="1.0" encoding="UTF-8" standalone="no"?> | |
2957 | -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> | |
2958 | -<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Chapter 28. Input and Output</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1"/><meta name="keywords" content=" ISO C++ , library "/><meta name="keywords" content=" ISO C++ , runtime , library "/><link rel="home" href="../index.html" title="The GNU C++ Library"/><link rel="up" href="extensions.html" title="Part III. Extensions"/><link rel="prev" href="ext_iterators.html" title="Chapter 27. Iterators"/><link rel="next" href="ext_demangling.html" title="Chapter 29. Demangling"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 28. Input and Output</th></tr><tr><td align="left"><a accesskey="p" href="ext_iterators.html">Prev</a> </td><th width="60%" align="center">Part III. | |
2959 | +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> | |
2960 | +<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Chapter 28. Input and Output</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1" /><meta name="keywords" content=" ISO C++ , library " /><meta name="keywords" content=" ISO C++ , runtime , library " /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="extensions.html" title="Part III. Extensions" /><link rel="prev" href="ext_iterators.html" title="Chapter 27. Iterators" /><link rel="next" href="ext_demangling.html" title="Chapter 29. Demangling" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 28. Input and Output</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ext_iterators.html">Prev</a> </td><th width="60%" align="center">Part III. | |
2961 | Extensions | |
2962 | ||
2963 | -</th><td align="right"> <a accesskey="n" href="ext_demangling.html">Next</a></td></tr></table><hr/></div><div class="chapter" title="Chapter 28. Input and Output"><div class="titlepage"><div><div><h2 class="title"><a id="manual.ext.io"/>Chapter 28. Input and Output</h2></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl><dt><span class="section"><a href="ext_io.html#manual.ext.io.filebuf_derived">Derived filebufs</a></span></dt></dl></div><p> | |
2964 | +</th><td width="20%" align="right"> <a accesskey="n" href="ext_demangling.html">Next</a></td></tr></table><hr /></div><div class="chapter" title="Chapter 28. Input and Output"><div class="titlepage"><div><div><h2 class="title"><a id="manual.ext.io"></a>Chapter 28. Input and Output</h2></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl><dt><span class="section"><a href="ext_io.html#manual.ext.io.filebuf_derived">Derived filebufs</a></span></dt></dl></div><p> | |
2965 | Extensions allowing <code class="code">filebuf</code>s to be constructed from | |
2966 | "C" types like FILE*s and file descriptors. | |
2967 | - </p><div class="section" title="Derived filebufs"><div class="titlepage"><div><div><h2 class="title"><a id="manual.ext.io.filebuf_derived"/>Derived filebufs</h2></div></div></div><p>The v2 library included non-standard extensions to construct | |
2968 | + </p><div class="section" title="Derived filebufs"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="manual.ext.io.filebuf_derived"></a>Derived filebufs</h2></div></div></div><p>The v2 library included non-standard extensions to construct | |
2969 | <code class="code">std::filebuf</code>s from C stdio types such as | |
2970 | <code class="code">FILE*</code>s and POSIX file descriptors. | |
2971 | Today the recommended way to use stdio types with libstdc++ | |
2972 | IOStreams is via the <code class="code">stdio_filebuf</code> class (see below), | |
2973 | but earlier releases provided slightly different mechanisms. | |
2974 | - </p><div class="itemizedlist"><ul class="itemizedlist"><li class="listitem"><p>3.0.x <code class="code">filebuf</code>s have another ctor with this signature: | |
2975 | + </p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>3.0.x <code class="code">filebuf</code>s have another ctor with this signature: | |
2976 | <code class="code">basic_filebuf(__c_file_type*, ios_base::openmode, int_type); | |
2977 | </code> | |
2978 | This comes in very handy in a number of places, such as | |
2979 | attaching Unix sockets, pipes, and anything else which uses file | |
2980 | descriptors, into the IOStream buffering classes. The three | |
2981 | arguments are as follows: | |
2982 | - </p><div class="itemizedlist"><ul class="itemizedlist"><li class="listitem"><p><code class="code">__c_file_type* F </code> | |
2983 | + </p><div class="itemizedlist"><ul class="itemizedlist" type="circle"><li class="listitem"><p><code class="code">__c_file_type* F </code> | |
2984 | // the __c_file_type typedef usually boils down to stdio's FILE | |
2985 | </p></li><li class="listitem"><p><code class="code">ios_base::openmode M </code> | |
2986 | // same as all the other uses of openmode | |
2987 | @@ -39,7 +39,7 @@ | |
2988 | the <code class="code">fd()</code> function were removed from the standard | |
2989 | filebuf. Instead, <code class="code"><ext/stdio_filebuf.h></code> contains | |
2990 | a derived class called | |
2991 | - <a class="link" href="http://gcc.gnu.org/onlinedocs/libstdc++/latest-doxygen/a00074.html"><code class="code">__gnu_cxx::stdio_filebuf</code></a>. | |
2992 | + <a class="link" href="http://gcc.gnu.org/onlinedocs/libstdc++/latest-doxygen/a00074.html" target="_top"><code class="code">__gnu_cxx::stdio_filebuf</code></a>. | |
2993 | This class can be constructed from a C <code class="code">FILE*</code> or a file | |
2994 | descriptor, and provides the <code class="code">fd()</code> function. | |
2995 | - </p></li></ul></div></div></div><div class="navfooter"><hr/><table width="100%" summary="Navigation footer"><tr><td align="left"><a accesskey="p" href="ext_iterators.html">Prev</a> </td><td align="center"><a accesskey="u" href="extensions.html">Up</a></td><td align="right"> <a accesskey="n" href="ext_demangling.html">Next</a></td></tr><tr><td align="left" valign="top">Chapter 27. Iterators </td><td align="center"><a accesskey="h" href="../index.html">Home</a></td><td align="right" valign="top"> Chapter 29. Demangling</td></tr></table></div></body></html> | |
2996 | + </p></li></ul></div></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="ext_iterators.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="extensions.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="ext_demangling.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Chapter 27. Iterators </td><td width="20%" align="center"><a accesskey="h" href="../index.html">Home</a></td><td width="40%" align="right" valign="top"> Chapter 29. Demangling</td></tr></table></div></body></html> | |
2997 | Index: libstdc++-v3/doc/html/manual/using_macros.html | |
2998 | =================================================================== | |
9f95000d AM |
2999 | --- libstdc++-v3/doc/html/manual/using_macros.html (.../tags/gcc_4_7_2_release) (wersja 192468) |
3000 | +++ libstdc++-v3/doc/html/manual/using_macros.html (.../branches/gcc-4_7-branch) (wersja 192468) | |
5a87b929 AM |
3001 | @@ -1,6 +1,6 @@ |
3002 | <?xml version="1.0" encoding="UTF-8" standalone="no"?> | |
3003 | -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> | |
3004 | -<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Macros</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1"/><meta name="keywords" content=" ISO C++ , library "/><meta name="keywords" content=" ISO C++ , runtime , library "/><link rel="home" href="../index.html" title="The GNU C++ Library"/><link rel="up" href="using.html" title="Chapter 3. Using"/><link rel="prev" href="using_headers.html" title="Headers"/><link rel="next" href="using_namespaces.html" title="Namespaces"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Macros</th></tr><tr><td align="left"><a accesskey="p" href="using_headers.html">Prev</a> </td><th width="60%" align="center">Chapter 3. Using</th><td align="right"> <a accesskey="n" href="using_namespaces.html">Next</a></td></tr></table><hr/></div><div class="section" title="Macros"><div class="titlepage"><div><div><h2 class="title"><a id="manual.intro.using.macros"/>Macros</h2></div></div></div><p> | |
3005 | +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> | |
3006 | +<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Macros</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1" /><meta name="keywords" content=" ISO C++ , library " /><meta name="keywords" content=" ISO C++ , runtime , library " /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="using.html" title="Chapter 3. Using" /><link rel="prev" href="using_headers.html" title="Headers" /><link rel="next" href="using_namespaces.html" title="Namespaces" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Macros</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="using_headers.html">Prev</a> </td><th width="60%" align="center">Chapter 3. Using</th><td width="20%" align="right"> <a accesskey="n" href="using_namespaces.html">Next</a></td></tr></table><hr /></div><div class="section" title="Macros"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="manual.intro.using.macros"></a>Macros</h2></div></div></div><p> | |
3007 | All library macros begin with <code class="code">_GLIBCXX_</code>. | |
3008 | </p><p> | |
3009 | Furthermore, all pre-processor macros, switches, and | |
3010 | @@ -74,4 +74,4 @@ | |
3011 | </p></dd><dt><span class="term"><code class="code">_GLIBCXX_PROFILE</code></span></dt><dd><p>Undefined by default. When defined, compiles user code | |
3012 | using the <a class="link" href="profile_mode.html" title="Chapter 19. Profile Mode">profile | |
3013 | mode</a>. | |
3014 | - </p></dd></dl></div></div><div class="navfooter"><hr/><table width="100%" summary="Navigation footer"><tr><td align="left"><a accesskey="p" href="using_headers.html">Prev</a> </td><td align="center"><a accesskey="u" href="using.html">Up</a></td><td align="right"> <a accesskey="n" href="using_namespaces.html">Next</a></td></tr><tr><td align="left" valign="top">Headers </td><td align="center"><a accesskey="h" href="../index.html">Home</a></td><td align="right" valign="top"> Namespaces</td></tr></table></div></body></html> | |
3015 | + </p></dd></dl></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="using_headers.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="using.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="using_namespaces.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Headers </td><td width="20%" align="center"><a accesskey="h" href="../index.html">Home</a></td><td width="40%" align="right" valign="top"> Namespaces</td></tr></table></div></body></html> | |
3016 | Index: libstdc++-v3/doc/html/manual/termination.html | |
3017 | =================================================================== | |
9f95000d AM |
3018 | --- libstdc++-v3/doc/html/manual/termination.html (.../tags/gcc_4_7_2_release) (wersja 192468) |
3019 | +++ libstdc++-v3/doc/html/manual/termination.html (.../branches/gcc-4_7-branch) (wersja 192468) | |
5a87b929 AM |
3020 | @@ -1,9 +1,9 @@ |
3021 | <?xml version="1.0" encoding="UTF-8" standalone="no"?> | |
3022 | -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> | |
3023 | -<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Termination</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1"/><meta name="keywords" content=" ISO C++ , library "/><meta name="keywords" content=" ISO C++ , runtime , library "/><link rel="home" href="../index.html" title="The GNU C++ Library"/><link rel="up" href="support.html" title="Chapter 4. Support"/><link rel="prev" href="dynamic_memory.html" title="Dynamic Memory"/><link rel="next" href="diagnostics.html" title="Chapter 5. Diagnostics"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Termination</th></tr><tr><td align="left"><a accesskey="p" href="dynamic_memory.html">Prev</a> </td><th width="60%" align="center">Chapter 4. | |
3024 | +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> | |
3025 | +<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Termination</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1" /><meta name="keywords" content=" ISO C++ , library " /><meta name="keywords" content=" ISO C++ , runtime , library " /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="support.html" title="Chapter 4. Support" /><link rel="prev" href="dynamic_memory.html" title="Dynamic Memory" /><link rel="next" href="diagnostics.html" title="Chapter 5. Diagnostics" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Termination</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="dynamic_memory.html">Prev</a> </td><th width="60%" align="center">Chapter 4. | |
3026 | Support | |
3027 | ||
3028 | -</th><td align="right"> <a accesskey="n" href="diagnostics.html">Next</a></td></tr></table><hr/></div><div class="section" title="Termination"><div class="titlepage"><div><div><h2 class="title"><a id="std.support.termination"/>Termination</h2></div></div></div><div class="section" title="Termination Handlers"><div class="titlepage"><div><div><h3 class="title"><a id="support.termination.handlers"/>Termination Handlers</h3></div></div></div><p> | |
3029 | +</th><td width="20%" align="right"> <a accesskey="n" href="diagnostics.html">Next</a></td></tr></table><hr /></div><div class="section" title="Termination"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="std.support.termination"></a>Termination</h2></div></div></div><div class="section" title="Termination Handlers"><div class="titlepage"><div><div><h3 class="title"><a id="support.termination.handlers"></a>Termination Handlers</h3></div></div></div><p> | |
3030 | Not many changes here to <code class="filename">cstdlib</code>. You should note that the | |
3031 | <code class="function">abort()</code> function does not call the | |
3032 | destructors of automatic nor static objects, so if you're | |
3033 | @@ -15,7 +15,7 @@ | |
3034 | The good old <code class="function">exit()</code> function can be a bit | |
3035 | funky, too, until you look closer. Basically, three points to | |
3036 | remember are: | |
3037 | - </p><div class="orderedlist"><ol class="orderedlist"><li class="listitem"><p> | |
3038 | + </p><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><p> | |
3039 | Static objects are destroyed in reverse order of their creation. | |
3040 | </p></li><li class="listitem"><p> | |
3041 | Functions registered with <code class="function">atexit()</code> are called in | |
3042 | @@ -45,7 +45,7 @@ | |
3043 | functions, and the compiler/library might already be using some of | |
3044 | those slots. If you think you may run out, we recommend using | |
3045 | the <code class="function">xatexit</code>/<code class="function">xexit</code> combination from <code class="literal">libiberty</code>, which has no such limit. | |
3046 | - </p></div><div class="section" title="Verbose Terminate Handler"><div class="titlepage"><div><div><h3 class="title"><a id="support.termination.verbose"/>Verbose Terminate Handler</h3></div></div></div><p> | |
3047 | + </p></div><div class="section" title="Verbose Terminate Handler"><div class="titlepage"><div><div><h3 class="title"><a id="support.termination.verbose"></a>Verbose Terminate Handler</h3></div></div></div><p> | |
3048 | If you are having difficulty with uncaught exceptions and want a | |
3049 | little bit of help debugging the causes of the core dumps, you can | |
3050 | make use of a GNU extension, the verbose terminate handler. | |
3051 | @@ -118,7 +118,7 @@ | |
3052 | inappropriate location, | |
3053 | <code class="function">__verbose_terminate_handler</code> will behave in | |
3054 | an unspecified manner. | |
3055 | - </p></div></div><div class="navfooter"><hr/><table width="100%" summary="Navigation footer"><tr><td align="left"><a accesskey="p" href="dynamic_memory.html">Prev</a> </td><td align="center"><a accesskey="u" href="support.html">Up</a></td><td align="right"> <a accesskey="n" href="diagnostics.html">Next</a></td></tr><tr><td align="left" valign="top">Dynamic Memory </td><td align="center"><a accesskey="h" href="../index.html">Home</a></td><td align="right" valign="top"> Chapter 5. | |
3056 | + </p></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="dynamic_memory.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="support.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="diagnostics.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Dynamic Memory </td><td width="20%" align="center"><a accesskey="h" href="../index.html">Home</a></td><td width="40%" align="right" valign="top"> Chapter 5. | |
3057 | Diagnostics | |
3058 | ||
3059 | </td></tr></table></div></body></html> | |
3060 | Index: libstdc++-v3/doc/html/manual/concurrency.html | |
3061 | =================================================================== | |
9f95000d AM |
3062 | --- libstdc++-v3/doc/html/manual/concurrency.html (.../tags/gcc_4_7_2_release) (wersja 192468) |
3063 | +++ libstdc++-v3/doc/html/manual/concurrency.html (.../branches/gcc-4_7-branch) (wersja 192468) | |
5a87b929 AM |
3064 | @@ -1,16 +1,16 @@ |
3065 | <?xml version="1.0" encoding="UTF-8" standalone="no"?> | |
3066 | -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> | |
3067 | -<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Chapter 15. Concurrency</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1"/><meta name="keywords" content=" ISO C++ , library , mutex , thread , future , condition_variable "/><meta name="keywords" content=" ISO C++ , runtime , library "/><link rel="home" href="../index.html" title="The GNU C++ Library"/><link rel="up" href="bk01pt02.html" title="Part II. Standard Contents"/><link rel="prev" href="atomics.html" title="Chapter 14. Atomics"/><link rel="next" href="extensions.html" title="Part III. Extensions"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 15. | |
3068 | +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> | |
3069 | +<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Chapter 15. Concurrency</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1" /><meta name="keywords" content=" ISO C++ , library , mutex , thread , future , condition_variable " /><meta name="keywords" content=" ISO C++ , runtime , library " /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="bk01pt02.html" title="Part II. Standard Contents" /><link rel="prev" href="atomics.html" title="Chapter 14. Atomics" /><link rel="next" href="extensions.html" title="Part III. Extensions" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 15. | |
3070 | Concurrency | |
3071 | ||
3072 | -</th></tr><tr><td align="left"><a accesskey="p" href="atomics.html">Prev</a> </td><th width="60%" align="center">Part II. | |
3073 | +</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="atomics.html">Prev</a> </td><th width="60%" align="center">Part II. | |
3074 | Standard Contents | |
3075 | - </th><td align="right"> <a accesskey="n" href="extensions.html">Next</a></td></tr></table><hr/></div><div class="chapter" title="Chapter 15. Concurrency"><div class="titlepage"><div><div><h2 class="title"><a id="std.concurrency"/>Chapter 15. | |
3076 | + </th><td width="20%" align="right"> <a accesskey="n" href="extensions.html">Next</a></td></tr></table><hr /></div><div class="chapter" title="Chapter 15. Concurrency"><div class="titlepage"><div><div><h2 class="title"><a id="std.concurrency"></a>Chapter 15. | |
3077 | Concurrency | |
3078 | - <a id="id506165" class="indexterm"/> | |
3079 | + <a id="id684652" class="indexterm"></a> | |
3080 | </h2></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl><dt><span class="section"><a href="concurrency.html#std.concurrency.api">API Reference</a></span></dt></dl></div><p> | |
3081 | Facilities for concurrent operation, and control thereof. | |
3082 | -</p><div class="section" title="API Reference"><div class="titlepage"><div><div><h2 class="title"><a id="std.concurrency.api"/>API Reference</h2></div></div></div><p> | |
3083 | +</p><div class="section" title="API Reference"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="std.concurrency.api"></a>API Reference</h2></div></div></div><p> | |
3084 | All items are declared in one of four standard header files. | |
3085 | </p><p> | |
3086 | In header <code class="filename">mutex</code>, class | |
3087 | @@ -33,10 +33,10 @@ | |
3088 | and <code class="classname">packaged_task</code>. | |
3089 | </p><p> | |
3090 | Full API details. | |
3091 | - </p></div></div><div class="navfooter"><hr/><table width="100%" summary="Navigation footer"><tr><td align="left"><a accesskey="p" href="atomics.html">Prev</a> </td><td align="center"><a accesskey="u" href="bk01pt02.html">Up</a></td><td align="right"> <a accesskey="n" href="extensions.html">Next</a></td></tr><tr><td align="left" valign="top">Chapter 14. | |
3092 | + </p></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="atomics.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="bk01pt02.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="extensions.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Chapter 14. | |
3093 | Atomics | |
3094 | ||
3095 | - </td><td align="center"><a accesskey="h" href="../index.html">Home</a></td><td align="right" valign="top"> Part III. | |
3096 | + </td><td width="20%" align="center"><a accesskey="h" href="../index.html">Home</a></td><td width="40%" align="right" valign="top"> Part III. | |
3097 | Extensions | |
3098 | ||
3099 | </td></tr></table></div></body></html> | |
3100 | Index: libstdc++-v3/doc/html/manual/ext_utilities.html | |
3101 | =================================================================== | |
9f95000d AM |
3102 | --- libstdc++-v3/doc/html/manual/ext_utilities.html (.../tags/gcc_4_7_2_release) (wersja 192468) |
3103 | +++ libstdc++-v3/doc/html/manual/ext_utilities.html (.../branches/gcc-4_7-branch) (wersja 192468) | |
5a87b929 AM |
3104 | @@ -1,14 +1,14 @@ |
3105 | <?xml version="1.0" encoding="UTF-8" standalone="no"?> | |
3106 | -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> | |
3107 | -<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Chapter 24. Utilities</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1"/><meta name="keywords" content=" ISO C++ , library "/><meta name="keywords" content=" ISO C++ , runtime , library "/><link rel="home" href="../index.html" title="The GNU C++ Library"/><link rel="up" href="extensions.html" title="Part III. Extensions"/><link rel="prev" href="bk01pt03ch23s02.html" title="Deprecated"/><link rel="next" href="ext_algorithms.html" title="Chapter 25. Algorithms"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 24. Utilities</th></tr><tr><td align="left"><a accesskey="p" href="bk01pt03ch23s02.html">Prev</a> </td><th width="60%" align="center">Part III. | |
3108 | +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> | |
3109 | +<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Chapter 24. Utilities</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1" /><meta name="keywords" content=" ISO C++ , library " /><meta name="keywords" content=" ISO C++ , runtime , library " /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="extensions.html" title="Part III. Extensions" /><link rel="prev" href="bk01pt03ch23s02.html" title="Deprecated" /><link rel="next" href="ext_algorithms.html" title="Chapter 25. Algorithms" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 24. Utilities</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="bk01pt03ch23s02.html">Prev</a> </td><th width="60%" align="center">Part III. | |
3110 | Extensions | |
3111 | ||
3112 | -</th><td align="right"> <a accesskey="n" href="ext_algorithms.html">Next</a></td></tr></table><hr/></div><div class="chapter" title="Chapter 24. Utilities"><div class="titlepage"><div><div><h2 class="title"><a id="manual.ext.util"/>Chapter 24. Utilities</h2></div></div></div><p> | |
3113 | +</th><td width="20%" align="right"> <a accesskey="n" href="ext_algorithms.html">Next</a></td></tr></table><hr /></div><div class="chapter" title="Chapter 24. Utilities"><div class="titlepage"><div><div><h2 class="title"><a id="manual.ext.util"></a>Chapter 24. Utilities</h2></div></div></div><p> | |
3114 | The <code class="filename"><functional></code> header | |
3115 | contains many additional functors | |
3116 | and helper functions, extending section 20.3. They are | |
3117 | implemented in the file stl_function.h: | |
3118 | - </p><div class="itemizedlist"><ul class="itemizedlist"><li class="listitem"><p><code class="code">identity_element</code> for addition and multiplication. | |
3119 | + </p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p><code class="code">identity_element</code> for addition and multiplication. | |
3120 | </p></li><li class="listitem"><p>The functor <code class="code">identity</code>, whose <code class="code">operator()</code> | |
3121 | returns the argument unchanged. | |
3122 | </p></li><li class="listitem"><p>Composition functors <code class="code">unary_function</code> and | |
3123 | @@ -39,4 +39,4 @@ | |
3124 | </p><p> | |
3125 | The specialized algorithms of section 20.4.4 are extended with | |
3126 | <code class="code">uninitialized_copy_n</code>. | |
3127 | -</p></div><div class="navfooter"><hr/><table width="100%" summary="Navigation footer"><tr><td align="left"><a accesskey="p" href="bk01pt03ch23s02.html">Prev</a> </td><td align="center"><a accesskey="u" href="extensions.html">Up</a></td><td align="right"> <a accesskey="n" href="ext_algorithms.html">Next</a></td></tr><tr><td align="left" valign="top">Deprecated </td><td align="center"><a accesskey="h" href="../index.html">Home</a></td><td align="right" valign="top"> Chapter 25. Algorithms</td></tr></table></div></body></html> | |
3128 | +</p></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="bk01pt03ch23s02.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="extensions.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="ext_algorithms.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Deprecated </td><td width="20%" align="center"><a accesskey="h" href="../index.html">Home</a></td><td width="40%" align="right" valign="top"> Chapter 25. Algorithms</td></tr></table></div></body></html> | |
3129 | Index: libstdc++-v3/doc/html/manual/policy_data_structures.html | |
3130 | =================================================================== | |
9f95000d AM |
3131 | --- libstdc++-v3/doc/html/manual/policy_data_structures.html (.../tags/gcc_4_7_2_release) (wersja 192468) |
3132 | +++ libstdc++-v3/doc/html/manual/policy_data_structures.html (.../branches/gcc-4_7-branch) (wersja 192468) | |
5a87b929 AM |
3133 | @@ -1,9 +1,9 @@ |
3134 | <?xml version="1.0" encoding="UTF-8" standalone="no"?> | |
3135 | -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> | |
3136 | -<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Chapter 22. Policy-Based Data Structures</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1"/><meta name="keywords" content=" 	ISO C++ , 	policy , 	container , 	data , 	structure , 	associated , 	tree , 	trie , 	hash , 	metaprogramming "/><meta name="keywords" content=" ISO C++ , library "/><meta name="keywords" content=" ISO C++ , runtime , library "/><link rel="home" href="../index.html" title="The GNU C++ Library"/><link rel="up" href="extensions.html" title="Part III. Extensions"/><link rel="prev" href="bk01pt03ch21s02.html" title="Implementation"/><link rel="next" href="policy_data_structures_using.html" title="Using"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 22. Policy-Based Data Structures</th></tr><tr><td align="left"><a accesskey="p" href="bk01pt03ch21s02.html">Prev</a> </td><th width="60%" align="center">Part III. | |
3137 | +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> | |
3138 | +<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Chapter 22. Policy-Based Data Structures</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1" /><meta name="keywords" content=" 	ISO C++ , 	policy , 	container , 	data , 	structure , 	associated , 	tree , 	trie , 	hash , 	metaprogramming " /><meta name="keywords" content=" ISO C++ , library " /><meta name="keywords" content=" ISO C++ , runtime , library " /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="extensions.html" title="Part III. Extensions" /><link rel="prev" href="bk01pt03ch21s02.html" title="Implementation" /><link rel="next" href="policy_data_structures_using.html" title="Using" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 22. Policy-Based Data Structures</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="bk01pt03ch21s02.html">Prev</a> </td><th width="60%" align="center">Part III. | |
3139 | Extensions | |
3140 | ||
3141 | -</th><td align="right"> <a accesskey="n" href="policy_data_structures_using.html">Next</a></td></tr></table><hr/></div><div class="chapter" title="Chapter 22. Policy-Based Data Structures"><div class="titlepage"><div><div><h2 class="title"><a id="manual.ext.containers.pbds"/>Chapter 22. Policy-Based Data Structures</h2></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl><dt><span class="section"><a href="policy_data_structures.html#pbds.intro">Intro</a></span></dt><dd><dl><dt><span class="section"><a href="policy_data_structures.html#pbds.intro.issues">Performance Issues</a></span></dt><dd><dl><dt><span class="section"><a href="policy_data_structures.html#pbds.intro.issues.associative">Associative</a></span></dt><dt><span class="section"><a href="policy_data_structures.html#pbds.intro.issues.priority_queue">Priority Que</a></span></dt></dl></dd><dt><span class="section"><a href="policy_data_structures.html#pbds.intro.motivation">Goals</a></span></dt><dd><dl><dt><span class="section"><a href="policy_data_structures.html#pbds.intro.motivation.associative">Associative</a></span></dt><dd><dl><dt><span class="section"><a href="policy_data_structures.html#motivation.associative.policy">Policy Choices</a></span></dt><dt><span class="section"><a href="policy_data_structures.html#motivation.associative.underlying">Underlying Data Structures</a></span></dt><dt><span class="section"><a href="policy_data_structures.html#motivation.associative.iterators">Iterators</a></span></dt><dt><span class="section"><a href="policy_data_structures.html#motivation.associative.functions">Functional</a></span></dt></dl></dd><dt><span class="section"><a href="policy_data_structures.html#pbds.intro.motivation.priority_queue">Priority Queues</a></span></dt><dd><dl><dt><span class="section"><a href="policy_data_structures.html#motivation.priority_queue.policy">Policy Choices</a></span></dt><dt><span class="section"><a href="policy_data_structures.html#motivation.priority_queue.underlying">Underlying Data Structures</a></span></dt><dt><span class="section"><a href="policy_data_structures.html#motivation.priority_queue.binary_heap">Binary Heaps</a></span></dt></dl></dd></dl></dd></dl></dd><dt><span class="section"><a href="policy_data_structures_using.html">Using</a></span></dt><dd><dl><dt><span class="section"><a href="policy_data_structures_using.html#pbds.using.prereq">Prerequisites</a></span></dt><dt><span class="section"><a href="policy_data_structures_using.html#pbds.using.organization">Organization</a></span></dt><dt><span class="section"><a href="policy_data_structures_using.html#pbds.using.tutorial">Tutorial</a></span></dt><dd><dl><dt><span class="section"><a href="policy_data_structures_using.html#pbds.using.tutorial.basic">Basic Use</a></span></dt><dt><span class="section"><a href="policy_data_structures_using.html#pbds.using.tutorial.configuring"> | |
3142 | +</th><td width="20%" align="right"> <a accesskey="n" href="policy_data_structures_using.html">Next</a></td></tr></table><hr /></div><div class="chapter" title="Chapter 22. Policy-Based Data Structures"><div class="titlepage"><div><div><h2 class="title"><a id="manual.ext.containers.pbds"></a>Chapter 22. Policy-Based Data Structures</h2></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl><dt><span class="section"><a href="policy_data_structures.html#pbds.intro">Intro</a></span></dt><dd><dl><dt><span class="section"><a href="policy_data_structures.html#pbds.intro.issues">Performance Issues</a></span></dt><dd><dl><dt><span class="section"><a href="policy_data_structures.html#pbds.intro.issues.associative">Associative</a></span></dt><dt><span class="section"><a href="policy_data_structures.html#pbds.intro.issues.priority_queue">Priority Que</a></span></dt></dl></dd><dt><span class="section"><a href="policy_data_structures.html#pbds.intro.motivation">Goals</a></span></dt><dd><dl><dt><span class="section"><a href="policy_data_structures.html#pbds.intro.motivation.associative">Associative</a></span></dt><dd><dl><dt><span class="section"><a href="policy_data_structures.html#motivation.associative.policy">Policy Choices</a></span></dt><dt><span class="section"><a href="policy_data_structures.html#motivation.associative.underlying">Underlying Data Structures</a></span></dt><dt><span class="section"><a href="policy_data_structures.html#motivation.associative.iterators">Iterators</a></span></dt><dt><span class="section"><a href="policy_data_structures.html#motivation.associative.functions">Functional</a></span></dt></dl></dd><dt><span class="section"><a href="policy_data_structures.html#pbds.intro.motivation.priority_queue">Priority Queues</a></span></dt><dd><dl><dt><span class="section"><a href="policy_data_structures.html#motivation.priority_queue.policy">Policy Choices</a></span></dt><dt><span class="section"><a href="policy_data_structures.html#motivation.priority_queue.underlying">Underlying Data Structures</a></span></dt><dt><span class="section"><a href="policy_data_structures.html#motivation.priority_queue.binary_heap">Binary Heaps</a></span></dt></dl></dd></dl></dd></dl></dd><dt><span class="section"><a href="policy_data_structures_using.html">Using</a></span></dt><dd><dl><dt><span class="section"><a href="policy_data_structures_using.html#pbds.using.prereq">Prerequisites</a></span></dt><dt><span class="section"><a href="policy_data_structures_using.html#pbds.using.organization">Organization</a></span></dt><dt><span class="section"><a href="policy_data_structures_using.html#pbds.using.tutorial">Tutorial</a></span></dt><dd><dl><dt><span class="section"><a href="policy_data_structures_using.html#pbds.using.tutorial.basic">Basic Use</a></span></dt><dt><span class="section"><a href="policy_data_structures_using.html#pbds.using.tutorial.configuring"> | |
3143 | Configuring via Template Parameters | |
3144 | </a></span></dt><dt><span class="section"><a href="policy_data_structures_using.html#pbds.using.tutorial.traits"> | |
3145 | Querying Container Attributes | |
3146 | @@ -67,7 +67,7 @@ | |
3147 | Text <code class="function">modify</code> Down | |
3148 | </a></span></dt></dl></dd><dt><span class="section"><a href="policy_based_data_structures_test.html#pbds.test.performance.observations">Observations</a></span></dt><dd><dl><dt><span class="section"><a href="policy_based_data_structures_test.html#observations.associative">Associative</a></span></dt><dt><span class="section"><a href="policy_based_data_structures_test.html#observations.priority_queue">Priority_Queue</a></span></dt></dl></dd></dl></dd></dl></dd><dt><span class="section"><a href="policy_data_structures_biblio.html">Acknowledgments</a></span></dt><dt><span class="bibliography"><a href="policy_data_structures.html#pbds.biblio"> | |
3149 | Bibliography | |
3150 | - </a></span></dt></dl></div><div class="section" title="Intro"><div class="titlepage"><div><div><h2 class="title"><a id="pbds.intro"/>Intro</h2></div></div></div><p> | |
3151 | + </a></span></dt></dl></div><div class="section" title="Intro"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="pbds.intro"></a>Intro</h2></div></div></div><p> | |
3152 | This is a library of policy-based elementary data structures: | |
3153 | associative containers and priority queues. It is designed for | |
3154 | high-performance, flexibility, semantic safety, and conformance to | |
3155 | @@ -75,7 +75,7 @@ | |
3156 | <code class="literal">std::tr1</code> (except for some points where it differs | |
3157 | by design). | |
3158 | </p><p> | |
3159 | - </p><div class="section" title="Performance Issues"><div class="titlepage"><div><div><h3 class="title"><a id="pbds.intro.issues"/>Performance Issues</h3></div></div></div><p> | |
3160 | + </p><div class="section" title="Performance Issues"><div class="titlepage"><div><div><h3 class="title"><a id="pbds.intro.issues"></a>Performance Issues</h3></div></div></div><p> | |
3161 | </p><p> | |
3162 | An attempt is made to categorize the wide variety of possible | |
3163 | container designs in terms of performance-impacting factors. These | |
3164 | @@ -95,7 +95,7 @@ | |
3165 | </p><p> | |
3166 | Specific issues found while unraveling performance factors in the | |
3167 | design of associative containers and priority queues follow. | |
3168 | - </p><div class="section" title="Associative"><div class="titlepage"><div><div><h4 class="title"><a id="pbds.intro.issues.associative"/>Associative</h4></div></div></div><p> | |
3169 | + </p><div class="section" title="Associative"><div class="titlepage"><div><div><h4 class="title"><a id="pbds.intro.issues.associative"></a>Associative</h4></div></div></div><p> | |
3170 | Associative containers depend on their composite policies to a very | |
3171 | large extent. Implicitly hard-wiring policies can hamper their | |
3172 | performance and limit their functionality. An efficient hash-based | |
3173 | @@ -136,7 +136,7 @@ | |
3174 | is a red-black tree, then splitting a reference to the container is | |
3175 | exception-free; if it is an ordered-vector tree, exceptions can be | |
3176 | thrown. | |
3177 | - </p></div><div class="section" title="Priority Que"><div class="titlepage"><div><div><h4 class="title"><a id="pbds.intro.issues.priority_queue"/>Priority Que</h4></div></div></div><p> | |
3178 | + </p></div><div class="section" title="Priority Que"><div class="titlepage"><div><div><h4 class="title"><a id="pbds.intro.issues.priority_queue"></a>Priority Que</h4></div></div></div><p> | |
3179 | Priority queues are useful when one needs to efficiently access a | |
3180 | minimum (or maximum) value as the set of values changes. | |
3181 | </p><p> | |
3182 | @@ -178,7 +178,7 @@ | |
3183 | expense of more difference in the the kinds of operations that the | |
3184 | underlying data structure can support. These differences pose a | |
3185 | challenge when creating a uniform interface for priority queues. | |
3186 | - </p></div></div><div class="section" title="Goals"><div class="titlepage"><div><div><h3 class="title"><a id="pbds.intro.motivation"/>Goals</h3></div></div></div><p> | |
3187 | + </p></div></div><div class="section" title="Goals"><div class="titlepage"><div><div><h3 class="title"><a id="pbds.intro.motivation"></a>Goals</h3></div></div></div><p> | |
3188 | Many fine associative-container libraries were already written, | |
3189 | most notably, the C++ standard's associative containers. Why | |
3190 | then write another library? This section shows some possible | |
3191 | @@ -189,14 +189,14 @@ | |
3192 | only then adding hash-based containers, which are fundamentally | |
3193 | different), did not standardize priority queues as containers, | |
3194 | and (in our opinion) overloads the iterator concept. | |
3195 | - </p><div class="section" title="Associative"><div class="titlepage"><div><div><h4 class="title"><a id="pbds.intro.motivation.associative"/>Associative</h4></div></div></div><p> | |
3196 | - </p><div class="section" title="Policy Choices"><div class="titlepage"><div><div><h5 class="title"><a id="motivation.associative.policy"/>Policy Choices</h5></div></div></div><p> | |
3197 | + </p><div class="section" title="Associative"><div class="titlepage"><div><div><h4 class="title"><a id="pbds.intro.motivation.associative"></a>Associative</h4></div></div></div><p> | |
3198 | + </p><div class="section" title="Policy Choices"><div class="titlepage"><div><div><h5 class="title"><a id="motivation.associative.policy"></a>Policy Choices</h5></div></div></div><p> | |
3199 | Associative containers require a relatively large number of | |
3200 | policies to function efficiently in various settings. In some | |
3201 | cases this is needed for making their common operations more | |
3202 | efficient, and in other cases this allows them to support a | |
3203 | larger set of operations | |
3204 | - </p><div class="orderedlist"><ol class="orderedlist"><li class="listitem"><p> | |
3205 | + </p><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><p> | |
3206 | Hash-based containers, for example, support look-up and | |
3207 | insertion methods (<code class="function">find</code> and | |
3208 | <code class="function">insert</code>). In order to locate elements | |
3209 | @@ -251,7 +251,7 @@ | |
3210 | these invariants, one must supply some policy that is aware | |
3211 | of these changes. Without this, it would be better to use a | |
3212 | linked list (in itself very efficient for these purposes). | |
3213 | - </p></li></ol></div><div class="figure"><a id="id516222"/><p class="title"><strong>Figure 22.1. Node Invariants</strong></p><div class="figure-contents"><div class="mediaobject" style="text-align: center"><img src="../images/pbds_node_invariants.png" style="text-align: middle" alt="Node Invariants"/></div></div></div><br class="figure-break"/></div><div class="section" title="Underlying Data Structures"><div class="titlepage"><div><div><h5 class="title"><a id="motivation.associative.underlying"/>Underlying Data Structures</h5></div></div></div><p> | |
3214 | + </p></li></ol></div><div class="figure"><a id="id694708"></a><p class="title"><strong>Figure 22.1. Node Invariants</strong></p><div class="figure-contents"><div class="mediaobject" align="center"><img src="../images/pbds_node_invariants.png" align="middle" alt="Node Invariants" /></div></div></div><br class="figure-break" /></div><div class="section" title="Underlying Data Structures"><div class="titlepage"><div><div><h5 class="title"><a id="motivation.associative.underlying"></a>Underlying Data Structures</h5></div></div></div><p> | |
3215 | The standard C++ library contains associative containers based on | |
3216 | red-black trees and collision-chaining hash tables. These are | |
3217 | very useful, but they are not ideal for all types of | |
3218 | @@ -259,7 +259,7 @@ | |
3219 | </p><p> | |
3220 | The figure below shows the different underlying data structures | |
3221 | currently supported in this library. | |
3222 | - </p><div class="figure"><a id="id516278"/><p class="title"><strong>Figure 22.2. Underlying Associative Data Structures</strong></p><div class="figure-contents"><div class="mediaobject" style="text-align: center"><img src="../images/pbds_different_underlying_dss_1.png" style="text-align: middle" alt="Underlying Associative Data Structures"/></div></div></div><br class="figure-break"/><p> | |
3223 | + </p><div class="figure"><a id="id694764"></a><p class="title"><strong>Figure 22.2. Underlying Associative Data Structures</strong></p><div class="figure-contents"><div class="mediaobject" align="center"><img src="../images/pbds_different_underlying_dss_1.png" align="middle" alt="Underlying Associative Data Structures" /></div></div></div><br class="figure-break" /><p> | |
3224 | A shows a collision-chaining hash-table, B shows a probing | |
3225 | hash-table, C shows a red-black tree, D shows a splay tree, E shows | |
3226 | a tree based on an ordered vector(implicit in the order of the | |
3227 | @@ -308,7 +308,7 @@ | |
3228 | There are various other differences based on the container's | |
3229 | underlying data structure. For one, they can be constructed by, | |
3230 | and queried for, different policies. Furthermore: | |
3231 | - </p><div class="orderedlist"><ol class="orderedlist"><li class="listitem"><p> | |
3232 | + </p><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><p> | |
3233 | Containers based on C, D, E and F store elements in a | |
3234 | meaningful order; the others store elements in a meaningless | |
3235 | (and probably time-varying) order. By implication, only | |
3236 | @@ -336,7 +336,7 @@ | |
3237 | library iterators, for example) can ease generic manipulation of | |
3238 | associative containers based on different underlying data | |
3239 | structures. | |
3240 | - </p></div><div class="section" title="Iterators"><div class="titlepage"><div><div><h5 class="title"><a id="motivation.associative.iterators"/>Iterators</h5></div></div></div><p> | |
3241 | + </p></div><div class="section" title="Iterators"><div class="titlepage"><div><div><h5 class="title"><a id="motivation.associative.iterators"></a>Iterators</h5></div></div></div><p> | |
3242 | Iterators are centric to the design of the standard library | |
3243 | containers, because of the container/algorithm/iterator | |
3244 | decomposition that allows an algorithm to operate on a range | |
3245 | @@ -361,7 +361,7 @@ | |
3246 | "ds_gen.html#find_range">Design::Associative | |
3247 | Containers::Data-Structure Genericity::Point-Type and Range-Type | |
3248 | Methods</span></em>. | |
3249 | - </p><div class="section" title="Using Point Iterators for Range Operations"><div class="titlepage"><div><div><h6 class="title"><a id="associative.iterators.using"/>Using Point Iterators for Range Operations</h6></div></div></div><p> | |
3250 | + </p><div class="section" title="Using Point Iterators for Range Operations"><div class="titlepage"><div><div><h6 class="title"><a id="associative.iterators.using"></a>Using Point Iterators for Range Operations</h6></div></div></div><p> | |
3251 | Suppose <code class="classname">cntnr</code> is some associative | |
3252 | container, and say <code class="varname">c</code> is an object of | |
3253 | type <code class="classname">cntnr</code>. Then what will be the outcome | |
3254 | @@ -378,7 +378,7 @@ | |
3255 | no guarantee that the elements traversed will coincide with the | |
3256 | <span class="emphasis"><em>logical</em></span> elements between 1 and 5, as in | |
3257 | label B. | |
3258 | - </p><div class="figure"><a id="id516541"/><p class="title"><strong>Figure 22.3. Range Iteration in Different Data Structures</strong></p><div class="figure-contents"><div class="mediaobject" style="text-align: center"><img src="../images/pbds_point_iterators_range_ops_1.png" style="text-align: middle" alt="Node Invariants"/></div></div></div><br class="figure-break"/><p> | |
3259 | + </p><div class="figure"><a id="id695027"></a><p class="title"><strong>Figure 22.3. Range Iteration in Different Data Structures</strong></p><div class="figure-contents"><div class="mediaobject" align="center"><img src="../images/pbds_point_iterators_range_ops_1.png" align="middle" alt="Node Invariants" /></div></div></div><br class="figure-break" /><p> | |
3260 | In our opinion, this problem is not caused just because | |
3261 | red-black trees are order preserving while | |
3262 | collision-chaining hash tables are (generally) not - it | |
3263 | @@ -399,7 +399,7 @@ | |
3264 | Consequently, applying an algorithm to a sequence obtained from most | |
3265 | containers may or may not make sense, but applying it to a | |
3266 | sub-sequence of a self-organizing container does not. | |
3267 | - </p></div><div class="section" title="Cost to Point Iterators to Enable Range Operations"><div class="titlepage"><div><div><h6 class="title"><a id="associative.iterators.cost"/>Cost to Point Iterators to Enable Range Operations</h6></div></div></div><p> | |
3268 | + </p></div><div class="section" title="Cost to Point Iterators to Enable Range Operations"><div class="titlepage"><div><div><h6 class="title"><a id="associative.iterators.cost"></a>Cost to Point Iterators to Enable Range Operations</h6></div></div></div><p> | |
3269 | Suppose <code class="varname">c</code> is some collision-chaining | |
3270 | hash-based container object, and one calls | |
3271 | </p><pre class="programlisting">c.find(3)</pre><p> | |
3272 | @@ -429,11 +429,11 @@ | |
3273 | list, as in the graphic below, label B. Here the iterators are as | |
3274 | light as can be, but the hash-table's operations are more | |
3275 | complicated. | |
3276 | - </p><div class="figure"><a id="id516665"/><p class="title"><strong>Figure 22.4. Point Iteration in Hash Data Structures</strong></p><div class="figure-contents"><div class="mediaobject" style="text-align: center"><img src="../images/pbds_point_iterators_range_ops_2.png" style="text-align: middle" alt="Point Iteration in Hash Data Structures"/></div></div></div><br class="figure-break"/><p> | |
3277 | + </p><div class="figure"><a id="id695152"></a><p class="title"><strong>Figure 22.4. Point Iteration in Hash Data Structures</strong></p><div class="figure-contents"><div class="mediaobject" align="center"><img src="../images/pbds_point_iterators_range_ops_2.png" align="middle" alt="Point Iteration in Hash Data Structures" /></div></div></div><br class="figure-break" /><p> | |
3278 | It should be noted that containers based on collision-chaining | |
3279 | hash-tables are not the only ones with this type of behavior; | |
3280 | many other self-organizing data structures display it as well. | |
3281 | - </p></div><div class="section" title="Invalidation Guarantees"><div class="titlepage"><div><div><h6 class="title"><a id="associative.iterators.invalidation"/>Invalidation Guarantees</h6></div></div></div><p>Consider the following snippet:</p><pre class="programlisting"> | |
3282 | + </p></div><div class="section" title="Invalidation Guarantees"><div class="titlepage"><div><div><h6 class="title"><a id="associative.iterators.invalidation"></a>Invalidation Guarantees</h6></div></div></div><p>Consider the following snippet:</p><pre class="programlisting"> | |
3283 | it = c.find(3); | |
3284 | c.erase(5); | |
3285 | </pre><p> | |
3286 | @@ -445,7 +445,7 @@ | |
3287 | container. The graphic below shows three cases: A1 and A2 show | |
3288 | a red-black tree; B1 and B2 show a probing hash-table; C1 and C2 | |
3289 | show a collision-chaining hash table. | |
3290 | - </p><div class="figure"><a id="id516742"/><p class="title"><strong>Figure 22.5. Effect of erase in different underlying data structures</strong></p><div class="figure-contents"><div class="mediaobject" style="text-align: center"><img src="../images/pbds_invalidation_guarantee_erase.png" style="text-align: middle" alt="Effect of erase in different underlying data structures"/></div></div></div><br class="figure-break"/><div class="orderedlist"><ol class="orderedlist"><li class="listitem"><p> | |
3291 | + </p><div class="figure"><a id="id695229"></a><p class="title"><strong>Figure 22.5. Effect of erase in different underlying data structures</strong></p><div class="figure-contents"><div class="mediaobject" align="center"><img src="../images/pbds_invalidation_guarantee_erase.png" align="middle" alt="Effect of erase in different underlying data structures" /></div></div></div><br class="figure-break" /><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><p> | |
3292 | Erasing 5 from A1 yields A2. Clearly, an iterator to 3 can | |
3293 | be de-referenced and incremented. The sequence of iterators | |
3294 | changed, but in a way that is well-defined by the interface. | |
3295 | @@ -467,7 +467,7 @@ | |
3296 | to express whether <code class="varname">it</code> is valid or not. This | |
3297 | is true also for <code class="function">insert</code>. Again, the | |
3298 | iterator concept seems overloaded. | |
3299 | - </p></div></div><div class="section" title="Functional"><div class="titlepage"><div><div><h5 class="title"><a id="motivation.associative.functions"/>Functional</h5></div></div></div><p> | |
3300 | + </p></div></div><div class="section" title="Functional"><div class="titlepage"><div><div><h5 class="title"><a id="motivation.associative.functions"></a>Functional</h5></div></div></div><p> | |
3301 | </p><p> | |
3302 | The design of the functional overlay to the underlying data | |
3303 | structures differs slightly from some of the conventions used in | |
3304 | @@ -478,7 +478,7 @@ | |
3305 | rubric, the standard associative containers lack some useful | |
3306 | methods, and provide other methods which would be better | |
3307 | removed. | |
3308 | - </p><div class="section" title="erase"><div class="titlepage"><div><div><h6 class="title"><a id="motivation.associative.functions.erase"/><code class="function">erase</code></h6></div></div></div><div class="orderedlist"><ol class="orderedlist"><li class="listitem"><p> | |
3309 | + </p><div class="section" title="erase"><div class="titlepage"><div><div><h6 class="title"><a id="motivation.associative.functions.erase"></a><code class="function">erase</code></h6></div></div></div><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><p> | |
3310 | Order-preserving standard associative containers provide the | |
3311 | method | |
3312 | </p><pre class="programlisting"> | |
3313 | @@ -550,7 +550,7 @@ | |
3314 | is almost certain to do something | |
3315 | different than erasing all elements whose keys are between 2 | |
3316 | and 5, and is likely to produce other undefined behavior. | |
3317 | - </p></li></ol></div></div><div class="section" title="split and join"><div class="titlepage"><div><div><h6 class="title"><a id="motivation.associative.functions.split"/> | |
3318 | + </p></li></ol></div></div><div class="section" title="split and join"><div class="titlepage"><div><div><h6 class="title"><a id="motivation.associative.functions.split"></a> | |
3319 | <code class="function">split</code> and <code class="function">join</code> | |
3320 | </h6></div></div></div><p> | |
3321 | It is well-known that tree-based and trie-based container | |
3322 | @@ -561,7 +561,7 @@ | |
3323 | choices for tree-based container methods, especially, since as | |
3324 | noted just before, they are efficient replacements for erasing | |
3325 | sub-sequences. | |
3326 | - </p></div><div class="section" title="insert"><div class="titlepage"><div><div><h6 class="title"><a id="motivation.associative.functions.insert"/> | |
3327 | + </p></div><div class="section" title="insert"><div class="titlepage"><div><div><h6 class="title"><a id="motivation.associative.functions.insert"></a> | |
3328 | <code class="function">insert</code> | |
3329 | </h6></div></div></div><p> | |
3330 | The standard associative containers provide methods of the form | |
3331 | @@ -577,7 +577,7 @@ | |
3332 | similar to constructors taking a range given by a pair of | |
3333 | iterators; the constructors, however, are transactional, whereas | |
3334 | the insert methods are not; this is possibly confusing. | |
3335 | - </p></div><div class="section" title="operator== and operator<="><div class="titlepage"><div><div><h6 class="title"><a id="motivation.associative.functions.compare"/> | |
3336 | + </p></div><div class="section" title="operator== and operator<="><div class="titlepage"><div><div><h6 class="title"><a id="motivation.associative.functions.compare"></a> | |
3337 | <code class="function">operator==</code> and <code class="function">operator<=</code> | |
3338 | </h6></div></div></div><p> | |
3339 | Associative containers are parametrized by policies allowing to | |
3340 | @@ -597,7 +597,7 @@ | |
3341 | equivalence; also, are two containers considered equivalent if | |
3342 | they store the same values in different order? this is an | |
3343 | arbitrary decision. | |
3344 | - </p></div></div></div><div class="section" title="Priority Queues"><div class="titlepage"><div><div><h4 class="title"><a id="pbds.intro.motivation.priority_queue"/>Priority Queues</h4></div></div></div><div class="section" title="Policy Choices"><div class="titlepage"><div><div><h5 class="title"><a id="motivation.priority_queue.policy"/>Policy Choices</h5></div></div></div><p> | |
3345 | + </p></div></div></div><div class="section" title="Priority Queues"><div class="titlepage"><div><div><h4 class="title"><a id="pbds.intro.motivation.priority_queue"></a>Priority Queues</h4></div></div></div><div class="section" title="Policy Choices"><div class="titlepage"><div><div><h5 class="title"><a id="motivation.priority_queue.policy"></a>Policy Choices</h5></div></div></div><p> | |
3346 | Priority queues are containers that allow efficiently inserting | |
3347 | values and accessing the maximal value (in the sense of the | |
3348 | container's comparison functor). Their interface | |
3349 | @@ -606,7 +606,7 @@ | |
3350 | container <code class="classname">std::priorityqueue</code> indeed support | |
3351 | these methods, but little else. For algorithmic and | |
3352 | software-engineering purposes, other methods are needed: | |
3353 | - </p><div class="orderedlist"><ol class="orderedlist"><li class="listitem"><p> | |
3354 | + </p><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><p> | |
3355 | Many graph algorithms (see | |
3356 | <a class="xref" href="policy_data_structures.html#biblio.clrs2001" title="Introduction to Algorithms, 2nd edition">[biblio.clrs2001]</a>) require increasing a | |
3357 | value in a priority queue (again, in the sense of the | |
3358 | @@ -653,7 +653,7 @@ | |
3359 | ask why do priority queues need to support iterators, since | |
3360 | they are self-organizing containers with a different purpose | |
3361 | than abstracting sequences. There are several reasons: | |
3362 | - </p><div class="orderedlist"><ol class="orderedlist"><li class="listitem"><p> | |
3363 | + </p><div class="orderedlist"><ol class="orderedlist" type="a"><li class="listitem"><p> | |
3364 | Iterators (even in self-organizing containers) are | |
3365 | useful for many purposes: cross-referencing | |
3366 | containers, serialization, and debugging code that uses | |
3367 | @@ -674,14 +674,14 @@ | |
3368 | comparing the iterator returned by <code class="function">find</code> to the | |
3369 | iterator returned by <code class="function">end</code>, and not by comparing a | |
3370 | pointer returned by <code class="function">find</code> to <span class="type">NULL</span>. | |
3371 | - </p></li></ol></div></li></ol></div></div><div class="section" title="Underlying Data Structures"><div class="titlepage"><div><div><h5 class="title"><a id="motivation.priority_queue.underlying"/>Underlying Data Structures</h5></div></div></div><p> | |
3372 | + </p></li></ol></div></li></ol></div></div><div class="section" title="Underlying Data Structures"><div class="titlepage"><div><div><h5 class="title"><a id="motivation.priority_queue.underlying"></a>Underlying Data Structures</h5></div></div></div><p> | |
3373 | There are three main implementations of priority queues: the | |
3374 | first employs a binary heap, typically one which uses a | |
3375 | sequence; the second uses a tree (or forest of trees), which is | |
3376 | typically less structured than an associative container's tree; | |
3377 | the third simply uses an associative container. These are | |
3378 | shown in the figure below with labels A1 and A2, B, and C. | |
3379 | - </p><div class="figure"><a id="id517306"/><p class="title"><strong>Figure 22.6. Underlying Priority Queue Data Structures</strong></p><div class="figure-contents"><div class="mediaobject" style="text-align: center"><img src="../images/pbds_different_underlying_dss_2.png" style="text-align: middle" alt="Underlying Priority Queue Data Structures"/></div></div></div><br class="figure-break"/><p> | |
3380 | + </p><div class="figure"><a id="id695792"></a><p class="title"><strong>Figure 22.6. Underlying Priority Queue Data Structures</strong></p><div class="figure-contents"><div class="mediaobject" align="center"><img src="../images/pbds_different_underlying_dss_2.png" align="middle" alt="Underlying Priority Queue Data Structures" /></div></div></div><br class="figure-break" /><p> | |
3381 | No single implementation can completely replace any of the | |
3382 | others. Some have better <code class="function">push</code> | |
3383 | and <code class="function">pop</code> amortized performance, some have | |
3384 | @@ -696,7 +696,7 @@ | |
3385 | important for priority queues, since the invalidation guarantees | |
3386 | of one of the most useful data structures - binary heaps - is | |
3387 | markedly different than those of most of the others. | |
3388 | - </p></div><div class="section" title="Binary Heaps"><div class="titlepage"><div><div><h5 class="title"><a id="motivation.priority_queue.binary_heap"/>Binary Heaps</h5></div></div></div><p> | |
3389 | + </p></div><div class="section" title="Binary Heaps"><div class="titlepage"><div><div><h5 class="title"><a id="motivation.priority_queue.binary_heap"></a>Binary Heaps</h5></div></div></div><p> | |
3390 | Binary heaps are one of the most useful underlying | |
3391 | data structures for priority queues. They are very efficient in | |
3392 | terms of memory (since they don't require per-value structure | |
3393 | @@ -716,7 +716,7 @@ | |
3394 | several reasons why a binary-heap priority queue | |
3395 | may be better implemented as a container instead of a | |
3396 | sequence adapter: | |
3397 | - </p><div class="orderedlist"><ol class="orderedlist"><li class="listitem"><p> | |
3398 | + </p><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><p> | |
3399 | <code class="classname">std::priority_queue</code> cannot erase values | |
3400 | from its adapted sequence (irrespective of the sequence | |
3401 | type). This means that the memory use of | |
3402 | @@ -743,7 +743,7 @@ | |
3403 | </p></li><li class="listitem"><p> | |
3404 | There does not seem to be a systematic way to determine | |
3405 | what exactly can be done with the priority queue. | |
3406 | - </p><div class="orderedlist"><ol class="orderedlist"><li class="listitem"><p> | |
3407 | + </p><div class="orderedlist"><ol class="orderedlist" type="a"><li class="listitem"><p> | |
3408 | If <code class="classname">p</code> is a priority queue adapting an | |
3409 | <code class="classname">std::vector</code>, then it is possible to iterate over | |
3410 | all values by using <code class="function">&p.top()</code> and | |
3411 | @@ -773,10 +773,10 @@ | |
3412 | <code class="classname">std::priority_queue</code>, however, this will generally | |
3413 | change the order of growth of the entire sequence of | |
3414 | operations. | |
3415 | - </p></li></ol></div></div></div></div></div><div class="bibliography" title="Bibliography"><div class="titlepage"><div><div><h2 class="title"><a id="pbds.biblio"/> | |
3416 | + </p></li></ol></div></div></div></div></div><div class="bibliography" title="Bibliography"><div class="titlepage"><div><div><h2 class="title"><a id="pbds.biblio"></a> | |
3417 | Bibliography | |
3418 | - </h2></div></div></div><div class="biblioentry" title="STL Exception Handling Contract"><a id="biblio.abrahams97exception"/><p>[biblio.abrahams97exception] <span class="title"><em> | |
3419 | - <a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/1997/N1075.pdf"> | |
3420 | + </h2></div></div></div><div class="biblioentry" title="STL Exception Handling Contract"><a id="biblio.abrahams97exception"></a><p>[biblio.abrahams97exception] <span class="title"><em> | |
3421 | + <a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/1997/N1075.pdf" target="_top"> | |
3422 | STL Exception Handling Contract | |
3423 | </a> | |
3424 | </em>. </span><span class="date">1997. </span><span class="author"><span class="firstname"> | |
3425 | @@ -785,7 +785,7 @@ | |
3426 | Abrahams | |
3427 | </span>. </span><span class="publisher"><span class="publishername"> | |
3428 | ISO SC22/WG21 | |
3429 | - . </span></span></p></div><div class="biblioentry" title="Modern C++ Design: Generic Programming and Design Patterns Applied"><a id="biblio.alexandrescu01modern"/><p>[biblio.alexandrescu01modern] <span class="title"><em> | |
3430 | + . </span></span></p></div><div class="biblioentry" title="Modern C++ Design: Generic Programming and Design Patterns Applied"><a id="biblio.alexandrescu01modern"></a><p>[biblio.alexandrescu01modern] <span class="title"><em> | |
3431 | Modern C++ Design: Generic Programming and Design Patterns Applied | |
3432 | </em>. </span><span class="date"> | |
3433 | 2001 | |
3434 | @@ -795,7 +795,7 @@ | |
3435 | Alexandrescu | |
3436 | </span>. </span><span class="publisher"><span class="publishername"> | |
3437 | Addison-Wesley Publishing Company | |
3438 | - . </span></span></p></div><div class="biblioentry" title="MTF, Bit, and COMB: A Guide to Deterministic and Randomized Algorithms for the List Update Problem"><a id="biblio.andrew04mtf"/><p>[biblio.andrew04mtf] <span class="title"><em> | |
3439 | + . </span></span></p></div><div class="biblioentry" title="MTF, Bit, and COMB: A Guide to Deterministic and Randomized Algorithms for the List Update Problem"><a id="biblio.andrew04mtf"></a><p>[biblio.andrew04mtf] <span class="title"><em> | |
3440 | MTF, Bit, and COMB: A Guide to Deterministic and Randomized | |
3441 | Algorithms for the List Update Problem | |
3442 | </em>. </span><span class="authorgroup"><span class="firstname"> | |
3443 | @@ -806,7 +806,7 @@ | |
3444 | D. | |
3445 | </span> <span class="surname"> | |
3446 | Gleich | |
3447 | - </span>. </span></p></div><div class="biblioentry" title="Why You Shouldn't Use set - and What You Should Use Instead"><a id="biblio.austern00noset"/><p>[biblio.austern00noset] <span class="title"><em> | |
3448 | + </span>. </span></p></div><div class="biblioentry" title="Why You Shouldn't Use set - and What You Should Use Instead"><a id="biblio.austern00noset"></a><p>[biblio.austern00noset] <span class="title"><em> | |
3449 | Why You Shouldn't Use set - and What You Should Use Instead | |
3450 | </em>. </span><span class="date"> | |
3451 | April, 2000 | |
3452 | @@ -816,8 +816,8 @@ | |
3453 | Austern | |
3454 | </span>. </span><span class="publisher"><span class="publishername"> | |
3455 | C++ Report | |
3456 | - . </span></span></p></div><div class="biblioentry" title="A Proposal to Add Hashtables to the Standard Library"><a id="biblio.austern01htprop"/><p>[biblio.austern01htprop] <span class="title"><em> | |
3457 | - <a class="link" href="http://www.open-std.org/JTC1/sc22/wg21/docs/papers/2001/n1326.html"> | |
3458 | + . </span></span></p></div><div class="biblioentry" title="A Proposal to Add Hashtables to the Standard Library"><a id="biblio.austern01htprop"></a><p>[biblio.austern01htprop] <span class="title"><em> | |
3459 | + <a class="link" href="http://www.open-std.org/JTC1/sc22/wg21/docs/papers/2001/n1326.html" target="_top"> | |
3460 | A Proposal to Add Hashtables to the Standard Library | |
3461 | </a> | |
3462 | </em>. </span><span class="date"> | |
3463 | @@ -828,7 +828,7 @@ | |
3464 | Austern | |
3465 | </span>. </span><span class="publisher"><span class="publishername"> | |
3466 | ISO SC22/WG21 | |
3467 | - . </span></span></p></div><div class="biblioentry" title="Segmented iterators and hierarchical algorithms"><a id="biblio.austern98segmentedit"/><p>[biblio.austern98segmentedit] <span class="title"><em> | |
3468 | + . </span></span></p></div><div class="biblioentry" title="Segmented iterators and hierarchical algorithms"><a id="biblio.austern98segmentedit"></a><p>[biblio.austern98segmentedit] <span class="title"><em> | |
3469 | Segmented iterators and hierarchical algorithms | |
3470 | </em>. </span><span class="date"> | |
3471 | April, 1998 | |
3472 | @@ -838,8 +838,8 @@ | |
3473 | Austern | |
3474 | </span>. </span><span class="publisher"><span class="publishername"> | |
3475 | Generic Programming | |
3476 | - . </span></span></p></div><div class="biblioentry" title="Boost Timer Library"><a id="biblio.dawestimer"/><p>[biblio.dawestimer] <span class="title"><em> | |
3477 | - <a class="link" href="www.boost.org/doc/libs/release/libs/timer/"> | |
3478 | + . </span></span></p></div><div class="biblioentry" title="Boost Timer Library"><a id="biblio.dawestimer"></a><p>[biblio.dawestimer] <span class="title"><em> | |
3479 | + <a class="link" href="www.boost.org/doc/libs/release/libs/timer/" target="_top"> | |
3480 | Boost Timer Library | |
3481 | </a> | |
3482 | </em>. </span><span class="author"><span class="firstname"> | |
3483 | @@ -848,8 +848,8 @@ | |
3484 | Dawes | |
3485 | </span>. </span><span class="publisher"><span class="publishername"> | |
3486 | Boost | |
3487 | - . </span></span></p></div><div class="biblioentry" title="Boost Pool Library"><a id="biblio.clearypool"/><p>[biblio.clearypool] <span class="title"><em> | |
3488 | - <a class="link" href="www.boost.org/doc/libs/release/libs/pool/"> | |
3489 | + . </span></span></p></div><div class="biblioentry" title="Boost Pool Library"><a id="biblio.clearypool"></a><p>[biblio.clearypool] <span class="title"><em> | |
3490 | + <a class="link" href="www.boost.org/doc/libs/release/libs/pool/" target="_top"> | |
3491 | Boost Pool Library | |
3492 | </a> | |
3493 | </em>. </span><span class="author"><span class="firstname"> | |
3494 | @@ -858,8 +858,8 @@ | |
3495 | Cleary | |
3496 | </span>. </span><span class="publisher"><span class="publishername"> | |
3497 | Boost | |
3498 | - . </span></span></p></div><div class="biblioentry" title="Boost Type Traits Library"><a id="biblio.maddocktraits"/><p>[biblio.maddocktraits] <span class="title"><em> | |
3499 | - <a class="link" href="www.boost.org/doc/libs/release/libs/type_traits/"> | |
3500 | + . </span></span></p></div><div class="biblioentry" title="Boost Type Traits Library"><a id="biblio.maddocktraits"></a><p>[biblio.maddocktraits] <span class="title"><em> | |
3501 | + <a class="link" href="www.boost.org/doc/libs/release/libs/type_traits/" target="_top"> | |
3502 | Boost Type Traits Library | |
3503 | </a> | |
3504 | </em>. </span><span class="authorgroup"><span class="firstname"> | |
3505 | @@ -872,15 +872,15 @@ | |
3506 | Cleary | |
3507 | </span>. </span><span class="publisher"><span class="publishername"> | |
3508 | Boost | |
3509 | - . </span></span></p></div><div class="biblioentry" title="Worst-case efficient priority queues"><a id="biblio.brodal96priority"/><p>[biblio.brodal96priority] <span class="title"><em> | |
3510 | - <a class="link" href="http://portal.acm.org/citation.cfm?id=313883"> | |
3511 | + . </span></span></p></div><div class="biblioentry" title="Worst-case efficient priority queues"><a id="biblio.brodal96priority"></a><p>[biblio.brodal96priority] <span class="title"><em> | |
3512 | + <a class="link" href="http://portal.acm.org/citation.cfm?id=313883" target="_top"> | |
3513 | Worst-case efficient priority queues | |
3514 | </a> | |
3515 | </em>. </span><span class="author"><span class="firstname"> | |
3516 | Gerth | |
3517 | </span> <span class="surname"> | |
3518 | Stolting Brodal | |
3519 | - </span>. </span></p></div><div class="biblioentry" title="Efficient C++ Programming Techniques"><a id="biblio.bulkamayheweff"/><p>[biblio.bulkamayheweff] <span class="title"><em> | |
3520 | + </span>. </span></p></div><div class="biblioentry" title="Efficient C++ Programming Techniques"><a id="biblio.bulkamayheweff"></a><p>[biblio.bulkamayheweff] <span class="title"><em> | |
3521 | Efficient C++ Programming Techniques | |
3522 | </em>. </span><span class="date"> | |
3523 | 1997 | |
3524 | @@ -894,7 +894,7 @@ | |
3525 | Mayhew | |
3526 | </span>. </span><span class="publisher"><span class="publishername"> | |
3527 | Addison-Wesley Publishing Company | |
3528 | - . </span></span></p></div><div class="biblioentry" title="Introduction to Algorithms, 2nd edition"><a id="biblio.clrs2001"/><p>[biblio.clrs2001] <span class="title"><em> | |
3529 | + . </span></span></p></div><div class="biblioentry" title="Introduction to Algorithms, 2nd edition"><a id="biblio.clrs2001"></a><p>[biblio.clrs2001] <span class="title"><em> | |
3530 | Introduction to Algorithms, 2nd edition | |
3531 | </em>. </span><span class="date"> | |
3532 | 2001 | |
3533 | @@ -916,7 +916,7 @@ | |
3534 | Stein | |
3535 | </span>. </span><span class="publisher"><span class="publishername"> | |
3536 | MIT Press | |
3537 | - . </span></span></p></div><div class="biblioentry" title="Balls and bins: A study in negative dependence"><a id="biblio.dubhashi98neg"/><p>[biblio.dubhashi98neg] <span class="title"><em> | |
3538 | + . </span></span></p></div><div class="biblioentry" title="Balls and bins: A study in negative dependence"><a id="biblio.dubhashi98neg"></a><p>[biblio.dubhashi98neg] <span class="title"><em> | |
3539 | Balls and bins: A study in negative dependence | |
3540 | </em>. </span><span class="date"> | |
3541 | 1998 | |
3542 | @@ -930,7 +930,7 @@ | |
3543 | Ranjan | |
3544 | </span>. </span><span class="publisher"><span class="publishername"> | |
3545 | Random Structures and Algorithms 13 | |
3546 | - . </span></span></p></div><div class="biblioentry" title="Extendible hashing - a fast access method for dynamic files"><a id="biblio.fagin79extendible"/><p>[biblio.fagin79extendible] <span class="title"><em> | |
3547 | + . </span></span></p></div><div class="biblioentry" title="Extendible hashing - a fast access method for dynamic files"><a id="biblio.fagin79extendible"></a><p>[biblio.fagin79extendible] <span class="title"><em> | |
3548 | Extendible hashing - a fast access method for dynamic files | |
3549 | </em>. </span><span class="date"> | |
3550 | 1979 | |
3551 | @@ -952,8 +952,8 @@ | |
3552 | Strong | |
3553 | </span>. </span><span class="publisher"><span class="publishername"> | |
3554 | ACM Trans. Database Syst. 4 | |
3555 | - . </span></span></p></div><div class="biblioentry" title="Ptset: Sets of integers implemented as Patricia trees"><a id="biblio.filliatre2000ptset"/><p>[biblio.filliatre2000ptset] <span class="title"><em> | |
3556 | - <a class="link" href="http://cristal.inria.fr/~frisch/icfp06_contest/advtr/applyOmatic/ptset.ml"> | |
3557 | + . </span></span></p></div><div class="biblioentry" title="Ptset: Sets of integers implemented as Patricia trees"><a id="biblio.filliatre2000ptset"></a><p>[biblio.filliatre2000ptset] <span class="title"><em> | |
3558 | + <a class="link" href="http://cristal.inria.fr/~frisch/icfp06_contest/advtr/applyOmatic/ptset.ml" target="_top"> | |
3559 | Ptset: Sets of integers implemented as Patricia trees | |
3560 | </a> | |
3561 | </em>. </span><span class="date"> | |
3562 | @@ -962,8 +962,8 @@ | |
3563 | Jean-Christophe | |
3564 | </span> <span class="surname"> | |
3565 | Filliatre | |
3566 | - </span>. </span></p></div><div class="biblioentry" title="The pairing heap: a new form of self-adjusting heap"><a id="biblio.fredman86pairing"/><p>[biblio.fredman86pairing] <span class="title"><em> | |
3567 | - <a class="link" href="http://www.cs.cmu.edu/~sleator/papers/pairing-heaps.pdf"> | |
3568 | + </span>. </span></p></div><div class="biblioentry" title="The pairing heap: a new form of self-adjusting heap"><a id="biblio.fredman86pairing"></a><p>[biblio.fredman86pairing] <span class="title"><em> | |
3569 | + <a class="link" href="http://www.cs.cmu.edu/~sleator/papers/pairing-heaps.pdf" target="_top"> | |
3570 | The pairing heap: a new form of self-adjusting heap | |
3571 | </a> | |
3572 | </em>. </span><span class="date"> | |
3573 | @@ -984,7 +984,7 @@ | |
3574 | R. E. | |
3575 | </span> <span class="surname"> | |
3576 | Tarjan | |
3577 | - </span>. </span></p></div><div class="biblioentry" title="Design Patterns - Elements of Reusable Object-Oriented Software"><a id="biblio.gof"/><p>[biblio.gof] <span class="title"><em> | |
3578 | + </span>. </span></p></div><div class="biblioentry" title="Design Patterns - Elements of Reusable Object-Oriented Software"><a id="biblio.gof"></a><p>[biblio.gof] <span class="title"><em> | |
3579 | Design Patterns - Elements of Reusable Object-Oriented Software | |
3580 | </em>. </span><span class="date"> | |
3581 | 1995 | |
3582 | @@ -1006,7 +1006,7 @@ | |
3583 | Vlissides | |
3584 | </span>. </span><span class="publisher"><span class="publishername"> | |
3585 | Addison-Wesley Publishing Company | |
3586 | - . </span></span></p></div><div class="biblioentry" title="Order-preserving key transformations"><a id="biblio.garg86order"/><p>[biblio.garg86order] <span class="title"><em> | |
3587 | + . </span></span></p></div><div class="biblioentry" title="Order-preserving key transformations"><a id="biblio.garg86order"></a><p>[biblio.garg86order] <span class="title"><em> | |
3588 | Order-preserving key transformations | |
3589 | </em>. </span><span class="date"> | |
3590 | 1986 | |
3591 | @@ -1020,7 +1020,7 @@ | |
3592 | Gotlieb | |
3593 | </span>. </span><span class="publisher"><span class="publishername"> | |
3594 | Trans. Database Syst. 11 | |
3595 | - . </span></span></p></div><div class="biblioentry" title="Making a real hash of things"><a id="biblio.hyslop02making"/><p>[biblio.hyslop02making] <span class="title"><em> | |
3596 | + . </span></span></p></div><div class="biblioentry" title="Making a real hash of things"><a id="biblio.hyslop02making"></a><p>[biblio.hyslop02making] <span class="title"><em> | |
3597 | Making a real hash of things | |
3598 | </em>. </span><span class="date"> | |
3599 | May 2002 | |
3600 | @@ -1034,7 +1034,7 @@ | |
3601 | Sutter | |
3602 | </span>. </span><span class="publisher"><span class="publishername"> | |
3603 | C++ Report | |
3604 | - . </span></span></p></div><div class="biblioentry" title="The C++ Standard Library - A Tutorial and Reference"><a id="biblio.jossutis01stl"/><p>[biblio.jossutis01stl] <span class="title"><em> | |
3605 | + . </span></span></p></div><div class="biblioentry" title="The C++ Standard Library - A Tutorial and Reference"><a id="biblio.jossutis01stl"></a><p>[biblio.jossutis01stl] <span class="title"><em> | |
3606 | The C++ Standard Library - A Tutorial and Reference | |
3607 | </em>. </span><span class="date"> | |
3608 | 2001 | |
3609 | @@ -1044,8 +1044,8 @@ | |
3610 | Jossutis | |
3611 | </span>. </span><span class="publisher"><span class="publishername"> | |
3612 | Addison-Wesley Publishing Company | |
3613 | - . </span></span></p></div><div class="biblioentry" title="New Heap Data Structures"><a id="biblio.kt99fat_heaps"/><p>[biblio.kt99fat_heaps] <span class="title"><em> | |
3614 | - <a class="link" href="http://www.cs.princeton.edu/research/techreps/TR-597-99"> | |
3615 | + . </span></span></p></div><div class="biblioentry" title="New Heap Data Structures"><a id="biblio.kt99fat_heaps"></a><p>[biblio.kt99fat_heaps] <span class="title"><em> | |
3616 | + <a class="link" href="http://www.cs.princeton.edu/research/techreps/TR-597-99" target="_top"> | |
3617 | New Heap Data Structures | |
3618 | </a> | |
3619 | </em>. </span><span class="date"> | |
3620 | @@ -1058,7 +1058,7 @@ | |
3621 | Robert E. | |
3622 | </span> <span class="surname"> | |
3623 | Tarjan | |
3624 | - </span>. </span></p></div><div class="biblioentry" title="Are Set Iterators Mutable or Immutable?"><a id="biblio.kleft00sets"/><p>[biblio.kleft00sets] <span class="title"><em> | |
3625 | + </span>. </span></p></div><div class="biblioentry" title="Are Set Iterators Mutable or Immutable?"><a id="biblio.kleft00sets"></a><p>[biblio.kleft00sets] <span class="title"><em> | |
3626 | Are Set Iterators Mutable or Immutable? | |
3627 | </em>. </span><span class="date"> | |
3628 | October 2000 | |
3629 | @@ -1072,7 +1072,7 @@ | |
3630 | Kleft | |
3631 | </span>. </span><span class="publisher"><span class="publishername"> | |
3632 | C/C++ Users Jornal | |
3633 | - . </span></span></p></div><div class="biblioentry" title="The Art of Computer Programming - Sorting and Searching"><a id="biblio.knuth98sorting"/><p>[biblio.knuth98sorting] <span class="title"><em> | |
3634 | + . </span></span></p></div><div class="biblioentry" title="The Art of Computer Programming - Sorting and Searching"><a id="biblio.knuth98sorting"></a><p>[biblio.knuth98sorting] <span class="title"><em> | |
3635 | The Art of Computer Programming - Sorting and Searching | |
3636 | </em>. </span><span class="date"> | |
3637 | 1998 | |
3638 | @@ -1082,7 +1082,7 @@ | |
3639 | Knuth | |
3640 | </span>. </span><span class="publisher"><span class="publishername"> | |
3641 | Addison-Wesley Publishing Company | |
3642 | - . </span></span></p></div><div class="biblioentry" title="Data abstraction and hierarchy"><a id="biblio.liskov98data"/><p>[biblio.liskov98data] <span class="title"><em> | |
3643 | + . </span></span></p></div><div class="biblioentry" title="Data abstraction and hierarchy"><a id="biblio.liskov98data"></a><p>[biblio.liskov98data] <span class="title"><em> | |
3644 | Data abstraction and hierarchy | |
3645 | </em>. </span><span class="date"> | |
3646 | May 1998 | |
3647 | @@ -1092,7 +1092,7 @@ | |
3648 | Liskov | |
3649 | </span>. </span><span class="publisher"><span class="publishername"> | |
3650 | SIGPLAN Notices 23 | |
3651 | - . </span></span></p></div><div class="biblioentry" title="Linear hashing: A new tool for file and table addressing"><a id="biblio.litwin80lh"/><p>[biblio.litwin80lh] <span class="title"><em> | |
3652 | + . </span></span></p></div><div class="biblioentry" title="Linear hashing: A new tool for file and table addressing"><a id="biblio.litwin80lh"></a><p>[biblio.litwin80lh] <span class="title"><em> | |
3653 | Linear hashing: A new tool for file and table addressing | |
3654 | </em>. </span><span class="date"> | |
3655 | June 1980 | |
3656 | @@ -1102,8 +1102,8 @@ | |
3657 | Litwin | |
3658 | </span>. </span><span class="publisher"><span class="publishername"> | |
3659 | Proceedings of International Conference on Very Large Data Bases | |
3660 | - . </span></span></p></div><div class="biblioentry" title="Deamortization - Part 2: Binomial Heaps"><a id="biblio.maverik_lowerbounds"/><p>[biblio.maverik_lowerbounds] <span class="title"><em> | |
3661 | - <a class="link" href="http://magic.aladdin.cs.cmu.edu/2005/08/01/deamortization-part-2-binomial-heaps"> | |
3662 | + . </span></span></p></div><div class="biblioentry" title="Deamortization - Part 2: Binomial Heaps"><a id="biblio.maverik_lowerbounds"></a><p>[biblio.maverik_lowerbounds] <span class="title"><em> | |
3663 | + <a class="link" href="http://magic.aladdin.cs.cmu.edu/2005/08/01/deamortization-part-2-binomial-heaps" target="_top"> | |
3664 | Deamortization - Part 2: Binomial Heaps | |
3665 | </a> | |
3666 | </em>. </span><span class="date"> | |
3667 | @@ -1112,7 +1112,7 @@ | |
3668 | Maverik | |
3669 | </span> <span class="surname"> | |
3670 | Woo | |
3671 | - </span>. </span></p></div><div class="biblioentry" title="More Effective C++: 35 New Ways to Improve Your Programs and Designs"><a id="biblio.meyers96more"/><p>[biblio.meyers96more] <span class="title"><em> | |
3672 | + </span>. </span></p></div><div class="biblioentry" title="More Effective C++: 35 New Ways to Improve Your Programs and Designs"><a id="biblio.meyers96more"></a><p>[biblio.meyers96more] <span class="title"><em> | |
3673 | More Effective C++: 35 New Ways to Improve Your Programs and Designs | |
3674 | </em>. </span><span class="date"> | |
3675 | 1996 | |
3676 | @@ -1122,7 +1122,7 @@ | |
3677 | Meyers | |
3678 | </span>. </span><span class="publisher"><span class="publishername"> | |
3679 | Addison-Wesley Publishing Company | |
3680 | - . </span></span></p></div><div class="biblioentry" title="How Non-Member Functions Improve Encapsulation"><a id="biblio.meyers00nonmember"/><p>[biblio.meyers00nonmember] <span class="title"><em> | |
3681 | + . </span></span></p></div><div class="biblioentry" title="How Non-Member Functions Improve Encapsulation"><a id="biblio.meyers00nonmember"></a><p>[biblio.meyers00nonmember] <span class="title"><em> | |
3682 | How Non-Member Functions Improve Encapsulation | |
3683 | </em>. </span><span class="date"> | |
3684 | 2000 | |
3685 | @@ -1132,7 +1132,7 @@ | |
3686 | Meyers | |
3687 | </span>. </span><span class="publisher"><span class="publishername"> | |
3688 | C/C++ Users Journal | |
3689 | - . </span></span></p></div><div class="biblioentry" title="Effective STL: 50 Specific Ways to Improve Your Use of the Standard Template Library"><a id="biblio.meyers01stl"/><p>[biblio.meyers01stl] <span class="title"><em> | |
3690 | + . </span></span></p></div><div class="biblioentry" title="Effective STL: 50 Specific Ways to Improve Your Use of the Standard Template Library"><a id="biblio.meyers01stl"></a><p>[biblio.meyers01stl] <span class="title"><em> | |
3691 | Effective STL: 50 Specific Ways to Improve Your Use of the Standard Template Library | |
3692 | </em>. </span><span class="date"> | |
3693 | 2001 | |
3694 | @@ -1142,7 +1142,7 @@ | |
3695 | Meyers | |
3696 | </span>. </span><span class="publisher"><span class="publishername"> | |
3697 | Addison-Wesley Publishing Company | |
3698 | - . </span></span></p></div><div class="biblioentry" title="Class Template, Member Template - or Both?"><a id="biblio.meyers02both"/><p>[biblio.meyers02both] <span class="title"><em> | |
3699 | + . </span></span></p></div><div class="biblioentry" title="Class Template, Member Template - or Both?"><a id="biblio.meyers02both"></a><p>[biblio.meyers02both] <span class="title"><em> | |
3700 | Class Template, Member Template - or Both? | |
3701 | </em>. </span><span class="date"> | |
3702 | 2003 | |
3703 | @@ -1152,7 +1152,7 @@ | |
3704 | Meyers | |
3705 | </span>. </span><span class="publisher"><span class="publishername"> | |
3706 | C/C++ Users Journal | |
3707 | - . </span></span></p></div><div class="biblioentry" title="Randomized Algorithms"><a id="biblio.motwani95random"/><p>[biblio.motwani95random] <span class="title"><em> | |
3708 | + . </span></span></p></div><div class="biblioentry" title="Randomized Algorithms"><a id="biblio.motwani95random"></a><p>[biblio.motwani95random] <span class="title"><em> | |
3709 | Randomized Algorithms | |
3710 | </em>. </span><span class="date"> | |
3711 | 2003 | |
3712 | @@ -1166,13 +1166,13 @@ | |
3713 | Raghavan | |
3714 | </span>. </span><span class="publisher"><span class="publishername"> | |
3715 | Cambridge University Press | |
3716 | - . </span></span></p></div><div class="biblioentry" title="COM: Component Model Object Technologies"><a id="biblio.mscom"/><p>[biblio.mscom] <span class="title"><em> | |
3717 | - <a class="link" href="http://www.microsoft.com/com"> | |
3718 | + . </span></span></p></div><div class="biblioentry" title="COM: Component Model Object Technologies"><a id="biblio.mscom"></a><p>[biblio.mscom] <span class="title"><em> | |
3719 | + <a class="link" href="http://www.microsoft.com/com" target="_top"> | |
3720 | COM: Component Model Object Technologies | |
3721 | </a> | |
3722 | </em>. </span><span class="publisher"><span class="publishername"> | |
3723 | Microsoft | |
3724 | - . </span></span></p></div><div class="biblioentry" title="Rationale for Adding Hash Tables to the C++ Standard Template Library"><a id="biblio.musser95rationale"/><p>[biblio.musser95rationale] <span class="title"><em> | |
3725 | + . </span></span></p></div><div class="biblioentry" title="Rationale for Adding Hash Tables to the C++ Standard Template Library"><a id="biblio.musser95rationale"></a><p>[biblio.musser95rationale] <span class="title"><em> | |
3726 | Rationale for Adding Hash Tables to the C++ Standard Template Library | |
3727 | </em>. </span><span class="date"> | |
3728 | 1995 | |
3729 | @@ -1180,7 +1180,7 @@ | |
3730 | David R. | |
3731 | </span> <span class="surname"> | |
3732 | Musser | |
3733 | - </span>. </span></p></div><div class="biblioentry" title="STL Tutorial and Reference Guide"><a id="biblio.musser96stltutorial"/><p>[biblio.musser96stltutorial] <span class="title"><em> | |
3734 | + </span>. </span></p></div><div class="biblioentry" title="STL Tutorial and Reference Guide"><a id="biblio.musser96stltutorial"></a><p>[biblio.musser96stltutorial] <span class="title"><em> | |
3735 | STL Tutorial and Reference Guide | |
3736 | </em>. </span><span class="date"> | |
3737 | 1996 | |
3738 | @@ -1194,8 +1194,8 @@ | |
3739 | Saini | |
3740 | </span>. </span><span class="publisher"><span class="publishername"> | |
3741 | Addison-Wesley Publishing Company | |
3742 | - . </span></span></p></div><div class="biblioentry" title="Priority Queues and the STL"><a id="biblio.nelson96stlpq"/><p>[biblio.nelson96stlpq] <span class="title"><em> | |
3743 | - <a class="link" href="http://www.dogma.net/markn/articles/pq_stl/priority.htm">Priority Queues and the STL | |
3744 | + . </span></span></p></div><div class="biblioentry" title="Priority Queues and the STL"><a id="biblio.nelson96stlpq"></a><p>[biblio.nelson96stlpq] <span class="title"><em> | |
3745 | + <a class="link" href="http://www.dogma.net/markn/articles/pq_stl/priority.htm" target="_top">Priority Queues and the STL | |
3746 | </a> | |
3747 | </em>. </span><span class="date"> | |
3748 | January 1996 | |
3749 | @@ -1205,7 +1205,7 @@ | |
3750 | Nelson | |
3751 | </span>. </span><span class="publisher"><span class="publishername"> | |
3752 | Dr. Dobbs Journal | |
3753 | - . </span></span></p></div><div class="biblioentry" title="Fast mergeable integer maps"><a id="biblio.okasaki98mereable"/><p>[biblio.okasaki98mereable] <span class="title"><em> | |
3754 | + . </span></span></p></div><div class="biblioentry" title="Fast mergeable integer maps"><a id="biblio.okasaki98mereable"></a><p>[biblio.okasaki98mereable] <span class="title"><em> | |
3755 | Fast mergeable integer maps | |
3756 | </em>. </span><span class="date"> | |
3757 | September 1998 | |
3758 | @@ -1219,8 +1219,8 @@ | |
3759 | Gill | |
3760 | </span>. </span><span class="publisher"><span class="publishername"> | |
3761 | In Workshop on ML | |
3762 | - . </span></span></p></div><div class="biblioentry" title="Standard Template Library Programmer's Guide"><a id="biblio.sgi_stl"/><p>[biblio.sgi_stl] <span class="title"><em> | |
3763 | - <a class="link" href="http://www.sgi.com/tech/stl"> | |
3764 | + . </span></span></p></div><div class="biblioentry" title="Standard Template Library Programmer's Guide"><a id="biblio.sgi_stl"></a><p>[biblio.sgi_stl] <span class="title"><em> | |
3765 | + <a class="link" href="http://www.sgi.com/tech/stl" target="_top"> | |
3766 | Standard Template Library Programmer's Guide | |
3767 | </a> | |
3768 | </em>. </span><span class="author"><span class="firstname"> | |
3769 | @@ -1229,11 +1229,11 @@ | |
3770 | Austern | |
3771 | </span>. </span><span class="publisher"><span class="publishername"> | |
3772 | SGI | |
3773 | - . </span></span></p></div><div class="biblioentry" title="select"><a id="biblio.select_man"/><p>[biblio.select_man] <span class="title"><em> | |
3774 | - <a class="link" href="http://www.scit.wlv.ac.uk/cgi-bin/mansec?3C+select"> | |
3775 | + . </span></span></p></div><div class="biblioentry" title="select"><a id="biblio.select_man"></a><p>[biblio.select_man] <span class="title"><em> | |
3776 | + <a class="link" href="http://www.scit.wlv.ac.uk/cgi-bin/mansec?3C+select" target="_top"> | |
3777 | select | |
3778 | </a> | |
3779 | - </em>. </span></p></div><div class="biblioentry" title="Amortized Efficiency of List Update Problems"><a id="biblio.sleator84amortized"/><p>[biblio.sleator84amortized] <span class="title"><em> | |
3780 | + </em>. </span></p></div><div class="biblioentry" title="Amortized Efficiency of List Update Problems"><a id="biblio.sleator84amortized"></a><p>[biblio.sleator84amortized] <span class="title"><em> | |
3781 | Amortized Efficiency of List Update Problems | |
3782 | </em>. </span><span class="date"> | |
3783 | 1984 | |
3784 | @@ -1247,7 +1247,7 @@ | |
3785 | Tarjan | |
3786 | </span>. </span><span class="publisher"><span class="publishername"> | |
3787 | ACM Symposium on Theory of Computing | |
3788 | - . </span></span></p></div><div class="biblioentry" title="Self-Adjusting Binary Search Trees"><a id="biblio.sleator85self"/><p>[biblio.sleator85self] <span class="title"><em> | |
3789 | + . </span></span></p></div><div class="biblioentry" title="Self-Adjusting Binary Search Trees"><a id="biblio.sleator85self"></a><p>[biblio.sleator85self] <span class="title"><em> | |
3790 | Self-Adjusting Binary Search Trees | |
3791 | </em>. </span><span class="date"> | |
3792 | 1985 | |
3793 | @@ -1261,7 +1261,7 @@ | |
3794 | Tarjan | |
3795 | </span>. </span><span class="publisher"><span class="publishername"> | |
3796 | ACM Symposium on Theory of Computing | |
3797 | - . </span></span></p></div><div class="biblioentry" title="The Standard Template Library"><a id="biblio.stepanov94standard"/><p>[biblio.stepanov94standard] <span class="title"><em> | |
3798 | + . </span></span></p></div><div class="biblioentry" title="The Standard Template Library"><a id="biblio.stepanov94standard"></a><p>[biblio.stepanov94standard] <span class="title"><em> | |
3799 | The Standard Template Library | |
3800 | </em>. </span><span class="date"> | |
3801 | 1984 | |
3802 | @@ -1273,7 +1273,7 @@ | |
3803 | M. | |
3804 | </span> <span class="surname"> | |
3805 | Lee | |
3806 | - </span>. </span></p></div><div class="biblioentry" title="The C++ Programming Langugage"><a id="biblio.stroustrup97cpp"/><p>[biblio.stroustrup97cpp] <span class="title"><em> | |
3807 | + </span>. </span></p></div><div class="biblioentry" title="The C++ Programming Langugage"><a id="biblio.stroustrup97cpp"></a><p>[biblio.stroustrup97cpp] <span class="title"><em> | |
3808 | The C++ Programming Langugage | |
3809 | </em>. </span><span class="date"> | |
3810 | 1997 | |
3811 | @@ -1283,7 +1283,7 @@ | |
3812 | Stroustrup | |
3813 | </span>. </span><span class="publisher"><span class="publishername"> | |
3814 | Addison-Wesley Publishing Company | |
3815 | - . </span></span></p></div><div class="biblioentry" title="C++ Templates: The Complete Guide"><a id="biblio.vandevoorde2002cpptemplates"/><p>[biblio.vandevoorde2002cpptemplates] <span class="title"><em> | |
3816 | + . </span></span></p></div><div class="biblioentry" title="C++ Templates: The Complete Guide"><a id="biblio.vandevoorde2002cpptemplates"></a><p>[biblio.vandevoorde2002cpptemplates] <span class="title"><em> | |
3817 | C++ Templates: The Complete Guide | |
3818 | </em>. </span><span class="date"> | |
3819 | 2002 | |
3820 | @@ -1297,8 +1297,8 @@ | |
3821 | Josuttis | |
3822 | </span>. </span><span class="publisher"><span class="publishername"> | |
3823 | Addison-Wesley Publishing Company | |
3824 | - . </span></span></p></div><div class="biblioentry" title="Thirty Years Among the Dead"><a id="biblio.wickland96thirty"/><p>[biblio.wickland96thirty] <span class="title"><em> | |
3825 | - <a class="link" href="http://myweb.wvnet.edu/~gsa00121/books/amongdead30.zip"> | |
3826 | + . </span></span></p></div><div class="biblioentry" title="Thirty Years Among the Dead"><a id="biblio.wickland96thirty"></a><p>[biblio.wickland96thirty] <span class="title"><em> | |
3827 | + <a class="link" href="http://myweb.wvnet.edu/~gsa00121/books/amongdead30.zip" target="_top"> | |
3828 | Thirty Years Among the Dead | |
3829 | </a> | |
3830 | </em>. </span><span class="date"> | |
3831 | @@ -1309,4 +1309,4 @@ | |
3832 | Wickland | |
3833 | </span>. </span><span class="publisher"><span class="publishername"> | |
3834 | National Psychological Institute | |
3835 | - . </span></span></p></div></div></div><div class="navfooter"><hr/><table width="100%" summary="Navigation footer"><tr><td align="left"><a accesskey="p" href="bk01pt03ch21s02.html">Prev</a> </td><td align="center"><a accesskey="u" href="extensions.html">Up</a></td><td align="right"> <a accesskey="n" href="policy_data_structures_using.html">Next</a></td></tr><tr><td align="left" valign="top">Implementation </td><td align="center"><a accesskey="h" href="../index.html">Home</a></td><td align="right" valign="top"> Using</td></tr></table></div></body></html> | |
3836 | + . </span></span></p></div></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="bk01pt03ch21s02.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="extensions.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="policy_data_structures_using.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Implementation </td><td width="20%" align="center"><a accesskey="h" href="../index.html">Home</a></td><td width="40%" align="right" valign="top"> Using</td></tr></table></div></body></html> | |
3837 | Index: libstdc++-v3/doc/html/manual/ext_iterators.html | |
3838 | =================================================================== | |
9f95000d AM |
3839 | --- libstdc++-v3/doc/html/manual/ext_iterators.html (.../tags/gcc_4_7_2_release) (wersja 192468) |
3840 | +++ libstdc++-v3/doc/html/manual/ext_iterators.html (.../branches/gcc-4_7-branch) (wersja 192468) | |
5a87b929 AM |
3841 | @@ -1,14 +1,14 @@ |
3842 | <?xml version="1.0" encoding="UTF-8" standalone="no"?> | |
3843 | -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> | |
3844 | -<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Chapter 27. Iterators</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1"/><meta name="keywords" content=" ISO C++ , library "/><meta name="keywords" content=" ISO C++ , runtime , library "/><link rel="home" href="../index.html" title="The GNU C++ Library"/><link rel="up" href="extensions.html" title="Part III. Extensions"/><link rel="prev" href="ext_numerics.html" title="Chapter 26. Numerics"/><link rel="next" href="ext_io.html" title="Chapter 28. Input and Output"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 27. Iterators</th></tr><tr><td align="left"><a accesskey="p" href="ext_numerics.html">Prev</a> </td><th width="60%" align="center">Part III. | |
3845 | +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> | |
3846 | +<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Chapter 27. Iterators</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1" /><meta name="keywords" content=" ISO C++ , library " /><meta name="keywords" content=" ISO C++ , runtime , library " /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="extensions.html" title="Part III. Extensions" /><link rel="prev" href="ext_numerics.html" title="Chapter 26. Numerics" /><link rel="next" href="ext_io.html" title="Chapter 28. Input and Output" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 27. Iterators</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ext_numerics.html">Prev</a> </td><th width="60%" align="center">Part III. | |
3847 | Extensions | |
3848 | ||
3849 | -</th><td align="right"> <a accesskey="n" href="ext_io.html">Next</a></td></tr></table><hr/></div><div class="chapter" title="Chapter 27. Iterators"><div class="titlepage"><div><div><h2 class="title"><a id="manual.ext.iterators"/>Chapter 27. Iterators</h2></div></div></div><p>24.3.2 describes <code class="code">struct iterator</code>, which didn't exist in the | |
3850 | +</th><td width="20%" align="right"> <a accesskey="n" href="ext_io.html">Next</a></td></tr></table><hr /></div><div class="chapter" title="Chapter 27. Iterators"><div class="titlepage"><div><div><h2 class="title"><a id="manual.ext.iterators"></a>Chapter 27. Iterators</h2></div></div></div><p>24.3.2 describes <code class="code">struct iterator</code>, which didn't exist in the | |
3851 | original HP STL implementation (the language wasn't rich enough at the | |
3852 | time). For backwards compatibility, base classes are provided which | |
3853 | declare the same nested typedefs: | |
3854 | -</p><div class="itemizedlist"><ul class="itemizedlist"><li class="listitem"><p>input_iterator</p></li><li class="listitem"><p>output_iterator</p></li><li class="listitem"><p>forward_iterator</p></li><li class="listitem"><p>bidirectional_iterator</p></li><li class="listitem"><p>random_access_iterator</p></li></ul></div><p>24.3.4 describes iterator operation <code class="code">distance</code>, which takes | |
3855 | +</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>input_iterator</p></li><li class="listitem"><p>output_iterator</p></li><li class="listitem"><p>forward_iterator</p></li><li class="listitem"><p>bidirectional_iterator</p></li><li class="listitem"><p>random_access_iterator</p></li></ul></div><p>24.3.4 describes iterator operation <code class="code">distance</code>, which takes | |
3856 | two iterators and returns a result. It is extended by another signature | |
3857 | which takes two iterators and a reference to a result. The result is | |
3858 | modified, and the function returns nothing. | |
3859 | -</p></div><div class="navfooter"><hr/><table width="100%" summary="Navigation footer"><tr><td align="left"><a accesskey="p" href="ext_numerics.html">Prev</a> </td><td align="center"><a accesskey="u" href="extensions.html">Up</a></td><td align="right"> <a accesskey="n" href="ext_io.html">Next</a></td></tr><tr><td align="left" valign="top">Chapter 26. Numerics </td><td align="center"><a accesskey="h" href="../index.html">Home</a></td><td align="right" valign="top"> Chapter 28. Input and Output</td></tr></table></div></body></html> | |
3860 | +</p></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="ext_numerics.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="extensions.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="ext_io.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Chapter 26. Numerics </td><td width="20%" align="center"><a accesskey="h" href="../index.html">Home</a></td><td width="40%" align="right" valign="top"> Chapter 28. Input and Output</td></tr></table></div></body></html> | |
3861 | Index: libstdc++-v3/doc/html/manual/appendix_contributing.html | |
3862 | =================================================================== | |
9f95000d AM |
3863 | --- libstdc++-v3/doc/html/manual/appendix_contributing.html (.../tags/gcc_4_7_2_release) (wersja 192468) |
3864 | +++ libstdc++-v3/doc/html/manual/appendix_contributing.html (.../branches/gcc-4_7-branch) (wersja 192468) | |
5a87b929 AM |
3865 | @@ -1,19 +1,19 @@ |
3866 | <?xml version="1.0" encoding="UTF-8" standalone="no"?> | |
3867 | -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> | |
3868 | -<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Appendix A. Contributing</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1"/><meta name="keywords" content=" ISO C++ , library "/><meta name="keywords" content=" ISO C++ , runtime , library "/><link rel="home" href="../index.html" title="The GNU C++ Library"/><link rel="up" href="bk01pt04.html" title="Part IV. Appendices"/><link rel="prev" href="bk01pt04.html" title="Part IV. Appendices"/><link rel="next" href="source_organization.html" title="Directory Layout and Source Conventions"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Appendix A. | |
3869 | +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> | |
3870 | +<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Appendix A. Contributing</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1" /><meta name="keywords" content=" ISO C++ , library " /><meta name="keywords" content=" ISO C++ , runtime , library " /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="bk01pt04.html" title="Part IV. Appendices" /><link rel="prev" href="bk01pt04.html" title="Part IV. Appendices" /><link rel="next" href="source_organization.html" title="Directory Layout and Source Conventions" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Appendix A. | |
3871 | Contributing | |
3872 | ||
3873 | -</th></tr><tr><td align="left"><a accesskey="p" href="bk01pt04.html">Prev</a> </td><th width="60%" align="center">Part IV. | |
3874 | +</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="bk01pt04.html">Prev</a> </td><th width="60%" align="center">Part IV. | |
3875 | Appendices | |
3876 | -</th><td align="right"> <a accesskey="n" href="source_organization.html">Next</a></td></tr></table><hr/></div><div class="appendix" title="Appendix A. Contributing"><div class="titlepage"><div><div><h1 class="title"><a id="appendix.contrib"/> | |
3877 | +</th><td width="20%" align="right"> <a accesskey="n" href="source_organization.html">Next</a></td></tr></table><hr /></div><div class="appendix" title="Appendix A. Contributing"><div class="titlepage"><div><div><h1 class="title"><a id="appendix.contrib"></a> | |
3878 | Contributing | |
3879 | - <a id="id551729" class="indexterm"/> | |
3880 | + <a id="id730216" class="indexterm"></a> | |
3881 | </h1></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl><dt><span class="section"><a href="appendix_contributing.html#contrib.list">Contributor Checklist</a></span></dt><dd><dl><dt><span class="section"><a href="appendix_contributing.html#list.reading">Reading</a></span></dt><dt><span class="section"><a href="appendix_contributing.html#list.copyright">Assignment</a></span></dt><dt><span class="section"><a href="appendix_contributing.html#list.getting">Getting Sources</a></span></dt><dt><span class="section"><a href="appendix_contributing.html#list.patches">Submitting Patches</a></span></dt></dl></dd><dt><span class="section"><a href="source_organization.html">Directory Layout and Source Conventions</a></span></dt><dt><span class="section"><a href="source_code_style.html">Coding Style</a></span></dt><dd><dl><dt><span class="section"><a href="source_code_style.html#coding_style.bad_identifiers">Bad Identifiers</a></span></dt><dt><span class="section"><a href="source_code_style.html#coding_style.example">By Example</a></span></dt></dl></dd><dt><span class="section"><a href="source_design_notes.html">Design Notes</a></span></dt></dl></div><p> | |
3882 | The GNU C++ Library follows an open development model. Active | |
3883 | contributors are assigned maintainer-ship responsibility, and given | |
3884 | write access to the source repository. First time contributors | |
3885 | should follow this procedure: | |
3886 | -</p><div class="section" title="Contributor Checklist"><div class="titlepage"><div><div><h2 class="title"><a id="contrib.list"/>Contributor Checklist</h2></div></div></div><div class="section" title="Reading"><div class="titlepage"><div><div><h3 class="title"><a id="list.reading"/>Reading</h3></div></div></div><div class="itemizedlist"><ul class="itemizedlist"><li class="listitem"><p> | |
3887 | +</p><div class="section" title="Contributor Checklist"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="contrib.list"></a>Contributor Checklist</h2></div></div></div><div class="section" title="Reading"><div class="titlepage"><div><div><h3 class="title"><a id="list.reading"></a>Reading</h3></div></div></div><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p> | |
3888 | Get and read the relevant sections of the C++ language | |
3889 | specification. Copies of the full ISO 14882 standard are | |
3890 | available on line via the ISO mirror site for committee | |
3891 | @@ -23,21 +23,21 @@ | |
3892 | the standard from their respective national standards | |
3893 | organization. In the USA, this national standards | |
3894 | organization is | |
3895 | - <a class="link" href="http://www.ansi.org">ANSI</a>. | |
3896 | + <a class="link" href="http://www.ansi.org" target="_top">ANSI</a>. | |
3897 | (And if you've already registered with them you can | |
3898 | - <a class="link" href="http://webstore.ansi.org/RecordDetail.aspx?sku=INCITS%2fISO%2fIEC+14882-2003">buy the standard on-line</a>.) | |
3899 | + <a class="link" href="http://webstore.ansi.org/RecordDetail.aspx?sku=INCITS%2fISO%2fIEC+14882-2003" target="_top">buy the standard on-line</a>.) | |
3900 | </p></li><li class="listitem"><p> | |
3901 | The library working group bugs, and known defects, can | |
3902 | be obtained here: | |
3903 | - <a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/">http://www.open-std.org/jtc1/sc22/wg21</a> | |
3904 | + <a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/" target="_top">http://www.open-std.org/jtc1/sc22/wg21</a> | |
3905 | </p></li><li class="listitem"><p> | |
3906 | The newsgroup dedicated to standardization issues is | |
3907 | comp.std.c++: the | |
3908 | - <a class="link" href="http://www.comeaucomputing.com/csc/faq.html">FAQ</a> | |
3909 | + <a class="link" href="http://www.comeaucomputing.com/csc/faq.html" target="_top">FAQ</a> | |
3910 | for this group is quite useful. | |
3911 | </p></li><li class="listitem"><p> | |
3912 | Peruse | |
3913 | - the <a class="link" href="http://www.gnu.org/prep/standards">GNU | |
3914 | + the <a class="link" href="http://www.gnu.org/prep/standards" target="_top">GNU | |
3915 | Coding Standards</a>, and chuckle when you hit the part | |
3916 | about <span class="quote">“<span class="quote">Using Languages Other Than C</span>”</span>. | |
3917 | </p></li><li class="listitem"><p> | |
3918 | @@ -48,7 +48,7 @@ | |
3919 | And last but certainly not least, read the | |
3920 | library-specific information found in | |
3921 | <a class="link" href="appendix_porting.html" title="Appendix B. Porting and Maintenance">Porting and Maintenance</a>. | |
3922 | - </p></li></ul></div></div><div class="section" title="Assignment"><div class="titlepage"><div><div><h3 class="title"><a id="list.copyright"/>Assignment</h3></div></div></div><p> | |
3923 | + </p></li></ul></div></div><div class="section" title="Assignment"><div class="titlepage"><div><div><h3 class="title"><a id="list.copyright"></a>Assignment</h3></div></div></div><p> | |
3924 | Small changes can be accepted without a copyright assignment form on | |
3925 | file. New code and additions to the library need completed copyright | |
3926 | assignment form on file at the FSF. Note: your employer may be required | |
3927 | @@ -66,7 +66,7 @@ | |
3928 | this question would be appreciated. | |
3929 | </p><p> | |
3930 | For more information about getting a copyright assignment, please see | |
3931 | - <a class="link" href="http://www.gnu.org/prep/maintain/html_node/Legal-Matters.html">Legal | |
3932 | + <a class="link" href="http://www.gnu.org/prep/maintain/html_node/Legal-Matters.html" target="_top">Legal | |
3933 | Matters</a>. | |
3934 | </p><p> | |
3935 | Please contact Benjamin Kosnik at | |
3936 | @@ -75,14 +75,14 @@ | |
3937 | requesting an assignment form from | |
3938 | <code class="email"><<a class="email" href="mailto:mailto:assign@gnu.org">mailto:assign@gnu.org</a>></code>, please cc the libstdc++ | |
3939 | maintainer above so that progress can be monitored. | |
3940 | - </p></div><div class="section" title="Getting Sources"><div class="titlepage"><div><div><h3 class="title"><a id="list.getting"/>Getting Sources</h3></div></div></div><p> | |
3941 | - <a class="link" href="http://gcc.gnu.org/svnwrite.html">Getting write access | |
3942 | + </p></div><div class="section" title="Getting Sources"><div class="titlepage"><div><div><h3 class="title"><a id="list.getting"></a>Getting Sources</h3></div></div></div><p> | |
3943 | + <a class="link" href="http://gcc.gnu.org/svnwrite.html" target="_top">Getting write access | |
3944 | (look for "Write after approval")</a> | |
3945 | - </p></div><div class="section" title="Submitting Patches"><div class="titlepage"><div><div><h3 class="title"><a id="list.patches"/>Submitting Patches</h3></div></div></div><p> | |
3946 | + </p></div><div class="section" title="Submitting Patches"><div class="titlepage"><div><div><h3 class="title"><a id="list.patches"></a>Submitting Patches</h3></div></div></div><p> | |
3947 | Every patch must have several pieces of information before it can be | |
3948 | properly evaluated. Ideally (and to ensure the fastest possible | |
3949 | response from the maintainers) it would have all of these pieces: | |
3950 | - </p><div class="itemizedlist"><ul class="itemizedlist"><li class="listitem"><p> | |
3951 | + </p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p> | |
3952 | A description of the bug and how your patch fixes this | |
3953 | bug. For new features a description of the feature and your | |
3954 | implementation. | |
3955 | @@ -103,7 +103,7 @@ | |
3956 | else, use <span class="command"><strong>diff -cp OLD NEW</strong></span> ... If your | |
3957 | version of diff does not support these options, then get the | |
3958 | latest version of GNU | |
3959 | - diff. The <a class="link" href="http://gcc.gnu.org/wiki/SvnTricks">SVN | |
3960 | + diff. The <a class="link" href="http://gcc.gnu.org/wiki/SvnTricks" target="_top">SVN | |
3961 | Tricks</a> wiki page has information on customising the | |
3962 | output of <code class="code">svn diff</code>. | |
3963 | </p></li><li class="listitem"><p> | |
3964 | @@ -111,6 +111,6 @@ | |
3965 | mail message and send it to libstdc++@gcc.gnu.org. All | |
3966 | patches and related discussion should be sent to the | |
3967 | libstdc++ mailing list. | |
3968 | - </p></li></ul></div></div></div></div><div class="navfooter"><hr/><table width="100%" summary="Navigation footer"><tr><td align="left"><a accesskey="p" href="bk01pt04.html">Prev</a> </td><td align="center"><a accesskey="u" href="bk01pt04.html">Up</a></td><td align="right"> <a accesskey="n" href="source_organization.html">Next</a></td></tr><tr><td align="left" valign="top">Part IV. | |
3969 | + </p></li></ul></div></div></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="bk01pt04.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="bk01pt04.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="source_organization.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Part IV. | |
3970 | Appendices | |
3971 | - </td><td align="center"><a accesskey="h" href="../index.html">Home</a></td><td align="right" valign="top"> Directory Layout and Source Conventions</td></tr></table></div></body></html> | |
3972 | + </td><td width="20%" align="center"><a accesskey="h" href="../index.html">Home</a></td><td width="40%" align="right" valign="top"> Directory Layout and Source Conventions</td></tr></table></div></body></html> | |
3973 | Index: libstdc++-v3/doc/html/manual/profile_mode.html | |
3974 | =================================================================== | |
9f95000d AM |
3975 | --- libstdc++-v3/doc/html/manual/profile_mode.html (.../tags/gcc_4_7_2_release) (wersja 192468) |
3976 | +++ libstdc++-v3/doc/html/manual/profile_mode.html (.../branches/gcc-4_7-branch) (wersja 192468) | |
5a87b929 AM |
3977 | @@ -1,9 +1,9 @@ |
3978 | <?xml version="1.0" encoding="UTF-8" standalone="no"?> | |
3979 | -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> | |
3980 | -<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Chapter 19. Profile Mode</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1"/><meta name="keywords" content=" C++ , library , profile "/><meta name="keywords" content=" ISO C++ , library "/><meta name="keywords" content=" ISO C++ , runtime , library "/><link rel="home" href="../index.html" title="The GNU C++ Library"/><link rel="up" href="extensions.html" title="Part III. Extensions"/><link rel="prev" href="bk01pt03ch18s05.html" title="Testing"/><link rel="next" href="bk01pt03ch19s02.html" title="Design"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 19. Profile Mode</th></tr><tr><td align="left"><a accesskey="p" href="bk01pt03ch18s05.html">Prev</a> </td><th width="60%" align="center">Part III. | |
3981 | +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> | |
3982 | +<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Chapter 19. Profile Mode</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1" /><meta name="keywords" content=" C++ , library , profile " /><meta name="keywords" content=" ISO C++ , library " /><meta name="keywords" content=" ISO C++ , runtime , library " /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="extensions.html" title="Part III. Extensions" /><link rel="prev" href="bk01pt03ch18s05.html" title="Testing" /><link rel="next" href="bk01pt03ch19s02.html" title="Design" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 19. Profile Mode</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="bk01pt03ch18s05.html">Prev</a> </td><th width="60%" align="center">Part III. | |
3983 | Extensions | |
3984 | ||
3985 | -</th><td align="right"> <a accesskey="n" href="bk01pt03ch19s02.html">Next</a></td></tr></table><hr/></div><div class="chapter" title="Chapter 19. Profile Mode"><div class="titlepage"><div><div><h2 class="title"><a id="manual.ext.profile_mode"/>Chapter 19. Profile Mode</h2></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl><dt><span class="section"><a href="profile_mode.html#manual.ext.profile_mode.intro">Intro</a></span></dt><dd><dl><dt><span class="section"><a href="profile_mode.html#manual.ext.profile_mode.using">Using the Profile Mode</a></span></dt><dt><span class="section"><a href="profile_mode.html#manual.ext.profile_mode.tuning">Tuning the Profile Mode</a></span></dt></dl></dd><dt><span class="section"><a href="bk01pt03ch19s02.html">Design</a></span></dt><dd><dl><dt><span class="section"><a href="bk01pt03ch19s02.html#manual.ext.profile_mode.design.wrapper">Wrapper Model</a></span></dt><dt><span class="section"><a href="bk01pt03ch19s02.html#manual.ext.profile_mode.design.instrumentation">Instrumentation</a></span></dt><dt><span class="section"><a href="bk01pt03ch19s02.html#manual.ext.profile_mode.design.rtlib">Run Time Behavior</a></span></dt><dt><span class="section"><a href="bk01pt03ch19s02.html#manual.ext.profile_mode.design.analysis">Analysis and Diagnostics</a></span></dt><dt><span class="section"><a href="bk01pt03ch19s02.html#manual.ext.profile_mode.design.cost-model">Cost Model</a></span></dt><dt><span class="section"><a href="bk01pt03ch19s02.html#manual.ext.profile_mode.design.reports">Reports</a></span></dt><dt><span class="section"><a href="bk01pt03ch19s02.html#manual.ext.profile_mode.design.testing">Testing</a></span></dt></dl></dd><dt><span class="section"><a href="bk01pt03ch19s03.html">Extensions for Custom Containers</a></span></dt><dt><span class="section"><a href="bk01pt03ch19s04.html">Empirical Cost Model</a></span></dt><dt><span class="section"><a href="bk01pt03ch19s05.html">Implementation Issues</a></span></dt><dd><dl><dt><span class="section"><a href="bk01pt03ch19s05.html#manual.ext.profile_mode.implementation.stack">Stack Traces</a></span></dt><dt><span class="section"><a href="bk01pt03ch19s05.html#manual.ext.profile_mode.implementation.symbols">Symbolization of Instruction Addresses</a></span></dt><dt><span class="section"><a href="bk01pt03ch19s05.html#manual.ext.profile_mode.implementation.concurrency">Concurrency</a></span></dt><dt><span class="section"><a href="bk01pt03ch19s05.html#manual.ext.profile_mode.implementation.stdlib-in-proflib">Using the Standard Library in the Instrumentation Implementation</a></span></dt><dt><span class="section"><a href="bk01pt03ch19s05.html#manual.ext.profile_mode.implementation.malloc-hooks">Malloc Hooks</a></span></dt><dt><span class="section"><a href="bk01pt03ch19s05.html#manual.ext.profile_mode.implementation.construction-destruction">Construction and Destruction of Global Objects</a></span></dt></dl></dd><dt><span class="section"><a href="bk01pt03ch19s06.html">Developer Information</a></span></dt><dd><dl><dt><span class="section"><a href="bk01pt03ch19s06.html#manual.ext.profile_mode.developer.bigpic">Big Picture</a></span></dt><dt><span class="section"><a href="bk01pt03ch19s06.html#manual.ext.profile_mode.developer.howto">How To Add A Diagnostic</a></span></dt></dl></dd><dt><span class="section"><a href="bk01pt03ch19s07.html">Diagnostics</a></span></dt><dd><dl><dt><span class="section"><a href="bk01pt03ch19s07.html#manual.ext.profile_mode.analysis.template">Diagnostic Template</a></span></dt><dt><span class="section"><a href="bk01pt03ch19s07.html#manual.ext.profile_mode.analysis.containers">Containers</a></span></dt><dd><dl><dt><span class="section"><a href="bk01pt03ch19s07.html#manual.ext.profile_mode.analysis.hashtable_too_small">Hashtable Too Small</a></span></dt><dt><span class="section"><a href="bk01pt03ch19s07.html#manual.ext.profile_mode.analysis.hashtable_too_large">Hashtable Too Large</a></span></dt><dt><span class="section"><a href="bk01pt03ch19s07.html#manual.ext.profile_mode.analysis.inefficient_hash">Inefficient Hash</a></span></dt><dt><span class="section"><a href="bk01pt03ch19s07.html#manual.ext.profile_mode.analysis.vector_too_small">Vector Too Small</a></span></dt><dt><span class="section"><a href="bk01pt03ch19s07.html#manual.ext.profile_mode.analysis.vector_too_large">Vector Too Large</a></span></dt><dt><span class="section"><a href="bk01pt03ch19s07.html#manual.ext.profile_mode.analysis.vector_to_hashtable">Vector to Hashtable</a></span></dt><dt><span class="section"><a href="bk01pt03ch19s07.html#manual.ext.profile_mode.analysis.hashtable_to_vector">Hashtable to Vector</a></span></dt><dt><span class="section"><a href="bk01pt03ch19s07.html#manual.ext.profile_mode.analysis.vector_to_list">Vector to List</a></span></dt><dt><span class="section"><a href="bk01pt03ch19s07.html#manual.ext.profile_mode.analysis.list_to_vector">List to Vector</a></span></dt><dt><span class="section"><a href="bk01pt03ch19s07.html#manual.ext.profile_mode.analysis.list_to_slist">List to Forward List (Slist)</a></span></dt><dt><span class="section"><a href="bk01pt03ch19s07.html#manual.ext.profile_mode.analysis.assoc_ord_to_unord">Ordered to Unordered Associative Container</a></span></dt></dl></dd><dt><span class="section"><a href="bk01pt03ch19s07.html#manual.ext.profile_mode.analysis.algorithms">Algorithms</a></span></dt><dd><dl><dt><span class="section"><a href="bk01pt03ch19s07.html#manual.ext.profile_mode.analysis.algorithms.sort">Sort Algorithm Performance</a></span></dt></dl></dd><dt><span class="section"><a href="bk01pt03ch19s07.html#manual.ext.profile_mode.analysis.locality">Data Locality</a></span></dt><dd><dl><dt><span class="section"><a href="bk01pt03ch19s07.html#manual.ext.profile_mode.analysis.locality.sw_prefetch">Need Software Prefetch</a></span></dt><dt><span class="section"><a href="bk01pt03ch19s07.html#manual.ext.profile_mode.analysis.locality.linked">Linked Structure Locality</a></span></dt></dl></dd><dt><span class="section"><a href="bk01pt03ch19s07.html#manual.ext.profile_mode.analysis.mthread">Multithreaded Data Access</a></span></dt><dd><dl><dt><span class="section"><a href="bk01pt03ch19s07.html#manual.ext.profile_mode.analysis.mthread.ddtest">Data Dependence Violations at Container Level</a></span></dt><dt><span class="section"><a href="bk01pt03ch19s07.html#manual.ext.profile_mode.analysis.mthread.false_share">False Sharing</a></span></dt></dl></dd><dt><span class="section"><a href="bk01pt03ch19s07.html#manual.ext.profile_mode.analysis.statistics">Statistics</a></span></dt></dl></dd><dt><span class="bibliography"><a href="profile_mode.html#profile_mode.biblio">Bibliography</a></span></dt></dl></div><div class="section" title="Intro"><div class="titlepage"><div><div><h2 class="title"><a id="manual.ext.profile_mode.intro"/>Intro</h2></div></div></div><p> | |
3986 | +</th><td width="20%" align="right"> <a accesskey="n" href="bk01pt03ch19s02.html">Next</a></td></tr></table><hr /></div><div class="chapter" title="Chapter 19. Profile Mode"><div class="titlepage"><div><div><h2 class="title"><a id="manual.ext.profile_mode"></a>Chapter 19. Profile Mode</h2></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl><dt><span class="section"><a href="profile_mode.html#manual.ext.profile_mode.intro">Intro</a></span></dt><dd><dl><dt><span class="section"><a href="profile_mode.html#manual.ext.profile_mode.using">Using the Profile Mode</a></span></dt><dt><span class="section"><a href="profile_mode.html#manual.ext.profile_mode.tuning">Tuning the Profile Mode</a></span></dt></dl></dd><dt><span class="section"><a href="bk01pt03ch19s02.html">Design</a></span></dt><dd><dl><dt><span class="section"><a href="bk01pt03ch19s02.html#manual.ext.profile_mode.design.wrapper">Wrapper Model</a></span></dt><dt><span class="section"><a href="bk01pt03ch19s02.html#manual.ext.profile_mode.design.instrumentation">Instrumentation</a></span></dt><dt><span class="section"><a href="bk01pt03ch19s02.html#manual.ext.profile_mode.design.rtlib">Run Time Behavior</a></span></dt><dt><span class="section"><a href="bk01pt03ch19s02.html#manual.ext.profile_mode.design.analysis">Analysis and Diagnostics</a></span></dt><dt><span class="section"><a href="bk01pt03ch19s02.html#manual.ext.profile_mode.design.cost-model">Cost Model</a></span></dt><dt><span class="section"><a href="bk01pt03ch19s02.html#manual.ext.profile_mode.design.reports">Reports</a></span></dt><dt><span class="section"><a href="bk01pt03ch19s02.html#manual.ext.profile_mode.design.testing">Testing</a></span></dt></dl></dd><dt><span class="section"><a href="bk01pt03ch19s03.html">Extensions for Custom Containers</a></span></dt><dt><span class="section"><a href="bk01pt03ch19s04.html">Empirical Cost Model</a></span></dt><dt><span class="section"><a href="bk01pt03ch19s05.html">Implementation Issues</a></span></dt><dd><dl><dt><span class="section"><a href="bk01pt03ch19s05.html#manual.ext.profile_mode.implementation.stack">Stack Traces</a></span></dt><dt><span class="section"><a href="bk01pt03ch19s05.html#manual.ext.profile_mode.implementation.symbols">Symbolization of Instruction Addresses</a></span></dt><dt><span class="section"><a href="bk01pt03ch19s05.html#manual.ext.profile_mode.implementation.concurrency">Concurrency</a></span></dt><dt><span class="section"><a href="bk01pt03ch19s05.html#manual.ext.profile_mode.implementation.stdlib-in-proflib">Using the Standard Library in the Instrumentation Implementation</a></span></dt><dt><span class="section"><a href="bk01pt03ch19s05.html#manual.ext.profile_mode.implementation.malloc-hooks">Malloc Hooks</a></span></dt><dt><span class="section"><a href="bk01pt03ch19s05.html#manual.ext.profile_mode.implementation.construction-destruction">Construction and Destruction of Global Objects</a></span></dt></dl></dd><dt><span class="section"><a href="bk01pt03ch19s06.html">Developer Information</a></span></dt><dd><dl><dt><span class="section"><a href="bk01pt03ch19s06.html#manual.ext.profile_mode.developer.bigpic">Big Picture</a></span></dt><dt><span class="section"><a href="bk01pt03ch19s06.html#manual.ext.profile_mode.developer.howto">How To Add A Diagnostic</a></span></dt></dl></dd><dt><span class="section"><a href="bk01pt03ch19s07.html">Diagnostics</a></span></dt><dd><dl><dt><span class="section"><a href="bk01pt03ch19s07.html#manual.ext.profile_mode.analysis.template">Diagnostic Template</a></span></dt><dt><span class="section"><a href="bk01pt03ch19s07.html#manual.ext.profile_mode.analysis.containers">Containers</a></span></dt><dd><dl><dt><span class="section"><a href="bk01pt03ch19s07.html#manual.ext.profile_mode.analysis.hashtable_too_small">Hashtable Too Small</a></span></dt><dt><span class="section"><a href="bk01pt03ch19s07.html#manual.ext.profile_mode.analysis.hashtable_too_large">Hashtable Too Large</a></span></dt><dt><span class="section"><a href="bk01pt03ch19s07.html#manual.ext.profile_mode.analysis.inefficient_hash">Inefficient Hash</a></span></dt><dt><span class="section"><a href="bk01pt03ch19s07.html#manual.ext.profile_mode.analysis.vector_too_small">Vector Too Small</a></span></dt><dt><span class="section"><a href="bk01pt03ch19s07.html#manual.ext.profile_mode.analysis.vector_too_large">Vector Too Large</a></span></dt><dt><span class="section"><a href="bk01pt03ch19s07.html#manual.ext.profile_mode.analysis.vector_to_hashtable">Vector to Hashtable</a></span></dt><dt><span class="section"><a href="bk01pt03ch19s07.html#manual.ext.profile_mode.analysis.hashtable_to_vector">Hashtable to Vector</a></span></dt><dt><span class="section"><a href="bk01pt03ch19s07.html#manual.ext.profile_mode.analysis.vector_to_list">Vector to List</a></span></dt><dt><span class="section"><a href="bk01pt03ch19s07.html#manual.ext.profile_mode.analysis.list_to_vector">List to Vector</a></span></dt><dt><span class="section"><a href="bk01pt03ch19s07.html#manual.ext.profile_mode.analysis.list_to_slist">List to Forward List (Slist)</a></span></dt><dt><span class="section"><a href="bk01pt03ch19s07.html#manual.ext.profile_mode.analysis.assoc_ord_to_unord">Ordered to Unordered Associative Container</a></span></dt></dl></dd><dt><span class="section"><a href="bk01pt03ch19s07.html#manual.ext.profile_mode.analysis.algorithms">Algorithms</a></span></dt><dd><dl><dt><span class="section"><a href="bk01pt03ch19s07.html#manual.ext.profile_mode.analysis.algorithms.sort">Sort Algorithm Performance</a></span></dt></dl></dd><dt><span class="section"><a href="bk01pt03ch19s07.html#manual.ext.profile_mode.analysis.locality">Data Locality</a></span></dt><dd><dl><dt><span class="section"><a href="bk01pt03ch19s07.html#manual.ext.profile_mode.analysis.locality.sw_prefetch">Need Software Prefetch</a></span></dt><dt><span class="section"><a href="bk01pt03ch19s07.html#manual.ext.profile_mode.analysis.locality.linked">Linked Structure Locality</a></span></dt></dl></dd><dt><span class="section"><a href="bk01pt03ch19s07.html#manual.ext.profile_mode.analysis.mthread">Multithreaded Data Access</a></span></dt><dd><dl><dt><span class="section"><a href="bk01pt03ch19s07.html#manual.ext.profile_mode.analysis.mthread.ddtest">Data Dependence Violations at Container Level</a></span></dt><dt><span class="section"><a href="bk01pt03ch19s07.html#manual.ext.profile_mode.analysis.mthread.false_share">False Sharing</a></span></dt></dl></dd><dt><span class="section"><a href="bk01pt03ch19s07.html#manual.ext.profile_mode.analysis.statistics">Statistics</a></span></dt></dl></dd><dt><span class="bibliography"><a href="profile_mode.html#profile_mode.biblio">Bibliography</a></span></dt></dl></div><div class="section" title="Intro"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="manual.ext.profile_mode.intro"></a>Intro</h2></div></div></div><p> | |
3987 | <span class="emphasis"><em>Goal: </em></span>Give performance improvement advice based on | |
3988 | recognition of suboptimal usage patterns of the standard library. | |
3989 | </p><p> | |
3990 | @@ -12,11 +12,11 @@ | |
3991 | various components at interesting entry/exit points to/from the standard | |
3992 | library. Process trace, recognize suboptimal patterns, give advice. | |
3993 | For details, see | |
3994 | - <a class="link" href="http://dx.doi.org/10.1109/CGO.2009.36">paper presented at | |
3995 | + <a class="link" href="http://dx.doi.org/10.1109/CGO.2009.36" target="_top">paper presented at | |
3996 | CGO 2009</a>. | |
3997 | </p><p> | |
3998 | <span class="emphasis"><em>Strengths: </em></span> | |
3999 | -</p><div class="itemizedlist"><ul class="itemizedlist"><li class="listitem"><p> | |
4000 | +</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p> | |
4001 | Unintrusive solution. The application code does not require any | |
4002 | modification. | |
4003 | </p></li><li class="listitem"><p> The advice is call context sensitive, thus capable of | |
4004 | @@ -27,14 +27,14 @@ | |
4005 | </p></li></ul></div><p> | |
4006 | </p><p> | |
4007 | <span class="emphasis"><em>Drawbacks: </em></span> | |
4008 | -</p><div class="itemizedlist"><ul class="itemizedlist"><li class="listitem"><p> | |
4009 | +</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p> | |
4010 | You must recompile the application code with custom options. | |
4011 | </p></li><li class="listitem"><p>You must run the application on representative input. | |
4012 | The advice is input dependent. | |
4013 | </p></li><li class="listitem"><p> | |
4014 | The execution time will increase, in some cases by factors. | |
4015 | </p></li></ul></div><p> | |
4016 | - </p><div class="section" title="Using the Profile Mode"><div class="titlepage"><div><div><h3 class="title"><a id="manual.ext.profile_mode.using"/>Using the Profile Mode</h3></div></div></div><p> | |
4017 | + </p><div class="section" title="Using the Profile Mode"><div class="titlepage"><div><div><h3 class="title"><a id="manual.ext.profile_mode.using"></a>Using the Profile Mode</h3></div></div></div><p> | |
4018 | This is the anticipated common workflow for program <code class="code">foo.cc</code>: | |
4019 | </p><pre class="programlisting"> | |
4020 | $ cat foo.cc | |
4021 | @@ -54,7 +54,7 @@ | |
4022 | </pre><p> | |
4023 | </p><p> | |
4024 | Anatomy of a warning: | |
4025 | - </p><div class="itemizedlist"><ul class="itemizedlist"><li class="listitem"><p> | |
4026 | + </p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p> | |
4027 | Warning id. This is a short descriptive string for the class | |
4028 | that this warning belongs to. E.g., "vector-to-list". | |
4029 | </p></li><li class="listitem"><p> | |
4030 | @@ -94,11 +94,11 @@ | |
4031 | We believe such warnings can help users understand the performance | |
4032 | behavior of their application better, which can lead to changes | |
4033 | at a higher abstraction level. | |
4034 | - </p></div><div class="section" title="Tuning the Profile Mode"><div class="titlepage"><div><div><h3 class="title"><a id="manual.ext.profile_mode.tuning"/>Tuning the Profile Mode</h3></div></div></div><p>Compile time switches and environment variables (see also file | |
4035 | + </p></div><div class="section" title="Tuning the Profile Mode"><div class="titlepage"><div><div><h3 class="title"><a id="manual.ext.profile_mode.tuning"></a>Tuning the Profile Mode</h3></div></div></div><p>Compile time switches and environment variables (see also file | |
4036 | profiler.h). Unless specified otherwise, they can be set at compile time | |
4037 | using -D_<name> or by setting variable <name> | |
4038 | in the environment where the program is run, before starting execution. | |
4039 | - </p><div class="itemizedlist"><ul class="itemizedlist"><li class="listitem"><p> | |
4040 | + </p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p> | |
4041 | <code class="code">_GLIBCXX_PROFILE_NO_<diagnostic></code>: | |
4042 | disable specific diagnostics. | |
4043 | See section Diagnostics for possible values. | |
4044 | @@ -138,9 +138,9 @@ | |
4045 | call context. | |
4046 | (Environment variable not supported.) | |
4047 | </p></li></ul></div><p> | |
4048 | - </p></div></div><div class="bibliography" title="Bibliography"><div class="titlepage"><div><div><h2 class="title"><a id="profile_mode.biblio"/>Bibliography</h2></div></div></div><div class="biblioentry"><a id="id514403"/><p><span class="citetitle"><em class="citetitle"> | |
4049 | + </p></div></div><div class="bibliography" title="Bibliography"><div class="titlepage"><div><div><h2 class="title"><a id="profile_mode.biblio"></a>Bibliography</h2></div></div></div><div class="biblioentry"><a id="id692890"></a><p><span class="citetitle"><em class="citetitle"> | |
4050 | Perflint: A Context Sensitive Performance Advisor for C++ Programs | |
4051 | </em>. </span><span class="author"><span class="firstname">Lixia</span> <span class="surname">Liu</span>. </span><span class="author"><span class="firstname">Silvius</span> <span class="surname">Rus</span>. </span><span class="copyright">Copyright © 2009 . </span><span class="publisher"><span class="publishername"> | |
4052 | Proceedings of the 2009 International Symposium on Code Generation | |
4053 | and Optimization | |
4054 | - . </span></span></p></div></div></div><div class="navfooter"><hr/><table width="100%" summary="Navigation footer"><tr><td align="left"><a accesskey="p" href="bk01pt03ch18s05.html">Prev</a> </td><td align="center"><a accesskey="u" href="extensions.html">Up</a></td><td align="right"> <a accesskey="n" href="bk01pt03ch19s02.html">Next</a></td></tr><tr><td align="left" valign="top">Testing </td><td align="center"><a accesskey="h" href="../index.html">Home</a></td><td align="right" valign="top"> Design</td></tr></table></div></body></html> | |
4055 | + . </span></span></p></div></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="bk01pt03ch18s05.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="extensions.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="bk01pt03ch19s02.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Testing </td><td width="20%" align="center"><a accesskey="h" href="../index.html">Home</a></td><td width="40%" align="right" valign="top"> Design</td></tr></table></div></body></html> | |
4056 | Index: libstdc++-v3/doc/html/manual/stringstreams.html | |
4057 | =================================================================== | |
9f95000d AM |
4058 | --- libstdc++-v3/doc/html/manual/stringstreams.html (.../tags/gcc_4_7_2_release) (wersja 192468) |
4059 | +++ libstdc++-v3/doc/html/manual/stringstreams.html (.../branches/gcc-4_7-branch) (wersja 192468) | |
5a87b929 AM |
4060 | @@ -1,9 +1,9 @@ |
4061 | <?xml version="1.0" encoding="UTF-8" standalone="no"?> | |
4062 | -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> | |
4063 | -<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Memory Based Streams</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1"/><meta name="keywords" content=" ISO C++ , library "/><meta name="keywords" content=" ISO C++ , runtime , library "/><link rel="home" href="../index.html" title="The GNU C++ Library"/><link rel="up" href="io.html" title="Chapter 13. Input and Output"/><link rel="prev" href="streambufs.html" title="Stream Buffers"/><link rel="next" href="fstreams.html" title="File Based Streams"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Memory Based Streams</th></tr><tr><td align="left"><a accesskey="p" href="streambufs.html">Prev</a> </td><th width="60%" align="center">Chapter 13. | |
4064 | +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> | |
4065 | +<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Memory Based Streams</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1" /><meta name="keywords" content=" ISO C++ , library " /><meta name="keywords" content=" ISO C++ , runtime , library " /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="io.html" title="Chapter 13. Input and Output" /><link rel="prev" href="streambufs.html" title="Stream Buffers" /><link rel="next" href="fstreams.html" title="File Based Streams" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Memory Based Streams</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="streambufs.html">Prev</a> </td><th width="60%" align="center">Chapter 13. | |
4066 | Input and Output | |
4067 | ||
4068 | -</th><td align="right"> <a accesskey="n" href="fstreams.html">Next</a></td></tr></table><hr/></div><div class="section" title="Memory Based Streams"><div class="titlepage"><div><div><h2 class="title"><a id="std.io.memstreams"/>Memory Based Streams</h2></div></div></div><div class="section" title="Compatibility With strstream"><div class="titlepage"><div><div><h3 class="title"><a id="std.io.memstreams.compat"/>Compatibility With strstream</h3></div></div></div><p> | |
4069 | +</th><td width="20%" align="right"> <a accesskey="n" href="fstreams.html">Next</a></td></tr></table><hr /></div><div class="section" title="Memory Based Streams"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="std.io.memstreams"></a>Memory Based Streams</h2></div></div></div><div class="section" title="Compatibility With strstream"><div class="titlepage"><div><div><h3 class="title"><a id="std.io.memstreams.compat"></a>Compatibility With strstream</h3></div></div></div><p> | |
4070 | </p><p>Stringstreams (defined in the header <code class="code"><sstream></code>) | |
4071 | are in this author's opinion one of the coolest things since | |
4072 | sliced time. An example of their use is in the Received Wisdom | |
4073 | @@ -34,4 +34,4 @@ | |
4074 | memory yourself. The strstreams have been officially deprecated, | |
4075 | which means that 1) future revisions of the C++ Standard won't | |
4076 | support them, and 2) if you use them, people will laugh at you. | |
4077 | - </p></div></div><div class="navfooter"><hr/><table width="100%" summary="Navigation footer"><tr><td align="left"><a accesskey="p" href="streambufs.html">Prev</a> </td><td align="center"><a accesskey="u" href="io.html">Up</a></td><td align="right"> <a accesskey="n" href="fstreams.html">Next</a></td></tr><tr><td align="left" valign="top">Stream Buffers </td><td align="center"><a accesskey="h" href="../index.html">Home</a></td><td align="right" valign="top"> File Based Streams</td></tr></table></div></body></html> | |
4078 | + </p></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="streambufs.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="io.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="fstreams.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Stream Buffers </td><td width="20%" align="center"><a accesskey="h" href="../index.html">Home</a></td><td width="40%" align="right" valign="top"> File Based Streams</td></tr></table></div></body></html> | |
4079 | Index: libstdc++-v3/doc/html/manual/traits.html | |
4080 | =================================================================== | |
9f95000d AM |
4081 | --- libstdc++-v3/doc/html/manual/traits.html (.../tags/gcc_4_7_2_release) (wersja 192468) |
4082 | +++ libstdc++-v3/doc/html/manual/traits.html (.../branches/gcc-4_7-branch) (wersja 192468) | |
5a87b929 AM |
4083 | @@ -1,10 +1,10 @@ |
4084 | <?xml version="1.0" encoding="UTF-8" standalone="no"?> | |
4085 | -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> | |
4086 | -<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Traits</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1"/><meta name="keywords" content=" ISO C++ , library "/><meta name="keywords" content=" ISO C++ , runtime , library "/><link rel="home" href="../index.html" title="The GNU C++ Library"/><link rel="up" href="utilities.html" title="Chapter 6. Utilities"/><link rel="prev" href="memory.html" title="Memory"/><link rel="next" href="strings.html" title="Chapter 7. Strings"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Traits</th></tr><tr><td align="left"><a accesskey="p" href="memory.html">Prev</a> </td><th width="60%" align="center">Chapter 6. | |
4087 | +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> | |
4088 | +<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Traits</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1" /><meta name="keywords" content=" ISO C++ , library " /><meta name="keywords" content=" ISO C++ , runtime , library " /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="utilities.html" title="Chapter 6. Utilities" /><link rel="prev" href="memory.html" title="Memory" /><link rel="next" href="strings.html" title="Chapter 7. Strings" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Traits</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="memory.html">Prev</a> </td><th width="60%" align="center">Chapter 6. | |
4089 | Utilities | |
4090 | ||
4091 | -</th><td align="right"> <a accesskey="n" href="strings.html">Next</a></td></tr></table><hr/></div><div class="section" title="Traits"><div class="titlepage"><div><div><h2 class="title"><a id="std.util.traits"/>Traits</h2></div></div></div><p> | |
4092 | - </p></div><div class="navfooter"><hr/><table width="100%" summary="Navigation footer"><tr><td align="left"><a accesskey="p" href="memory.html">Prev</a> </td><td align="center"><a accesskey="u" href="utilities.html">Up</a></td><td align="right"> <a accesskey="n" href="strings.html">Next</a></td></tr><tr><td align="left" valign="top">Memory </td><td align="center"><a accesskey="h" href="../index.html">Home</a></td><td align="right" valign="top"> Chapter 7. | |
4093 | +</th><td width="20%" align="right"> <a accesskey="n" href="strings.html">Next</a></td></tr></table><hr /></div><div class="section" title="Traits"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="std.util.traits"></a>Traits</h2></div></div></div><p> | |
4094 | + </p></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="memory.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="utilities.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="strings.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Memory </td><td width="20%" align="center"><a accesskey="h" href="../index.html">Home</a></td><td width="40%" align="right" valign="top"> Chapter 7. | |
4095 | Strings | |
4096 | ||
4097 | </td></tr></table></div></body></html> | |
4098 | Index: libstdc++-v3/doc/html/manual/bk01pt03ch20s05.html | |
4099 | =================================================================== | |
9f95000d AM |
4100 | --- libstdc++-v3/doc/html/manual/bk01pt03ch20s05.html (.../tags/gcc_4_7_2_release) (wersja 192468) |
4101 | +++ libstdc++-v3/doc/html/manual/bk01pt03ch20s05.html (.../branches/gcc-4_7-branch) (wersja 192468) | |
5a87b929 AM |
4102 | @@ -1,6 +1,6 @@ |
4103 | <?xml version="1.0" encoding="UTF-8" standalone="no"?> | |
4104 | -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> | |
4105 | -<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Multiple Thread Example</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1"/><meta name="keywords" content=" ISO C++ , allocator "/><meta name="keywords" content=" ISO C++ , library "/><meta name="keywords" content=" ISO C++ , runtime , library "/><link rel="home" href="../index.html" title="The GNU C++ Library"/><link rel="up" href="mt_allocator.html" title="Chapter 20. The mt_allocator"/><link rel="prev" href="bk01pt03ch20s04.html" title="Single Thread Example"/><link rel="next" href="bitmap_allocator.html" title="Chapter 21. The bitmap_allocator"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Multiple Thread Example</th></tr><tr><td align="left"><a accesskey="p" href="bk01pt03ch20s04.html">Prev</a> </td><th width="60%" align="center">Chapter 20. The mt_allocator</th><td align="right"> <a accesskey="n" href="bitmap_allocator.html">Next</a></td></tr></table><hr/></div><div class="section" title="Multiple Thread Example"><div class="titlepage"><div><div><h2 class="title"><a id="allocator.mt.example_multi"/>Multiple Thread Example</h2></div></div></div><p> | |
4106 | +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> | |
4107 | +<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Multiple Thread Example</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1" /><meta name="keywords" content=" ISO C++ , allocator " /><meta name="keywords" content=" ISO C++ , library " /><meta name="keywords" content=" ISO C++ , runtime , library " /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="mt_allocator.html" title="Chapter 20. The mt_allocator" /><link rel="prev" href="bk01pt03ch20s04.html" title="Single Thread Example" /><link rel="next" href="bitmap_allocator.html" title="Chapter 21. The bitmap_allocator" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Multiple Thread Example</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="bk01pt03ch20s04.html">Prev</a> </td><th width="60%" align="center">Chapter 20. The mt_allocator</th><td width="20%" align="right"> <a accesskey="n" href="bitmap_allocator.html">Next</a></td></tr></table><hr /></div><div class="section" title="Multiple Thread Example"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="allocator.mt.example_multi"></a>Multiple Thread Example</h2></div></div></div><p> | |
4108 | In the ST example we never used the thread_id variable present in each block. | |
4109 | Let's start by explaining the purpose of this in a MT application. | |
4110 | </p><p> | |
4111 | @@ -104,4 +104,4 @@ | |
4112 | a threads freelist mentioned above). The "formula" used can probably | |
4113 | be improved to further reduce the risk of blocks being "bounced back | |
4114 | and forth" between freelists. | |
4115 | -</p></div><div class="navfooter"><hr/><table width="100%" summary="Navigation footer"><tr><td align="left"><a accesskey="p" href="bk01pt03ch20s04.html">Prev</a> </td><td align="center"><a accesskey="u" href="mt_allocator.html">Up</a></td><td align="right"> <a accesskey="n" href="bitmap_allocator.html">Next</a></td></tr><tr><td align="left" valign="top">Single Thread Example </td><td align="center"><a accesskey="h" href="../index.html">Home</a></td><td align="right" valign="top"> Chapter 21. The bitmap_allocator</td></tr></table></div></body></html> | |
4116 | +</p></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="bk01pt03ch20s04.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="mt_allocator.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="bitmap_allocator.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Single Thread Example </td><td width="20%" align="center"><a accesskey="h" href="../index.html">Home</a></td><td width="40%" align="right" valign="top"> Chapter 21. The bitmap_allocator</td></tr></table></div></body></html> | |
4117 | Index: libstdc++-v3/doc/html/manual/ext_concurrency.html | |
4118 | =================================================================== | |
9f95000d AM |
4119 | --- libstdc++-v3/doc/html/manual/ext_concurrency.html (.../tags/gcc_4_7_2_release) (wersja 192468) |
4120 | +++ libstdc++-v3/doc/html/manual/ext_concurrency.html (.../branches/gcc-4_7-branch) (wersja 192468) | |
5a87b929 AM |
4121 | @@ -1,9 +1,9 @@ |
4122 | <?xml version="1.0" encoding="UTF-8" standalone="no"?> | |
4123 | -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> | |
4124 | -<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Chapter 30. Concurrency</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1"/><meta name="keywords" content=" ISO C++ , library "/><meta name="keywords" content=" ISO C++ , library "/><meta name="keywords" content=" ISO C++ , runtime , library "/><link rel="home" href="../index.html" title="The GNU C++ Library"/><link rel="up" href="extensions.html" title="Part III. Extensions"/><link rel="prev" href="ext_demangling.html" title="Chapter 29. Demangling"/><link rel="next" href="bk01pt03ch30s02.html" title="Implementation"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 30. Concurrency</th></tr><tr><td align="left"><a accesskey="p" href="ext_demangling.html">Prev</a> </td><th width="60%" align="center">Part III. | |
4125 | +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> | |
4126 | +<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Chapter 30. Concurrency</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1" /><meta name="keywords" content=" ISO C++ , library " /><meta name="keywords" content=" ISO C++ , library " /><meta name="keywords" content=" ISO C++ , runtime , library " /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="extensions.html" title="Part III. Extensions" /><link rel="prev" href="ext_demangling.html" title="Chapter 29. Demangling" /><link rel="next" href="bk01pt03ch30s02.html" title="Implementation" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 30. Concurrency</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ext_demangling.html">Prev</a> </td><th width="60%" align="center">Part III. | |
4127 | Extensions | |
4128 | ||
4129 | -</th><td align="right"> <a accesskey="n" href="bk01pt03ch30s02.html">Next</a></td></tr></table><hr/></div><div class="chapter" title="Chapter 30. Concurrency"><div class="titlepage"><div><div><h2 class="title"><a id="manual.ext.concurrency"/>Chapter 30. Concurrency</h2></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl><dt><span class="section"><a href="ext_concurrency.html#manual.ext.concurrency.design">Design</a></span></dt><dd><dl><dt><span class="section"><a href="ext_concurrency.html#manual.ext.concurrency.design.threads">Interface to Locks and Mutexes</a></span></dt><dt><span class="section"><a href="ext_concurrency.html#manual.ext.concurrency.design.atomics">Interface to Atomic Functions</a></span></dt></dl></dd><dt><span class="section"><a href="bk01pt03ch30s02.html">Implementation</a></span></dt><dd><dl><dt><span class="section"><a href="bk01pt03ch30s02.html#manual.ext.concurrency.impl.atomic_fallbacks">Using Builtin Atomic Functions</a></span></dt><dt><span class="section"><a href="bk01pt03ch30s02.html#manual.ext.concurrency.impl.thread">Thread Abstraction</a></span></dt></dl></dd><dt><span class="section"><a href="bk01pt03ch30s03.html">Use</a></span></dt></dl></div><div class="section" title="Design"><div class="titlepage"><div><div><h2 class="title"><a id="manual.ext.concurrency.design"/>Design</h2></div></div></div><div class="section" title="Interface to Locks and Mutexes"><div class="titlepage"><div><div><h3 class="title"><a id="manual.ext.concurrency.design.threads"/>Interface to Locks and Mutexes</h3></div></div></div><p>The file <code class="filename"><ext/concurrence.h></code> | |
4130 | +</th><td width="20%" align="right"> <a accesskey="n" href="bk01pt03ch30s02.html">Next</a></td></tr></table><hr /></div><div class="chapter" title="Chapter 30. Concurrency"><div class="titlepage"><div><div><h2 class="title"><a id="manual.ext.concurrency"></a>Chapter 30. Concurrency</h2></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl><dt><span class="section"><a href="ext_concurrency.html#manual.ext.concurrency.design">Design</a></span></dt><dd><dl><dt><span class="section"><a href="ext_concurrency.html#manual.ext.concurrency.design.threads">Interface to Locks and Mutexes</a></span></dt><dt><span class="section"><a href="ext_concurrency.html#manual.ext.concurrency.design.atomics">Interface to Atomic Functions</a></span></dt></dl></dd><dt><span class="section"><a href="bk01pt03ch30s02.html">Implementation</a></span></dt><dd><dl><dt><span class="section"><a href="bk01pt03ch30s02.html#manual.ext.concurrency.impl.atomic_fallbacks">Using Builtin Atomic Functions</a></span></dt><dt><span class="section"><a href="bk01pt03ch30s02.html#manual.ext.concurrency.impl.thread">Thread Abstraction</a></span></dt></dl></dd><dt><span class="section"><a href="bk01pt03ch30s03.html">Use</a></span></dt></dl></div><div class="section" title="Design"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="manual.ext.concurrency.design"></a>Design</h2></div></div></div><div class="section" title="Interface to Locks and Mutexes"><div class="titlepage"><div><div><h3 class="title"><a id="manual.ext.concurrency.design.threads"></a>Interface to Locks and Mutexes</h3></div></div></div><p>The file <code class="filename"><ext/concurrence.h></code> | |
4131 | contains all the higher-level | |
4132 | constructs for playing with threads. In contrast to the atomics layer, | |
4133 | the concurrence layer consists largely of types. All types are defined within <code class="code">namespace __gnu_cxx</code>. | |
4134 | @@ -17,7 +17,7 @@ | |
4135 | available locking | |
4136 | policies: <code class="code">_S_single</code>, <code class="code">_S_mutex</code>, | |
4137 | and <code class="code">_S_atomic</code>. | |
4138 | -</p><div class="itemizedlist"><ul class="itemizedlist"><li class="listitem"><p><code class="code">_S_single</code></p><p>Indicates single-threaded code that does not need locking. | |
4139 | +</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p><code class="code">_S_single</code></p><p>Indicates single-threaded code that does not need locking. | |
4140 | </p></li><li class="listitem"><p><code class="code">_S_mutex</code></p><p>Indicates multi-threaded code using thread-layer abstractions. | |
4141 | </p></li><li class="listitem"><p><code class="code">_S_atomic</code></p><p>Indicates multi-threaded code using atomic operations. | |
4142 | </p></li></ul></div><p>The compile-time constant <code class="code">__default_lock_policy</code> is set | |
4143 | @@ -33,7 +33,7 @@ | |
4144 | These types have been superseded in the ISO C++ 2011 standard by the | |
4145 | mutex and lock types defined in the header | |
4146 | <code class="filename"><mutex></code>. | |
4147 | -</p></div><div class="section" title="Interface to Atomic Functions"><div class="titlepage"><div><div><h3 class="title"><a id="manual.ext.concurrency.design.atomics"/>Interface to Atomic Functions</h3></div></div></div><p> | |
4148 | +</p></div><div class="section" title="Interface to Atomic Functions"><div class="titlepage"><div><div><h3 class="title"><a id="manual.ext.concurrency.design.atomics"></a>Interface to Atomic Functions</h3></div></div></div><p> | |
4149 | Two functions and one type form the base of atomic support. | |
4150 | </p><p>The type <code class="code">_Atomic_word</code> is a signed integral type | |
4151 | supporting atomic operations. | |
4152 | @@ -47,7 +47,7 @@ | |
4153 | __atomic_add_dispatch(volatile _Atomic_word*, int); | |
4154 | </pre><p>Both of these functions are declared in the header file | |
4155 | <ext/atomicity.h>, and are in <code class="code">namespace __gnu_cxx</code>. | |
4156 | -</p><div class="itemizedlist"><ul class="itemizedlist"><li class="listitem"><p> | |
4157 | +</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p> | |
4158 | <code class="code"> | |
4159 | __exchange_and_add_dispatch | |
4160 | </code> | |
4161 | @@ -66,7 +66,7 @@ | |
4162 | </code> | |
4163 | </p><p> | |
4164 | Calls through to either of: | |
4165 | -</p><div class="itemizedlist"><ul class="itemizedlist"><li class="listitem"><p><code class="code">__exchange_and_add</code> | |
4166 | +</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p><code class="code">__exchange_and_add</code> | |
4167 | </p><p>Multi-thread version. Inlined if compiler-generated builtin atomics | |
4168 | can be used, otherwise resolved at link time to a non-builtin code | |
4169 | sequence. | |
4170 | @@ -91,4 +91,4 @@ | |
4171 | </p><p> | |
4172 | Which expand to the appropriate write and read barrier required by the | |
4173 | host hardware and operating system. | |
4174 | -</p></div></div></div><div class="navfooter"><hr/><table width="100%" summary="Navigation footer"><tr><td align="left"><a accesskey="p" href="ext_demangling.html">Prev</a> </td><td align="center"><a accesskey="u" href="extensions.html">Up</a></td><td align="right"> <a accesskey="n" href="bk01pt03ch30s02.html">Next</a></td></tr><tr><td align="left" valign="top">Chapter 29. Demangling </td><td align="center"><a accesskey="h" href="../index.html">Home</a></td><td align="right" valign="top"> Implementation</td></tr></table></div></body></html> | |
4175 | +</p></div></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="ext_demangling.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="extensions.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="bk01pt03ch30s02.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Chapter 29. Demangling </td><td width="20%" align="center"><a accesskey="h" href="../index.html">Home</a></td><td width="40%" align="right" valign="top"> Implementation</td></tr></table></div></body></html> | |
4176 | Index: libstdc++-v3/doc/html/manual/associative.html | |
4177 | =================================================================== | |
9f95000d AM |
4178 | --- libstdc++-v3/doc/html/manual/associative.html (.../tags/gcc_4_7_2_release) (wersja 192468) |
4179 | +++ libstdc++-v3/doc/html/manual/associative.html (.../branches/gcc-4_7-branch) (wersja 192468) | |
5a87b929 AM |
4180 | @@ -1,9 +1,9 @@ |
4181 | <?xml version="1.0" encoding="UTF-8" standalone="no"?> | |
4182 | -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> | |
4183 | -<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Associative</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1"/><meta name="keywords" content=" ISO C++ , library "/><meta name="keywords" content=" ISO C++ , runtime , library "/><link rel="home" href="../index.html" title="The GNU C++ Library"/><link rel="up" href="containers.html" title="Chapter 9. Containers"/><link rel="prev" href="containers.html" title="Chapter 9. Containers"/><link rel="next" href="containers_and_c.html" title="Interacting with C"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Associative</th></tr><tr><td align="left"><a accesskey="p" href="containers.html">Prev</a> </td><th width="60%" align="center">Chapter 9. | |
4184 | +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> | |
4185 | +<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Associative</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1" /><meta name="keywords" content=" ISO C++ , library " /><meta name="keywords" content=" ISO C++ , runtime , library " /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="containers.html" title="Chapter 9. Containers" /><link rel="prev" href="containers.html" title="Chapter 9. Containers" /><link rel="next" href="containers_and_c.html" title="Interacting with C" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Associative</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="containers.html">Prev</a> </td><th width="60%" align="center">Chapter 9. | |
4186 | Containers | |
4187 | ||
4188 | -</th><td align="right"> <a accesskey="n" href="containers_and_c.html">Next</a></td></tr></table><hr/></div><div class="section" title="Associative"><div class="titlepage"><div><div><h2 class="title"><a id="std.containers.associative"/>Associative</h2></div></div></div><div class="section" title="Insertion Hints"><div class="titlepage"><div><div><h3 class="title"><a id="containers.associative.insert_hints"/>Insertion Hints</h3></div></div></div><p> | |
4189 | +</th><td width="20%" align="right"> <a accesskey="n" href="containers_and_c.html">Next</a></td></tr></table><hr /></div><div class="section" title="Associative"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="std.containers.associative"></a>Associative</h2></div></div></div><div class="section" title="Insertion Hints"><div class="titlepage"><div><div><h3 class="title"><a id="containers.associative.insert_hints"></a>Insertion Hints</h3></div></div></div><p> | |
4190 | Section [23.1.2], Table 69, of the C++ standard lists this | |
4191 | function for all of the associative containers (map, set, etc): | |
4192 | </p><pre class="programlisting"> | |
4193 | @@ -13,7 +13,7 @@ | |
4194 | item to insert. The standard says that <span class="quote">“<span class="quote"><code class="code">t</code> is | |
4195 | inserted as close as possible to the position just prior to | |
4196 | <code class="code">p</code>.</span>”</span> (Library DR #233 addresses this topic, | |
4197 | - referring to <a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2005/n1780.html">N1780</a>. | |
4198 | + referring to <a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2005/n1780.html" target="_top">N1780</a>. | |
4199 | Since version 4.2 GCC implements the resolution to DR 233, so | |
4200 | that insertions happen as close as possible to the hint. For | |
4201 | earlier releases the hint was only used as described below. | |
4202 | @@ -39,7 +39,7 @@ | |
4203 | paragraph. *grin* | |
4204 | </p><p> | |
4205 | If the <code class="code">hint</code> parameter ('p' above) is equivalent to: | |
4206 | - </p><div class="itemizedlist"><ul class="itemizedlist"><li class="listitem"><p> | |
4207 | + </p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p> | |
4208 | <code class="code">begin()</code>, then the item being inserted should | |
4209 | have a key less than all the other keys in the container. | |
4210 | The item will be inserted at the beginning of the container, | |
4211 | @@ -84,7 +84,7 @@ | |
4212 | the new item would in fact belong there. If the hint does not | |
4213 | point to the correct place, then no further local searching is | |
4214 | done; the search begins from scratch in logarithmic time. | |
4215 | - </p></div><div class="section" title="bitset"><div class="titlepage"><div><div><h3 class="title"><a id="containers.associative.bitset"/>bitset</h3></div></div></div><div class="section" title="Size Variable"><div class="titlepage"><div><div><h4 class="title"><a id="associative.bitset.size_variable"/>Size Variable</h4></div></div></div><p> | |
4216 | + </p></div><div class="section" title="bitset"><div class="titlepage"><div><div><h3 class="title"><a id="containers.associative.bitset"></a>bitset</h3></div></div></div><div class="section" title="Size Variable"><div class="titlepage"><div><div><h4 class="title"><a id="associative.bitset.size_variable"></a>Size Variable</h4></div></div></div><p> | |
4217 | No, you cannot write code of the form | |
4218 | </p><pre class="programlisting"> | |
4219 | #include <bitset> | |
4220 | @@ -102,7 +102,7 @@ | |
4221 | There are a couple of ways to handle this kind of thing. Please | |
4222 | consider all of them before passing judgement. They include, in | |
4223 | no chaptericular order: | |
4224 | - </p><div class="itemizedlist"><ul class="itemizedlist"><li class="listitem"><p>A very large N in <code class="code">bitset<N></code>.</p></li><li class="listitem"><p>A container<bool>.</p></li><li class="listitem"><p>Extremely weird solutions.</p></li></ul></div><p> | |
4225 | + </p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>A very large N in <code class="code">bitset<N></code>.</p></li><li class="listitem"><p>A container<bool>.</p></li><li class="listitem"><p>Extremely weird solutions.</p></li></ul></div><p> | |
4226 | <span class="emphasis"><em>A very large N in | |
4227 | <code class="code">bitset<N></code>. </em></span> It has been | |
4228 | pointed out a few times in newsgroups that N bits only takes up | |
4229 | @@ -169,7 +169,7 @@ | |
4230 | </p><p> | |
4231 | Also note that the implementation of bitset used in libstdc++ has | |
4232 | <a class="link" href="ext_containers.html#manual.ext.containers.sgi" title="Backwards Compatibility">some extensions</a>. | |
4233 | - </p></div><div class="section" title="Type String"><div class="titlepage"><div><div><h4 class="title"><a id="associative.bitset.type_string"/>Type String</h4></div></div></div><p> | |
4234 | + </p></div><div class="section" title="Type String"><div class="titlepage"><div><div><h4 class="title"><a id="associative.bitset.type_string"></a>Type String</h4></div></div></div><p> | |
4235 | </p><p> | |
4236 | Bitmasks do not take char* nor const char* arguments in their | |
4237 | constructors. This is something of an accident, but you can read | |
4238 | @@ -186,7 +186,7 @@ | |
4239 | instead of | |
4240 | </p><pre class="programlisting"> | |
4241 | std::bitset<5> b ( <span class="quote">“<span class="quote">10110</span>”</span> ); // invalid | |
4242 | - </pre></div></div></div><div class="navfooter"><hr/><table width="100%" summary="Navigation footer"><tr><td align="left"><a accesskey="p" href="containers.html">Prev</a> </td><td align="center"><a accesskey="u" href="containers.html">Up</a></td><td align="right"> <a accesskey="n" href="containers_and_c.html">Next</a></td></tr><tr><td align="left" valign="top">Chapter 9. | |
4243 | + </pre></div></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="containers.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="containers.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="containers_and_c.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Chapter 9. | |
4244 | Containers | |
4245 | ||
4246 | - </td><td align="center"><a accesskey="h" href="../index.html">Home</a></td><td align="right" valign="top"> Interacting with C</td></tr></table></div></body></html> | |
4247 | + </td><td width="20%" align="center"><a accesskey="h" href="../index.html">Home</a></td><td width="40%" align="right" valign="top"> Interacting with C</td></tr></table></div></body></html> | |
4248 | Index: libstdc++-v3/doc/html/manual/bk01pt03ch17s02.html | |
4249 | =================================================================== | |
9f95000d AM |
4250 | --- libstdc++-v3/doc/html/manual/bk01pt03ch17s02.html (.../tags/gcc_4_7_2_release) (wersja 192468) |
4251 | +++ libstdc++-v3/doc/html/manual/bk01pt03ch17s02.html (.../branches/gcc-4_7-branch) (wersja 192468) | |
5a87b929 AM |
4252 | @@ -1,6 +1,6 @@ |
4253 | <?xml version="1.0" encoding="UTF-8" standalone="no"?> | |
4254 | -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> | |
4255 | -<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Semantics</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1"/><meta name="keywords" content=" C++ , library , debug "/><meta name="keywords" content=" ISO C++ , library "/><meta name="keywords" content=" ISO C++ , runtime , library "/><link rel="home" href="../index.html" title="The GNU C++ Library"/><link rel="up" href="debug_mode.html" title="Chapter 17. Debug Mode"/><link rel="prev" href="debug_mode.html" title="Chapter 17. Debug Mode"/><link rel="next" href="bk01pt03ch17s03.html" title="Using"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Semantics</th></tr><tr><td align="left"><a accesskey="p" href="debug_mode.html">Prev</a> </td><th width="60%" align="center">Chapter 17. Debug Mode</th><td align="right"> <a accesskey="n" href="bk01pt03ch17s03.html">Next</a></td></tr></table><hr/></div><div class="section" title="Semantics"><div class="titlepage"><div><div><h2 class="title"><a id="manual.ext.debug_mode.semantics"/>Semantics</h2></div></div></div><p> | |
4256 | +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> | |
4257 | +<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Semantics</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1" /><meta name="keywords" content=" C++ , library , debug " /><meta name="keywords" content=" ISO C++ , library " /><meta name="keywords" content=" ISO C++ , runtime , library " /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="debug_mode.html" title="Chapter 17. Debug Mode" /><link rel="prev" href="debug_mode.html" title="Chapter 17. Debug Mode" /><link rel="next" href="bk01pt03ch17s03.html" title="Using" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Semantics</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="debug_mode.html">Prev</a> </td><th width="60%" align="center">Chapter 17. Debug Mode</th><td width="20%" align="right"> <a accesskey="n" href="bk01pt03ch17s03.html">Next</a></td></tr></table><hr /></div><div class="section" title="Semantics"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="manual.ext.debug_mode.semantics"></a>Semantics</h2></div></div></div><p> | |
4258 | </p><p>A program that uses the C++ standard library correctly | |
4259 | will maintain the same semantics under debug mode as it had with | |
4260 | the normal (release) library. All functional and exception-handling | |
4261 | @@ -36,7 +36,7 @@ | |
4262 | (N.B. In GCC 3.4.x and 4.0.0, due to a bug, | |
4263 | <code class="code">-D_GLIBXX_DEBUG_PEDANTIC</code> was also needed. The problem has | |
4264 | been fixed in GCC 4.0.1 and later versions.) </p><p>The following library components provide extra debugging | |
4265 | - capabilities in debug mode:</p><div class="itemizedlist"><ul class="itemizedlist"><li class="listitem"><p><code class="code">std::basic_string</code> (no safe iterators and see note below)</p></li><li class="listitem"><p><code class="code">std::bitset</code></p></li><li class="listitem"><p><code class="code">std::deque</code></p></li><li class="listitem"><p><code class="code">std::list</code></p></li><li class="listitem"><p><code class="code">std::map</code></p></li><li class="listitem"><p><code class="code">std::multimap</code></p></li><li class="listitem"><p><code class="code">std::multiset</code></p></li><li class="listitem"><p><code class="code">std::set</code></p></li><li class="listitem"><p><code class="code">std::vector</code></p></li><li class="listitem"><p><code class="code">std::unordered_map</code></p></li><li class="listitem"><p><code class="code">std::unordered_multimap</code></p></li><li class="listitem"><p><code class="code">std::unordered_set</code></p></li><li class="listitem"><p><code class="code">std::unordered_multiset</code></p></li></ul></div><p>N.B. although there are precondition checks for some string operations, | |
4266 | + capabilities in debug mode:</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p><code class="code">std::basic_string</code> (no safe iterators and see note below)</p></li><li class="listitem"><p><code class="code">std::bitset</code></p></li><li class="listitem"><p><code class="code">std::deque</code></p></li><li class="listitem"><p><code class="code">std::list</code></p></li><li class="listitem"><p><code class="code">std::map</code></p></li><li class="listitem"><p><code class="code">std::multimap</code></p></li><li class="listitem"><p><code class="code">std::multiset</code></p></li><li class="listitem"><p><code class="code">std::set</code></p></li><li class="listitem"><p><code class="code">std::vector</code></p></li><li class="listitem"><p><code class="code">std::unordered_map</code></p></li><li class="listitem"><p><code class="code">std::unordered_multimap</code></p></li><li class="listitem"><p><code class="code">std::unordered_set</code></p></li><li class="listitem"><p><code class="code">std::unordered_multiset</code></p></li></ul></div><p>N.B. although there are precondition checks for some string operations, | |
4267 | e.g. <code class="code">operator[]</code>, | |
4268 | they will not always be run when using the <code class="code">char</code> and | |
4269 | <code class="code">wchar_t</code> specialisations (<code class="code">std::string</code> and | |
4270 | @@ -52,4 +52,4 @@ | |
4271 | guaranteed to work. For full debug-mode support you can use the | |
4272 | <code class="code">__gnu_debug::basic_string</code> debugging container directly, | |
4273 | which always works correctly. | |
4274 | -</p></div><div class="navfooter"><hr/><table width="100%" summary="Navigation footer"><tr><td align="left"><a accesskey="p" href="debug_mode.html">Prev</a> </td><td align="center"><a accesskey="u" href="debug_mode.html">Up</a></td><td align="right"> <a accesskey="n" href="bk01pt03ch17s03.html">Next</a></td></tr><tr><td align="left" valign="top">Chapter 17. Debug Mode </td><td align="center"><a accesskey="h" href="../index.html">Home</a></td><td align="right" valign="top"> Using</td></tr></table></div></body></html> | |
4275 | +</p></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="debug_mode.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="debug_mode.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="bk01pt03ch17s03.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Chapter 17. Debug Mode </td><td width="20%" align="center"><a accesskey="h" href="../index.html">Home</a></td><td width="40%" align="right" valign="top"> Using</td></tr></table></div></body></html> | |
4276 | Index: libstdc++-v3/doc/html/manual/bitmap_allocator.html | |
4277 | =================================================================== | |
9f95000d AM |
4278 | --- libstdc++-v3/doc/html/manual/bitmap_allocator.html (.../tags/gcc_4_7_2_release) (wersja 192468) |
4279 | +++ libstdc++-v3/doc/html/manual/bitmap_allocator.html (.../branches/gcc-4_7-branch) (wersja 192468) | |
5a87b929 AM |
4280 | @@ -1,10 +1,10 @@ |
4281 | <?xml version="1.0" encoding="UTF-8" standalone="no"?> | |
4282 | -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> | |
4283 | -<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Chapter 21. The bitmap_allocator</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1"/><meta name="keywords" content=" ISO C++ , allocator "/><meta name="keywords" content=" ISO C++ , library "/><meta name="keywords" content=" ISO C++ , runtime , library "/><link rel="home" href="../index.html" title="The GNU C++ Library"/><link rel="up" href="extensions.html" title="Part III. Extensions"/><link rel="prev" href="bk01pt03ch20s05.html" title="Multiple Thread Example"/><link rel="next" href="bk01pt03ch21s02.html" title="Implementation"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 21. The bitmap_allocator</th></tr><tr><td align="left"><a accesskey="p" href="bk01pt03ch20s05.html">Prev</a> </td><th width="60%" align="center">Part III. | |
4284 | +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> | |
4285 | +<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Chapter 21. The bitmap_allocator</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1" /><meta name="keywords" content=" ISO C++ , allocator " /><meta name="keywords" content=" ISO C++ , library " /><meta name="keywords" content=" ISO C++ , runtime , library " /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="extensions.html" title="Part III. Extensions" /><link rel="prev" href="bk01pt03ch20s05.html" title="Multiple Thread Example" /><link rel="next" href="bk01pt03ch21s02.html" title="Implementation" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 21. The bitmap_allocator</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="bk01pt03ch20s05.html">Prev</a> </td><th width="60%" align="center">Part III. | |
4286 | Extensions | |
4287 | ||
4288 | -</th><td align="right"> <a accesskey="n" href="bk01pt03ch21s02.html">Next</a></td></tr></table><hr/></div><div class="chapter" title="Chapter 21. The bitmap_allocator"><div class="titlepage"><div><div><h2 class="title"><a id="manual.ext.allocator.bitmap"/>Chapter 21. The bitmap_allocator</h2></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl><dt><span class="section"><a href="bitmap_allocator.html#allocator.bitmap.design">Design</a></span></dt><dt><span class="section"><a href="bk01pt03ch21s02.html">Implementation</a></span></dt><dd><dl><dt><span class="section"><a href="bk01pt03ch21s02.html#bitmap.impl.free_list_store">Free List Store</a></span></dt><dt><span class="section"><a href="bk01pt03ch21s02.html#bitmap.impl.super_block">Super Block</a></span></dt><dt><span class="section"><a href="bk01pt03ch21s02.html#bitmap.impl.super_block_data">Super Block Data Layout</a></span></dt><dt><span class="section"><a href="bk01pt03ch21s02.html#bitmap.impl.max_wasted">Maximum Wasted Percentage</a></span></dt><dt><span class="section"><a href="bk01pt03ch21s02.html#bitmap.impl.allocate"><code class="function">allocate</code></a></span></dt><dt><span class="section"><a href="bk01pt03ch21s02.html#bitmap.impl.deallocate"><code class="function">deallocate</code></a></span></dt><dt><span class="section"><a href="bk01pt03ch21s02.html#bitmap.impl.questions">Questions</a></span></dt><dd><dl><dt><span class="section"><a href="bk01pt03ch21s02.html#bitmap.impl.question.1">1</a></span></dt><dt><span class="section"><a href="bk01pt03ch21s02.html#bitmap.impl.question.2">2</a></span></dt><dt><span class="section"><a href="bk01pt03ch21s02.html#bitmap.impl.question.3">3</a></span></dt></dl></dd><dt><span class="section"><a href="bk01pt03ch21s02.html#bitmap.impl.locality">Locality</a></span></dt><dt><span class="section"><a href="bk01pt03ch21s02.html#bitmap.impl.grow_policy">Overhead and Grow Policy</a></span></dt></dl></dd></dl></div><p> | |
4289 | -</p><div class="section" title="Design"><div class="titlepage"><div><div><h2 class="title"><a id="allocator.bitmap.design"/>Design</h2></div></div></div><p> | |
4290 | +</th><td width="20%" align="right"> <a accesskey="n" href="bk01pt03ch21s02.html">Next</a></td></tr></table><hr /></div><div class="chapter" title="Chapter 21. The bitmap_allocator"><div class="titlepage"><div><div><h2 class="title"><a id="manual.ext.allocator.bitmap"></a>Chapter 21. The bitmap_allocator</h2></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl><dt><span class="section"><a href="bitmap_allocator.html#allocator.bitmap.design">Design</a></span></dt><dt><span class="section"><a href="bk01pt03ch21s02.html">Implementation</a></span></dt><dd><dl><dt><span class="section"><a href="bk01pt03ch21s02.html#bitmap.impl.free_list_store">Free List Store</a></span></dt><dt><span class="section"><a href="bk01pt03ch21s02.html#bitmap.impl.super_block">Super Block</a></span></dt><dt><span class="section"><a href="bk01pt03ch21s02.html#bitmap.impl.super_block_data">Super Block Data Layout</a></span></dt><dt><span class="section"><a href="bk01pt03ch21s02.html#bitmap.impl.max_wasted">Maximum Wasted Percentage</a></span></dt><dt><span class="section"><a href="bk01pt03ch21s02.html#bitmap.impl.allocate"><code class="function">allocate</code></a></span></dt><dt><span class="section"><a href="bk01pt03ch21s02.html#bitmap.impl.deallocate"><code class="function">deallocate</code></a></span></dt><dt><span class="section"><a href="bk01pt03ch21s02.html#bitmap.impl.questions">Questions</a></span></dt><dd><dl><dt><span class="section"><a href="bk01pt03ch21s02.html#bitmap.impl.question.1">1</a></span></dt><dt><span class="section"><a href="bk01pt03ch21s02.html#bitmap.impl.question.2">2</a></span></dt><dt><span class="section"><a href="bk01pt03ch21s02.html#bitmap.impl.question.3">3</a></span></dt></dl></dd><dt><span class="section"><a href="bk01pt03ch21s02.html#bitmap.impl.locality">Locality</a></span></dt><dt><span class="section"><a href="bk01pt03ch21s02.html#bitmap.impl.grow_policy">Overhead and Grow Policy</a></span></dt></dl></dd></dl></div><p> | |
4291 | +</p><div class="section" title="Design"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="allocator.bitmap.design"></a>Design</h2></div></div></div><p> | |
4292 | As this name suggests, this allocator uses a bit-map to keep track | |
4293 | of the used and unused memory locations for its book-keeping | |
4294 | purposes. | |
4295 | @@ -30,4 +30,4 @@ | |
4296 | Mutex Protection around every allocation/deallocation. The state | |
4297 | of the macro is picked up automatically from the gthr abstraction | |
4298 | layer. | |
4299 | - </p></div></div><div class="navfooter"><hr/><table width="100%" summary="Navigation footer"><tr><td align="left"><a accesskey="p" href="bk01pt03ch20s05.html">Prev</a> </td><td align="center"><a accesskey="u" href="extensions.html">Up</a></td><td align="right"> <a accesskey="n" href="bk01pt03ch21s02.html">Next</a></td></tr><tr><td align="left" valign="top">Multiple Thread Example </td><td align="center"><a accesskey="h" href="../index.html">Home</a></td><td align="right" valign="top"> Implementation</td></tr></table></div></body></html> | |
4300 | + </p></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="bk01pt03ch20s05.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="extensions.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="bk01pt03ch21s02.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Multiple Thread Example </td><td width="20%" align="center"><a accesskey="h" href="../index.html">Home</a></td><td width="40%" align="right" valign="top"> Implementation</td></tr></table></div></body></html> | |
4301 | Index: libstdc++-v3/doc/html/manual/support.html | |
4302 | =================================================================== | |
9f95000d AM |
4303 | --- libstdc++-v3/doc/html/manual/support.html (.../tags/gcc_4_7_2_release) (wersja 192468) |
4304 | +++ libstdc++-v3/doc/html/manual/support.html (.../branches/gcc-4_7-branch) (wersja 192468) | |
5a87b929 AM |
4305 | @@ -1,13 +1,13 @@ |
4306 | <?xml version="1.0" encoding="UTF-8" standalone="no"?> | |
4307 | -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> | |
4308 | -<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Chapter 4. Support</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1"/><meta name="keywords" content=" ISO C++ , library "/><meta name="keywords" content=" ISO C++ , runtime , library "/><link rel="home" href="../index.html" title="The GNU C++ Library"/><link rel="up" href="bk01pt02.html" title="Part II. Standard Contents"/><link rel="prev" href="bk01pt02.html" title="Part II. Standard Contents"/><link rel="next" href="dynamic_memory.html" title="Dynamic Memory"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 4. | |
4309 | +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> | |
4310 | +<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Chapter 4. Support</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1" /><meta name="keywords" content=" ISO C++ , library " /><meta name="keywords" content=" ISO C++ , runtime , library " /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="bk01pt02.html" title="Part II. Standard Contents" /><link rel="prev" href="bk01pt02.html" title="Part II. Standard Contents" /><link rel="next" href="dynamic_memory.html" title="Dynamic Memory" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 4. | |
4311 | Support | |
4312 | ||
4313 | -</th></tr><tr><td align="left"><a accesskey="p" href="bk01pt02.html">Prev</a> </td><th width="60%" align="center">Part II. | |
4314 | +</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="bk01pt02.html">Prev</a> </td><th width="60%" align="center">Part II. | |
4315 | Standard Contents | |
4316 | - </th><td align="right"> <a accesskey="n" href="dynamic_memory.html">Next</a></td></tr></table><hr/></div><div class="chapter" title="Chapter 4. Support"><div class="titlepage"><div><div><h2 class="title"><a id="std.support"/>Chapter 4. | |
4317 | + </th><td width="20%" align="right"> <a accesskey="n" href="dynamic_memory.html">Next</a></td></tr></table><hr /></div><div class="chapter" title="Chapter 4. Support"><div class="titlepage"><div><div><h2 class="title"><a id="std.support"></a>Chapter 4. | |
4318 | Support | |
4319 | - <a id="id483878" class="indexterm"/> | |
4320 | + <a id="id662366" class="indexterm"></a> | |
4321 | </h2></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl><dt><span class="section"><a href="support.html#std.support.types">Types</a></span></dt><dd><dl><dt><span class="section"><a href="support.html#std.support.types.fundamental">Fundamental Types</a></span></dt><dt><span class="section"><a href="support.html#std.support.types.numeric_limits">Numeric Properties</a></span></dt><dt><span class="section"><a href="support.html#std.support.types.null">NULL</a></span></dt></dl></dd><dt><span class="section"><a href="dynamic_memory.html">Dynamic Memory</a></span></dt><dt><span class="section"><a href="termination.html">Termination</a></span></dt><dd><dl><dt><span class="section"><a href="termination.html#support.termination.handlers">Termination Handlers</a></span></dt><dt><span class="section"><a href="termination.html#support.termination.verbose">Verbose Terminate Handler</a></span></dt></dl></dd></dl></div><p> | |
4322 | This part deals with the functions called and objects created | |
4323 | automatically during the course of a program's existence. | |
4324 | @@ -16,9 +16,9 @@ | |
4325 | need to get your own copy from your nation's member body; see our | |
4326 | homepage for help), we can mention a couple of changes in what | |
4327 | kind of support a C++ program gets from the Standard Library. | |
4328 | - </p><div class="section" title="Types"><div class="titlepage"><div><div><h2 class="title"><a id="std.support.types"/>Types</h2></div></div></div><div class="section" title="Fundamental Types"><div class="titlepage"><div><div><h3 class="title"><a id="std.support.types.fundamental"/>Fundamental Types</h3></div></div></div><p> | |
4329 | + </p><div class="section" title="Types"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="std.support.types"></a>Types</h2></div></div></div><div class="section" title="Fundamental Types"><div class="titlepage"><div><div><h3 class="title"><a id="std.support.types.fundamental"></a>Fundamental Types</h3></div></div></div><p> | |
4330 | C++ has the following builtin types: | |
4331 | - </p><div class="itemizedlist"><ul class="itemizedlist"><li class="listitem"><p> | |
4332 | + </p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p> | |
4333 | char | |
4334 | </p></li><li class="listitem"><p> | |
4335 | signed char | |
4336 | @@ -53,12 +53,12 @@ | |
4337 | </p><p> | |
4338 | Specializing parts of the library on these types is prohibited: | |
4339 | instead, use a POD. | |
4340 | - </p></div><div class="section" title="Numeric Properties"><div class="titlepage"><div><div><h3 class="title"><a id="std.support.types.numeric_limits"/>Numeric Properties</h3></div></div></div><p> | |
4341 | + </p></div><div class="section" title="Numeric Properties"><div class="titlepage"><div><div><h3 class="title"><a id="std.support.types.numeric_limits"></a>Numeric Properties</h3></div></div></div><p> | |
4342 | The header <code class="filename">limits</code> defines | |
4343 | traits classes to give access to various implementation | |
4344 | defined-aspects of the fundamental types. The traits classes -- | |
4345 | fourteen in total -- are all specializations of the template class | |
4346 | - <code class="classname">numeric_limits</code>, documented <a class="link" href="http://gcc.gnu.org/onlinedocs/libstdc++/latest-doxygen/a00593.html">here</a> | |
4347 | + <code class="classname">numeric_limits</code>, documented <a class="link" href="http://gcc.gnu.org/onlinedocs/libstdc++/latest-doxygen/a00593.html" target="_top">here</a> | |
4348 | and defined as follows: | |
4349 | </p><pre class="programlisting"> | |
4350 | template<typename T> | |
4351 | @@ -99,7 +99,7 @@ | |
4352 | static const bool tinyness_before; | |
4353 | static const float_round_style round_style; | |
4354 | }; | |
4355 | - </pre></div><div class="section" title="NULL"><div class="titlepage"><div><div><h3 class="title"><a id="std.support.types.null"/>NULL</h3></div></div></div><p> | |
4356 | + </pre></div><div class="section" title="NULL"><div class="titlepage"><div><div><h3 class="title"><a id="std.support.types.null"></a>NULL</h3></div></div></div><p> | |
4357 | The only change that might affect people is the type of | |
4358 | <code class="constant">NULL</code>: while it is required to be a macro, | |
4359 | the definition of that macro is <span class="emphasis"><em>not</em></span> allowed | |
4360 | @@ -116,15 +116,15 @@ | |
4361 | overloading won't do what you expect. (This is why | |
4362 | <span class="command"><strong>g++</strong></span> has a magic extension, so that | |
4363 | <code class="constant">NULL</code> is always a pointer.) | |
4364 | - </p><p>In his book <a class="link" href="http://www.awprofessional.com/titles/0-201-92488-9/"><span class="emphasis"><em>Effective | |
4365 | + </p><p>In his book <a class="link" href="http://www.awprofessional.com/titles/0-201-92488-9/" target="_top"><span class="emphasis"><em>Effective | |
4366 | C++</em></span></a>, Scott Meyers points out that the best way | |
4367 | to solve this problem is to not overload on pointer-vs-integer | |
4368 | types to begin with. He also offers a way to make your own magic | |
4369 | <code class="constant">NULL</code> that will match pointers before it | |
4370 | matches integers. | |
4371 | </p><p>See | |
4372 | - <a class="link" href="http://www.awprofessional.com/titles/0-201-31015-5/">the | |
4373 | + <a class="link" href="http://www.awprofessional.com/titles/0-201-31015-5/" target="_top">the | |
4374 | Effective C++ CD example</a> | |
4375 | - </p></div></div></div><div class="navfooter"><hr/><table width="100%" summary="Navigation footer"><tr><td align="left"><a accesskey="p" href="bk01pt02.html">Prev</a> </td><td align="center"><a accesskey="u" href="bk01pt02.html">Up</a></td><td align="right"> <a accesskey="n" href="dynamic_memory.html">Next</a></td></tr><tr><td align="left" valign="top">Part II. | |
4376 | + </p></div></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="bk01pt02.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="bk01pt02.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="dynamic_memory.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Part II. | |
4377 | Standard Contents | |
4378 | - </td><td align="center"><a accesskey="h" href="../index.html">Home</a></td><td align="right" valign="top"> Dynamic Memory</td></tr></table></div></body></html> | |
4379 | + </td><td width="20%" align="center"><a accesskey="h" href="../index.html">Home</a></td><td width="40%" align="right" valign="top"> Dynamic Memory</td></tr></table></div></body></html> | |
4380 | Index: libstdc++-v3/doc/html/manual/bk01pt03ch18s02.html | |
4381 | =================================================================== | |
9f95000d AM |
4382 | --- libstdc++-v3/doc/html/manual/bk01pt03ch18s02.html (.../tags/gcc_4_7_2_release) (wersja 192468) |
4383 | +++ libstdc++-v3/doc/html/manual/bk01pt03ch18s02.html (.../branches/gcc-4_7-branch) (wersja 192468) | |
5a87b929 AM |
4384 | @@ -1,6 +1,6 @@ |
4385 | <?xml version="1.0" encoding="UTF-8" standalone="no"?> | |
4386 | -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> | |
4387 | -<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Semantics</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1"/><meta name="keywords" content=" C++ , library , parallel "/><meta name="keywords" content=" ISO C++ , library "/><meta name="keywords" content=" ISO C++ , runtime , library "/><link rel="home" href="../index.html" title="The GNU C++ Library"/><link rel="up" href="parallel_mode.html" title="Chapter 18. Parallel Mode"/><link rel="prev" href="parallel_mode.html" title="Chapter 18. Parallel Mode"/><link rel="next" href="bk01pt03ch18s03.html" title="Using"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Semantics</th></tr><tr><td align="left"><a accesskey="p" href="parallel_mode.html">Prev</a> </td><th width="60%" align="center">Chapter 18. Parallel Mode</th><td align="right"> <a accesskey="n" href="bk01pt03ch18s03.html">Next</a></td></tr></table><hr/></div><div class="section" title="Semantics"><div class="titlepage"><div><div><h2 class="title"><a id="manual.ext.parallel_mode.semantics"/>Semantics</h2></div></div></div><p> The parallel mode STL algorithms are currently not exception-safe, | |
4388 | +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> | |
4389 | +<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Semantics</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1" /><meta name="keywords" content=" C++ , library , parallel " /><meta name="keywords" content=" ISO C++ , library " /><meta name="keywords" content=" ISO C++ , runtime , library " /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="parallel_mode.html" title="Chapter 18. Parallel Mode" /><link rel="prev" href="parallel_mode.html" title="Chapter 18. Parallel Mode" /><link rel="next" href="bk01pt03ch18s03.html" title="Using" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Semantics</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="parallel_mode.html">Prev</a> </td><th width="60%" align="center">Chapter 18. Parallel Mode</th><td width="20%" align="right"> <a accesskey="n" href="bk01pt03ch18s03.html">Next</a></td></tr></table><hr /></div><div class="section" title="Semantics"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="manual.ext.parallel_mode.semantics"></a>Semantics</h2></div></div></div><p> The parallel mode STL algorithms are currently not exception-safe, | |
4390 | i.e. user-defined functors must not throw exceptions. | |
4391 | Also, the order of execution is not guaranteed for some functions, of course. | |
4392 | Therefore, user-defined functors should not have any concurrent side effects. | |
4393 | @@ -8,4 +8,4 @@ | |
4394 | OpenMP parallel regions in concurrent threads, | |
4395 | it is not possible to call parallel STL algorithm in | |
4396 | concurrent threads, either. | |
4397 | -It might work with other compilers, though.</p></div><div class="navfooter"><hr/><table width="100%" summary="Navigation footer"><tr><td align="left"><a accesskey="p" href="parallel_mode.html">Prev</a> </td><td align="center"><a accesskey="u" href="parallel_mode.html">Up</a></td><td align="right"> <a accesskey="n" href="bk01pt03ch18s03.html">Next</a></td></tr><tr><td align="left" valign="top">Chapter 18. Parallel Mode </td><td align="center"><a accesskey="h" href="../index.html">Home</a></td><td align="right" valign="top"> Using</td></tr></table></div></body></html> | |
4398 | +It might work with other compilers, though.</p></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="parallel_mode.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="parallel_mode.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="bk01pt03ch18s03.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Chapter 18. Parallel Mode </td><td width="20%" align="center"><a accesskey="h" href="../index.html">Home</a></td><td width="40%" align="right" valign="top"> Using</td></tr></table></div></body></html> | |
4399 | Index: libstdc++-v3/doc/html/manual/bk01pt03ch19s02.html | |
4400 | =================================================================== | |
9f95000d AM |
4401 | --- libstdc++-v3/doc/html/manual/bk01pt03ch19s02.html (.../tags/gcc_4_7_2_release) (wersja 192468) |
4402 | +++ libstdc++-v3/doc/html/manual/bk01pt03ch19s02.html (.../branches/gcc-4_7-branch) (wersja 192468) | |
5a87b929 AM |
4403 | @@ -1,10 +1,10 @@ |
4404 | <?xml version="1.0" encoding="UTF-8" standalone="no"?> | |
4405 | -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> | |
4406 | -<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Design</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1"/><meta name="keywords" content=" C++ , library , profile "/><meta name="keywords" content=" ISO C++ , library "/><meta name="keywords" content=" ISO C++ , runtime , library "/><link rel="home" href="../index.html" title="The GNU C++ Library"/><link rel="up" href="profile_mode.html" title="Chapter 19. Profile Mode"/><link rel="prev" href="profile_mode.html" title="Chapter 19. Profile Mode"/><link rel="next" href="bk01pt03ch19s03.html" title="Extensions for Custom Containers"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Design</th></tr><tr><td align="left"><a accesskey="p" href="profile_mode.html">Prev</a> </td><th width="60%" align="center">Chapter 19. Profile Mode</th><td align="right"> <a accesskey="n" href="bk01pt03ch19s03.html">Next</a></td></tr></table><hr/></div><div class="section" title="Design"><div class="titlepage"><div><div><h2 class="title"><a id="manual.ext.profile_mode.design"/>Design</h2></div></div></div><p> | |
4407 | -</p><div class="table"><a id="id510967"/><p class="title"><strong>Table 19.1. Profile Code Location</strong></p><div class="table-contents"><table summary="Profile Code Location" border="1"><colgroup><col style="text-align: left" class="c1"/><col style="text-align: left" class="c2"/></colgroup><thead><tr><th style="text-align: left">Code Location</th><th style="text-align: left">Use</th></tr></thead><tbody><tr><td style="text-align: left"><code class="code">libstdc++-v3/include/std/*</code></td><td style="text-align: left">Preprocessor code to redirect to profile extension headers.</td></tr><tr><td style="text-align: left"><code class="code">libstdc++-v3/include/profile/*</code></td><td style="text-align: left">Profile extension public headers (map, vector, ...).</td></tr><tr><td style="text-align: left"><code class="code">libstdc++-v3/include/profile/impl/*</code></td><td style="text-align: left">Profile extension internals. Implementation files are | |
4408 | +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> | |
4409 | +<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Design</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1" /><meta name="keywords" content=" C++ , library , profile " /><meta name="keywords" content=" ISO C++ , library " /><meta name="keywords" content=" ISO C++ , runtime , library " /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="profile_mode.html" title="Chapter 19. Profile Mode" /><link rel="prev" href="profile_mode.html" title="Chapter 19. Profile Mode" /><link rel="next" href="bk01pt03ch19s03.html" title="Extensions for Custom Containers" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Design</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="profile_mode.html">Prev</a> </td><th width="60%" align="center">Chapter 19. Profile Mode</th><td width="20%" align="right"> <a accesskey="n" href="bk01pt03ch19s03.html">Next</a></td></tr></table><hr /></div><div class="section" title="Design"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="manual.ext.profile_mode.design"></a>Design</h2></div></div></div><p> | |
4410 | +</p><div class="table"><a id="id689453"></a><p class="title"><strong>Table 19.1. Profile Code Location</strong></p><div class="table-contents"><table summary="Profile Code Location" border="1"><colgroup><col align="left" class="c1" /><col align="left" class="c2" /></colgroup><thead><tr><th align="left">Code Location</th><th align="left">Use</th></tr></thead><tbody><tr><td align="left"><code class="code">libstdc++-v3/include/std/*</code></td><td align="left">Preprocessor code to redirect to profile extension headers.</td></tr><tr><td align="left"><code class="code">libstdc++-v3/include/profile/*</code></td><td align="left">Profile extension public headers (map, vector, ...).</td></tr><tr><td align="left"><code class="code">libstdc++-v3/include/profile/impl/*</code></td><td align="left">Profile extension internals. Implementation files are | |
4411 | only included from <code class="code">impl/profiler.h</code>, which is the only | |
4412 | - file included from the public headers.</td></tr></tbody></table></div></div><br class="table-break"/><p> | |
4413 | -</p><div class="section" title="Wrapper Model"><div class="titlepage"><div><div><h3 class="title"><a id="manual.ext.profile_mode.design.wrapper"/>Wrapper Model</h3></div></div></div><p> | |
4414 | + file included from the public headers.</td></tr></tbody></table></div></div><br class="table-break" /><p> | |
4415 | +</p><div class="section" title="Wrapper Model"><div class="titlepage"><div><div><h3 class="title"><a id="manual.ext.profile_mode.design.wrapper"></a>Wrapper Model</h3></div></div></div><p> | |
4416 | In order to get our instrumented library version included instead of the | |
4417 | release one, | |
4418 | we use the same wrapper model as the debug mode. | |
4419 | @@ -25,7 +25,7 @@ | |
4420 | Currently, mixing the profile mode with debug and parallel extensions is | |
4421 | not allowed. Mixing them at compile time will result in preprocessor errors. | |
4422 | Mixing them at link time is undefined. | |
4423 | - </p></div><div class="section" title="Instrumentation"><div class="titlepage"><div><div><h3 class="title"><a id="manual.ext.profile_mode.design.instrumentation"/>Instrumentation</h3></div></div></div><p> | |
4424 | + </p></div><div class="section" title="Instrumentation"><div class="titlepage"><div><div><h3 class="title"><a id="manual.ext.profile_mode.design.instrumentation"></a>Instrumentation</h3></div></div></div><p> | |
4425 | Instead of instrumenting every public entry and exit point, | |
4426 | we chose to add instrumentation on demand, as needed | |
4427 | by individual diagnostics. | |
4428 | @@ -44,7 +44,7 @@ | |
4429 | </p><p> | |
4430 | All the instrumentation on/off compile time switches live in | |
4431 | <code class="code">include/profile/profiler.h</code>. | |
4432 | - </p></div><div class="section" title="Run Time Behavior"><div class="titlepage"><div><div><h3 class="title"><a id="manual.ext.profile_mode.design.rtlib"/>Run Time Behavior</h3></div></div></div><p> | |
4433 | + </p></div><div class="section" title="Run Time Behavior"><div class="titlepage"><div><div><h3 class="title"><a id="manual.ext.profile_mode.design.rtlib"></a>Run Time Behavior</h3></div></div></div><p> | |
4434 | For practical reasons, the instrumentation library processes the trace | |
4435 | partially | |
4436 | rather than dumping it to disk in raw form. Each event is processed when | |
4437 | @@ -61,20 +61,20 @@ | |
4438 | call stack of its constructor location. | |
4439 | </p><p> | |
4440 | For details, see | |
4441 | - <a class="link" href="http://dx.doi.org/10.1109/CGO.2009.36">paper presented at | |
4442 | + <a class="link" href="http://dx.doi.org/10.1109/CGO.2009.36" target="_top">paper presented at | |
4443 | CGO 2009</a>. | |
4444 | - </p></div><div class="section" title="Analysis and Diagnostics"><div class="titlepage"><div><div><h3 class="title"><a id="manual.ext.profile_mode.design.analysis"/>Analysis and Diagnostics</h3></div></div></div><p> | |
4445 | + </p></div><div class="section" title="Analysis and Diagnostics"><div class="titlepage"><div><div><h3 class="title"><a id="manual.ext.profile_mode.design.analysis"></a>Analysis and Diagnostics</h3></div></div></div><p> | |
4446 | Final analysis takes place offline, and it is based entirely on the | |
4447 | generated trace and debugging info in the application binary. | |
4448 | See section Diagnostics for a list of analysis types that we plan to support. | |
4449 | </p><p> | |
4450 | The input to the analysis is a table indexed by profile type and call stack. | |
4451 | The data type for each entry depends on the profile type. | |
4452 | - </p></div><div class="section" title="Cost Model"><div class="titlepage"><div><div><h3 class="title"><a id="manual.ext.profile_mode.design.cost-model"/>Cost Model</h3></div></div></div><p> | |
4453 | + </p></div><div class="section" title="Cost Model"><div class="titlepage"><div><div><h3 class="title"><a id="manual.ext.profile_mode.design.cost-model"></a>Cost Model</h3></div></div></div><p> | |
4454 | While it is likely that cost models become complex as we get into | |
4455 | more sophisticated analysis, we will try to follow a simple set of rules | |
4456 | at the beginning. | |
4457 | - </p><div class="itemizedlist"><ul class="itemizedlist"><li class="listitem"><p><span class="emphasis"><em>Relative benefit estimation:</em></span> | |
4458 | + </p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p><span class="emphasis"><em>Relative benefit estimation:</em></span> | |
4459 | The idea is to estimate or measure the cost of all operations | |
4460 | in the original scenario versus the scenario we advise to switch to. | |
4461 | For instance, when advising to change a vector to a list, an occurrence | |
4462 | @@ -98,7 +98,7 @@ | |
4463 | For instance, when considering switching from <code class="code">set</code> to | |
4464 | <code class="code">unordered_set</code>, if we detect use of operator <code class="code">++</code>, | |
4465 | we will simply not issue the advice, since this could signal that the use | |
4466 | - care require a sorted container.</p></li></ul></div></div><div class="section" title="Reports"><div class="titlepage"><div><div><h3 class="title"><a id="manual.ext.profile_mode.design.reports"/>Reports</h3></div></div></div><p> | |
4467 | + care require a sorted container.</p></li></ul></div></div><div class="section" title="Reports"><div class="titlepage"><div><div><h3 class="title"><a id="manual.ext.profile_mode.design.reports"></a>Reports</h3></div></div></div><p> | |
4468 | There are two types of reports. First, if we recognize a pattern for which | |
4469 | we have a substitute that is likely to give better performance, we print | |
4470 | the advice and estimated performance gain. The advice is usually associated | |
4471 | @@ -110,7 +110,7 @@ | |
4472 | which have the worst data locality in actual traversals. | |
4473 | Although this does not offer a solution, | |
4474 | it helps the user focus on the key problems and ignore the uninteresting ones. | |
4475 | - </p></div><div class="section" title="Testing"><div class="titlepage"><div><div><h3 class="title"><a id="manual.ext.profile_mode.design.testing"/>Testing</h3></div></div></div><p> | |
4476 | + </p></div><div class="section" title="Testing"><div class="titlepage"><div><div><h3 class="title"><a id="manual.ext.profile_mode.design.testing"></a>Testing</h3></div></div></div><p> | |
4477 | First, we want to make sure we preserve the behavior of the release mode. | |
4478 | You can just type <code class="code">"make check-profile"</code>, which | |
4479 | builds and runs the whole test suite in profile mode. | |
4480 | @@ -119,4 +119,4 @@ | |
4481 | We created a <code class="code">profile</code> directory in the test suite. | |
4482 | Each diagnostic must come with at least two tests, one for false positives | |
4483 | and one for false negatives. | |
4484 | - </p></div></div><div class="navfooter"><hr/><table width="100%" summary="Navigation footer"><tr><td align="left"><a accesskey="p" href="profile_mode.html">Prev</a> </td><td align="center"><a accesskey="u" href="profile_mode.html">Up</a></td><td align="right"> <a accesskey="n" href="bk01pt03ch19s03.html">Next</a></td></tr><tr><td align="left" valign="top">Chapter 19. Profile Mode </td><td align="center"><a accesskey="h" href="../index.html">Home</a></td><td align="right" valign="top"> Extensions for Custom Containers</td></tr></table></div></body></html> | |
4485 | + </p></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="profile_mode.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="profile_mode.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="bk01pt03ch19s03.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Chapter 19. Profile Mode </td><td width="20%" align="center"><a accesskey="h" href="../index.html">Home</a></td><td width="40%" align="right" valign="top"> Extensions for Custom Containers</td></tr></table></div></body></html> | |
4486 | Index: libstdc++-v3/doc/html/manual/bk01pt03ch19s06.html | |
4487 | =================================================================== | |
9f95000d AM |
4488 | --- libstdc++-v3/doc/html/manual/bk01pt03ch19s06.html (.../tags/gcc_4_7_2_release) (wersja 192468) |
4489 | +++ libstdc++-v3/doc/html/manual/bk01pt03ch19s06.html (.../branches/gcc-4_7-branch) (wersja 192468) | |
5a87b929 AM |
4490 | @@ -1,6 +1,6 @@ |
4491 | <?xml version="1.0" encoding="UTF-8" standalone="no"?> | |
4492 | -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> | |
4493 | -<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Developer Information</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1"/><meta name="keywords" content=" C++ , library , profile "/><meta name="keywords" content=" ISO C++ , library "/><meta name="keywords" content=" ISO C++ , runtime , library "/><link rel="home" href="../index.html" title="The GNU C++ Library"/><link rel="up" href="profile_mode.html" title="Chapter 19. Profile Mode"/><link rel="prev" href="bk01pt03ch19s05.html" title="Implementation Issues"/><link rel="next" href="bk01pt03ch19s07.html" title="Diagnostics"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Developer Information</th></tr><tr><td align="left"><a accesskey="p" href="bk01pt03ch19s05.html">Prev</a> </td><th width="60%" align="center">Chapter 19. Profile Mode</th><td align="right"> <a accesskey="n" href="bk01pt03ch19s07.html">Next</a></td></tr></table><hr/></div><div class="section" title="Developer Information"><div class="titlepage"><div><div><h2 class="title"><a id="manual.ext.profile_mode.developer"/>Developer Information</h2></div></div></div><div class="section" title="Big Picture"><div class="titlepage"><div><div><h3 class="title"><a id="manual.ext.profile_mode.developer.bigpic"/>Big Picture</h3></div></div></div><p>The profile mode headers are included with | |
4494 | +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> | |
4495 | +<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Developer Information</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1" /><meta name="keywords" content=" C++ , library , profile " /><meta name="keywords" content=" ISO C++ , library " /><meta name="keywords" content=" ISO C++ , runtime , library " /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="profile_mode.html" title="Chapter 19. Profile Mode" /><link rel="prev" href="bk01pt03ch19s05.html" title="Implementation Issues" /><link rel="next" href="bk01pt03ch19s07.html" title="Diagnostics" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Developer Information</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="bk01pt03ch19s05.html">Prev</a> </td><th width="60%" align="center">Chapter 19. Profile Mode</th><td width="20%" align="right"> <a accesskey="n" href="bk01pt03ch19s07.html">Next</a></td></tr></table><hr /></div><div class="section" title="Developer Information"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="manual.ext.profile_mode.developer"></a>Developer Information</h2></div></div></div><div class="section" title="Big Picture"><div class="titlepage"><div><div><h3 class="title"><a id="manual.ext.profile_mode.developer.bigpic"></a>Big Picture</h3></div></div></div><p>The profile mode headers are included with | |
4496 | <code class="code">-D_GLIBCXX_PROFILE</code> through preprocessor directives in | |
4497 | <code class="code">include/std/*</code>. | |
4498 | </p><p>Instrumented implementations are provided in | |
4499 | @@ -14,7 +14,7 @@ | |
4500 | must ensure (1) that the call is guarded against reentrance and | |
4501 | (2) that the call can be turned off at compile time using a | |
4502 | <code class="code">-D_GLIBCXX_PROFILE_...</code> compiler option. | |
4503 | - </p></div><div class="section" title="How To Add A Diagnostic"><div class="titlepage"><div><div><h3 class="title"><a id="manual.ext.profile_mode.developer.howto"/>How To Add A Diagnostic</h3></div></div></div><p>Let's say the diagnostic name is "magic". | |
4504 | + </p></div><div class="section" title="How To Add A Diagnostic"><div class="titlepage"><div><div><h3 class="title"><a id="manual.ext.profile_mode.developer.howto"></a>How To Add A Diagnostic</h3></div></div></div><p>Let's say the diagnostic name is "magic". | |
4505 | </p><p>If you need to instrument a header not already under | |
4506 | <code class="code">include/profile/*</code>, first edit the corresponding header | |
4507 | under <code class="code">include/std/</code> and add a preprocessor directive such | |
4508 | @@ -42,7 +42,7 @@ | |
4509 | All names of methods in namespace <code class="code">__gnu_profile</code> called from | |
4510 | <code class="code">profiler.h</code> must start with <code class="code">__trace_magic_</code>. | |
4511 | </p><p>Add the implementation of the diagnostic. | |
4512 | - </p><div class="itemizedlist"><ul class="itemizedlist"><li class="listitem"><p> | |
4513 | + </p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p> | |
4514 | Create new file <code class="code">include/profile/impl/profiler_magic.h</code>. | |
4515 | </p></li><li class="listitem"><p> | |
4516 | Define class <code class="code">__magic_info: public __object_info_base</code>. | |
4517 | @@ -65,4 +65,4 @@ | |
4518 | <code class="code">include/profile/impl/profiler_trace.h</code>. Use | |
4519 | <code class="code">__trace_vector_to_list</code> as an example. | |
4520 | </p><p>Add documentation in file <code class="code">doc/xml/manual/profile_mode.xml</code>. | |
4521 | - </p></div></div><div class="navfooter"><hr/><table width="100%" summary="Navigation footer"><tr><td align="left"><a accesskey="p" href="bk01pt03ch19s05.html">Prev</a> </td><td align="center"><a accesskey="u" href="profile_mode.html">Up</a></td><td align="right"> <a accesskey="n" href="bk01pt03ch19s07.html">Next</a></td></tr><tr><td align="left" valign="top">Implementation Issues </td><td align="center"><a accesskey="h" href="../index.html">Home</a></td><td align="right" valign="top"> Diagnostics</td></tr></table></div></body></html> | |
4522 | + </p></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="bk01pt03ch19s05.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="profile_mode.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="bk01pt03ch19s07.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Implementation Issues </td><td width="20%" align="center"><a accesskey="h" href="../index.html">Home</a></td><td width="40%" align="right" valign="top"> Diagnostics</td></tr></table></div></body></html> | |
4523 | Index: libstdc++-v3/doc/html/manual/license.html | |
4524 | =================================================================== | |
9f95000d AM |
4525 | --- libstdc++-v3/doc/html/manual/license.html (.../tags/gcc_4_7_2_release) (wersja 192468) |
4526 | +++ libstdc++-v3/doc/html/manual/license.html (.../branches/gcc-4_7-branch) (wersja 192468) | |
5a87b929 AM |
4527 | @@ -1,93 +1,93 @@ |
4528 | <?xml version="1.0" encoding="UTF-8" standalone="no"?> | |
4529 | -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> | |
4530 | -<html xmlns="http://www.w3.org/1999/xhtml"><head><title>License</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1"/><meta name="keywords" content=" ISO C++ , library "/><meta name="keywords" content=" ISO C++ , runtime , library "/><link rel="home" href="../index.html" title="The GNU C++ Library"/><link rel="up" href="status.html" title="Chapter 1. Status"/><link rel="prev" href="status.html" title="Chapter 1. Status"/><link rel="next" href="bugs.html" title="Bugs"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">License</th></tr><tr><td align="left"><a accesskey="p" href="status.html">Prev</a> </td><th width="60%" align="center">Chapter 1. Status</th><td align="right"> <a accesskey="n" href="bugs.html">Next</a></td></tr></table><hr/></div><div class="section" title="License"><div class="titlepage"><div><div><h2 class="title"><a id="manual.intro.status.license"/>License</h2></div></div></div><p> | |
4531 | +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> | |
4532 | +<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>License</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1" /><meta name="keywords" content=" ISO C++ , library " /><meta name="keywords" content=" ISO C++ , runtime , library " /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="status.html" title="Chapter 1. Status" /><link rel="prev" href="status.html" title="Chapter 1. Status" /><link rel="next" href="bugs.html" title="Bugs" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">License</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="status.html">Prev</a> </td><th width="60%" align="center">Chapter 1. Status</th><td width="20%" align="right"> <a accesskey="n" href="bugs.html">Next</a></td></tr></table><hr /></div><div class="section" title="License"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="manual.intro.status.license"></a>License</h2></div></div></div><p> | |
4533 | There are two licenses affecting GNU libstdc++: one for the code, | |
4534 | and one for the documentation. | |
4535 | </p><p> | |
4536 | There is a license section in the FAQ regarding common <a class="link" href="../faq.html#faq.license">questions</a>. If you have more | |
4537 | - questions, ask the FSF or the <a class="link" href="http://gcc.gnu.org/lists.html">gcc mailing list</a>. | |
4538 | - </p><div class="section" title="The Code: GPL"><div class="titlepage"><div><div><h3 class="title"><a id="manual.intro.status.license.gpl"/>The Code: GPL</h3></div></div></div><p> | |
4539 | + questions, ask the FSF or the <a class="link" href="http://gcc.gnu.org/lists.html" target="_top">gcc mailing list</a>. | |
4540 | + </p><div class="section" title="The Code: GPL"><div class="titlepage"><div><div><h3 class="title"><a id="manual.intro.status.license.gpl"></a>The Code: GPL</h3></div></div></div><p> | |
4541 | The source code is distributed under the <a class="link" href="appendix_gpl.html" title="Appendix D. GNU General Public License version 3">GNU General Public License version 3</a>, | |
4542 | with the addition under section 7 of an exception described in | |
4543 | the <span class="quote">“<span class="quote">GCC Runtime Library Exception, version 3.1</span>”</span> | |
4544 | as follows (or see the file COPYING.RUNTIME): | |
4545 | - </p><div class="literallayout"><p><br/> | |
4546 | -GCC RUNTIME LIBRARY EXCEPTION<br/> | |
4547 | -<br/> | |
4548 | -Version 3.1, 31 March 2009<br/> | |
4549 | -<br/> | |
4550 | -Copyright (C) 2009 <a class="link" href="http://www.fsf.org">Free Software Foundation, Inc.</a><br/> | |
4551 | -<br/> | |
4552 | -Everyone is permitted to copy and distribute verbatim copies of this<br/> | |
4553 | -license document, but changing it is not allowed.<br/> | |
4554 | -<br/> | |
4555 | -This GCC Runtime Library Exception ("Exception") is an additional<br/> | |
4556 | -permission under section 7 of the GNU General Public License, version<br/> | |
4557 | -3 ("GPLv3"). It applies to a given file (the "Runtime Library") that<br/> | |
4558 | -bears a notice placed by the copyright holder of the file stating that<br/> | |
4559 | -the file is governed by GPLv3 along with this Exception.<br/> | |
4560 | -<br/> | |
4561 | -When you use GCC to compile a program, GCC may combine portions of<br/> | |
4562 | -certain GCC header files and runtime libraries with the compiled<br/> | |
4563 | -program. The purpose of this Exception is to allow compilation of<br/> | |
4564 | -non-GPL (including proprietary) programs to use, in this way, the<br/> | |
4565 | -header files and runtime libraries covered by this Exception.<br/> | |
4566 | -<br/> | |
4567 | -0. Definitions.<br/> | |
4568 | -<br/> | |
4569 | -A file is an "Independent Module" if it either requires the Runtime<br/> | |
4570 | -Library for execution after a Compilation Process, or makes use of an<br/> | |
4571 | -interface provided by the Runtime Library, but is not otherwise based<br/> | |
4572 | -on the Runtime Library.<br/> | |
4573 | -<br/> | |
4574 | -"GCC" means a version of the GNU Compiler Collection, with or without<br/> | |
4575 | -modifications, governed by version 3 (or a specified later version) of<br/> | |
4576 | -the GNU General Public License (GPL) with the option of using any<br/> | |
4577 | -subsequent versions published by the FSF.<br/> | |
4578 | -<br/> | |
4579 | -"GPL-compatible Software" is software whose conditions of propagation,<br/> | |
4580 | -modification and use would permit combination with GCC in accord with<br/> | |
4581 | -the license of GCC.<br/> | |
4582 | -<br/> | |
4583 | -"Target Code" refers to output from any compiler for a real or virtual<br/> | |
4584 | -target processor architecture, in executable form or suitable for<br/> | |
4585 | -input to an assembler, loader, linker and/or execution<br/> | |
4586 | -phase. Notwithstanding that, Target Code does not include data in any<br/> | |
4587 | -format that is used as a compiler intermediate representation, or used<br/> | |
4588 | -for producing a compiler intermediate representation.<br/> | |
4589 | -<br/> | |
4590 | -The "Compilation Process" transforms code entirely represented in<br/> | |
4591 | -non-intermediate languages designed for human-written code, and/or in<br/> | |
4592 | -Java Virtual Machine byte code, into Target Code. Thus, for example,<br/> | |
4593 | -use of source code generators and preprocessors need not be considered<br/> | |
4594 | -part of the Compilation Process, since the Compilation Process can be<br/> | |
4595 | -understood as starting with the output of the generators or<br/> | |
4596 | -preprocessors.<br/> | |
4597 | -<br/> | |
4598 | -A Compilation Process is "Eligible" if it is done using GCC, alone or<br/> | |
4599 | -with other GPL-compatible software, or if it is done without using any<br/> | |
4600 | -work based on GCC. For example, using non-GPL-compatible Software to<br/> | |
4601 | -optimize any GCC intermediate representations would not qualify as an<br/> | |
4602 | -Eligible Compilation Process.<br/> | |
4603 | -<br/> | |
4604 | -1. Grant of Additional Permission.<br/> | |
4605 | -<br/> | |
4606 | -You have permission to propagate a work of Target Code formed by<br/> | |
4607 | -combining the Runtime Library with Independent Modules, even if such<br/> | |
4608 | -propagation would otherwise violate the terms of GPLv3, provided that<br/> | |
4609 | -all Target Code was generated by Eligible Compilation Processes. You<br/> | |
4610 | -may then convey such a combination under terms of your choice,<br/> | |
4611 | -consistent with the licensing of the Independent Modules.<br/> | |
4612 | -<br/> | |
4613 | -2. No Weakening of GCC Copyleft.<br/> | |
4614 | -<br/> | |
4615 | -The availability of this Exception does not imply any general<br/> | |
4616 | -presumption that third-party software is unaffected by the copyleft<br/> | |
4617 | -requirements of the license of GCC.<br/> | |
4618 | + </p><div class="literallayout"><p><br /> | |
4619 | +GCC RUNTIME LIBRARY EXCEPTION<br /> | |
4620 | +<br /> | |
4621 | +Version 3.1, 31 March 2009<br /> | |
4622 | +<br /> | |
4623 | +Copyright (C) 2009 <a class="link" href="http://www.fsf.org" target="_top">Free Software Foundation, Inc.</a><br /> | |
4624 | +<br /> | |
4625 | +Everyone is permitted to copy and distribute verbatim copies of this<br /> | |
4626 | +license document, but changing it is not allowed.<br /> | |
4627 | +<br /> | |
4628 | +This GCC Runtime Library Exception ("Exception") is an additional<br /> | |
4629 | +permission under section 7 of the GNU General Public License, version<br /> | |
4630 | +3 ("GPLv3"). It applies to a given file (the "Runtime Library") that<br /> | |
4631 | +bears a notice placed by the copyright holder of the file stating that<br /> | |
4632 | +the file is governed by GPLv3 along with this Exception.<br /> | |
4633 | +<br /> | |
4634 | +When you use GCC to compile a program, GCC may combine portions of<br /> | |
4635 | +certain GCC header files and runtime libraries with the compiled<br /> | |
4636 | +program. The purpose of this Exception is to allow compilation of<br /> | |
4637 | +non-GPL (including proprietary) programs to use, in this way, the<br /> | |
4638 | +header files and runtime libraries covered by this Exception.<br /> | |
4639 | +<br /> | |
4640 | +0. Definitions.<br /> | |
4641 | +<br /> | |
4642 | +A file is an "Independent Module" if it either requires the Runtime<br /> | |
4643 | +Library for execution after a Compilation Process, or makes use of an<br /> | |
4644 | +interface provided by the Runtime Library, but is not otherwise based<br /> | |
4645 | +on the Runtime Library.<br /> | |
4646 | +<br /> | |
4647 | +"GCC" means a version of the GNU Compiler Collection, with or without<br /> | |
4648 | +modifications, governed by version 3 (or a specified later version) of<br /> | |
4649 | +the GNU General Public License (GPL) with the option of using any<br /> | |
4650 | +subsequent versions published by the FSF.<br /> | |
4651 | +<br /> | |
4652 | +"GPL-compatible Software" is software whose conditions of propagation,<br /> | |
4653 | +modification and use would permit combination with GCC in accord with<br /> | |
4654 | +the license of GCC.<br /> | |
4655 | +<br /> | |
4656 | +"Target Code" refers to output from any compiler for a real or virtual<br /> | |
4657 | +target processor architecture, in executable form or suitable for<br /> | |
4658 | +input to an assembler, loader, linker and/or execution<br /> | |
4659 | +phase. Notwithstanding that, Target Code does not include data in any<br /> | |
4660 | +format that is used as a compiler intermediate representation, or used<br /> | |
4661 | +for producing a compiler intermediate representation.<br /> | |
4662 | +<br /> | |
4663 | +The "Compilation Process" transforms code entirely represented in<br /> | |
4664 | +non-intermediate languages designed for human-written code, and/or in<br /> | |
4665 | +Java Virtual Machine byte code, into Target Code. Thus, for example,<br /> | |
4666 | +use of source code generators and preprocessors need not be considered<br /> | |
4667 | +part of the Compilation Process, since the Compilation Process can be<br /> | |
4668 | +understood as starting with the output of the generators or<br /> | |
4669 | +preprocessors.<br /> | |
4670 | +<br /> | |
4671 | +A Compilation Process is "Eligible" if it is done using GCC, alone or<br /> | |
4672 | +with other GPL-compatible software, or if it is done without using any<br /> | |
4673 | +work based on GCC. For example, using non-GPL-compatible Software to<br /> | |
4674 | +optimize any GCC intermediate representations would not qualify as an<br /> | |
4675 | +Eligible Compilation Process.<br /> | |
4676 | +<br /> | |
4677 | +1. Grant of Additional Permission.<br /> | |
4678 | +<br /> | |
4679 | +You have permission to propagate a work of Target Code formed by<br /> | |
4680 | +combining the Runtime Library with Independent Modules, even if such<br /> | |
4681 | +propagation would otherwise violate the terms of GPLv3, provided that<br /> | |
4682 | +all Target Code was generated by Eligible Compilation Processes. You<br /> | |
4683 | +may then convey such a combination under terms of your choice,<br /> | |
4684 | +consistent with the licensing of the Independent Modules.<br /> | |
4685 | +<br /> | |
4686 | +2. No Weakening of GCC Copyleft.<br /> | |
4687 | +<br /> | |
4688 | +The availability of this Exception does not imply any general<br /> | |
4689 | +presumption that third-party software is unaffected by the copyleft<br /> | |
4690 | +requirements of the license of GCC.<br /> | |
4691 | </p></div><p> | |
4692 | Hopefully that text is self-explanatory. If it isn't, you need to speak | |
4693 | to your lawyer, or the Free Software Foundation. | |
4694 | - </p></div><div class="section" title="The Documentation: GPL, FDL"><div class="titlepage"><div><div><h3 class="title"><a id="manual.intro.status.license.fdl"/>The Documentation: GPL, FDL</h3></div></div></div><p> | |
4695 | + </p></div><div class="section" title="The Documentation: GPL, FDL"><div class="titlepage"><div><div><h3 class="title"><a id="manual.intro.status.license.fdl"></a>The Documentation: GPL, FDL</h3></div></div></div><p> | |
4696 | The documentation shipped with the library and made available over | |
4697 | the web, excluding the pages generated from source comments, are | |
4698 | copyrighted by the Free Software Foundation, and placed under the | |
4699 | @@ -102,4 +102,4 @@ | |
4700 | </p><p> | |
4701 | If you plan on making copies of the documentation, please let us know. | |
4702 | We can probably offer suggestions. | |
4703 | - </p></div></div><div class="navfooter"><hr/><table width="100%" summary="Navigation footer"><tr><td align="left"><a accesskey="p" href="status.html">Prev</a> </td><td align="center"><a accesskey="u" href="status.html">Up</a></td><td align="right"> <a accesskey="n" href="bugs.html">Next</a></td></tr><tr><td align="left" valign="top">Chapter 1. Status </td><td align="center"><a accesskey="h" href="../index.html">Home</a></td><td align="right" valign="top"> Bugs</td></tr></table></div></body></html> | |
4704 | + </p></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="status.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="status.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="bugs.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Chapter 1. Status </td><td width="20%" align="center"><a accesskey="h" href="../index.html">Home</a></td><td width="40%" align="right" valign="top"> Bugs</td></tr></table></div></body></html> | |
4705 | Index: libstdc++-v3/doc/html/manual/numerics.html | |
4706 | =================================================================== | |
9f95000d AM |
4707 | --- libstdc++-v3/doc/html/manual/numerics.html (.../tags/gcc_4_7_2_release) (wersja 192468) |
4708 | +++ libstdc++-v3/doc/html/manual/numerics.html (.../branches/gcc-4_7-branch) (wersja 192468) | |
5a87b929 AM |
4709 | @@ -1,22 +1,22 @@ |
4710 | <?xml version="1.0" encoding="UTF-8" standalone="no"?> | |
4711 | -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> | |
4712 | -<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Chapter 12. Numerics</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1"/><meta name="keywords" content=" ISO C++ , library "/><meta name="keywords" content=" ISO C++ , runtime , library "/><link rel="home" href="../index.html" title="The GNU C++ Library"/><link rel="up" href="bk01pt02.html" title="Part II. Standard Contents"/><link rel="prev" href="algorithms.html" title="Chapter 11. Algorithms"/><link rel="next" href="generalized_numeric_operations.html" title="Generalized Operations"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 12. | |
4713 | +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> | |
4714 | +<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Chapter 12. Numerics</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1" /><meta name="keywords" content=" ISO C++ , library " /><meta name="keywords" content=" ISO C++ , runtime , library " /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="bk01pt02.html" title="Part II. Standard Contents" /><link rel="prev" href="algorithms.html" title="Chapter 11. Algorithms" /><link rel="next" href="generalized_numeric_operations.html" title="Generalized Operations" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 12. | |
4715 | Numerics | |
4716 | ||
4717 | -</th></tr><tr><td align="left"><a accesskey="p" href="algorithms.html">Prev</a> </td><th width="60%" align="center">Part II. | |
4718 | +</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="algorithms.html">Prev</a> </td><th width="60%" align="center">Part II. | |
4719 | Standard Contents | |
4720 | - </th><td align="right"> <a accesskey="n" href="generalized_numeric_operations.html">Next</a></td></tr></table><hr/></div><div class="chapter" title="Chapter 12. Numerics"><div class="titlepage"><div><div><h2 class="title"><a id="std.numerics"/>Chapter 12. | |
4721 | + </th><td width="20%" align="right"> <a accesskey="n" href="generalized_numeric_operations.html">Next</a></td></tr></table><hr /></div><div class="chapter" title="Chapter 12. Numerics"><div class="titlepage"><div><div><h2 class="title"><a id="std.numerics"></a>Chapter 12. | |
4722 | Numerics | |
4723 | - <a id="id504587" class="indexterm"/> | |
4724 | -</h2></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl><dt><span class="section"><a href="numerics.html#std.numerics.complex">Complex</a></span></dt><dd><dl><dt><span class="section"><a href="numerics.html#numerics.complex.processing">complex Processing</a></span></dt></dl></dd><dt><span class="section"><a href="generalized_numeric_operations.html">Generalized Operations</a></span></dt><dt><span class="section"><a href="numerics_and_c.html">Interacting with C</a></span></dt><dd><dl><dt><span class="section"><a href="numerics_and_c.html#numerics.c.array">Numerics vs. Arrays</a></span></dt><dt><span class="section"><a href="numerics_and_c.html#numerics.c.c99">C99</a></span></dt></dl></dd></dl></div><div class="section" title="Complex"><div class="titlepage"><div><div><h2 class="title"><a id="std.numerics.complex"/>Complex</h2></div></div></div><p> | |
4725 | - </p><div class="section" title="complex Processing"><div class="titlepage"><div><div><h3 class="title"><a id="numerics.complex.processing"/>complex Processing</h3></div></div></div><p> | |
4726 | + <a id="id683073" class="indexterm"></a> | |
4727 | +</h2></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl><dt><span class="section"><a href="numerics.html#std.numerics.complex">Complex</a></span></dt><dd><dl><dt><span class="section"><a href="numerics.html#numerics.complex.processing">complex Processing</a></span></dt></dl></dd><dt><span class="section"><a href="generalized_numeric_operations.html">Generalized Operations</a></span></dt><dt><span class="section"><a href="numerics_and_c.html">Interacting with C</a></span></dt><dd><dl><dt><span class="section"><a href="numerics_and_c.html#numerics.c.array">Numerics vs. Arrays</a></span></dt><dt><span class="section"><a href="numerics_and_c.html#numerics.c.c99">C99</a></span></dt></dl></dd></dl></div><div class="section" title="Complex"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="std.numerics.complex"></a>Complex</h2></div></div></div><p> | |
4728 | + </p><div class="section" title="complex Processing"><div class="titlepage"><div><div><h3 class="title"><a id="numerics.complex.processing"></a>complex Processing</h3></div></div></div><p> | |
4729 | </p><p>Using <code class="code">complex<></code> becomes even more comple- er, sorry, | |
4730 | <span class="emphasis"><em>complicated</em></span>, with the not-quite-gratuitously-incompatible | |
4731 | addition of complex types to the C language. David Tribble has | |
4732 | compiled a list of C++98 and C99 conflict points; his description of | |
4733 | C's new type versus those of C++ and how to get them playing together | |
4734 | nicely is | |
4735 | -<a class="link" href="http://david.tribble.com/text/cdiffs.htm#C99-complex">here</a>. | |
4736 | +<a class="link" href="http://david.tribble.com/text/cdiffs.htm#C99-complex" target="_top">here</a>. | |
4737 | </p><p><code class="code">complex<></code> is intended to be instantiated with a | |
4738 | floating-point type. As long as you meet that and some other basic | |
4739 | requirements, then the resulting instantiation has all of the usual | |
4740 | @@ -24,7 +24,7 @@ | |
4741 | and <code class="code">op>></code> that work with iostreams: <code class="code">op<<</code> | |
4742 | prints <code class="code">(u,v)</code> and <code class="code">op>></code> can read <code class="code">u</code>, | |
4743 | <code class="code">(u)</code>, and <code class="code">(u,v)</code>. | |
4744 | - </p></div></div></div><div class="navfooter"><hr/><table width="100%" summary="Navigation footer"><tr><td align="left"><a accesskey="p" href="algorithms.html">Prev</a> </td><td align="center"><a accesskey="u" href="bk01pt02.html">Up</a></td><td align="right"> <a accesskey="n" href="generalized_numeric_operations.html">Next</a></td></tr><tr><td align="left" valign="top">Chapter 11. | |
4745 | + </p></div></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="algorithms.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="bk01pt02.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="generalized_numeric_operations.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Chapter 11. | |
4746 | Algorithms | |
4747 | ||
4748 | - </td><td align="center"><a accesskey="h" href="../index.html">Home</a></td><td align="right" valign="top"> Generalized Operations</td></tr></table></div></body></html> | |
4749 | + </td><td width="20%" align="center"><a accesskey="h" href="../index.html">Home</a></td><td width="40%" align="right" valign="top"> Generalized Operations</td></tr></table></div></body></html> | |
4750 | Index: libstdc++-v3/doc/html/manual/using_exceptions.html | |
4751 | =================================================================== | |
9f95000d AM |
4752 | --- libstdc++-v3/doc/html/manual/using_exceptions.html (.../tags/gcc_4_7_2_release) (wersja 192468) |
4753 | +++ libstdc++-v3/doc/html/manual/using_exceptions.html (.../branches/gcc-4_7-branch) (wersja 192468) | |
5a87b929 AM |
4754 | @@ -1,6 +1,6 @@ |
4755 | <?xml version="1.0" encoding="UTF-8" standalone="no"?> | |
4756 | -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> | |
4757 | -<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Exceptions</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1"/><meta name="keywords" content=" C++ , exception , error , exception neutrality , exception safety , exception propagation , -fno-exceptions "/><meta name="keywords" content=" ISO C++ , library "/><meta name="keywords" content=" ISO C++ , runtime , library "/><link rel="home" href="../index.html" title="The GNU C++ Library"/><link rel="up" href="using.html" title="Chapter 3. Using"/><link rel="prev" href="using_concurrency.html" title="Concurrency"/><link rel="next" href="debug.html" title="Debugging Support"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Exceptions</th></tr><tr><td align="left"><a accesskey="p" href="using_concurrency.html">Prev</a> </td><th width="60%" align="center">Chapter 3. Using</th><td align="right"> <a accesskey="n" href="debug.html">Next</a></td></tr></table><hr/></div><div class="section" title="Exceptions"><div class="titlepage"><div><div><h2 class="title"><a id="manual.intro.using.exceptions"/>Exceptions</h2></div></div></div><p> | |
4758 | +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> | |
4759 | +<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Exceptions</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1" /><meta name="keywords" content=" C++ , exception , error , exception neutrality , exception safety , exception propagation , -fno-exceptions " /><meta name="keywords" content=" ISO C++ , library " /><meta name="keywords" content=" ISO C++ , runtime , library " /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="using.html" title="Chapter 3. Using" /><link rel="prev" href="using_concurrency.html" title="Concurrency" /><link rel="next" href="debug.html" title="Debugging Support" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Exceptions</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="using_concurrency.html">Prev</a> </td><th width="60%" align="center">Chapter 3. Using</th><td width="20%" align="right"> <a accesskey="n" href="debug.html">Next</a></td></tr></table><hr /></div><div class="section" title="Exceptions"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="manual.intro.using.exceptions"></a>Exceptions</h2></div></div></div><p> | |
4760 | The C++ language provides language support for stack unwinding | |
4761 | with <code class="literal">try</code> and <code class="literal">catch</code> blocks and | |
4762 | the <code class="literal">throw</code> keyword. | |
4763 | @@ -12,7 +12,7 @@ | |
4764 | </p><p> | |
4765 | Two general topics of discussion follow: | |
4766 | exception neutrality and exception safety. | |
4767 | -</p><div class="section" title="Exception Safety"><div class="titlepage"><div><div><h3 class="title"><a id="intro.using.exception.safety"/>Exception Safety</h3></div></div></div><p> | |
4768 | +</p><div class="section" title="Exception Safety"><div class="titlepage"><div><div><h3 class="title"><a id="intro.using.exception.safety"></a>Exception Safety</h3></div></div></div><p> | |
4769 | What is exception-safe code? | |
4770 | </p><p> | |
4771 | Will define this as reasonable and well-defined behavior by classes | |
4772 | @@ -27,7 +27,7 @@ | |
4773 | Using the layered approach from Abrahams, can classify library | |
4774 | components as providing set levels of safety. These will be called | |
4775 | exception guarantees, and can be divided into three categories. | |
4776 | - </p><div class="itemizedlist"><ul class="itemizedlist"><li class="listitem"><p> | |
4777 | + </p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p> | |
4778 | One. Don't throw. | |
4779 | </p><p> | |
4780 | As specified in 23.2.1 general container requirements. Applicable | |
4781 | @@ -51,7 +51,7 @@ | |
4782 | Member functions <code class="function">insert</code> of a single | |
4783 | element, <code class="function">push_back</code>, <code class="function">push_front</code>, | |
4784 | and <code class="function">rehash</code>. | |
4785 | - </p></li></ul></div></div><div class="section" title="Exception Neutrality"><div class="titlepage"><div><div><h3 class="title"><a id="intro.using.exception.propagating"/>Exception Neutrality</h3></div></div></div><p> | |
4786 | + </p></li></ul></div></div><div class="section" title="Exception Neutrality"><div class="titlepage"><div><div><h3 class="title"><a id="intro.using.exception.propagating"></a>Exception Neutrality</h3></div></div></div><p> | |
4787 | Simply put, once thrown an exception object should continue in | |
4788 | flight unless handled explicitly. In practice, this means | |
4789 | propagating exceptions should not be swallowed in | |
4790 | @@ -75,7 +75,7 @@ | |
4791 | Unfortunately, this tends to be more of a guideline than a strict | |
4792 | rule as applied to the standard library. As such, the following is | |
4793 | a list of known problem areas where exceptions are not propagated. | |
4794 | - </p><div class="itemizedlist"><ul class="itemizedlist"><li class="listitem"><p> | |
4795 | + </p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p> | |
4796 | Input/Output | |
4797 | </p><p> | |
4798 | The destructor <code class="function">ios_base::Init::~Init()</code> | |
4799 | @@ -101,7 +101,7 @@ | |
4800 | The constructors of <code class="classname">thread</code> that take a | |
4801 | callable function argument swallow all exceptions resulting from | |
4802 | executing the function argument. | |
4803 | - </p></li></ul></div></div><div class="section" title="Doing without"><div class="titlepage"><div><div><h3 class="title"><a id="intro.using.exception.no"/>Doing without</h3></div></div></div><p> | |
4804 | + </p></li></ul></div></div><div class="section" title="Doing without"><div class="titlepage"><div><div><h3 class="title"><a id="intro.using.exception.no"></a>Doing without</h3></div></div></div><p> | |
4805 | C++ is a language that strives to be as efficient as is possible | |
4806 | in delivering features. As such, considerable care is used by both | |
4807 | language implementer and designers to make sure unused features | |
4808 | @@ -113,7 +113,7 @@ | |
4809 | support <code class="literal">try</code> and <code class="literal">catch</code> blocks | |
4810 | and thrown objects. (Language support | |
4811 | for <code class="literal">-fno-exceptions</code> is documented in the GNU | |
4812 | - GCC <a class="link" href="http://gcc.gnu.org/onlinedocs/gcc/Code-Gen-Options.html#Code-Gen-Options">manual</a>.) | |
4813 | + GCC <a class="link" href="http://gcc.gnu.org/onlinedocs/gcc/Code-Gen-Options.html#Code-Gen-Options" target="_top">manual</a>.) | |
4814 | </p><p>Before detailing the library support | |
4815 | for <code class="literal">-fno-exceptions</code>, first a passing note on | |
4816 | the things lost when this flag is used: it will break exceptions | |
4817 | @@ -220,7 +220,7 @@ | |
4818 | substitution of the C language keyword | |
4819 | <code class="literal">const</code> with the uglified | |
4820 | doppelganger <code class="literal">__const</code>. | |
4821 | -</p></div><div class="section" title="Compatibility"><div class="titlepage"><div><div><h3 class="title"><a id="intro.using.exception.compat"/>Compatibility</h3></div></div></div><div class="section" title="With C"><div class="titlepage"><div><div><h4 class="title"><a id="using.exception.compat.c"/>With <code class="literal">C</code></h4></div></div></div><p> | |
4822 | +</p></div><div class="section" title="Compatibility"><div class="titlepage"><div><div><h3 class="title"><a id="intro.using.exception.compat"></a>Compatibility</h3></div></div></div><div class="section" title="With C"><div class="titlepage"><div><div><h4 class="title"><a id="using.exception.compat.c"></a>With <code class="literal">C</code></h4></div></div></div><p> | |
4823 | C language code that is expecting to interoperate with C++ should be | |
4824 | compiled with <code class="literal">-fexceptions</code>. This will make | |
4825 | debugging a C language function called as part of C++-induced stack | |
4826 | @@ -235,7 +235,7 @@ | |
4827 | getting these details right. For GNU systems, all appropriate parts | |
4828 | of the GNU C library are already compiled | |
4829 | with <code class="literal">-fexceptions</code>. | |
4830 | -</p></div><div class="section" title="With POSIX thread cancellation"><div class="titlepage"><div><div><h4 class="title"><a id="using.exception.compat.posix"/>With <code class="literal">POSIX</code> thread cancellation</h4></div></div></div><p> | |
4831 | +</p></div><div class="section" title="With POSIX thread cancellation"><div class="titlepage"><div><div><h4 class="title"><a id="using.exception.compat.posix"></a>With <code class="literal">POSIX</code> thread cancellation</h4></div></div></div><p> | |
4832 | GNU systems re-use some of the exception handling mechanisms to | |
4833 | track control flow for <code class="literal">POSIX</code> thread cancellation. | |
4834 | </p><p> | |
4835 | @@ -266,8 +266,8 @@ | |
4836 | } | |
4837 | catch(...) | |
4838 | { this->_M_setstate(ios_base::badbit); } | |
4839 | -</pre></div></div><div class="bibliography" title="Bibliography"><div class="titlepage"><div><div><h3 class="title"><a id="using.exceptions.biblio"/>Bibliography</h3></div></div></div><div class="biblioentry" title="System Interface Definitions, Issue 7 (IEEE Std. 1003.1-2008)"><a id="id483021"/><p><span class="title"><em> | |
4840 | - <a class="link" href="http://www.opengroup.org/austin"> | |
4841 | +</pre></div></div><div class="bibliography" title="Bibliography"><div class="titlepage"><div><div><h3 class="title"><a id="using.exceptions.biblio"></a>Bibliography</h3></div></div></div><div class="biblioentry" title="System Interface Definitions, Issue 7 (IEEE Std. 1003.1-2008)"><a id="id661509"></a><p><span class="title"><em> | |
4842 | + <a class="link" href="http://www.opengroup.org/austin" target="_top"> | |
4843 | System Interface Definitions, Issue 7 (IEEE Std. 1003.1-2008) | |
4844 | </a> | |
4845 | </em>. </span><span class="pagenums"> | |
4846 | @@ -275,40 +275,40 @@ | |
4847 | . </span><span class="copyright">Copyright © 2008 | |
4848 | The Open Group/The Institute of Electrical and Electronics | |
4849 | Engineers, Inc. | |
4850 | - . </span></p></div><div class="biblioentry" title="Error and Exception Handling"><a id="id483051"/><p><span class="title"><em> | |
4851 | - <a class="link" href="http://www.boost.org/community/error_handling.html"> | |
4852 | + . </span></p></div><div class="biblioentry" title="Error and Exception Handling"><a id="id661539"></a><p><span class="title"><em> | |
4853 | + <a class="link" href="http://www.boost.org/community/error_handling.html" target="_top"> | |
4854 | Error and Exception Handling | |
4855 | </a> | |
4856 | </em>. </span><span class="author"><span class="firstname">David</span> <span class="surname">Abrahams </span>. </span><span class="publisher"><span class="publishername"> | |
4857 | Boost | |
4858 | - . </span></span></p></div><div class="biblioentry" title="Exception-Safety in Generic Components"><a id="id483082"/><p><span class="title"><em> | |
4859 | - <a class="link" href="http://www.boost.org/community/exception_safety.html"> | |
4860 | + . </span></span></p></div><div class="biblioentry" title="Exception-Safety in Generic Components"><a id="id661570"></a><p><span class="title"><em> | |
4861 | + <a class="link" href="http://www.boost.org/community/exception_safety.html" target="_top"> | |
4862 | Exception-Safety in Generic Components | |
4863 | </a> | |
4864 | </em>. </span><span class="author"><span class="firstname">David</span> <span class="surname">Abrahams</span>. </span><span class="publisher"><span class="publishername"> | |
4865 | Boost | |
4866 | - . </span></span></p></div><div class="biblioentry" title="Standard Library Exception Policy"><a id="id483113"/><p><span class="title"><em> | |
4867 | - <a class="link" href="www.open-std.org/jtc1/sc22/wg21/docs/papers/1997/N1077.pdf"> | |
4868 | + . </span></span></p></div><div class="biblioentry" title="Standard Library Exception Policy"><a id="id661601"></a><p><span class="title"><em> | |
4869 | + <a class="link" href="www.open-std.org/jtc1/sc22/wg21/docs/papers/1997/N1077.pdf" target="_top"> | |
4870 | Standard Library Exception Policy | |
4871 | </a> | |
4872 | </em>. </span><span class="author"><span class="firstname">Matt</span> <span class="surname">Austern</span>. </span><span class="publisher"><span class="publishername"> | |
4873 | WG21 N1077 | |
4874 | - . </span></span></p></div><div class="biblioentry" title="ia64 c++ abi exception handling"><a id="id483144"/><p><span class="title"><em> | |
4875 | - <a class="link" href="http://gcc.gnu.org/ml/gcc-patches/2001-03/msg00661.html"> | |
4876 | + . </span></span></p></div><div class="biblioentry" title="ia64 c++ abi exception handling"><a id="id661632"></a><p><span class="title"><em> | |
4877 | + <a class="link" href="http://gcc.gnu.org/ml/gcc-patches/2001-03/msg00661.html" target="_top"> | |
4878 | ia64 c++ abi exception handling | |
4879 | </a> | |
4880 | </em>. </span><span class="author"><span class="firstname">Richard</span> <span class="surname">Henderson</span>. </span><span class="publisher"><span class="publishername"> | |
4881 | GNU | |
4882 | - . </span></span></p></div><div class="biblioentry" title="Appendix E: Standard-Library Exception Safety"><a id="id483175"/><p><span class="title"><em> | |
4883 | - <a class="link" href="http://www.research.att.com/~bs/3rd_safe.pdf"> | |
4884 | + . </span></span></p></div><div class="biblioentry" title="Appendix E: Standard-Library Exception Safety"><a id="id661663"></a><p><span class="title"><em> | |
4885 | + <a class="link" href="http://www.research.att.com/~bs/3rd_safe.pdf" target="_top"> | |
4886 | Appendix E: Standard-Library Exception Safety | |
4887 | </a> | |
4888 | - </em>. </span><span class="author"><span class="firstname">Bjarne</span> <span class="surname">Stroustrup</span>. </span></p></div><div class="biblioentry"><a id="id483198"/><p><span class="citetitle"><em class="citetitle"> | |
4889 | + </em>. </span><span class="author"><span class="firstname">Bjarne</span> <span class="surname">Stroustrup</span>. </span></p></div><div class="biblioentry"><a id="id661686"></a><p><span class="citetitle"><em class="citetitle"> | |
4890 | Exceptional C++ | |
4891 | </em>. </span><span class="pagenums"> | |
4892 | Exception-Safety Issues and Techniques | |
4893 | - . </span><span class="author"><span class="firstname">Herb</span> <span class="surname">Sutter</span>. </span></p></div><div class="biblioentry" title="GCC Bug 25191: exception_defines.h #defines try/catch"><a id="id483218"/><p><span class="title"><em> | |
4894 | - <a class="link" href="http://gcc.gnu.org/PR25191"> | |
4895 | + . </span><span class="author"><span class="firstname">Herb</span> <span class="surname">Sutter</span>. </span></p></div><div class="biblioentry" title="GCC Bug 25191: exception_defines.h #defines try/catch"><a id="id661706"></a><p><span class="title"><em> | |
4896 | + <a class="link" href="http://gcc.gnu.org/PR25191" target="_top"> | |
4897 | GCC Bug 25191: exception_defines.h #defines try/catch | |
4898 | </a> | |
4899 | - </em>. </span></p></div></div></div><div class="navfooter"><hr/><table width="100%" summary="Navigation footer"><tr><td align="left"><a accesskey="p" href="using_concurrency.html">Prev</a> </td><td align="center"><a accesskey="u" href="using.html">Up</a></td><td align="right"> <a accesskey="n" href="debug.html">Next</a></td></tr><tr><td align="left" valign="top">Concurrency </td><td align="center"><a accesskey="h" href="../index.html">Home</a></td><td align="right" valign="top"> Debugging Support</td></tr></table></div></body></html> | |
4900 | + </em>. </span></p></div></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="using_concurrency.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="using.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="debug.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Concurrency </td><td width="20%" align="center"><a accesskey="h" href="../index.html">Home</a></td><td width="40%" align="right" valign="top"> Debugging Support</td></tr></table></div></body></html> | |
4901 | Index: libstdc++-v3/doc/html/manual/policy_based_data_structures_test.html | |
4902 | =================================================================== | |
9f95000d AM |
4903 | --- libstdc++-v3/doc/html/manual/policy_based_data_structures_test.html (.../tags/gcc_4_7_2_release) (wersja 192468) |
4904 | +++ libstdc++-v3/doc/html/manual/policy_based_data_structures_test.html (.../branches/gcc-4_7-branch) (wersja 192468) | |
5a87b929 AM |
4905 | @@ -1,6 +1,6 @@ |
4906 | <?xml version="1.0" encoding="UTF-8" standalone="no"?> | |
4907 | -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> | |
4908 | -<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Testing</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1"/><meta name="keywords" content=" 	ISO C++ , 	policy , 	container , 	data , 	structure , 	associated , 	tree , 	trie , 	hash , 	metaprogramming "/><meta name="keywords" content=" ISO C++ , library "/><meta name="keywords" content=" ISO C++ , runtime , library "/><link rel="home" href="../index.html" title="The GNU C++ Library"/><link rel="up" href="policy_data_structures.html" title="Chapter 22. Policy-Based Data Structures"/><link rel="prev" href="policy_data_structures_design.html" title="Design"/><link rel="next" href="policy_data_structures_biblio.html" title="Acknowledgments"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Testing</th></tr><tr><td align="left"><a accesskey="p" href="policy_data_structures_design.html">Prev</a> </td><th width="60%" align="center">Chapter 22. Policy-Based Data Structures</th><td align="right"> <a accesskey="n" href="policy_data_structures_biblio.html">Next</a></td></tr></table><hr/></div><div class="section" title="Testing"><div class="titlepage"><div><div><h2 class="title"><a id="pbds.test"/>Testing</h2></div></div></div><div class="section" title="Regression"><div class="titlepage"><div><div><h3 class="title"><a id="pbds.test.regression"/>Regression</h3></div></div></div><p>The library contains a single comprehensive regression test. | |
4909 | +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> | |
4910 | +<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Testing</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1" /><meta name="keywords" content=" 	ISO C++ , 	policy , 	container , 	data , 	structure , 	associated , 	tree , 	trie , 	hash , 	metaprogramming " /><meta name="keywords" content=" ISO C++ , library " /><meta name="keywords" content=" ISO C++ , runtime , library " /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="policy_data_structures.html" title="Chapter 22. Policy-Based Data Structures" /><link rel="prev" href="policy_data_structures_design.html" title="Design" /><link rel="next" href="policy_data_structures_biblio.html" title="Acknowledgments" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Testing</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="policy_data_structures_design.html">Prev</a> </td><th width="60%" align="center">Chapter 22. Policy-Based Data Structures</th><td width="20%" align="right"> <a accesskey="n" href="policy_data_structures_biblio.html">Next</a></td></tr></table><hr /></div><div class="section" title="Testing"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="pbds.test"></a>Testing</h2></div></div></div><div class="section" title="Regression"><div class="titlepage"><div><div><h3 class="title"><a id="pbds.test.regression"></a>Regression</h3></div></div></div><p>The library contains a single comprehensive regression test. | |
4911 | For a given container type in this library, the test creates | |
4912 | an object of the container type and an object of the | |
4913 | corresponding standard type (e.g., <code class="classname">std::set</code>). It | |
4914 | @@ -22,9 +22,9 @@ | |
4915 | this library's containers and the containers' value-types are | |
4916 | configured to use this allocator.</p><p>For granularity, the test is split into the | |
4917 | several sources, each checking only some containers.</p><p>For more details, consult the files in | |
4918 | - <code class="filename">testsuite/ext/pb_ds/regression</code>.</p></div><div class="section" title="Performance"><div class="titlepage"><div><div><h3 class="title"><a id="pbds.test.performance"/>Performance</h3></div></div></div><div class="section" title="Hash-Based"><div class="titlepage"><div><div><h4 class="title"><a id="performance.hash"/>Hash-Based</h4></div></div></div><p/><div class="section" title="Text find"><div class="titlepage"><div><div><h5 class="title"><a id="performance.hash.text_find"/> | |
4919 | + <code class="filename">testsuite/ext/pb_ds/regression</code>.</p></div><div class="section" title="Performance"><div class="titlepage"><div><div><h3 class="title"><a id="pbds.test.performance"></a>Performance</h3></div></div></div><div class="section" title="Hash-Based"><div class="titlepage"><div><div><h4 class="title"><a id="performance.hash"></a>Hash-Based</h4></div></div></div><p></p><div class="section" title="Text find"><div class="titlepage"><div><div><h5 class="title"><a id="performance.hash.text_find"></a> | |
4920 | Text <code class="function">find</code> | |
4921 | - </h5></div></div></div><p/><div class="section" title="Description"><div class="titlepage"><div><div><h6 class="title"><a id="hash.text_find.info"/> | |
4922 | + </h5></div></div></div><p></p><div class="section" title="Description"><div class="titlepage"><div><div><h6 class="title"><a id="hash.text_find.info"></a> | |
4923 | Description | |
4924 | </h6></div></div></div><p> | |
4925 | This test inserts a number of values with keys from an | |
4926 | @@ -44,110 +44,110 @@ | |
4927 | </code> | |
4928 | </p><p>The test checks the effect of different range-hashing | |
4929 | functions, trigger policies, and cache-hashing policies. | |
4930 | - </p></div><div class="section" title="Results"><div class="titlepage"><div><div><h6 class="title"><a id="hash.text_find.results"/> | |
4931 | + </p></div><div class="section" title="Results"><div class="titlepage"><div><div><h6 class="title"><a id="hash.text_find.results"></a> | |
4932 | Results | |
4933 | </h6></div></div></div><p>The graphic below show the results for the native | |
4934 | and collision-chaining hash types the the function | |
4935 | applied being a text find timing test using | |
4936 | <code class="function">find</code>. | |
4937 | - </p><div class="informalfigure"><div class="mediaobject" style="text-align: center"><img src="../images/pbds_hash_text_find.png" style="text-align: middle"/></div></div><p> | |
4938 | + </p><div class="informalfigure"><div class="mediaobject" align="center"><img src="../images/pbds_hash_text_find.png" align="middle" /></div></div><p> | |
4939 | The abbreviated names in the legend of the graphic above are | |
4940 | instantiated with the types in the following table. | |
4941 | - </p><div class="informaltable"><table border="1"><colgroup><col style="text-align: left" class="c1"/><col style="text-align: left" class="c2"/><col style="text-align: left" class="c3"/><col style="text-align: left" class="c4"/><col style="text-align: left" class="c5"/></colgroup><thead><tr><th style="text-align: left"><span class="emphasis"><em>Name/Instantiating Type</em></span></th><th style="text-align: left"><span class="emphasis"><em>Parameter</em></span></th><th style="text-align: left"><span class="emphasis"><em>Details</em></span></th><th style="text-align: left"><span class="emphasis"><em>Parameter</em></span></th><th style="text-align: left"><span class="emphasis"><em>Details</em></span></th></tr></thead><tbody><tr style="background-color: #B0B0B0"><td colspan="5" style="text-align: left"> | |
4942 | + </p><div class="informaltable"><table border="1"><colgroup><col align="left" class="c1" /><col align="left" class="c2" /><col align="left" class="c3" /><col align="left" class="c4" /><col align="left" class="c5" /></colgroup><thead><tr><th align="left"><span class="emphasis"><em>Name/Instantiating Type</em></span></th><th align="left"><span class="emphasis"><em>Parameter</em></span></th><th align="left"><span class="emphasis"><em>Details</em></span></th><th align="left"><span class="emphasis"><em>Parameter</em></span></th><th align="left"><span class="emphasis"><em>Details</em></span></th></tr></thead><tbody><tr bgcolor="#B0B0B0"><td colspan="5" align="left"> | |
4943 | n_hash_map_ncah | |
4944 | - </td></tr><tr><td style="text-align: left"> | |
4945 | + </td></tr><tr><td align="left"> | |
4946 | <code class="classname">std::tr1::unordered_map</code> | |
4947 | - </td><td style="text-align: left"> | |
4948 | + </td><td align="left"> | |
4949 | <code class="classname">cache_hash_code</code> | |
4950 | - </td><td style="text-align: left"> | |
4951 | + </td><td align="left"> | |
4952 | <code class="constant">false</code> | |
4953 | - </td><td colspan="2" style="text-align: left"> </td></tr><tr style="background-color: #B0B0B0"><td colspan="5" style="text-align: left"> | |
4954 | + </td><td colspan="2" align="left"> </td></tr><tr bgcolor="#B0B0B0"><td colspan="5" align="left"> | |
4955 | cc_hash_mod_prime_1div1_nsth_map | |
4956 | - </td></tr><tr><td rowspan="3" style="text-align: left" valign="top"> | |
4957 | + </td></tr><tr><td rowspan="3" align="left" valign="top"> | |
4958 | <code class="classname">cc_hash_table</code> | |
4959 | - </td><td style="text-align: left"> | |
4960 | + </td><td align="left"> | |
4961 | <code class="classname">Comb_Hash_Fn</code> | |
4962 | - </td><td style="text-align: left"> | |
4963 | + </td><td align="left"> | |
4964 | <code class="classname">direct_mod_range_hashing</code> | |
4965 | - </td><td colspan="2" style="text-align: left"> </td></tr><tr><td rowspan="2" style="text-align: left" valign="top"> | |
4966 | + </td><td colspan="2" align="left"> </td></tr><tr><td rowspan="2" align="left" valign="top"> | |
4967 | <code class="classname">Resize_Policy</code> | |
4968 | - </td><td rowspan="2" style="text-align: left" valign="top"> | |
4969 | + </td><td rowspan="2" align="left" valign="top"> | |
4970 | <code class="classname">hash_standard_resize_policy</code> | |
4971 | - </td><td style="text-align: left"> | |
4972 | + </td><td align="left"> | |
4973 | <code class="classname">Size_Policy</code> | |
4974 | - </td><td style="text-align: left"> | |
4975 | + </td><td align="left"> | |
4976 | <code class="classname">hash_prime_size_policy</code> | |
4977 | - </td></tr><tr><td style="text-align: left" valign="top"> | |
4978 | + </td></tr><tr><td align="left" valign="top"> | |
4979 | <code class="classname">Trigger_Policy</code> | |
4980 | - </td><td style="text-align: left"> | |
4981 | + </td><td align="left"> | |
4982 | <code class="classname">hash_load_check_resize_trigger</code> with | |
4983 | α<sub>min</sub> = 1/8 and α<sub>max</sub> = 1/1 | |
4984 | - </td></tr><tr style="background-color: #B0B0B0"><td colspan="5" style="text-align: left"> | |
4985 | + </td></tr><tr bgcolor="#B0B0B0"><td colspan="5" align="left"> | |
4986 | cc_hash_mask_exp_1div2_sth_map | |
4987 | - </td></tr><tr><td rowspan="3" style="text-align: left" valign="top"> | |
4988 | + </td></tr><tr><td rowspan="3" align="left" valign="top"> | |
4989 | <code class="classname"> | |
4990 | cc_hash_table | |
4991 | </code> | |
4992 | - </td><td style="text-align: left"> | |
4993 | + </td><td align="left"> | |
4994 | <code class="classname">Comb_Hash_Fn</code> | |
4995 | - </td><td style="text-align: left"> | |
4996 | + </td><td align="left"> | |
4997 | <code class="classname">direct_mask_range_hashing</code> | |
4998 | - </td><td colspan="2" style="text-align: left"> </td></tr><tr><td rowspan="2" style="text-align: left" valign="top"> | |
4999 | + </td><td colspan="2" align="left"> </td></tr><tr><td rowspan="2" align="left" valign="top"> | |
5000 | <code class="classname">Resize_Policy</code> | |
5001 | - </td><td rowspan="2" style="text-align: left" valign="top"> | |
5002 | + </td><td rowspan="2" align="left" valign="top"> | |
5003 | <code class="classname">hash_standard_resize_policy</code> | |
5004 | - </td><td style="text-align: left"> | |
5005 | + </td><td align="left"> | |
5006 | <code class="classname">Size_Policy</code> | |
5007 | - </td><td style="text-align: left"> | |
5008 | + </td><td align="left"> | |
5009 | <code class="classname">hash_exponential_size_policy</code> | |
5010 | - </td></tr><tr><td style="text-align: left" valign="top"> | |
5011 | + </td></tr><tr><td align="left" valign="top"> | |
5012 | <code class="classname">Trigger_Policy</code> | |
5013 | - </td><td style="text-align: left"> | |
5014 | + </td><td align="left"> | |
5015 | <code class="classname">hash_load_check_resize_trigger</code> with | |
5016 | α<sub>min</sub> = 1/8 and α<sub>max</sub> = 1/2 | |
5017 | - </td></tr><tr style="background-color: #B0B0B0"><td colspan="5" style="text-align: left"> | |
5018 | + </td></tr><tr bgcolor="#B0B0B0"><td colspan="5" align="left"> | |
5019 | cc_hash_mask_exp_1div1_nsth_map | |
5020 | - </td></tr><tr><td rowspan="3" style="text-align: left" valign="top"> | |
5021 | + </td></tr><tr><td rowspan="3" align="left" valign="top"> | |
5022 | <code class="classname">cc_hash_table</code> | |
5023 | - </td><td style="text-align: left"> | |
5024 | + </td><td align="left"> | |
5025 | <code class="classname">Comb_Hash_Fn</code> | |
5026 | - </td><td style="text-align: left"> | |
5027 | + </td><td align="left"> | |
5028 | <code class="classname">direct_mask_range_hashing</code> | |
5029 | - </td><td colspan="2" style="text-align: left"> </td></tr><tr><td rowspan="2" style="text-align: left" valign="top"> | |
5030 | + </td><td colspan="2" align="left"> </td></tr><tr><td rowspan="2" align="left" valign="top"> | |
5031 | <code class="classname">Resize_Policy</code> | |
5032 | - </td><td rowspan="2" style="text-align: left" valign="top"> | |
5033 | + </td><td rowspan="2" align="left" valign="top"> | |
5034 | <code class="classname">hash_standard_resize_policy</code> | |
5035 | - </td><td style="text-align: left"> | |
5036 | + </td><td align="left"> | |
5037 | <code class="classname">Size_Policy</code> | |
5038 | - </td><td style="text-align: left"> | |
5039 | + </td><td align="left"> | |
5040 | <code class="classname">hash_exponential_size_policy</code> | |
5041 | - </td></tr><tr><td style="text-align: left" valign="top"> | |
5042 | + </td></tr><tr><td align="left" valign="top"> | |
5043 | <code class="classname">Trigger_Policy</code> | |
5044 | - </td><td style="text-align: left"> | |
5045 | + </td><td align="left"> | |
5046 | <code class="classname">hash_load_check_resize_trigger</code> with | |
5047 | α<sub>min</sub> = 1/8 and α<sub>max</sub> = 1/1 | |
5048 | - </td></tr><tr style="background-color: #B0B0B0"><td colspan="5" style="text-align: left"> | |
5049 | + </td></tr><tr bgcolor="#B0B0B0"><td colspan="5" align="left"> | |
5050 | cc_hash_mask_exp_1div2_nsth_map | |
5051 | - </td></tr><tr><td rowspan="3" style="text-align: left" valign="top"> | |
5052 | + </td></tr><tr><td rowspan="3" align="left" valign="top"> | |
5053 | <code class="classname">cc_hash_table</code> | |
5054 | - </td><td style="text-align: left"> | |
5055 | + </td><td align="left"> | |
5056 | <code class="classname">Comb_Hash_Fn</code> | |
5057 | - </td><td style="text-align: left"> | |
5058 | + </td><td align="left"> | |
5059 | <code class="classname">direct_mask_range_hashing</code> | |
5060 | - </td><td colspan="2" style="text-align: left"> </td></tr><tr><td rowspan="2" style="text-align: left" valign="top"> | |
5061 | + </td><td colspan="2" align="left"> </td></tr><tr><td rowspan="2" align="left" valign="top"> | |
5062 | <code class="classname">Resize_Policy</code> | |
5063 | - </td><td rowspan="2" style="text-align: left" valign="top"> | |
5064 | + </td><td rowspan="2" align="left" valign="top"> | |
5065 | <code class="classname">hash_standard_resize_policy</code> | |
5066 | - </td><td style="text-align: left"> | |
5067 | + </td><td align="left"> | |
5068 | <code class="classname">Size_Policy</code> | |
5069 | - </td><td style="text-align: left"> | |
5070 | + </td><td align="left"> | |
5071 | <code class="classname">hash_exponential_size_policy</code> | |
5072 | - </td></tr><tr><td style="text-align: left" valign="top"> | |
5073 | + </td></tr><tr><td align="left" valign="top"> | |
5074 | <code class="classname">Trigger_Policy</code> | |
5075 | - </td><td style="text-align: left"> | |
5076 | + </td><td align="left"> | |
5077 | <code class="classname">hash_load_check_resize_trigger</code> with | |
5078 | α<sub>min</sub> = 1/8 and α<sub>max</sub> = 1/2 | |
5079 | - </td></tr></tbody></table></div></div><div class="section" title="Observations"><div class="titlepage"><div><div><h6 class="title"><a id="hash.text_find.observations"/> | |
5080 | + </td></tr></tbody></table></div></div><div class="section" title="Observations"><div class="titlepage"><div><div><h6 class="title"><a id="hash.text_find.observations"></a> | |
5081 | Observations | |
5082 | </h6></div></div></div><p>In this setting, the range-hashing scheme affects performance | |
5083 | more than other policies. As the results show, containers using | |
5084 | @@ -162,9 +162,9 @@ | |
5085 | library's implementation. (Unfortunately, it was not possible to run | |
5086 | the tests with <code class="classname">std::tr1::unordered_map</code> 's | |
5087 | <code class="classname">cache_hash_code = true</code> , as it appeared to | |
5088 | - malfuntion.)</p></div></div><div class="section" title="Integer find"><div class="titlepage"><div><div><h5 class="title"><a id="performance.hash.int_find"/> | |
5089 | + malfuntion.)</p></div></div><div class="section" title="Integer find"><div class="titlepage"><div><div><h5 class="title"><a id="performance.hash.int_find"></a> | |
5090 | Integer <code class="function">find</code> | |
5091 | - </h5></div></div></div><p/><div class="section" title="Description"><div class="titlepage"><div><div><h6 class="title"><a id="hash.int_find.info"/> | |
5092 | + </h5></div></div></div><p></p><div class="section" title="Description"><div class="titlepage"><div><div><h6 class="title"><a id="hash.int_find.info"></a> | |
5093 | Description | |
5094 | </h6></div></div></div><p>This test inserts a number of values with uniform | |
5095 | integer keys into a container, then performs a series of finds | |
5096 | @@ -177,7 +177,7 @@ | |
5097 | </code> | |
5098 | </p><p>The test checks the effect of different underlying | |
5099 | hash-tables, | |
5100 | - range-hashing functions, and trigger policies.</p></div><div class="section" title="Results"><div class="titlepage"><div><div><h6 class="title"><a id="hash.int_find.results"/> | |
5101 | + range-hashing functions, and trigger policies.</p></div><div class="section" title="Results"><div class="titlepage"><div><div><h6 class="title"><a id="hash.int_find.results"></a> | |
5102 | Results | |
5103 | </h6></div></div></div><p> | |
5104 | There are two sets of results for this type, one for | |
5105 | @@ -185,101 +185,101 @@ | |
5106 | </p><p>The first graphic below shows the results for the native and | |
5107 | collision-chaining hash types. The function applied being a random | |
5108 | integer timing test using <code class="function">find</code>. | |
5109 | - </p><div class="informalfigure"><div class="mediaobject" style="text-align: center"><img src="../images/pbds_cc_hash_int_find.png" style="text-align: middle"/></div></div><p> | |
5110 | + </p><div class="informalfigure"><div class="mediaobject" align="center"><img src="../images/pbds_cc_hash_int_find.png" align="middle" /></div></div><p> | |
5111 | The abbreviated names in the legend of the graphic above are | |
5112 | instantiated with the types in the following table. | |
5113 | - </p><div class="informaltable"><table border="1"><colgroup><col style="text-align: left" class="c1"/><col style="text-align: left" class="c2"/><col style="text-align: left" class="c3"/><col style="text-align: left" class="c4"/><col style="text-align: left" class="c5"/></colgroup><thead><tr><th style="text-align: left"><span class="emphasis"><em>Name/Instantiating Type</em></span></th><th style="text-align: left"><span class="emphasis"><em>Parameter</em></span></th><th style="text-align: left"><span class="emphasis"><em>Details</em></span></th><th style="text-align: left"><span class="emphasis"><em>Parameter</em></span></th><th style="text-align: left"><span class="emphasis"><em>Details</em></span></th></tr></thead><tbody><tr style="background-color: #B0B0B0"><td colspan="5" style="text-align: left"> | |
5114 | + </p><div class="informaltable"><table border="1"><colgroup><col align="left" class="c1" /><col align="left" class="c2" /><col align="left" class="c3" /><col align="left" class="c4" /><col align="left" class="c5" /></colgroup><thead><tr><th align="left"><span class="emphasis"><em>Name/Instantiating Type</em></span></th><th align="left"><span class="emphasis"><em>Parameter</em></span></th><th align="left"><span class="emphasis"><em>Details</em></span></th><th align="left"><span class="emphasis"><em>Parameter</em></span></th><th align="left"><span class="emphasis"><em>Details</em></span></th></tr></thead><tbody><tr bgcolor="#B0B0B0"><td colspan="5" align="left"> | |
5115 | n_hash_map_ncah | |
5116 | - </td></tr><tr><td style="text-align: left"> | |
5117 | + </td></tr><tr><td align="left"> | |
5118 | <code class="classname">std::tr1::unordered_map</code> | |
5119 | - </td><td style="text-align: left"> | |
5120 | + </td><td align="left"> | |
5121 | <code class="classname">cache_hash_code</code> | |
5122 | - </td><td style="text-align: left"> | |
5123 | + </td><td align="left"> | |
5124 | <code class="constant">false</code> | |
5125 | - </td><td colspan="2" style="text-align: left"> </td></tr><tr style="background-color: #B0B0B0"><td colspan="5" style="text-align: left"> | |
5126 | + </td><td colspan="2" align="left"> </td></tr><tr bgcolor="#B0B0B0"><td colspan="5" align="left"> | |
5127 | cc_hash_mod_prime_1div1_nsth_map | |
5128 | - </td></tr><tr><td rowspan="3" style="text-align: left" valign="top"> | |
5129 | + </td></tr><tr><td rowspan="3" align="left" valign="top"> | |
5130 | <code class="classname">cc_hash_table</code> | |
5131 | - </td><td style="text-align: left"> | |
5132 | + </td><td align="left"> | |
5133 | <code class="classname">Comb_Hash_Fn</code> | |
5134 | - </td><td style="text-align: left"> | |
5135 | + </td><td align="left"> | |
5136 | <code class="classname">direct_mod_range_hashing</code> | |
5137 | - </td><td colspan="2" style="text-align: left"> </td></tr><tr><td rowspan="2" style="text-align: left" valign="top"> | |
5138 | + </td><td colspan="2" align="left"> </td></tr><tr><td rowspan="2" align="left" valign="top"> | |
5139 | <code class="classname">Resize_Policy</code> | |
5140 | - </td><td rowspan="2" style="text-align: left" valign="top"> | |
5141 | + </td><td rowspan="2" align="left" valign="top"> | |
5142 | <code class="classname">hash_standard_resize_policy</code> | |
5143 | - </td><td style="text-align: left"> | |
5144 | + </td><td align="left"> | |
5145 | <code class="classname">Size_Policy</code> | |
5146 | - </td><td style="text-align: left"> | |
5147 | + </td><td align="left"> | |
5148 | <code class="classname">hash_prime_size_policy</code> | |
5149 | - </td></tr><tr><td style="text-align: left" valign="top"> | |
5150 | + </td></tr><tr><td align="left" valign="top"> | |
5151 | <code class="classname">Trigger_Policy</code> | |
5152 | - </td><td style="text-align: left"> | |
5153 | + </td><td align="left"> | |
5154 | <code class="classname">hash_load_check_resize_trigger</code> with | |
5155 | α<sub>min</sub> = 1/8 and α<sub>max</sub> = 1/1 | |
5156 | - </td></tr><tr style="background-color: #B0B0B0"><td colspan="5" style="text-align: left"> | |
5157 | + </td></tr><tr bgcolor="#B0B0B0"><td colspan="5" align="left"> | |
5158 | cc_hash_mod_prime_1div2_nsth_map | |
5159 | - </td></tr><tr><td rowspan="3" style="text-align: left" valign="top"> | |
5160 | + </td></tr><tr><td rowspan="3" align="left" valign="top"> | |
5161 | <code class="classname"> | |
5162 | cc_hash_table | |
5163 | </code> | |
5164 | - </td><td style="text-align: left"> | |
5165 | + </td><td align="left"> | |
5166 | <code class="classname">Comb_Hash_Fn</code> | |
5167 | - </td><td style="text-align: left"> | |
5168 | + </td><td align="left"> | |
5169 | <code class="classname">direct_mod_range_hashing</code> | |
5170 | - </td><td colspan="2" style="text-align: left"> </td></tr><tr><td rowspan="2" style="text-align: left" valign="top"> | |
5171 | + </td><td colspan="2" align="left"> </td></tr><tr><td rowspan="2" align="left" valign="top"> | |
5172 | <code class="classname">Resize_Policy</code> | |
5173 | - </td><td rowspan="2" style="text-align: left" valign="top"> | |
5174 | + </td><td rowspan="2" align="left" valign="top"> | |
5175 | <code class="classname">hash_standard_resize_policy</code> | |
5176 | - </td><td style="text-align: left"> | |
5177 | + </td><td align="left"> | |
5178 | <code class="classname">Size_Policy</code> | |
5179 | - </td><td style="text-align: left"> | |
5180 | + </td><td align="left"> | |
5181 | <code class="classname">hash_prime_size_policy</code> | |
5182 | - </td></tr><tr><td style="text-align: left" valign="top"> | |
5183 | + </td></tr><tr><td align="left" valign="top"> | |
5184 | <code class="classname">Trigger_Policy</code> | |
5185 | - </td><td style="text-align: left"> | |
5186 | + </td><td align="left"> | |
5187 | <code class="classname">hash_load_check_resize_trigger</code> with | |
5188 | α<sub>min</sub> = 1/8 and α<sub>max</sub> = 1/2 | |
5189 | - </td></tr><tr style="background-color: #B0B0B0"><td colspan="5" style="text-align: left"> | |
5190 | + </td></tr><tr bgcolor="#B0B0B0"><td colspan="5" align="left"> | |
5191 | cc_hash_mask_exp_1div1_nsth_map | |
5192 | - </td></tr><tr><td rowspan="3" style="text-align: left" valign="top"> | |
5193 | + </td></tr><tr><td rowspan="3" align="left" valign="top"> | |
5194 | <code class="classname">cc_hash_table</code> | |
5195 | - </td><td style="text-align: left"> | |
5196 | + </td><td align="left"> | |
5197 | <code class="classname">Comb_Hash_Fn</code> | |
5198 | - </td><td style="text-align: left"> | |
5199 | + </td><td align="left"> | |
5200 | <code class="classname">direct_mask_range_hashing</code> | |
5201 | - </td><td colspan="2" style="text-align: left"> </td></tr><tr><td rowspan="2" style="text-align: left" valign="top"> | |
5202 | + </td><td colspan="2" align="left"> </td></tr><tr><td rowspan="2" align="left" valign="top"> | |
5203 | <code class="classname">Resize_Policy</code> | |
5204 | - </td><td rowspan="2" style="text-align: left" valign="top"> | |
5205 | + </td><td rowspan="2" align="left" valign="top"> | |
5206 | <code class="classname">hash_standard_resize_policy</code> | |
5207 | - </td><td style="text-align: left"> | |
5208 | + </td><td align="left"> | |
5209 | <code class="classname">Size_Policy</code> | |
5210 | - </td><td style="text-align: left"> | |
5211 | + </td><td align="left"> | |
5212 | <code class="classname">hash_exponential_size_policy</code> | |
5213 | - </td></tr><tr><td style="text-align: left" valign="top"> | |
5214 | + </td></tr><tr><td align="left" valign="top"> | |
5215 | <code class="classname">Trigger_Policy</code> | |
5216 | - </td><td style="text-align: left"> | |
5217 | + </td><td align="left"> | |
5218 | <code class="classname">hash_load_check_resize_trigger</code> with | |
5219 | α<sub>min</sub> = 1/8 and α<sub>max</sub> = 1/1 | |
5220 | - </td></tr><tr style="background-color: #B0B0B0"><td colspan="5" style="text-align: left"> | |
5221 | + </td></tr><tr bgcolor="#B0B0B0"><td colspan="5" align="left"> | |
5222 | cc_hash_mask_exp_1div2_nsth_map | |
5223 | - </td></tr><tr><td rowspan="3" style="text-align: left" valign="top"> | |
5224 | + </td></tr><tr><td rowspan="3" align="left" valign="top"> | |
5225 | <code class="classname">cc_hash_table</code> | |
5226 | - </td><td style="text-align: left"> | |
5227 | + </td><td align="left"> | |
5228 | <code class="classname">Comb_Hash_Fn</code> | |
5229 | - </td><td style="text-align: left"> | |
5230 | + </td><td align="left"> | |
5231 | <code class="classname">direct_mask_range_hashing</code> | |
5232 | - </td><td colspan="2" style="text-align: left"> </td></tr><tr><td rowspan="2" style="text-align: left" valign="top"> | |
5233 | + </td><td colspan="2" align="left"> </td></tr><tr><td rowspan="2" align="left" valign="top"> | |
5234 | <code class="classname">Resize_Policy</code> | |
5235 | - </td><td rowspan="2" style="text-align: left" valign="top"> | |
5236 | + </td><td rowspan="2" align="left" valign="top"> | |
5237 | <code class="classname">hash_standard_resize_policy</code> | |
5238 | - </td><td style="text-align: left"> | |
5239 | + </td><td align="left"> | |
5240 | <code class="classname">Size_Policy</code> | |
5241 | - </td><td style="text-align: left"> | |
5242 | + </td><td align="left"> | |
5243 | <code class="classname">hash_exponential_size_policy</code> | |
5244 | - </td></tr><tr><td style="text-align: left" valign="top"> | |
5245 | + </td></tr><tr><td align="left" valign="top"> | |
5246 | <code class="classname">Trigger_Policy</code> | |
5247 | - </td><td style="text-align: left"> | |
5248 | + </td><td align="left"> | |
5249 | <code class="classname">hash_load_check_resize_trigger</code> with | |
5250 | α<sub>min</sub> = 1/8 and α<sub>max</sub> = 1/2 | |
5251 | </td></tr></tbody></table></div><p> | |
5252 | @@ -287,70 +287,70 @@ | |
5253 | </p><p>And the second graphic shows the results for the native and | |
5254 | general-probe hash types. The function applied being a random | |
5255 | integer timing test using <code class="function">find</code>. | |
5256 | - </p><div class="informalfigure"><div class="mediaobject" style="text-align: center"><img src="../images/pbds_gp_hash_int_find.png" style="text-align: middle"/></div></div><p> | |
5257 | + </p><div class="informalfigure"><div class="mediaobject" align="center"><img src="../images/pbds_gp_hash_int_find.png" align="middle" /></div></div><p> | |
5258 | The abbreviated names in the legend of the graphic above are | |
5259 | instantiated with the types in the following table. | |
5260 | - </p><div class="informaltable"><table border="1"><colgroup><col style="text-align: left" class="c1"/><col style="text-align: left" class="c2"/><col style="text-align: left" class="c3"/><col style="text-align: left" class="c4"/><col style="text-align: left" class="c5"/></colgroup><thead><tr><th style="text-align: left"><span class="emphasis"><em>Name/Instantiating Type</em></span></th><th style="text-align: left"><span class="emphasis"><em>Parameter</em></span></th><th style="text-align: left"><span class="emphasis"><em>Details</em></span></th><th style="text-align: left"><span class="emphasis"><em>Parameter</em></span></th><th style="text-align: left"><span class="emphasis"><em>Details</em></span></th></tr></thead><tbody><tr style="background-color: #B0B0B0"><td colspan="5" style="text-align: left"> | |
5261 | + </p><div class="informaltable"><table border="1"><colgroup><col align="left" class="c1" /><col align="left" class="c2" /><col align="left" class="c3" /><col align="left" class="c4" /><col align="left" class="c5" /></colgroup><thead><tr><th align="left"><span class="emphasis"><em>Name/Instantiating Type</em></span></th><th align="left"><span class="emphasis"><em>Parameter</em></span></th><th align="left"><span class="emphasis"><em>Details</em></span></th><th align="left"><span class="emphasis"><em>Parameter</em></span></th><th align="left"><span class="emphasis"><em>Details</em></span></th></tr></thead><tbody><tr bgcolor="#B0B0B0"><td colspan="5" align="left"> | |
5262 | n_hash_map_ncah | |
5263 | - </td></tr><tr><td style="text-align: left"> | |
5264 | + </td></tr><tr><td align="left"> | |
5265 | <code class="classname">std::tr1::unordered_map</code> | |
5266 | - </td><td style="text-align: left"> | |
5267 | + </td><td align="left"> | |
5268 | <code class="classname">cache_hash_code</code> | |
5269 | - </td><td style="text-align: left"> | |
5270 | + </td><td align="left"> | |
5271 | <code class="constant">false</code> | |
5272 | - </td><td colspan="2" style="text-align: left"> </td></tr><tr style="background-color: #B0B0B0"><td colspan="5" style="text-align: left"> | |
5273 | + </td><td colspan="2" align="left"> </td></tr><tr bgcolor="#B0B0B0"><td colspan="5" align="left"> | |
5274 | gp_hash_mod_quadp_prime_1div2_nsth_map | |
5275 | - </td></tr><tr><td rowspan="4" style="text-align: left" valign="top"> | |
5276 | + </td></tr><tr><td rowspan="4" align="left" valign="top"> | |
5277 | <code class="classname">gp_hash_table</code> | |
5278 | - </td><td style="text-align: left"> | |
5279 | + </td><td align="left"> | |
5280 | <code class="classname">Comb_Hash_Fn</code> | |
5281 | - </td><td style="text-align: left"> | |
5282 | + </td><td align="left"> | |
5283 | <code class="classname">direct_mod_range_hashing</code> | |
5284 | - </td><td colspan="2" style="text-align: left"> </td></tr><tr><td style="text-align: left"> | |
5285 | + </td><td colspan="2" align="left"> </td></tr><tr><td align="left"> | |
5286 | <code class="classname">Probe_Fn</code> | |
5287 | - </td><td style="text-align: left"> | |
5288 | + </td><td align="left"> | |
5289 | <code class="classname">quadratic_probe_fn</code> | |
5290 | - </td><td colspan="2" style="text-align: left"> </td></tr><tr><td rowspan="2" style="text-align: left" valign="top"> | |
5291 | + </td><td colspan="2" align="left"> </td></tr><tr><td rowspan="2" align="left" valign="top"> | |
5292 | <code class="classname">Resize_Policy</code> | |
5293 | - </td><td rowspan="2" style="text-align: left" valign="top"> | |
5294 | + </td><td rowspan="2" align="left" valign="top"> | |
5295 | <code class="classname">hash_standard_resize_policy</code> | |
5296 | - </td><td style="text-align: left"> | |
5297 | + </td><td align="left"> | |
5298 | <code class="classname">Size_Policy</code> | |
5299 | - </td><td style="text-align: left"> | |
5300 | + </td><td align="left"> | |
5301 | <code class="classname">hash_prime_size_policy</code> | |
5302 | - </td></tr><tr><td style="text-align: left" valign="top"> | |
5303 | + </td></tr><tr><td align="left" valign="top"> | |
5304 | <code class="classname">Trigger_Policy</code> | |
5305 | - </td><td style="text-align: left"> | |
5306 | + </td><td align="left"> | |
5307 | <code class="classname">hash_load_check_resize_trigger</code> with | |
5308 | α<sub>min</sub> = 1/8 and α<sub>max</sub> = 1/2 | |
5309 | - </td></tr><tr style="background-color: #B0B0B0"><td colspan="5" style="text-align: left"> | |
5310 | + </td></tr><tr bgcolor="#B0B0B0"><td colspan="5" align="left"> | |
5311 | gp_hash_mask_linp_exp_1div2_nsth_map | |
5312 | - </td></tr><tr><td rowspan="4" style="text-align: left" valign="top"> | |
5313 | + </td></tr><tr><td rowspan="4" align="left" valign="top"> | |
5314 | <code class="classname"> | |
5315 | gp_hash_table | |
5316 | </code> | |
5317 | - </td><td style="text-align: left"> | |
5318 | + </td><td align="left"> | |
5319 | <code class="classname">Comb_Hash_Fn</code> | |
5320 | - </td><td style="text-align: left"> | |
5321 | + </td><td align="left"> | |
5322 | <code class="classname">direct_mask_range_hashing</code> | |
5323 | - </td><td colspan="2" style="text-align: left"> </td></tr><tr><td style="text-align: left"> | |
5324 | + </td><td colspan="2" align="left"> </td></tr><tr><td align="left"> | |
5325 | <code class="classname">Probe_Fn</code> | |
5326 | - </td><td style="text-align: left"> | |
5327 | + </td><td align="left"> | |
5328 | <code class="classname">linear_probe_fn</code> | |
5329 | - </td><td colspan="2" style="text-align: left"> </td></tr><tr><td rowspan="2" style="text-align: left" valign="top"> | |
5330 | + </td><td colspan="2" align="left"> </td></tr><tr><td rowspan="2" align="left" valign="top"> | |
5331 | <code class="classname">Resize_Policy</code> | |
5332 | - </td><td rowspan="2" style="text-align: left" valign="top"> | |
5333 | + </td><td rowspan="2" align="left" valign="top"> | |
5334 | <code class="classname">hash_standard_resize_policy</code> | |
5335 | - </td><td style="text-align: left"> | |
5336 | + </td><td align="left"> | |
5337 | <code class="classname">Size_Policy</code> | |
5338 | - </td><td style="text-align: left"> | |
5339 | + </td><td align="left"> | |
5340 | <code class="classname">hash_exponential_size_policy</code> | |
5341 | - </td></tr><tr><td style="text-align: left" valign="top"> | |
5342 | + </td></tr><tr><td align="left" valign="top"> | |
5343 | <code class="classname">Trigger_Policy</code> | |
5344 | - </td><td style="text-align: left"> | |
5345 | + </td><td align="left"> | |
5346 | <code class="classname">hash_load_check_resize_trigger</code> with | |
5347 | α<sub>min</sub> = 1/8 and α<sub>max</sub> = 1/2 | |
5348 | - </td></tr></tbody></table></div></div><div class="section" title="Observations"><div class="titlepage"><div><div><h6 class="title"><a id="hash.int_find.observations"/> | |
5349 | + </td></tr></tbody></table></div></div><div class="section" title="Observations"><div class="titlepage"><div><div><h6 class="title"><a id="hash.int_find.observations"></a> | |
5350 | Observations | |
5351 | </h6></div></div></div><p>In this setting, the choice of underlying hash-table affects | |
5352 | performance most, then the range-hashing scheme and, only finally, | |
5353 | @@ -366,9 +366,9 @@ | |
5354 | above graphics should be noted that | |
5355 | <code class="classname">std::tr1::unordered_map</code> are hard-wired | |
5356 | currently to mod-based schemes. | |
5357 | - </p></div></div><div class="section" title="Integer Subscript find"><div class="titlepage"><div><div><h5 class="title"><a id="performance.hash.int_subscript_find"/> | |
5358 | + </p></div></div><div class="section" title="Integer Subscript find"><div class="titlepage"><div><div><h5 class="title"><a id="performance.hash.int_subscript_find"></a> | |
5359 | Integer Subscript <code class="function">find</code> | |
5360 | - </h5></div></div></div><p/><div class="section" title="Description"><div class="titlepage"><div><div><h6 class="title"><a id="hash.int_subscript_find.info"/> | |
5361 | + </h5></div></div></div><p></p><div class="section" title="Description"><div class="titlepage"><div><div><h6 class="title"><a id="hash.int_subscript_find.info"></a> | |
5362 | Description | |
5363 | </h6></div></div></div><p>This test inserts a number of values with uniform | |
5364 | integer keys into a container, then performs a series of finds | |
5365 | @@ -380,7 +380,7 @@ | |
5366 | performance/ext/pb_ds/random_int_subscript_find_timing.cc | |
5367 | </code> | |
5368 | </p><p>The test checks the effect of different underlying | |
5369 | - hash-tables, range-hashing functions, and trigger policies.</p></div><div class="section" title="Results"><div class="titlepage"><div><div><h6 class="title"><a id="hash.int_subscript_find.results"/> | |
5370 | + hash-tables, range-hashing functions, and trigger policies.</p></div><div class="section" title="Results"><div class="titlepage"><div><div><h6 class="title"><a id="hash.int_subscript_find.results"></a> | |
5371 | Results | |
5372 | </h6></div></div></div><p> | |
5373 | There are two sets of results for this type, one for | |
5374 | @@ -389,99 +389,99 @@ | |
5375 | and collision-chaining hash types, using as the function | |
5376 | applied an integer subscript timing test with | |
5377 | <code class="function">find</code>. | |
5378 | - </p><div class="informalfigure"><div class="mediaobject" style="text-align: center"><img src="../images/pbds_cc_hash_int_subscript_find.png" style="text-align: middle"/></div></div><p> | |
5379 | + </p><div class="informalfigure"><div class="mediaobject" align="center"><img src="../images/pbds_cc_hash_int_subscript_find.png" align="middle" /></div></div><p> | |
5380 | The abbreviated names in the legend of the graphic above are | |
5381 | instantiated with the types in the following table. | |
5382 | - </p><div class="informaltable"><table border="1"><colgroup><col style="text-align: left" class="c1"/><col style="text-align: left" class="c2"/><col style="text-align: left" class="c3"/><col style="text-align: left" class="c4"/><col style="text-align: left" class="c5"/></colgroup><thead><tr><th style="text-align: left"><span class="emphasis"><em>Name/Instantiating Type</em></span></th><th style="text-align: left"><span class="emphasis"><em>Parameter</em></span></th><th style="text-align: left"><span class="emphasis"><em>Details</em></span></th><th style="text-align: left"><span class="emphasis"><em>Parameter</em></span></th><th style="text-align: left"><span class="emphasis"><em>Details</em></span></th></tr></thead><tbody><tr style="background-color: #B0B0B0"><td colspan="5" style="text-align: left"> | |
5383 | + </p><div class="informaltable"><table border="1"><colgroup><col align="left" class="c1" /><col align="left" class="c2" /><col align="left" class="c3" /><col align="left" class="c4" /><col align="left" class="c5" /></colgroup><thead><tr><th align="left"><span class="emphasis"><em>Name/Instantiating Type</em></span></th><th align="left"><span class="emphasis"><em>Parameter</em></span></th><th align="left"><span class="emphasis"><em>Details</em></span></th><th align="left"><span class="emphasis"><em>Parameter</em></span></th><th align="left"><span class="emphasis"><em>Details</em></span></th></tr></thead><tbody><tr bgcolor="#B0B0B0"><td colspan="5" align="left"> | |
5384 | n_hash_map_ncah | |
5385 | - </td></tr><tr><td style="text-align: left"> | |
5386 | + </td></tr><tr><td align="left"> | |
5387 | <code class="classname">std::tr1::unordered_map</code> | |
5388 | - </td><td style="text-align: left"> | |
5389 | + </td><td align="left"> | |
5390 | <code class="classname">cache_hash_code</code> | |
5391 | - </td><td style="text-align: left"> | |
5392 | + </td><td align="left"> | |
5393 | <code class="constant">false</code> | |
5394 | - </td><td colspan="2" style="text-align: left"> </td></tr><tr style="background-color: #B0B0B0"><td colspan="5" style="text-align: left"> | |
5395 | + </td><td colspan="2" align="left"> </td></tr><tr bgcolor="#B0B0B0"><td colspan="5" align="left"> | |
5396 | cc_hash_mod_prime_1div1_nsth_map | |
5397 | - </td></tr><tr><td rowspan="3" style="text-align: left" valign="top"> | |
5398 | + </td></tr><tr><td rowspan="3" align="left" valign="top"> | |
5399 | <code class="classname">cc_hash_table</code> | |
5400 | - </td><td style="text-align: left"> | |
5401 | + </td><td align="left"> | |
5402 | <code class="classname">Comb_Hash_Fn</code> | |
5403 | - </td><td style="text-align: left"> | |
5404 | + </td><td align="left"> | |
5405 | <code class="classname">direct_mod_range_hashing</code> | |
5406 | - </td><td colspan="2" style="text-align: left"> </td></tr><tr><td rowspan="2" style="text-align: left" valign="top"> | |
5407 | + </td><td colspan="2" align="left"> </td></tr><tr><td rowspan="2" align="left" valign="top"> | |
5408 | <code class="classname">Resize_Policy</code> | |
5409 | - </td><td rowspan="2" style="text-align: left" valign="top"> | |
5410 | + </td><td rowspan="2" align="left" valign="top"> | |
5411 | <code class="classname">hash_standard_resize_policy</code> | |
5412 | - </td><td style="text-align: left"> | |
5413 | + </td><td align="left"> | |
5414 | <code class="classname">Size_Policy</code> | |
5415 | - </td><td style="text-align: left"> | |
5416 | + </td><td align="left"> | |
5417 | <code class="classname">hash_prime_size_policy</code> | |
5418 | - </td></tr><tr><td style="text-align: left" valign="top"> | |
5419 | + </td></tr><tr><td align="left" valign="top"> | |
5420 | <code class="classname">Trigger_Policy</code> | |
5421 | - </td><td style="text-align: left"> | |
5422 | + </td><td align="left"> | |
5423 | <code class="classname">hash_load_check_resize_trigger</code> with | |
5424 | α<sub>min</sub> = 1/8 and α<sub>max</sub> = 1/1 | |
5425 | - </td></tr><tr style="background-color: #B0B0B0"><td colspan="5" style="text-align: left"> | |
5426 | + </td></tr><tr bgcolor="#B0B0B0"><td colspan="5" align="left"> | |
5427 | cc_hash_mod_prime_1div2_nsth_map | |
5428 | - </td></tr><tr><td rowspan="3" style="text-align: left" valign="top"> | |
5429 | + </td></tr><tr><td rowspan="3" align="left" valign="top"> | |
5430 | <code class="classname">cc_hash_table</code> | |
5431 | - </td><td style="text-align: left"> | |
5432 | + </td><td align="left"> | |
5433 | <code class="classname">Comb_Hash_Fn</code> | |
5434 | - </td><td style="text-align: left"> | |
5435 | + </td><td align="left"> | |
5436 | <code class="classname">direct_mod_range_hashing</code> | |
5437 | - </td><td colspan="2" style="text-align: left"> </td></tr><tr><td rowspan="2" style="text-align: left" valign="top"> | |
5438 | + </td><td colspan="2" align="left"> </td></tr><tr><td rowspan="2" align="left" valign="top"> | |
5439 | <code class="classname">Resize_Policy</code> | |
5440 | - </td><td rowspan="2" style="text-align: left" valign="top"> | |
5441 | + </td><td rowspan="2" align="left" valign="top"> | |
5442 | <code class="classname">hash_standard_resize_policy</code> | |
5443 | - </td><td style="text-align: left"> | |
5444 | + </td><td align="left"> | |
5445 | <code class="classname">Size_Policy</code> | |
5446 | - </td><td style="text-align: left"> | |
5447 | + </td><td align="left"> | |
5448 | <code class="classname">hash_prime_size_policy</code> | |
5449 | - </td></tr><tr><td style="text-align: left" valign="top"> | |
5450 | + </td></tr><tr><td align="left" valign="top"> | |
5451 | <code class="classname">Trigger_Policy</code> | |
5452 | - </td><td style="text-align: left"> | |
5453 | + </td><td align="left"> | |
5454 | <code class="classname">hash_load_check_resize_trigger</code> with | |
5455 | α<sub>min</sub> = 1/8 and α<sub>max</sub> = 1/2 | |
5456 | - </td></tr><tr style="background-color: #B0B0B0"><td colspan="5" style="text-align: left"> | |
5457 | + </td></tr><tr bgcolor="#B0B0B0"><td colspan="5" align="left"> | |
5458 | cc_hash_mask_exp_1div1_nsth_map | |
5459 | - </td></tr><tr><td rowspan="3" style="text-align: left" valign="top"> | |
5460 | + </td></tr><tr><td rowspan="3" align="left" valign="top"> | |
5461 | <code class="classname">cc_hash_table</code> | |
5462 | - </td><td style="text-align: left"> | |
5463 | + </td><td align="left"> | |
5464 | <code class="classname">Comb_Hash_Fn</code> | |
5465 | - </td><td style="text-align: left"> | |
5466 | + </td><td align="left"> | |
5467 | <code class="classname">direct_mask_range_hashing</code> | |
5468 | - </td><td colspan="2" style="text-align: left"> </td></tr><tr><td rowspan="2" style="text-align: left" valign="top"> | |
5469 | + </td><td colspan="2" align="left"> </td></tr><tr><td rowspan="2" align="left" valign="top"> | |
5470 | <code class="classname">Resize_Policy</code> | |
5471 | - </td><td rowspan="2" style="text-align: left" valign="top"> | |
5472 | + </td><td rowspan="2" align="left" valign="top"> | |
5473 | <code class="classname">hash_standard_resize_policy</code> | |
5474 | - </td><td style="text-align: left"> | |
5475 | + </td><td align="left"> | |
5476 | <code class="classname">Size_Policy</code> | |
5477 | - </td><td style="text-align: left"> | |
5478 | + </td><td align="left"> | |
5479 | <code class="classname">hash_exponential_size_policy</code> | |
5480 | - </td></tr><tr><td style="text-align: left" valign="top"> | |
5481 | + </td></tr><tr><td align="left" valign="top"> | |
5482 | <code class="classname">Trigger_Policy</code> | |
5483 | - </td><td style="text-align: left"> | |
5484 | + </td><td align="left"> | |
5485 | <code class="classname">hash_load_check_resize_trigger</code> with | |
5486 | α<sub>min</sub> = 1/8 and α<sub>max</sub> = 1/1 | |
5487 | - </td></tr><tr style="background-color: #B0B0B0"><td colspan="5" style="text-align: left"> | |
5488 | + </td></tr><tr bgcolor="#B0B0B0"><td colspan="5" align="left"> | |
5489 | cc_hash_mask_exp_1div2_nsth_map | |
5490 | - </td></tr><tr><td rowspan="3" style="text-align: left" valign="top"> | |
5491 | + </td></tr><tr><td rowspan="3" align="left" valign="top"> | |
5492 | <code class="classname">cc_hash_table</code> | |
5493 | - </td><td style="text-align: left"> | |
5494 | + </td><td align="left"> | |
5495 | <code class="classname">Comb_Hash_Fn</code> | |
5496 | - </td><td style="text-align: left"> | |
5497 | + </td><td align="left"> | |
5498 | <code class="classname">direct_mask_range_hashing</code> | |
5499 | - </td><td colspan="2" style="text-align: left"> </td></tr><tr><td rowspan="2" style="text-align: left" valign="top"> | |
5500 | + </td><td colspan="2" align="left"> </td></tr><tr><td rowspan="2" align="left" valign="top"> | |
5501 | <code class="classname">Resize_Policy</code> | |
5502 | - </td><td rowspan="2" style="text-align: left" valign="top"> | |
5503 | + </td><td rowspan="2" align="left" valign="top"> | |
5504 | <code class="classname">hash_standard_resize_policy</code> | |
5505 | - </td><td style="text-align: left"> | |
5506 | + </td><td align="left"> | |
5507 | <code class="classname">Size_Policy</code> | |
5508 | - </td><td style="text-align: left"> | |
5509 | + </td><td align="left"> | |
5510 | <code class="classname">hash_exponential_size_policy</code> | |
5511 | - </td></tr><tr><td style="text-align: left" valign="top"> | |
5512 | + </td></tr><tr><td align="left" valign="top"> | |
5513 | <code class="classname">Trigger_Policy</code> | |
5514 | - </td><td style="text-align: left"> | |
5515 | + </td><td align="left"> | |
5516 | <code class="classname">hash_load_check_resize_trigger</code> with | |
5517 | α<sub>min</sub> = 1/8 and α<sub>max</sub> = 1/2 | |
5518 | </td></tr></tbody></table></div><p> | |
5519 | @@ -489,75 +489,75 @@ | |
5520 | </p><p>And the second graphic shows the results for the native and | |
5521 | general-probe hash types. The function applied being a random | |
5522 | integer timing test using <code class="function">find</code>. | |
5523 | - </p><div class="informalfigure"><div class="mediaobject" style="text-align: center"><img src="../images/pbds_gp_hash_int_subscript_find.png" style="text-align: middle"/></div></div><p> | |
5524 | + </p><div class="informalfigure"><div class="mediaobject" align="center"><img src="../images/pbds_gp_hash_int_subscript_find.png" align="middle" /></div></div><p> | |
5525 | The abbreviated names in the legend of the graphic above are | |
5526 | instantiated with the types in the following table. | |
5527 | - </p><div class="informaltable"><table border="1"><colgroup><col style="text-align: left" class="c1"/><col style="text-align: left" class="c2"/><col style="text-align: left" class="c3"/><col style="text-align: left" class="c4"/><col style="text-align: left" class="c5"/></colgroup><thead><tr><th style="text-align: left"><span class="emphasis"><em>Name/Instantiating Type</em></span></th><th style="text-align: left"><span class="emphasis"><em>Parameter</em></span></th><th style="text-align: left"><span class="emphasis"><em>Details</em></span></th><th style="text-align: left"><span class="emphasis"><em>Parameter</em></span></th><th style="text-align: left"><span class="emphasis"><em>Details</em></span></th></tr></thead><tbody><tr style="background-color: #B0B0B0"><td colspan="5" style="text-align: left"> | |
5528 | + </p><div class="informaltable"><table border="1"><colgroup><col align="left" class="c1" /><col align="left" class="c2" /><col align="left" class="c3" /><col align="left" class="c4" /><col align="left" class="c5" /></colgroup><thead><tr><th align="left"><span class="emphasis"><em>Name/Instantiating Type</em></span></th><th align="left"><span class="emphasis"><em>Parameter</em></span></th><th align="left"><span class="emphasis"><em>Details</em></span></th><th align="left"><span class="emphasis"><em>Parameter</em></span></th><th align="left"><span class="emphasis"><em>Details</em></span></th></tr></thead><tbody><tr bgcolor="#B0B0B0"><td colspan="5" align="left"> | |
5529 | n_hash_map_ncah | |
5530 | - </td></tr><tr><td style="text-align: left"> | |
5531 | + </td></tr><tr><td align="left"> | |
5532 | <code class="classname">std::tr1::unordered_map</code> | |
5533 | - </td><td style="text-align: left"> | |
5534 | + </td><td align="left"> | |
5535 | <code class="classname">cache_hash_code</code> | |
5536 | - </td><td style="text-align: left"> | |
5537 | + </td><td align="left"> | |
5538 | <code class="constant">false</code> | |
5539 | - </td><td colspan="2" style="text-align: left"> </td></tr><tr style="background-color: #B0B0B0"><td colspan="5" style="text-align: left"> | |
5540 | + </td><td colspan="2" align="left"> </td></tr><tr bgcolor="#B0B0B0"><td colspan="5" align="left"> | |
5541 | gp_hash_mod_quadp_prime_1div2_nsth_map | |
5542 | - </td></tr><tr><td rowspan="4" style="text-align: left" valign="top"> | |
5543 | + </td></tr><tr><td rowspan="4" align="left" valign="top"> | |
5544 | <code class="classname">gp_hash_table</code> | |
5545 | - </td><td style="text-align: left"> | |
5546 | + </td><td align="left"> | |
5547 | <code class="classname">Comb_Hash_Fn</code> | |
5548 | - </td><td style="text-align: left"> | |
5549 | + </td><td align="left"> | |
5550 | <code class="classname">direct_mod_range_hashing</code> | |
5551 | - </td><td colspan="2" style="text-align: left"> </td></tr><tr><td style="text-align: left"> | |
5552 | + </td><td colspan="2" align="left"> </td></tr><tr><td align="left"> | |
5553 | <code class="classname">Probe_Fn</code> | |
5554 | - </td><td style="text-align: left"> | |
5555 | + </td><td align="left"> | |
5556 | <code class="classname">quadratic_probe_fn</code> | |
5557 | - </td><td colspan="2" style="text-align: left"> </td></tr><tr><td rowspan="2" style="text-align: left" valign="top"> | |
5558 | + </td><td colspan="2" align="left"> </td></tr><tr><td rowspan="2" align="left" valign="top"> | |
5559 | <code class="classname">Resize_Policy</code> | |
5560 | - </td><td rowspan="2" style="text-align: left" valign="top"> | |
5561 | + </td><td rowspan="2" align="left" valign="top"> | |
5562 | <code class="classname">hash_standard_resize_policy</code> | |
5563 | - </td><td style="text-align: left"> | |
5564 | + </td><td align="left"> | |
5565 | <code class="classname">Size_Policy</code> | |
5566 | - </td><td style="text-align: left"> | |
5567 | + </td><td align="left"> | |
5568 | <code class="classname">hash_prime_size_policy</code> | |
5569 | - </td></tr><tr><td style="text-align: left" valign="top"> | |
5570 | + </td></tr><tr><td align="left" valign="top"> | |
5571 | <code class="classname">Trigger_Policy</code> | |
5572 | - </td><td style="text-align: left"> | |
5573 | + </td><td align="left"> | |
5574 | <code class="classname">hash_load_check_resize_trigger</code> with | |
5575 | α<sub>min</sub> = 1/8 and α<sub>max</sub> = 1/2 | |
5576 | - </td></tr><tr style="background-color: #B0B0B0"><td colspan="5" style="text-align: left"> | |
5577 | + </td></tr><tr bgcolor="#B0B0B0"><td colspan="5" align="left"> | |
5578 | gp_hash_mask_linp_exp_1div2_nsth_map | |
5579 | - </td></tr><tr><td rowspan="4" style="text-align: left" valign="top"> | |
5580 | + </td></tr><tr><td rowspan="4" align="left" valign="top"> | |
5581 | <code class="classname"> | |
5582 | gp_hash_table | |
5583 | </code> | |
5584 | - </td><td style="text-align: left"> | |
5585 | + </td><td align="left"> | |
5586 | <code class="classname">Comb_Hash_Fn</code> | |
5587 | - </td><td style="text-align: left"> | |
5588 | + </td><td align="left"> | |
5589 | <code class="classname">direct_mask_range_hashing</code> | |
5590 | - </td><td colspan="2" style="text-align: left"> </td></tr><tr><td style="text-align: left"> | |
5591 | + </td><td colspan="2" align="left"> </td></tr><tr><td align="left"> | |
5592 | <code class="classname">Probe_Fn</code> | |
5593 | - </td><td style="text-align: left"> | |
5594 | + </td><td align="left"> | |
5595 | <code class="classname">linear_probe_fn</code> | |
5596 | - </td><td colspan="2" style="text-align: left"> </td></tr><tr><td rowspan="2" style="text-align: left" valign="top"> | |
5597 | + </td><td colspan="2" align="left"> </td></tr><tr><td rowspan="2" align="left" valign="top"> | |
5598 | <code class="classname">Resize_Policy</code> | |
5599 | - </td><td rowspan="2" style="text-align: left" valign="top"> | |
5600 | + </td><td rowspan="2" align="left" valign="top"> | |
5601 | <code class="classname">hash_standard_resize_policy</code> | |
5602 | - </td><td style="text-align: left"> | |
5603 | + </td><td align="left"> | |
5604 | <code class="classname">Size_Policy</code> | |
5605 | - </td><td style="text-align: left"> | |
5606 | + </td><td align="left"> | |
5607 | <code class="classname">hash_exponential_size_policy</code> | |
5608 | - </td></tr><tr><td style="text-align: left" valign="top"> | |
5609 | + </td></tr><tr><td align="left" valign="top"> | |
5610 | <code class="classname">Trigger_Policy</code> | |
5611 | - </td><td style="text-align: left"> | |
5612 | + </td><td align="left"> | |
5613 | <code class="classname">hash_load_check_resize_trigger</code> with | |
5614 | α<sub>min</sub> = 1/8 and α<sub>max</sub> = 1/2 | |
5615 | - </td></tr></tbody></table></div></div><div class="section" title="Observations"><div class="titlepage"><div><div><h6 class="title"><a id="hash.int_subscript_find.observations"/> | |
5616 | + </td></tr></tbody></table></div></div><div class="section" title="Observations"><div class="titlepage"><div><div><h6 class="title"><a id="hash.int_subscript_find.observations"></a> | |
5617 | Observations | |
5618 | </h6></div></div></div><p>This test shows similar results to Hash-Based | |
5619 | - Integer <code class="classname">find</code> Find Timing test.</p></div></div><div class="section" title="Integer Subscript insert"><div class="titlepage"><div><div><h5 class="title"><a id="performance.hash.int_subscript_insert"/> | |
5620 | + Integer <code class="classname">find</code> Find Timing test.</p></div></div><div class="section" title="Integer Subscript insert"><div class="titlepage"><div><div><h5 class="title"><a id="performance.hash.int_subscript_insert"></a> | |
5621 | Integer Subscript <code class="function">insert</code> | |
5622 | - </h5></div></div></div><p/><div class="section" title="Description"><div class="titlepage"><div><div><h6 class="title"><a id="hash.int_subscript_insert.info"/> | |
5623 | + </h5></div></div></div><p></p><div class="section" title="Description"><div class="titlepage"><div><div><h6 class="title"><a id="hash.int_subscript_insert.info"></a> | |
5624 | Description | |
5625 | </h6></div></div></div><p>This test inserts a number of values with uniform i.i.d. | |
5626 | integer keys into a container, using | |
5627 | @@ -569,7 +569,7 @@ | |
5628 | performance/ext/pb_ds/random_int_subscript_insert_timing.cc | |
5629 | </code> | |
5630 | </p><p>The test checks the effect of different underlying | |
5631 | - hash-tables.</p></div><div class="section" title="Results"><div class="titlepage"><div><div><h6 class="title"><a id="hash.int_subscript_insert.results"/> | |
5632 | + hash-tables.</p></div><div class="section" title="Results"><div class="titlepage"><div><div><h6 class="title"><a id="hash.int_subscript_insert.results"></a> | |
5633 | Results | |
5634 | </h6></div></div></div><p> | |
5635 | There are two sets of results for this type, one for | |
5636 | @@ -578,99 +578,99 @@ | |
5637 | and collision-chaining hash types, using as the function | |
5638 | applied an integer subscript timing test with | |
5639 | <code class="function">insert</code>. | |
5640 | - </p><div class="informalfigure"><div class="mediaobject" style="text-align: center"><img src="../images/pbds_cc_hash_int_subscript_insert.png" style="text-align: middle"/></div></div><p> | |
5641 | + </p><div class="informalfigure"><div class="mediaobject" align="center"><img src="../images/pbds_cc_hash_int_subscript_insert.png" align="middle" /></div></div><p> | |
5642 | The abbreviated names in the legend of the graphic above are | |
5643 | instantiated with the types in the following table. | |
5644 | - </p><div class="informaltable"><table border="1"><colgroup><col style="text-align: left" class="c1"/><col style="text-align: left" class="c2"/><col style="text-align: left" class="c3"/><col style="text-align: left" class="c4"/><col style="text-align: left" class="c5"/></colgroup><thead><tr><th style="text-align: left"><span class="emphasis"><em>Name/Instantiating Type</em></span></th><th style="text-align: left"><span class="emphasis"><em>Parameter</em></span></th><th style="text-align: left"><span class="emphasis"><em>Details</em></span></th><th style="text-align: left"><span class="emphasis"><em>Parameter</em></span></th><th style="text-align: left"><span class="emphasis"><em>Details</em></span></th></tr></thead><tbody><tr style="background-color: #B0B0B0"><td colspan="5" style="text-align: left"> | |
5645 | + </p><div class="informaltable"><table border="1"><colgroup><col align="left" class="c1" /><col align="left" class="c2" /><col align="left" class="c3" /><col align="left" class="c4" /><col align="left" class="c5" /></colgroup><thead><tr><th align="left"><span class="emphasis"><em>Name/Instantiating Type</em></span></th><th align="left"><span class="emphasis"><em>Parameter</em></span></th><th align="left"><span class="emphasis"><em>Details</em></span></th><th align="left"><span class="emphasis"><em>Parameter</em></span></th><th align="left"><span class="emphasis"><em>Details</em></span></th></tr></thead><tbody><tr bgcolor="#B0B0B0"><td colspan="5" align="left"> | |
5646 | n_hash_map_ncah | |
5647 | - </td></tr><tr><td style="text-align: left"> | |
5648 | + </td></tr><tr><td align="left"> | |
5649 | <code class="classname">std::tr1::unordered_map</code> | |
5650 | - </td><td style="text-align: left"> | |
5651 | + </td><td align="left"> | |
5652 | <code class="classname">cache_hash_code</code> | |
5653 | - </td><td style="text-align: left"> | |
5654 | + </td><td align="left"> | |
5655 | <code class="constant">false</code> | |
5656 | - </td><td colspan="2" style="text-align: left"> </td></tr><tr style="background-color: #B0B0B0"><td colspan="5" style="text-align: left"> | |
5657 | + </td><td colspan="2" align="left"> </td></tr><tr bgcolor="#B0B0B0"><td colspan="5" align="left"> | |
5658 | cc_hash_mod_prime_1div1_nsth_map | |
5659 | - </td></tr><tr><td rowspan="3" style="text-align: left" valign="top"> | |
5660 | + </td></tr><tr><td rowspan="3" align="left" valign="top"> | |
5661 | <code class="classname">cc_hash_table</code> | |
5662 | - </td><td style="text-align: left"> | |
5663 | + </td><td align="left"> | |
5664 | <code class="classname">Comb_Hash_Fn</code> | |
5665 | - </td><td style="text-align: left"> | |
5666 | + </td><td align="left"> | |
5667 | <code class="classname">direct_mod_range_hashing</code> | |
5668 | - </td><td colspan="2" style="text-align: left"> </td></tr><tr><td rowspan="2" style="text-align: left" valign="top"> | |
5669 | + </td><td colspan="2" align="left"> </td></tr><tr><td rowspan="2" align="left" valign="top"> | |
5670 | <code class="classname">Resize_Policy</code> | |
5671 | - </td><td rowspan="2" style="text-align: left" valign="top"> | |
5672 | + </td><td rowspan="2" align="left" valign="top"> | |
5673 | <code class="classname">hash_standard_resize_policy</code> | |
5674 | - </td><td style="text-align: left"> | |
5675 | + </td><td align="left"> | |
5676 | <code class="classname">Size_Policy</code> | |
5677 | - </td><td style="text-align: left"> | |
5678 | + </td><td align="left"> | |
5679 | <code class="classname">hash_prime_size_policy</code> | |
5680 | - </td></tr><tr><td style="text-align: left" valign="top"> | |
5681 | + </td></tr><tr><td align="left" valign="top"> | |
5682 | <code class="classname">Trigger_Policy</code> | |
5683 | - </td><td style="text-align: left"> | |
5684 | + </td><td align="left"> | |
5685 | <code class="classname">hash_load_check_resize_trigger</code> with | |
5686 | α<sub>min</sub> = 1/8 and α<sub>max</sub> = 1/1 | |
5687 | - </td></tr><tr style="background-color: #B0B0B0"><td colspan="5" style="text-align: left"> | |
5688 | + </td></tr><tr bgcolor="#B0B0B0"><td colspan="5" align="left"> | |
5689 | cc_hash_mod_prime_1div2_nsth_map | |
5690 | - </td></tr><tr><td rowspan="3" style="text-align: left" valign="top"> | |
5691 | + </td></tr><tr><td rowspan="3" align="left" valign="top"> | |
5692 | <code class="classname">cc_hash_table</code> | |
5693 | - </td><td style="text-align: left"> | |
5694 | + </td><td align="left"> | |
5695 | <code class="classname">Comb_Hash_Fn</code> | |
5696 | - </td><td style="text-align: left"> | |
5697 | + </td><td align="left"> | |
5698 | <code class="classname">direct_mod_range_hashing</code> | |
5699 | - </td><td colspan="2" style="text-align: left"> </td></tr><tr><td rowspan="2" style="text-align: left" valign="top"> | |
5700 | + </td><td colspan="2" align="left"> </td></tr><tr><td rowspan="2" align="left" valign="top"> | |
5701 | <code class="classname">Resize_Policy</code> | |
5702 | - </td><td rowspan="2" style="text-align: left" valign="top"> | |
5703 | + </td><td rowspan="2" align="left" valign="top"> | |
5704 | <code class="classname">hash_standard_resize_policy</code> | |
5705 | - </td><td style="text-align: left"> | |
5706 | + </td><td align="left"> | |
5707 | <code class="classname">Size_Policy</code> | |
5708 | - </td><td style="text-align: left"> | |
5709 | + </td><td align="left"> | |
5710 | <code class="classname">hash_prime_size_policy</code> | |
5711 | - </td></tr><tr><td style="text-align: left" valign="top"> | |
5712 | + </td></tr><tr><td align="left" valign="top"> | |
5713 | <code class="classname">Trigger_Policy</code> | |
5714 | - </td><td style="text-align: left"> | |
5715 | + </td><td align="left"> | |
5716 | <code class="classname">hash_load_check_resize_trigger</code> with | |
5717 | α<sub>min</sub> = 1/8 and α<sub>max</sub> = 1/2 | |
5718 | - </td></tr><tr style="background-color: #B0B0B0"><td colspan="5" style="text-align: left"> | |
5719 | + </td></tr><tr bgcolor="#B0B0B0"><td colspan="5" align="left"> | |
5720 | cc_hash_mask_exp_1div1_nsth_map | |
5721 | - </td></tr><tr><td rowspan="3" style="text-align: left" valign="top"> | |
5722 | + </td></tr><tr><td rowspan="3" align="left" valign="top"> | |
5723 | <code class="classname">cc_hash_table</code> | |
5724 | - </td><td style="text-align: left"> | |
5725 | + </td><td align="left"> | |
5726 | <code class="classname">Comb_Hash_Fn</code> | |
5727 | - </td><td style="text-align: left"> | |
5728 | + </td><td align="left"> | |
5729 | <code class="classname">direct_mask_range_hashing</code> | |
5730 | - </td><td colspan="2" style="text-align: left"> </td></tr><tr><td rowspan="2" style="text-align: left" valign="top"> | |
5731 | + </td><td colspan="2" align="left"> </td></tr><tr><td rowspan="2" align="left" valign="top"> | |
5732 | <code class="classname">Resize_Policy</code> | |
5733 | - </td><td rowspan="2" style="text-align: left" valign="top"> | |
5734 | + </td><td rowspan="2" align="left" valign="top"> | |
5735 | <code class="classname">hash_standard_resize_policy</code> | |
5736 | - </td><td style="text-align: left"> | |
5737 | + </td><td align="left"> | |
5738 | <code class="classname">Size_Policy</code> | |
5739 | - </td><td style="text-align: left"> | |
5740 | + </td><td align="left"> | |
5741 | <code class="classname">hash_exponential_size_policy</code> | |
5742 | - </td></tr><tr><td style="text-align: left" valign="top"> | |
5743 | + </td></tr><tr><td align="left" valign="top"> | |
5744 | <code class="classname">Trigger_Policy</code> | |
5745 | - </td><td style="text-align: left"> | |
5746 | + </td><td align="left"> | |
5747 | <code class="classname">hash_load_check_resize_trigger</code> with | |
5748 | α<sub>min</sub> = 1/8 and α<sub>max</sub> = 1/1 | |
5749 | - </td></tr><tr style="background-color: #B0B0B0"><td colspan="5" style="text-align: left"> | |
5750 | + </td></tr><tr bgcolor="#B0B0B0"><td colspan="5" align="left"> | |
5751 | cc_hash_mask_exp_1div2_nsth_map | |
5752 | - </td></tr><tr><td rowspan="3" style="text-align: left" valign="top"> | |
5753 | + </td></tr><tr><td rowspan="3" align="left" valign="top"> | |
5754 | <code class="classname">cc_hash_table</code> | |
5755 | - </td><td style="text-align: left"> | |
5756 | + </td><td align="left"> | |
5757 | <code class="classname">Comb_Hash_Fn</code> | |
5758 | - </td><td style="text-align: left"> | |
5759 | + </td><td align="left"> | |
5760 | <code class="classname">direct_mask_range_hashing</code> | |
5761 | - </td><td colspan="2" style="text-align: left"> </td></tr><tr><td rowspan="2" style="text-align: left" valign="top"> | |
5762 | + </td><td colspan="2" align="left"> </td></tr><tr><td rowspan="2" align="left" valign="top"> | |
5763 | <code class="classname">Resize_Policy</code> | |
5764 | - </td><td rowspan="2" style="text-align: left" valign="top"> | |
5765 | + </td><td rowspan="2" align="left" valign="top"> | |
5766 | <code class="classname">hash_standard_resize_policy</code> | |
5767 | - </td><td style="text-align: left"> | |
5768 | + </td><td align="left"> | |
5769 | <code class="classname">Size_Policy</code> | |
5770 | - </td><td style="text-align: left"> | |
5771 | + </td><td align="left"> | |
5772 | <code class="classname">hash_exponential_size_policy</code> | |
5773 | - </td></tr><tr><td style="text-align: left" valign="top"> | |
5774 | + </td></tr><tr><td align="left" valign="top"> | |
5775 | <code class="classname">Trigger_Policy</code> | |
5776 | - </td><td style="text-align: left"> | |
5777 | + </td><td align="left"> | |
5778 | <code class="classname">hash_load_check_resize_trigger</code> with | |
5779 | α<sub>min</sub> = 1/8 and α<sub>max</sub> = 1/2 | |
5780 | </td></tr></tbody></table></div><p> | |
5781 | @@ -678,77 +678,77 @@ | |
5782 | </p><p>And the second graphic shows the results for the native and | |
5783 | general-probe hash types. The function applied being a random | |
5784 | integer timing test using <code class="function">find</code>. | |
5785 | - </p><div class="informalfigure"><div class="mediaobject" style="text-align: center"><img src="../images/pbds_gp_hash_int_subscript_insert.png" style="text-align: middle"/></div></div><p> | |
5786 | + </p><div class="informalfigure"><div class="mediaobject" align="center"><img src="../images/pbds_gp_hash_int_subscript_insert.png" align="middle" /></div></div><p> | |
5787 | The abbreviated names in the legend of the graphic above are | |
5788 | instantiated with the types in the following table. | |
5789 | - </p><div class="informaltable"><table border="1"><colgroup><col style="text-align: left" class="c1"/><col style="text-align: left" class="c2"/><col style="text-align: left" class="c3"/><col style="text-align: left" class="c4"/><col style="text-align: left" class="c5"/></colgroup><thead><tr><th style="text-align: left"><span class="emphasis"><em>Name/Instantiating Type</em></span></th><th style="text-align: left"><span class="emphasis"><em>Parameter</em></span></th><th style="text-align: left"><span class="emphasis"><em>Details</em></span></th><th style="text-align: left"><span class="emphasis"><em>Parameter</em></span></th><th style="text-align: left"><span class="emphasis"><em>Details</em></span></th></tr></thead><tbody><tr style="background-color: #B0B0B0"><td colspan="5" style="text-align: left"> | |
5790 | + </p><div class="informaltable"><table border="1"><colgroup><col align="left" class="c1" /><col align="left" class="c2" /><col align="left" class="c3" /><col align="left" class="c4" /><col align="left" class="c5" /></colgroup><thead><tr><th align="left"><span class="emphasis"><em>Name/Instantiating Type</em></span></th><th align="left"><span class="emphasis"><em>Parameter</em></span></th><th align="left"><span class="emphasis"><em>Details</em></span></th><th align="left"><span class="emphasis"><em>Parameter</em></span></th><th align="left"><span class="emphasis"><em>Details</em></span></th></tr></thead><tbody><tr bgcolor="#B0B0B0"><td colspan="5" align="left"> | |
5791 | n_hash_map_ncah | |
5792 | - </td></tr><tr><td style="text-align: left"> | |
5793 | + </td></tr><tr><td align="left"> | |
5794 | <code class="classname">std::tr1::unordered_map</code> | |
5795 | - </td><td style="text-align: left"> | |
5796 | + </td><td align="left"> | |
5797 | <code class="classname">cache_hash_code</code> | |
5798 | - </td><td style="text-align: left"> | |
5799 | + </td><td align="left"> | |
5800 | <code class="constant">false</code> | |
5801 | - </td><td colspan="2" style="text-align: left"> </td></tr><tr style="background-color: #B0B0B0"><td colspan="5" style="text-align: left"> | |
5802 | + </td><td colspan="2" align="left"> </td></tr><tr bgcolor="#B0B0B0"><td colspan="5" align="left"> | |
5803 | gp_hash_mod_quadp_prime_1div2_nsth_map | |
5804 | - </td></tr><tr><td rowspan="4" style="text-align: left" valign="top"> | |
5805 | + </td></tr><tr><td rowspan="4" align="left" valign="top"> | |
5806 | <code class="classname">gp_hash_table</code> | |
5807 | - </td><td style="text-align: left"> | |
5808 | + </td><td align="left"> | |
5809 | <code class="classname">Comb_Hash_Fn</code> | |
5810 | - </td><td style="text-align: left"> | |
5811 | + </td><td align="left"> | |
5812 | <code class="classname">direct_mod_range_hashing</code> | |
5813 | - </td><td colspan="2" style="text-align: left"> </td></tr><tr><td style="text-align: left"> | |
5814 | + </td><td colspan="2" align="left"> </td></tr><tr><td align="left"> | |
5815 | <code class="classname">Probe_Fn</code> | |
5816 | - </td><td style="text-align: left"> | |
5817 | + </td><td align="left"> | |
5818 | <code class="classname">quadratic_probe_fn</code> | |
5819 | - </td><td colspan="2" style="text-align: left"> </td></tr><tr><td rowspan="2" style="text-align: left" valign="top"> | |
5820 | + </td><td colspan="2" align="left"> </td></tr><tr><td rowspan="2" align="left" valign="top"> | |
5821 | <code class="classname">Resize_Policy</code> | |
5822 | - </td><td rowspan="2" style="text-align: left" valign="top"> | |
5823 | + </td><td rowspan="2" align="left" valign="top"> | |
5824 | <code class="classname">hash_standard_resize_policy</code> | |
5825 | - </td><td style="text-align: left"> | |
5826 | + </td><td align="left"> | |
5827 | <code class="classname">Size_Policy</code> | |
5828 | - </td><td style="text-align: left"> | |
5829 | + </td><td align="left"> | |
5830 | <code class="classname">hash_prime_size_policy</code> | |
5831 | - </td></tr><tr><td style="text-align: left" valign="top"> | |
5832 | + </td></tr><tr><td align="left" valign="top"> | |
5833 | <code class="classname">Trigger_Policy</code> | |
5834 | - </td><td style="text-align: left"> | |
5835 | + </td><td align="left"> | |
5836 | <code class="classname">hash_load_check_resize_trigger</code> with | |
5837 | α<sub>min</sub> = 1/8 and α<sub>max</sub> = 1/2 | |
5838 | - </td></tr><tr style="background-color: #B0B0B0"><td colspan="5" style="text-align: left"> | |
5839 | + </td></tr><tr bgcolor="#B0B0B0"><td colspan="5" align="left"> | |
5840 | gp_hash_mask_linp_exp_1div2_nsth_map | |
5841 | - </td></tr><tr><td rowspan="4" style="text-align: left" valign="top"> | |
5842 | + </td></tr><tr><td rowspan="4" align="left" valign="top"> | |
5843 | <code class="classname"> | |
5844 | gp_hash_table | |
5845 | </code> | |
5846 | - </td><td style="text-align: left"> | |
5847 | + </td><td align="left"> | |
5848 | <code class="classname">Comb_Hash_Fn</code> | |
5849 | - </td><td style="text-align: left"> | |
5850 | + </td><td align="left"> | |
5851 | <code class="classname">direct_mask_range_hashing</code> | |
5852 | - </td><td colspan="2" style="text-align: left"> </td></tr><tr><td style="text-align: left"> | |
5853 | + </td><td colspan="2" align="left"> </td></tr><tr><td align="left"> | |
5854 | <code class="classname">Probe_Fn</code> | |
5855 | - </td><td style="text-align: left"> | |
5856 | + </td><td align="left"> | |
5857 | <code class="classname">linear_probe_fn</code> | |
5858 | - </td><td colspan="2" style="text-align: left"> </td></tr><tr><td rowspan="2" style="text-align: left" valign="top"> | |
5859 | + </td><td colspan="2" align="left"> </td></tr><tr><td rowspan="2" align="left" valign="top"> | |
5860 | <code class="classname">Resize_Policy</code> | |
5861 | - </td><td rowspan="2" style="text-align: left" valign="top"> | |
5862 | + </td><td rowspan="2" align="left" valign="top"> | |
5863 | <code class="classname">hash_standard_resize_policy</code> | |
5864 | - </td><td style="text-align: left"> | |
5865 | + </td><td align="left"> | |
5866 | <code class="classname">Size_Policy</code> | |
5867 | - </td><td style="text-align: left"> | |
5868 | + </td><td align="left"> | |
5869 | <code class="classname">hash_exponential_size_policy</code> | |
5870 | - </td></tr><tr><td style="text-align: left" valign="top"> | |
5871 | + </td></tr><tr><td align="left" valign="top"> | |
5872 | <code class="classname">Trigger_Policy</code> | |
5873 | - </td><td style="text-align: left"> | |
5874 | + </td><td align="left"> | |
5875 | <code class="classname">hash_load_check_resize_trigger</code> with | |
5876 | α<sub>min</sub> = 1/8 and α<sub>max</sub> = 1/2 | |
5877 | - </td></tr></tbody></table></div></div><div class="section" title="Observations"><div class="titlepage"><div><div><h6 class="title"><a id="hash.int_subscript_insert.observations"/> | |
5878 | + </td></tr></tbody></table></div></div><div class="section" title="Observations"><div class="titlepage"><div><div><h6 class="title"><a id="hash.int_subscript_insert.observations"></a> | |
5879 | Observations | |
5880 | </h6></div></div></div><p>In this setting, as in Hash-Based Text | |
5881 | <code class="function">find</code> Find Timing test and Hash-Based | |
5882 | Integer <code class="function">find</code> Find Timing test , the choice | |
5883 | of underlying hash-table underlying hash-table affects performance | |
5884 | most, then the range-hashing scheme, and | |
5885 | - finally any other policies.</p><p>There are some differences, however:</p><div class="orderedlist"><ol class="orderedlist"><li class="listitem"><p>In this setting, probing tables function sometimes more | |
5886 | + finally any other policies.</p><p>There are some differences, however:</p><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><p>In this setting, probing tables function sometimes more | |
5887 | efficiently than collision-chaining tables. | |
5888 | This is explained shortly.</p></li><li class="listitem"><p>The performance graphs have a "saw-tooth" shape. The | |
5889 | average insert time rises and falls. As values are inserted | |
5890 | @@ -770,9 +770,9 @@ | |
5891 | <code class="function">find</code> Find Timing Test and Hash-Based | |
5892 | Integer <code class="function">find</code> Find Timing Test. | |
5893 | Unsurprisingly, however, containers with lower α<sub>max</sub> perform worse in this case, | |
5894 | - since more re-hashes are performed.</p></div></div><div class="section" title="Integer find with Skewed-Distribution"><div class="titlepage"><div><div><h5 class="title"><a id="performance.hash.zlob_int_find"/> | |
5895 | + since more re-hashes are performed.</p></div></div><div class="section" title="Integer find with Skewed-Distribution"><div class="titlepage"><div><div><h5 class="title"><a id="performance.hash.zlob_int_find"></a> | |
5896 | Integer <code class="function">find</code> with Skewed-Distribution | |
5897 | - </h5></div></div></div><p/><div class="section" title="Description"><div class="titlepage"><div><div><h6 class="title"><a id="hash.zlob_int_find.info"/> | |
5898 | + </h5></div></div></div><p></p><div class="section" title="Description"><div class="titlepage"><div><div><h6 class="title"><a id="hash.zlob_int_find.info"></a> | |
5899 | Description | |
5900 | </h6></div></div></div><p>This test inserts a number of values with a markedly | |
5901 | non-uniform integer keys into a container, then performs | |
5902 | @@ -785,90 +785,90 @@ | |
5903 | performance/ext/pb_ds/hash_zlob_random_int_find_timing.cc | |
5904 | </code> | |
5905 | </p><p>The test checks the effect of different range-hashing | |
5906 | - functions and trigger policies.</p></div><div class="section" title="Results"><div class="titlepage"><div><div><h6 class="title"><a id="hash.zlob_int_find.results"/> | |
5907 | + functions and trigger policies.</p></div><div class="section" title="Results"><div class="titlepage"><div><div><h6 class="title"><a id="hash.zlob_int_find.results"></a> | |
5908 | Results | |
5909 | </h6></div></div></div><p>The graphic below show the results for the native, collision-chaining, and general-probing hash types. | |
5910 | - </p><div class="informalfigure"><div class="mediaobject" style="text-align: center"><img src="../images/pbds_hash_zlob_int_find.png" style="text-align: middle"/></div></div><p> | |
5911 | + </p><div class="informalfigure"><div class="mediaobject" align="center"><img src="../images/pbds_hash_zlob_int_find.png" align="middle" /></div></div><p> | |
5912 | The abbreviated names in the legend of the graphic above are | |
5913 | instantiated with the types in the following table. | |
5914 | - </p><div class="informaltable"><table border="1"><colgroup><col style="text-align: left" class="c1"/><col style="text-align: left" class="c2"/><col style="text-align: left" class="c3"/><col style="text-align: left" class="c4"/><col style="text-align: left" class="c5"/></colgroup><thead><tr><th style="text-align: left"><span class="emphasis"><em>Name/Instantiating Type</em></span></th><th style="text-align: left"><span class="emphasis"><em>Parameter</em></span></th><th style="text-align: left"><span class="emphasis"><em>Details</em></span></th><th style="text-align: left"><span class="emphasis"><em>Parameter</em></span></th><th style="text-align: left"><span class="emphasis"><em>Details</em></span></th></tr></thead><tbody><tr style="background-color: #B0B0B0"><td colspan="5" style="text-align: left"> | |
5915 | + </p><div class="informaltable"><table border="1"><colgroup><col align="left" class="c1" /><col align="left" class="c2" /><col align="left" class="c3" /><col align="left" class="c4" /><col align="left" class="c5" /></colgroup><thead><tr><th align="left"><span class="emphasis"><em>Name/Instantiating Type</em></span></th><th align="left"><span class="emphasis"><em>Parameter</em></span></th><th align="left"><span class="emphasis"><em>Details</em></span></th><th align="left"><span class="emphasis"><em>Parameter</em></span></th><th align="left"><span class="emphasis"><em>Details</em></span></th></tr></thead><tbody><tr bgcolor="#B0B0B0"><td colspan="5" align="left"> | |
5916 | n_hash_map_ncah | |
5917 | - </td></tr><tr><td style="text-align: left"> | |
5918 | + </td></tr><tr><td align="left"> | |
5919 | <code class="classname">std::tr1::unordered_map</code> | |
5920 | - </td><td style="text-align: left"> | |
5921 | + </td><td align="left"> | |
5922 | <code class="classname">cache_hash_code</code> | |
5923 | - </td><td style="text-align: left"> | |
5924 | + </td><td align="left"> | |
5925 | <code class="constant">false</code> | |
5926 | - </td><td colspan="2" style="text-align: left"> </td></tr><tr style="background-color: #B0B0B0"><td colspan="5" style="text-align: left"> | |
5927 | + </td><td colspan="2" align="left"> </td></tr><tr bgcolor="#B0B0B0"><td colspan="5" align="left"> | |
5928 | cc_hash_mod_prime_1div1_nsth_map | |
5929 | - </td></tr><tr><td rowspan="3" style="text-align: left" valign="top"> | |
5930 | + </td></tr><tr><td rowspan="3" align="left" valign="top"> | |
5931 | <code class="classname">cc_hash_table</code> | |
5932 | - </td><td style="text-align: left"> | |
5933 | + </td><td align="left"> | |
5934 | <code class="classname">Comb_Hash_Fn</code> | |
5935 | - </td><td style="text-align: left"> | |
5936 | + </td><td align="left"> | |
5937 | <code class="classname">direct_mod_range_hashing</code> | |
5938 | - </td><td colspan="2" style="text-align: left"> </td></tr><tr><td rowspan="2" style="text-align: left" valign="top"> | |
5939 | + </td><td colspan="2" align="left"> </td></tr><tr><td rowspan="2" align="left" valign="top"> | |
5940 | <code class="classname">Resize_Policy</code> | |
5941 | - </td><td rowspan="2" style="text-align: left" valign="top"> | |
5942 | + </td><td rowspan="2" align="left" valign="top"> | |
5943 | <code class="classname">hash_standard_resize_policy</code> | |
5944 | - </td><td style="text-align: left"> | |
5945 | + </td><td align="left"> | |
5946 | <code class="classname">Size_Policy</code> | |
5947 | - </td><td style="text-align: left"> | |
5948 | + </td><td align="left"> | |
5949 | <code class="classname">hash_prime_size_policy</code> | |
5950 | - </td></tr><tr><td style="text-align: left" valign="top"> | |
5951 | + </td></tr><tr><td align="left" valign="top"> | |
5952 | <code class="classname">Trigger_Policy</code> | |
5953 | - </td><td style="text-align: left"> | |
5954 | + </td><td align="left"> | |
5955 | <code class="classname">hash_load_check_resize_trigger</code> with | |
5956 | α<sub>min</sub> = 1/8 and α<sub>max</sub> = 1/1 | |
5957 | - </td></tr><tr style="background-color: #B0B0B0"><td colspan="5" style="text-align: left"> | |
5958 | + </td></tr><tr bgcolor="#B0B0B0"><td colspan="5" align="left"> | |
5959 | cc_hash_mask_exp_1div1_nsth_map | |
5960 | - </td></tr><tr><td rowspan="3" style="text-align: left" valign="top"> | |
5961 | + </td></tr><tr><td rowspan="3" align="left" valign="top"> | |
5962 | <code class="classname"> | |
5963 | cc_hash_table | |
5964 | </code> | |
5965 | - </td><td style="text-align: left"> | |
5966 | + </td><td align="left"> | |
5967 | <code class="classname">Comb_Hash_Fn</code> | |
5968 | - </td><td style="text-align: left"> | |
5969 | + </td><td align="left"> | |
5970 | <code class="classname">direct_mask_range_hashing</code> | |
5971 | - </td><td colspan="2" style="text-align: left"> </td></tr><tr><td rowspan="2" style="text-align: left" valign="top"> | |
5972 | + </td><td colspan="2" align="left"> </td></tr><tr><td rowspan="2" align="left" valign="top"> | |
5973 | <code class="classname">Resize_Policy</code> | |
5974 | - </td><td rowspan="2" style="text-align: left" valign="top"> | |
5975 | + </td><td rowspan="2" align="left" valign="top"> | |
5976 | <code class="classname">hash_standard_resize_policy</code> | |
5977 | - </td><td style="text-align: left"> | |
5978 | + </td><td align="left"> | |
5979 | <code class="classname">Size_Policy</code> | |
5980 | - </td><td style="text-align: left"> | |
5981 | + </td><td align="left"> | |
5982 | <code class="classname">hash_exponential_size_policy</code> | |
5983 | - </td></tr><tr><td style="text-align: left" valign="top"> | |
5984 | + </td></tr><tr><td align="left" valign="top"> | |
5985 | <code class="classname">Trigger_Policy</code> | |
5986 | - </td><td style="text-align: left"> | |
5987 | + </td><td align="left"> | |
5988 | <code class="classname">hash_load_check_resize_trigger</code> with | |
5989 | α<sub>min</sub> = 1/8 and α<sub>max</sub> = 1/1 | |
5990 | - </td></tr><tr style="background-color: #B0B0B0"><td colspan="5" style="text-align: left"> | |
5991 | + </td></tr><tr bgcolor="#B0B0B0"><td colspan="5" align="left"> | |
5992 | gp_hash_mod_quadp_prime_1div2_nsth_map | |
5993 | - </td></tr><tr><td rowspan="4" style="text-align: left" valign="top"> | |
5994 | + </td></tr><tr><td rowspan="4" align="left" valign="top"> | |
5995 | <code class="classname">gp_hash_table</code> | |
5996 | - </td><td style="text-align: left"> | |
5997 | + </td><td align="left"> | |
5998 | <code class="classname">Comb_Hash_Fn</code> | |
5999 | - </td><td style="text-align: left"> | |
6000 | + </td><td align="left"> | |
6001 | <code class="classname">direct_mod_range_hashing</code> | |
6002 | - </td><td colspan="2" style="text-align: left"> </td></tr><tr><td style="text-align: left"> | |
6003 | + </td><td colspan="2" align="left"> </td></tr><tr><td align="left"> | |
6004 | <code class="classname">Probe_Fn</code> | |
6005 | - </td><td style="text-align: left"> | |
6006 | + </td><td align="left"> | |
6007 | <code class="classname">quadratic_probe_fn</code> | |
6008 | - </td><td colspan="2" style="text-align: left"> </td></tr><tr><td rowspan="2" style="text-align: left" valign="top"> | |
6009 | + </td><td colspan="2" align="left"> </td></tr><tr><td rowspan="2" align="left" valign="top"> | |
6010 | <code class="classname">Resize_Policy</code> | |
6011 | - </td><td rowspan="2" style="text-align: left" valign="top"> | |
6012 | + </td><td rowspan="2" align="left" valign="top"> | |
6013 | <code class="classname">hash_standard_resize_policy</code> | |
6014 | - </td><td style="text-align: left"> | |
6015 | + </td><td align="left"> | |
6016 | <code class="classname">Size_Policy</code> | |
6017 | - </td><td style="text-align: left"> | |
6018 | + </td><td align="left"> | |
6019 | <code class="classname">hash_prime_size_policy</code> | |
6020 | - </td></tr><tr><td style="text-align: left" valign="top"> | |
6021 | + </td></tr><tr><td align="left" valign="top"> | |
6022 | <code class="classname">Trigger_Policy</code> | |
6023 | - </td><td style="text-align: left"> | |
6024 | + </td><td align="left"> | |
6025 | <code class="classname">hash_load_check_resize_trigger</code> with | |
6026 | α<sub>min</sub> = 1/8 and α<sub>max</sub> = 1/2 | |
6027 | - </td></tr></tbody></table></div></div><div class="section" title="Observations"><div class="titlepage"><div><div><h6 class="title"><a id="hash.zlob_int_find.observations"/> | |
6028 | + </td></tr></tbody></table></div></div><div class="section" title="Observations"><div class="titlepage"><div><div><h6 class="title"><a id="hash.zlob_int_find.observations"></a> | |
6029 | Observations | |
6030 | </h6></div></div></div><p>In this setting, the distribution of keys is so skewed that | |
6031 | the underlying hash-table type affects performance marginally. | |
6032 | @@ -895,9 +895,9 @@ | |
6033 | performance is bad, a χ<sup>2</sup> test can be used | |
6034 | to check how to transform it into a more uniform | |
6035 | distribution.</p><p>For this reason, this library's default range-hashing | |
6036 | - function is mask-based.</p></div></div><div class="section" title="Erase Memory Use"><div class="titlepage"><div><div><h5 class="title"><a id="performance.hash.erase_mem"/> | |
6037 | + function is mask-based.</p></div></div><div class="section" title="Erase Memory Use"><div class="titlepage"><div><div><h5 class="title"><a id="performance.hash.erase_mem"></a> | |
6038 | Erase Memory Use | |
6039 | - </h5></div></div></div><p/><div class="section" title="Description"><div class="titlepage"><div><div><h6 class="title"><a id="hash.erase_mem.info"/> | |
6040 | + </h5></div></div></div><p></p><div class="section" title="Description"><div class="titlepage"><div><div><h6 class="title"><a id="hash.erase_mem.info"></a> | |
6041 | Description | |
6042 | </h6></div></div></div><p>This test inserts a number of uniform integer keys | |
6043 | into a container, then erases all keys except one. It measures | |
6044 | @@ -907,90 +907,90 @@ | |
6045 | performance/ext/pb_ds/hash_random_int_erase_mem_usage.cc | |
6046 | </code> | |
6047 | </p><p>The test checks how containers adjust internally as their | |
6048 | - logical size decreases.</p></div><div class="section" title="Results"><div class="titlepage"><div><div><h6 class="title"><a id="hash.erase_mem.results"/> | |
6049 | + logical size decreases.</p></div><div class="section" title="Results"><div class="titlepage"><div><div><h6 class="title"><a id="hash.erase_mem.results"></a> | |
6050 | Results | |
6051 | </h6></div></div></div><p>The graphic below show the results for the native, collision-chaining, and general-probing hash types. | |
6052 | - </p><div class="informalfigure"><div class="mediaobject" style="text-align: center"><img src="../images/pbds_hash_int_erase_mem.png" style="text-align: middle"/></div></div><p> | |
6053 | + </p><div class="informalfigure"><div class="mediaobject" align="center"><img src="../images/pbds_hash_int_erase_mem.png" align="middle" /></div></div><p> | |
6054 | The abbreviated names in the legend of the graphic above are | |
6055 | instantiated with the types in the following table. | |
6056 | - </p><div class="informaltable"><table border="1"><colgroup><col style="text-align: left" class="c1"/><col style="text-align: left" class="c2"/><col style="text-align: left" class="c3"/><col style="text-align: left" class="c4"/><col style="text-align: left" class="c5"/></colgroup><thead><tr><th style="text-align: left"><span class="emphasis"><em>Name/Instantiating Type</em></span></th><th style="text-align: left"><span class="emphasis"><em>Parameter</em></span></th><th style="text-align: left"><span class="emphasis"><em>Details</em></span></th><th style="text-align: left"><span class="emphasis"><em>Parameter</em></span></th><th style="text-align: left"><span class="emphasis"><em>Details</em></span></th></tr></thead><tbody><tr style="background-color: #B0B0B0"><td colspan="5" style="text-align: left"> | |
6057 | + </p><div class="informaltable"><table border="1"><colgroup><col align="left" class="c1" /><col align="left" class="c2" /><col align="left" class="c3" /><col align="left" class="c4" /><col align="left" class="c5" /></colgroup><thead><tr><th align="left"><span class="emphasis"><em>Name/Instantiating Type</em></span></th><th align="left"><span class="emphasis"><em>Parameter</em></span></th><th align="left"><span class="emphasis"><em>Details</em></span></th><th align="left"><span class="emphasis"><em>Parameter</em></span></th><th align="left"><span class="emphasis"><em>Details</em></span></th></tr></thead><tbody><tr bgcolor="#B0B0B0"><td colspan="5" align="left"> | |
6058 | n_hash_map_ncah | |
6059 | - </td></tr><tr><td style="text-align: left"> | |
6060 | + </td></tr><tr><td align="left"> | |
6061 | <code class="classname">std::tr1::unordered_map</code> | |
6062 | - </td><td style="text-align: left"> | |
6063 | + </td><td align="left"> | |
6064 | <code class="classname">cache_hash_code</code> | |
6065 | - </td><td style="text-align: left"> | |
6066 | + </td><td align="left"> | |
6067 | <code class="constant">false</code> | |
6068 | - </td><td colspan="2" style="text-align: left"> </td></tr><tr style="background-color: #B0B0B0"><td colspan="5" style="text-align: left"> | |
6069 | + </td><td colspan="2" align="left"> </td></tr><tr bgcolor="#B0B0B0"><td colspan="5" align="left"> | |
6070 | cc_hash_mod_prime_1div1_nsth_map | |
6071 | - </td></tr><tr><td rowspan="3" style="text-align: left" valign="top"> | |
6072 | + </td></tr><tr><td rowspan="3" align="left" valign="top"> | |
6073 | <code class="classname">cc_hash_table</code> | |
6074 | - </td><td style="text-align: left"> | |
6075 | + </td><td align="left"> | |
6076 | <code class="classname">Comb_Hash_Fn</code> | |
6077 | - </td><td style="text-align: left"> | |
6078 | + </td><td align="left"> | |
6079 | <code class="classname">direct_mod_range_hashing</code> | |
6080 | - </td><td colspan="2" style="text-align: left"> </td></tr><tr><td rowspan="2" style="text-align: left" valign="top"> | |
6081 | + </td><td colspan="2" align="left"> </td></tr><tr><td rowspan="2" align="left" valign="top"> | |
6082 | <code class="classname">Resize_Policy</code> | |
6083 | - </td><td rowspan="2" style="text-align: left" valign="top"> | |
6084 | + </td><td rowspan="2" align="left" valign="top"> | |
6085 | <code class="classname">hash_standard_resize_policy</code> | |
6086 | - </td><td style="text-align: left"> | |
6087 | + </td><td align="left"> | |
6088 | <code class="classname">Size_Policy</code> | |
6089 | - </td><td style="text-align: left"> | |
6090 | + </td><td align="left"> | |
6091 | <code class="classname">hash_prime_size_policy</code> | |
6092 | - </td></tr><tr><td style="text-align: left" valign="top"> | |
6093 | + </td></tr><tr><td align="left" valign="top"> | |
6094 | <code class="classname">Trigger_Policy</code> | |
6095 | - </td><td style="text-align: left"> | |
6096 | + </td><td align="left"> | |
6097 | <code class="classname">hash_load_check_resize_trigger</code> with | |
6098 | α<sub>min</sub> = 1/8 and α<sub>max</sub> = 1/1 | |
6099 | - </td></tr><tr style="background-color: #B0B0B0"><td colspan="5" style="text-align: left"> | |
6100 | + </td></tr><tr bgcolor="#B0B0B0"><td colspan="5" align="left"> | |
6101 | cc_hash_mask_exp_1div2_nsth_map | |
6102 | - </td></tr><tr><td rowspan="3" style="text-align: left" valign="top"> | |
6103 | + </td></tr><tr><td rowspan="3" align="left" valign="top"> | |
6104 | <code class="classname"> | |
6105 | cc_hash_table | |
6106 | </code> | |
6107 | - </td><td style="text-align: left"> | |
6108 | + </td><td align="left"> | |
6109 | <code class="classname">Comb_Hash_Fn</code> | |
6110 | - </td><td style="text-align: left"> | |
6111 | + </td><td align="left"> | |
6112 | <code class="classname">direct_mask_range_hashing</code> | |
6113 | - </td><td colspan="2" style="text-align: left"> </td></tr><tr><td rowspan="2" style="text-align: left" valign="top"> | |
6114 | + </td><td colspan="2" align="left"> </td></tr><tr><td rowspan="2" align="left" valign="top"> | |
6115 | <code class="classname">Resize_Policy</code> | |
6116 | - </td><td rowspan="2" style="text-align: left" valign="top"> | |
6117 | + </td><td rowspan="2" align="left" valign="top"> | |
6118 | <code class="classname">hash_standard_resize_policy</code> | |
6119 | - </td><td style="text-align: left"> | |
6120 | + </td><td align="left"> | |
6121 | <code class="classname">Size_Policy</code> | |
6122 | - </td><td style="text-align: left"> | |
6123 | + </td><td align="left"> | |
6124 | <code class="classname">hash_exponential_size_policy</code> | |
6125 | - </td></tr><tr><td style="text-align: left" valign="top"> | |
6126 | + </td></tr><tr><td align="left" valign="top"> | |
6127 | <code class="classname">Trigger_Policy</code> | |
6128 | - </td><td style="text-align: left"> | |
6129 | + </td><td align="left"> | |
6130 | <code class="classname">hash_load_check_resize_trigger</code> with | |
6131 | α<sub>min</sub> = 1/8 and α<sub>max</sub> = 1/2 | |
6132 | - </td></tr><tr style="background-color: #B0B0B0"><td colspan="5" style="text-align: left"> | |
6133 | + </td></tr><tr bgcolor="#B0B0B0"><td colspan="5" align="left"> | |
6134 | gp_hash_mask_linp_exp_1div2_nsth_set | |
6135 | - </td></tr><tr><td rowspan="4" style="text-align: left" valign="top"> | |
6136 | + </td></tr><tr><td rowspan="4" align="left" valign="top"> | |
6137 | <code class="classname">gp_hash_table</code> | |
6138 | - </td><td style="text-align: left"> | |
6139 | + </td><td align="left"> | |
6140 | <code class="classname">Comb_Hash_Fn</code> | |
6141 | - </td><td style="text-align: left"> | |
6142 | + </td><td align="left"> | |
6143 | <code class="classname">direct_mask_range_hashing</code> | |
6144 | - </td><td colspan="2" style="text-align: left"> </td></tr><tr><td style="text-align: left"> | |
6145 | + </td><td colspan="2" align="left"> </td></tr><tr><td align="left"> | |
6146 | <code class="classname">Probe_Fn</code> | |
6147 | - </td><td style="text-align: left"> | |
6148 | + </td><td align="left"> | |
6149 | <code class="classname">linear_probe_fn</code> | |
6150 | - </td><td colspan="2" style="text-align: left"> </td></tr><tr><td rowspan="2" style="text-align: left" valign="top"> | |
6151 | + </td><td colspan="2" align="left"> </td></tr><tr><td rowspan="2" align="left" valign="top"> | |
6152 | <code class="classname">Resize_Policy</code> | |
6153 | - </td><td rowspan="2" style="text-align: left" valign="top"> | |
6154 | + </td><td rowspan="2" align="left" valign="top"> | |
6155 | <code class="classname">hash_standard_resize_policy</code> | |
6156 | - </td><td style="text-align: left"> | |
6157 | + </td><td align="left"> | |
6158 | <code class="classname">Size_Policy</code> | |
6159 | - </td><td style="text-align: left"> | |
6160 | + </td><td align="left"> | |
6161 | <code class="classname">hash_exponential_size_policy</code> | |
6162 | - </td></tr><tr><td style="text-align: left" valign="top"> | |
6163 | + </td></tr><tr><td align="left" valign="top"> | |
6164 | <code class="classname">Trigger_Policy</code> | |
6165 | - </td><td style="text-align: left"> | |
6166 | + </td><td align="left"> | |
6167 | <code class="classname">hash_load_check_resize_trigger</code> with | |
6168 | α<sub>min</sub> = 1/8 and α<sub>max</sub> = 1/2 | |
6169 | - </td></tr></tbody></table></div></div><div class="section" title="Observations"><div class="titlepage"><div><div><h6 class="title"><a id="hash.erase_mem.observations"/> | |
6170 | + </td></tr></tbody></table></div></div><div class="section" title="Observations"><div class="titlepage"><div><div><h6 class="title"><a id="hash.erase_mem.observations"></a> | |
6171 | Observations | |
6172 | </h6></div></div></div><p>The standard's hash-based containers act very differently than trees in | |
6173 | this respect. When erasing numerous keys from an standard | |
6174 | @@ -998,9 +998,9 @@ | |
6175 | depending on whether the container is tree-based or hash-based. | |
6176 | This is a fundamental consequence of the standard's interface for | |
6177 | associative containers, and it is not due to a specific | |
6178 | - implementation.</p></div></div></div><div class="section" title="Branch-Based"><div class="titlepage"><div><div><h4 class="title"><a id="performance.branch"/>Branch-Based</h4></div></div></div><p/><div class="section" title="Text insert"><div class="titlepage"><div><div><h5 class="title"><a id="performance.branch.text_insert"/> | |
6179 | + implementation.</p></div></div></div><div class="section" title="Branch-Based"><div class="titlepage"><div><div><h4 class="title"><a id="performance.branch"></a>Branch-Based</h4></div></div></div><p></p><div class="section" title="Text insert"><div class="titlepage"><div><div><h5 class="title"><a id="performance.branch.text_insert"></a> | |
6180 | Text <code class="function">insert</code> | |
6181 | - </h5></div></div></div><p/><div class="section" title="Description"><div class="titlepage"><div><div><h6 class="title"><a id="branch.text_insert.info"/> | |
6182 | + </h5></div></div></div><p></p><div class="section" title="Description"><div class="titlepage"><div><div><h6 class="title"><a id="branch.text_insert.info"></a> | |
6183 | Description | |
6184 | </h6></div></div></div><p>This test inserts a number of values with keys from an arbitrary | |
6185 | text ([ wickland96thirty ]) into a container | |
6186 | @@ -1012,7 +1012,7 @@ | |
6187 | <code class="filename"> | |
6188 | performance/ext/pb_ds/tree_text_insert_timing.cc | |
6189 | </code> | |
6190 | - </p></div><div class="section" title="Results"><div class="titlepage"><div><div><h6 class="title"><a id="branch.text_insert.results"/> | |
6191 | + </p></div><div class="section" title="Results"><div class="titlepage"><div><div><h6 class="title"><a id="branch.text_insert.results"></a> | |
6192 | Results | |
6193 | </h6></div></div></div><p>The three graphics below show the results for the native | |
6194 | tree and this library's node-based trees, the native tree and | |
6195 | @@ -1020,80 +1020,80 @@ | |
6196 | and this library's PATRICIA-trie, respectively. | |
6197 | </p><p>The graphic immediately below shows the results for the | |
6198 | native tree type and several node-based tree types. | |
6199 | - </p><div class="informalfigure"><div class="mediaobject" style="text-align: center"><img src="../images/pbds_tree_text_insert_node.png" style="text-align: middle"/></div><p> | |
6200 | + </p><div class="informalfigure"><div class="mediaobject" align="center"><img src="../images/pbds_tree_text_insert_node.png" align="middle" /></div><p> | |
6201 | The abbreviated names in the legend of the graphic above are | |
6202 | instantiated with the types in the following table. | |
6203 | - </p></div><div class="informaltable"><table border="1"><colgroup><col style="text-align: left" class="c1"/><col style="text-align: left" class="c2"/><col style="text-align: left" class="c3"/></colgroup><thead><tr><th style="text-align: left"><span class="emphasis"><em>Name/Instantiating Type</em></span></th><th style="text-align: left"><span class="emphasis"><em>Parameter</em></span></th><th style="text-align: left"><span class="emphasis"><em>Details</em></span></th></tr></thead><tbody><tr style="background-color: #B0B0B0"><td colspan="3" style="text-align: left"> | |
6204 | + </p></div><div class="informaltable"><table border="1"><colgroup><col align="left" class="c1" /><col align="left" class="c2" /><col align="left" class="c3" /></colgroup><thead><tr><th align="left"><span class="emphasis"><em>Name/Instantiating Type</em></span></th><th align="left"><span class="emphasis"><em>Parameter</em></span></th><th align="left"><span class="emphasis"><em>Details</em></span></th></tr></thead><tbody><tr bgcolor="#B0B0B0"><td colspan="3" align="left"> | |
6205 | n_map | |
6206 | - </td></tr><tr><td style="text-align: left"> | |
6207 | + </td></tr><tr><td align="left"> | |
6208 | <code class="classname">std::map</code> | |
6209 | - </td><td colspan="2" style="text-align: left"> </td></tr><tr style="background-color: #B0B0B0"><td colspan="3" style="text-align: left"> | |
6210 | + </td><td colspan="2" align="left"> </td></tr><tr bgcolor="#B0B0B0"><td colspan="3" align="left"> | |
6211 | splay_tree_map | |
6212 | - </td></tr><tr><td rowspan="2" style="text-align: left" valign="top"> | |
6213 | + </td></tr><tr><td rowspan="2" align="left" valign="top"> | |
6214 | <code class="classname">tree</code> | |
6215 | - </td><td style="text-align: left"> | |
6216 | + </td><td align="left"> | |
6217 | <code class="classname">Tag</code> | |
6218 | - </td><td style="text-align: left"> | |
6219 | + </td><td align="left"> | |
6220 | <code class="classname">splay_tree_tag</code> | |
6221 | - </td></tr><tr><td style="text-align: left"> | |
6222 | + </td></tr><tr><td align="left"> | |
6223 | <code class="classname">Node_update</code> | |
6224 | - </td><td style="text-align: left"> | |
6225 | + </td><td align="left"> | |
6226 | <code class="classname">null_node_update</code> | |
6227 | - </td></tr><tr style="background-color: #B0B0B0"><td colspan="3" style="text-align: left"> | |
6228 | + </td></tr><tr bgcolor="#B0B0B0"><td colspan="3" align="left"> | |
6229 | rb_tree_map | |
6230 | - </td></tr><tr><td rowspan="2" style="text-align: left" valign="top"> | |
6231 | + </td></tr><tr><td rowspan="2" align="left" valign="top"> | |
6232 | <code class="classname">tree</code> | |
6233 | - </td><td style="text-align: left"> | |
6234 | + </td><td align="left"> | |
6235 | <code class="classname">Tag</code> | |
6236 | - </td><td style="text-align: left"> | |
6237 | + </td><td align="left"> | |
6238 | <code class="classname">rb_tree_tag</code> | |
6239 | - </td></tr><tr><td style="text-align: left"> | |
6240 | + </td></tr><tr><td align="left"> | |
6241 | <code class="classname">Node_update</code> | |
6242 | - </td><td style="text-align: left"> | |
6243 | + </td><td align="left"> | |
6244 | <code class="classname">null_node_update</code> | |
6245 | </td></tr></tbody></table></div><p>The graphic below shows the results for the | |
6246 | native tree type and a vector-based tree type. | |
6247 | - </p><div class="informalfigure"><div class="mediaobject" style="text-align: center"><img src="../images/pbds_tree_text_insert_vector.png" style="text-align: middle"/></div></div><p> | |
6248 | + </p><div class="informalfigure"><div class="mediaobject" align="center"><img src="../images/pbds_tree_text_insert_vector.png" align="middle" /></div></div><p> | |
6249 | The abbreviated names in the legend of the graphic above are | |
6250 | instantiated with the types in the following table. | |
6251 | - </p><div class="informaltable"><table border="1"><colgroup><col style="text-align: left" class="c1"/><col style="text-align: left" class="c2"/><col style="text-align: left" class="c3"/></colgroup><thead><tr><th style="text-align: left"><span class="emphasis"><em>Name/Instantiating Type</em></span></th><th style="text-align: left"><span class="emphasis"><em>Parameter</em></span></th><th style="text-align: left"><span class="emphasis"><em>Details</em></span></th></tr></thead><tbody><tr style="background-color: #B0B0B0"><td colspan="3" style="text-align: left"> | |
6252 | + </p><div class="informaltable"><table border="1"><colgroup><col align="left" class="c1" /><col align="left" class="c2" /><col align="left" class="c3" /></colgroup><thead><tr><th align="left"><span class="emphasis"><em>Name/Instantiating Type</em></span></th><th align="left"><span class="emphasis"><em>Parameter</em></span></th><th align="left"><span class="emphasis"><em>Details</em></span></th></tr></thead><tbody><tr bgcolor="#B0B0B0"><td colspan="3" align="left"> | |
6253 | n_map | |
6254 | - </td></tr><tr><td style="text-align: left"> | |
6255 | + </td></tr><tr><td align="left"> | |
6256 | <code class="classname">std::map</code> | |
6257 | - </td><td colspan="2" style="text-align: left"> </td></tr><tr style="background-color: #B0B0B0"><td colspan="3" style="text-align: left"> | |
6258 | + </td><td colspan="2" align="left"> </td></tr><tr bgcolor="#B0B0B0"><td colspan="3" align="left"> | |
6259 | ov_tree_map | |
6260 | - </td></tr><tr><td rowspan="2" style="text-align: left" valign="top"> | |
6261 | + </td></tr><tr><td rowspan="2" align="left" valign="top"> | |
6262 | <code class="classname">tree</code> | |
6263 | - </td><td style="text-align: left"> | |
6264 | + </td><td align="left"> | |
6265 | <code class="classname">Tag</code> | |
6266 | - </td><td style="text-align: left"> | |
6267 | + </td><td align="left"> | |
6268 | <code class="classname">ov_tree_tag</code> | |
6269 | - </td></tr><tr><td style="text-align: left"> | |
6270 | + </td></tr><tr><td align="left"> | |
6271 | <code class="classname">Node_update</code> | |
6272 | - </td><td style="text-align: left"> | |
6273 | + </td><td align="left"> | |
6274 | <code class="classname">null_node_update</code> | |
6275 | </td></tr></tbody></table></div><p>The graphic below shows the results for the | |
6276 | native tree type and a PATRICIA trie type. | |
6277 | - </p><div class="informalfigure"><div class="mediaobject" style="text-align: center"><img src="../images/pbds_tree_text_insert_trie.png" style="text-align: middle"/></div></div><p> | |
6278 | + </p><div class="informalfigure"><div class="mediaobject" align="center"><img src="../images/pbds_tree_text_insert_trie.png" align="middle" /></div></div><p> | |
6279 | The abbreviated names in the legend of the graphic above are | |
6280 | instantiated with the types in the following table. | |
6281 | - </p><div class="informaltable"><table border="1"><colgroup><col style="text-align: left" class="c1"/><col style="text-align: left" class="c2"/><col style="text-align: left" class="c3"/></colgroup><thead><tr><th style="text-align: left"><span class="emphasis"><em>Name/Instantiating Type</em></span></th><th style="text-align: left"><span class="emphasis"><em>Parameter</em></span></th><th style="text-align: left"><span class="emphasis"><em>Details</em></span></th></tr></thead><tbody><tr style="background-color: #B0B0B0"><td colspan="3" style="text-align: left"> | |
6282 | + </p><div class="informaltable"><table border="1"><colgroup><col align="left" class="c1" /><col align="left" class="c2" /><col align="left" class="c3" /></colgroup><thead><tr><th align="left"><span class="emphasis"><em>Name/Instantiating Type</em></span></th><th align="left"><span class="emphasis"><em>Parameter</em></span></th><th align="left"><span class="emphasis"><em>Details</em></span></th></tr></thead><tbody><tr bgcolor="#B0B0B0"><td colspan="3" align="left"> | |
6283 | n_map | |
6284 | - </td></tr><tr><td style="text-align: left"> | |
6285 | + </td></tr><tr><td align="left"> | |
6286 | <code class="classname">std::map</code> | |
6287 | - </td><td colspan="2" style="text-align: left"> </td></tr><tr style="background-color: #B0B0B0"><td colspan="3" style="text-align: left"> | |
6288 | + </td><td colspan="2" align="left"> </td></tr><tr bgcolor="#B0B0B0"><td colspan="3" align="left"> | |
6289 | pat_trie_map | |
6290 | - </td></tr><tr><td rowspan="2" style="text-align: left" valign="top"> | |
6291 | + </td></tr><tr><td rowspan="2" align="left" valign="top"> | |
6292 | <code class="classname">tree</code> | |
6293 | - </td><td style="text-align: left"> | |
6294 | + </td><td align="left"> | |
6295 | <code class="classname">Tag</code> | |
6296 | - </td><td style="text-align: left"> | |
6297 | + </td><td align="left"> | |
6298 | <code class="classname">pat_trie_tag</code> | |
6299 | - </td></tr><tr><td style="text-align: left"> | |
6300 | + </td></tr><tr><td align="left"> | |
6301 | <code class="classname">Node_update</code> | |
6302 | - </td><td style="text-align: left"> | |
6303 | + </td><td align="left"> | |
6304 | <code class="classname">null_node_update</code> | |
6305 | - </td></tr></tbody></table></div></div><div class="section" title="Observations"><div class="titlepage"><div><div><h6 class="title"><a id="branch.text_insert.observations"/> | |
6306 | + </td></tr></tbody></table></div></div><div class="section" title="Observations"><div class="titlepage"><div><div><h6 class="title"><a id="branch.text_insert.observations"></a> | |
6307 | Observations | |
6308 | </h6></div></div></div><p>Observing the first graphic implies that for this setting, a splay tree | |
6309 | (<code class="classname">tree</code> with <code class="classname">Tag | |
6310 | @@ -1113,9 +1113,9 @@ | |
6311 | encountered, a new "hash-table" is built A large fan-out PATRICIA | |
6312 | trie, however, doe does well in look-ups (see Branch-Based | |
6313 | Text <code class="function">find</code> Find Timing Test). It may be | |
6314 | - beneficial in semi-static settings.</p></div></div><div class="section" title="Text find"><div class="titlepage"><div><div><h5 class="title"><a id="performance.branch.text_find"/> | |
6315 | + beneficial in semi-static settings.</p></div></div><div class="section" title="Text find"><div class="titlepage"><div><div><h5 class="title"><a id="performance.branch.text_find"></a> | |
6316 | Text <code class="function">find</code> | |
6317 | - </h5></div></div></div><p/><div class="section" title="Description"><div class="titlepage"><div><div><h6 class="title"><a id="branch.text_find.info"/> | |
6318 | + </h5></div></div></div><p></p><div class="section" title="Description"><div class="titlepage"><div><div><h6 class="title"><a id="branch.text_find.info"></a> | |
6319 | Description | |
6320 | </h6></div></div></div><p>This test inserts a number of values with keys from an | |
6321 | arbitrary text ([wickland96thirty]) into | |
6322 | @@ -1128,71 +1128,71 @@ | |
6323 | performance/ext/pb_ds/text_find_timing.cc | |
6324 | </code> | |
6325 | </p><p>The test checks the effect of different underlying | |
6326 | - data structures.</p></div><div class="section" title="Results"><div class="titlepage"><div><div><h6 class="title"><a id="branch.text_find.results"/> | |
6327 | + data structures.</p></div><div class="section" title="Results"><div class="titlepage"><div><div><h6 class="title"><a id="branch.text_find.results"></a> | |
6328 | Results | |
6329 | </h6></div></div></div><p>The graphic immediately below shows the results for the | |
6330 | native tree type and several other tree types. | |
6331 | - </p><div class="informalfigure"><div class="mediaobject" style="text-align: center"><img src="../images/pbds_tree_text_find.png" style="text-align: middle"/></div></div><p> | |
6332 | + </p><div class="informalfigure"><div class="mediaobject" align="center"><img src="../images/pbds_tree_text_find.png" align="middle" /></div></div><p> | |
6333 | The abbreviated names in the legend of the graphic above are | |
6334 | instantiated with the types in the following table. | |
6335 | - </p><div class="informaltable"><table border="1"><colgroup><col style="text-align: left" class="c1"/><col style="text-align: left" class="c2"/><col style="text-align: left" class="c3"/></colgroup><thead><tr><th style="text-align: left"><span class="emphasis"><em>Name/Instantiating Type</em></span></th><th style="text-align: left"><span class="emphasis"><em>Parameter</em></span></th><th style="text-align: left"><span class="emphasis"><em>Details</em></span></th></tr></thead><tbody><tr style="background-color: #B0B0B0"><td colspan="3" style="text-align: left"> | |
6336 | + </p><div class="informaltable"><table border="1"><colgroup><col align="left" class="c1" /><col align="left" class="c2" /><col align="left" class="c3" /></colgroup><thead><tr><th align="left"><span class="emphasis"><em>Name/Instantiating Type</em></span></th><th align="left"><span class="emphasis"><em>Parameter</em></span></th><th align="left"><span class="emphasis"><em>Details</em></span></th></tr></thead><tbody><tr bgcolor="#B0B0B0"><td colspan="3" align="left"> | |
6337 | n_map | |
6338 | - </td></tr><tr><td style="text-align: left"> | |
6339 | + </td></tr><tr><td align="left"> | |
6340 | <code class="classname">std::map</code> | |
6341 | - </td><td colspan="2" style="text-align: left"> </td></tr><tr style="background-color: #B0B0B0"><td colspan="3" style="text-align: left"> | |
6342 | + </td><td colspan="2" align="left"> </td></tr><tr bgcolor="#B0B0B0"><td colspan="3" align="left"> | |
6343 | splay_tree_map | |
6344 | - </td></tr><tr><td rowspan="2" style="text-align: left" valign="top"> | |
6345 | + </td></tr><tr><td rowspan="2" align="left" valign="top"> | |
6346 | <code class="classname">tree</code> | |
6347 | - </td><td style="text-align: left"> | |
6348 | + </td><td align="left"> | |
6349 | <code class="classname">Tag</code> | |
6350 | - </td><td style="text-align: left"> | |
6351 | + </td><td align="left"> | |
6352 | <code class="classname">splay_tree_tag</code> | |
6353 | - </td></tr><tr><td style="text-align: left"> | |
6354 | + </td></tr><tr><td align="left"> | |
6355 | <code class="classname">Node_Update</code> | |
6356 | - </td><td style="text-align: left"> | |
6357 | + </td><td align="left"> | |
6358 | <code class="classname">null_node_update</code> | |
6359 | - </td></tr><tr style="background-color: #B0B0B0"><td colspan="3" style="text-align: left"> | |
6360 | + </td></tr><tr bgcolor="#B0B0B0"><td colspan="3" align="left"> | |
6361 | rb_tree_map | |
6362 | - </td></tr><tr><td rowspan="2" style="text-align: left" valign="top"> | |
6363 | + </td></tr><tr><td rowspan="2" align="left" valign="top"> | |
6364 | <code class="classname">tree</code> | |
6365 | - </td><td style="text-align: left"> | |
6366 | + </td><td align="left"> | |
6367 | <code class="classname">Tag</code> | |
6368 | - </td><td style="text-align: left"> | |
6369 | + </td><td align="left"> | |
6370 | <code class="classname">rb_tree_tag</code> | |
6371 | - </td></tr><tr><td style="text-align: left"> | |
6372 | + </td></tr><tr><td align="left"> | |
6373 | <code class="classname">Node_Update</code> | |
6374 | - </td><td style="text-align: left"> | |
6375 | + </td><td align="left"> | |
6376 | <code class="classname">null_node_update</code> | |
6377 | - </td></tr><tr style="background-color: #B0B0B0"><td colspan="3" style="text-align: left"> | |
6378 | + </td></tr><tr bgcolor="#B0B0B0"><td colspan="3" align="left"> | |
6379 | ov_tree_map | |
6380 | - </td></tr><tr><td rowspan="2" style="text-align: left" valign="top"> | |
6381 | + </td></tr><tr><td rowspan="2" align="left" valign="top"> | |
6382 | <code class="classname">tree</code> | |
6383 | - </td><td style="text-align: left"> | |
6384 | + </td><td align="left"> | |
6385 | <code class="classname">Tag</code> | |
6386 | - </td><td style="text-align: left"> | |
6387 | + </td><td align="left"> | |
6388 | <code class="classname">ov_tree_tag</code> | |
6389 | - </td></tr><tr><td style="text-align: left"> | |
6390 | + </td></tr><tr><td align="left"> | |
6391 | <code class="classname">Node_Update</code> | |
6392 | - </td><td style="text-align: left"> | |
6393 | + </td><td align="left"> | |
6394 | <code class="classname">null_node_update</code> | |
6395 | - </td></tr><tr style="background-color: #B0B0B0"><td colspan="3" style="text-align: left"> | |
6396 | + </td></tr><tr bgcolor="#B0B0B0"><td colspan="3" align="left"> | |
6397 | pat_trie_map | |
6398 | - </td></tr><tr><td rowspan="2" style="text-align: left" valign="top"> | |
6399 | + </td></tr><tr><td rowspan="2" align="left" valign="top"> | |
6400 | <code class="classname">tree</code> | |
6401 | - </td><td style="text-align: left"> | |
6402 | + </td><td align="left"> | |
6403 | <code class="classname">Tag</code> | |
6404 | - </td><td style="text-align: left"> | |
6405 | + </td><td align="left"> | |
6406 | <code class="classname">pat_trie_tag</code> | |
6407 | - </td></tr><tr><td style="text-align: left"> | |
6408 | + </td></tr><tr><td align="left"> | |
6409 | <code class="classname">Node_Update</code> | |
6410 | - </td><td style="text-align: left"> | |
6411 | + </td><td align="left"> | |
6412 | <code class="classname">null_node_update</code> | |
6413 | - </td></tr></tbody></table></div></div><div class="section" title="Observations"><div class="titlepage"><div><div><h6 class="title"><a id="branch.text_find.observations"/> | |
6414 | + </td></tr></tbody></table></div></div><div class="section" title="Observations"><div class="titlepage"><div><div><h6 class="title"><a id="branch.text_find.observations"></a> | |
6415 | Observations | |
6416 | </h6></div></div></div><p>For this setting, a splay tree (<code class="classname">tree</code> | |
6417 | with <code class="classname">Tag | |
6418 | </code> = <code class="classname">splay_tree_tag</code>) does not do | |
6419 | - well. This is possibly due to two reasons:</p><div class="orderedlist"><ol class="orderedlist"><li class="listitem"><p>A splay tree is not guaranteed to be balanced [motwani95random]. If a | |
6420 | + well. This is possibly due to two reasons:</p><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><p>A splay tree is not guaranteed to be balanced [motwani95random]. If a | |
6421 | splay tree contains n nodes, its average root-leaf | |
6422 | path can be m >> log(n).</p></li><li class="listitem"><p>Assume a specific root-leaf search path has length | |
6423 | m, and the search-target node has distance m' | |
6424 | @@ -1220,9 +1220,9 @@ | |
6425 | by a sub-trie. A large-fan-out PATRICIA trie does not do well on | |
6426 | modifications (see Tree-Based and Trie-Based | |
6427 | Text Insert Timing Test). Therefore, it is possibly beneficial in | |
6428 | - semi-static settings.</p></div></div><div class="section" title="Text find with Locality-of-Reference"><div class="titlepage"><div><div><h5 class="title"><a id="performance.branch.text_lor_find"/> | |
6429 | + semi-static settings.</p></div></div><div class="section" title="Text find with Locality-of-Reference"><div class="titlepage"><div><div><h5 class="title"><a id="performance.branch.text_lor_find"></a> | |
6430 | Text <code class="function">find</code> with Locality-of-Reference | |
6431 | - </h5></div></div></div><p/><div class="section" title="Description"><div class="titlepage"><div><div><h6 class="title"><a id="branch.text_lor_find.info"/> | |
6432 | + </h5></div></div></div><p></p><div class="section" title="Description"><div class="titlepage"><div><div><h6 class="title"><a id="branch.text_lor_find.info"></a> | |
6433 | Description | |
6434 | </h6></div></div></div><p>This test inserts a number of values with keys from an | |
6435 | arbitrary text ([ wickland96thirty ]) into | |
6436 | @@ -1238,66 +1238,66 @@ | |
6437 | performance/ext/pb_ds/tree_text_lor_find_timing.cc | |
6438 | </code> | |
6439 | </p><p>The test checks the effect of different underlying | |
6440 | - data structures in a locality-of-reference setting.</p></div><div class="section" title="Results"><div class="titlepage"><div><div><h6 class="title"><a id="branch.text_lor_find.results"/> | |
6441 | + data structures in a locality-of-reference setting.</p></div><div class="section" title="Results"><div class="titlepage"><div><div><h6 class="title"><a id="branch.text_lor_find.results"></a> | |
6442 | Results | |
6443 | </h6></div></div></div><p>The graphic immediately below shows the results for the | |
6444 | native tree type and several other tree types. | |
6445 | - </p><div class="informalfigure"><div class="mediaobject" style="text-align: center"><img src="../images/pbds_tree_text_lor_find.png" style="text-align: middle"/></div></div><p> | |
6446 | + </p><div class="informalfigure"><div class="mediaobject" align="center"><img src="../images/pbds_tree_text_lor_find.png" align="middle" /></div></div><p> | |
6447 | The abbreviated names in the legend of the graphic above are | |
6448 | instantiated with the types in the following table. | |
6449 | - </p><div class="informaltable"><table border="1"><colgroup><col style="text-align: left" class="c1"/><col style="text-align: left" class="c2"/><col style="text-align: left" class="c3"/></colgroup><thead><tr><th style="text-align: left"><span class="emphasis"><em>Name/Instantiating Type</em></span></th><th style="text-align: left"><span class="emphasis"><em>Parameter</em></span></th><th style="text-align: left"><span class="emphasis"><em>Details</em></span></th></tr></thead><tbody><tr style="background-color: #B0B0B0"><td colspan="3" style="text-align: left"> | |
6450 | + </p><div class="informaltable"><table border="1"><colgroup><col align="left" class="c1" /><col align="left" class="c2" /><col align="left" class="c3" /></colgroup><thead><tr><th align="left"><span class="emphasis"><em>Name/Instantiating Type</em></span></th><th align="left"><span class="emphasis"><em>Parameter</em></span></th><th align="left"><span class="emphasis"><em>Details</em></span></th></tr></thead><tbody><tr bgcolor="#B0B0B0"><td colspan="3" align="left"> | |
6451 | n_map | |
6452 | - </td></tr><tr><td style="text-align: left"> | |
6453 | + </td></tr><tr><td align="left"> | |
6454 | <code class="classname">std::map</code> | |
6455 | - </td><td colspan="2" style="text-align: left"> </td></tr><tr style="background-color: #B0B0B0"><td colspan="3" style="text-align: left"> | |
6456 | + </td><td colspan="2" align="left"> </td></tr><tr bgcolor="#B0B0B0"><td colspan="3" align="left"> | |
6457 | splay_tree_map | |
6458 | - </td></tr><tr><td rowspan="2" style="text-align: left" valign="top"> | |
6459 | + </td></tr><tr><td rowspan="2" align="left" valign="top"> | |
6460 | <code class="classname">tree</code> | |
6461 | - </td><td style="text-align: left"> | |
6462 | + </td><td align="left"> | |
6463 | <code class="classname">Tag</code> | |
6464 | - </td><td style="text-align: left"> | |
6465 | + </td><td align="left"> | |
6466 | <code class="classname">splay_tree_tag</code> | |
6467 | - </td></tr><tr><td style="text-align: left"> | |
6468 | + </td></tr><tr><td align="left"> | |
6469 | <code class="classname">Node_Update</code> | |
6470 | - </td><td style="text-align: left"> | |
6471 | + </td><td align="left"> | |
6472 | <code class="classname">null_node_update</code> | |
6473 | - </td></tr><tr style="background-color: #B0B0B0"><td colspan="3" style="text-align: left"> | |
6474 | + </td></tr><tr bgcolor="#B0B0B0"><td colspan="3" align="left"> | |
6475 | rb_tree_map | |
6476 | - </td></tr><tr><td rowspan="2" style="text-align: left" valign="top"> | |
6477 | + </td></tr><tr><td rowspan="2" align="left" valign="top"> | |
6478 | <code class="classname">tree</code> | |
6479 | - </td><td style="text-align: left"> | |
6480 | + </td><td align="left"> | |
6481 | <code class="classname">Tag</code> | |
6482 | - </td><td style="text-align: left"> | |
6483 | + </td><td align="left"> | |
6484 | <code class="classname">rb_tree_tag</code> | |
6485 | - </td></tr><tr><td style="text-align: left"> | |
6486 | + </td></tr><tr><td align="left"> | |
6487 | <code class="classname">Node_Update</code> | |
6488 | - </td><td style="text-align: left"> | |
6489 | + </td><td align="left"> | |
6490 | <code class="classname">null_node_update</code> | |
6491 | - </td></tr><tr style="background-color: #B0B0B0"><td colspan="3" style="text-align: left"> | |
6492 | + </td></tr><tr bgcolor="#B0B0B0"><td colspan="3" align="left"> | |
6493 | ov_tree_map | |
6494 | - </td></tr><tr><td rowspan="2" style="text-align: left" valign="top"> | |
6495 | + </td></tr><tr><td rowspan="2" align="left" valign="top"> | |
6496 | <code class="classname">tree</code> | |
6497 | - </td><td style="text-align: left"> | |
6498 | + </td><td align="left"> | |
6499 | <code class="classname">Tag</code> | |
6500 | - </td><td style="text-align: left"> | |
6501 | + </td><td align="left"> | |
6502 | <code class="classname">ov_tree_tag</code> | |
6503 | - </td></tr><tr><td style="text-align: left"> | |
6504 | + </td></tr><tr><td align="left"> | |
6505 | <code class="classname">Node_Update</code> | |
6506 | - </td><td style="text-align: left"> | |
6507 | + </td><td align="left"> | |
6508 | <code class="classname">null_node_update</code> | |
6509 | - </td></tr><tr style="background-color: #B0B0B0"><td colspan="3" style="text-align: left"> | |
6510 | + </td></tr><tr bgcolor="#B0B0B0"><td colspan="3" align="left"> | |
6511 | pat_trie_map | |
6512 | - </td></tr><tr><td rowspan="2" style="text-align: left" valign="top"> | |
6513 | + </td></tr><tr><td rowspan="2" align="left" valign="top"> | |
6514 | <code class="classname">tree</code> | |
6515 | - </td><td style="text-align: left"> | |
6516 | + </td><td align="left"> | |
6517 | <code class="classname">Tag</code> | |
6518 | - </td><td style="text-align: left"> | |
6519 | + </td><td align="left"> | |
6520 | <code class="classname">pat_trie_tag</code> | |
6521 | - </td></tr><tr><td style="text-align: left"> | |
6522 | + </td></tr><tr><td align="left"> | |
6523 | <code class="classname">Node_Update</code> | |
6524 | - </td><td style="text-align: left"> | |
6525 | + </td><td align="left"> | |
6526 | <code class="classname">null_node_update</code> | |
6527 | - </td></tr></tbody></table></div></div><div class="section" title="Observations"><div class="titlepage"><div><div><h6 class="title"><a id="branch.text_lor_find.observations"/> | |
6528 | + </td></tr></tbody></table></div></div><div class="section" title="Observations"><div class="titlepage"><div><div><h6 class="title"><a id="branch.text_lor_find.observations"></a> | |
6529 | Observations | |
6530 | </h6></div></div></div><p>For this setting, an ordered-vector tree | |
6531 | (<code class="classname">tree</code> with <code class="classname">Tag</code> | |
6532 | @@ -1307,9 +1307,9 @@ | |
6533 | tree all share approximately the same performance.</p><p>A splay tree (<code class="classname">tree</code> | |
6534 | with <code class="classname">Tag</code> = <code class="classname">splay_tree_tag</code>) does | |
6535 | much better, since each (successful) find "bubbles" the | |
6536 | - corresponding node to the root of the tree.</p></div></div><div class="section" title="split and join"><div class="titlepage"><div><div><h5 class="title"><a id="performance.branch.split_join"/> | |
6537 | + corresponding node to the root of the tree.</p></div></div><div class="section" title="split and join"><div class="titlepage"><div><div><h5 class="title"><a id="performance.branch.split_join"></a> | |
6538 | <code class="function">split</code> and <code class="function">join</code> | |
6539 | - </h5></div></div></div><p/><div class="section" title="Description"><div class="titlepage"><div><div><h6 class="title"><a id="branch.split_join.info"/> | |
6540 | + </h5></div></div></div><p></p><div class="section" title="Description"><div class="titlepage"><div><div><h6 class="title"><a id="branch.split_join.info"></a> | |
6541 | Description | |
6542 | </h6></div></div></div><p>This test a container, inserts into a number of values, splits | |
6543 | the container at the median, and joins the two containers. (If the | |
6544 | @@ -1328,66 +1328,66 @@ | |
6545 | implication, this test checks the most efficient way to erase a | |
6546 | sub-sequence from a tree-like-based container, since this can | |
6547 | always be performed by a small sequence of splits and joins. | |
6548 | - </p></div><div class="section" title="Results"><div class="titlepage"><div><div><h6 class="title"><a id="branch.split_join.results"/> | |
6549 | + </p></div><div class="section" title="Results"><div class="titlepage"><div><div><h6 class="title"><a id="branch.split_join.results"></a> | |
6550 | Results | |
6551 | </h6></div></div></div><p>The graphic immediately below shows the results for the | |
6552 | native tree type and several other tree types. | |
6553 | - </p><div class="informalfigure"><div class="mediaobject" style="text-align: center"><img src="../images/pbds_tree_split_join.png" style="text-align: middle"/></div></div><p> | |
6554 | + </p><div class="informalfigure"><div class="mediaobject" align="center"><img src="../images/pbds_tree_split_join.png" align="middle" /></div></div><p> | |
6555 | The abbreviated names in the legend of the graphic above are | |
6556 | instantiated with the types in the following table. | |
6557 | - </p><div class="informaltable"><table border="1"><colgroup><col style="text-align: left" class="c1"/><col style="text-align: left" class="c2"/><col style="text-align: left" class="c3"/></colgroup><thead><tr><th style="text-align: left"><span class="emphasis"><em>Name/Instantiating Type</em></span></th><th style="text-align: left"><span class="emphasis"><em>Parameter</em></span></th><th style="text-align: left"><span class="emphasis"><em>Details</em></span></th></tr></thead><tbody><tr style="background-color: #B0B0B0"><td colspan="3" style="text-align: left"> | |
6558 | + </p><div class="informaltable"><table border="1"><colgroup><col align="left" class="c1" /><col align="left" class="c2" /><col align="left" class="c3" /></colgroup><thead><tr><th align="left"><span class="emphasis"><em>Name/Instantiating Type</em></span></th><th align="left"><span class="emphasis"><em>Parameter</em></span></th><th align="left"><span class="emphasis"><em>Details</em></span></th></tr></thead><tbody><tr bgcolor="#B0B0B0"><td colspan="3" align="left"> | |
6559 | n_set | |
6560 | - </td></tr><tr><td style="text-align: left"> | |
6561 | + </td></tr><tr><td align="left"> | |
6562 | <code class="classname">std::set</code> | |
6563 | - </td><td colspan="2" style="text-align: left"> </td></tr><tr style="background-color: #B0B0B0"><td colspan="3" style="text-align: left"> | |
6564 | + </td><td colspan="2" align="left"> </td></tr><tr bgcolor="#B0B0B0"><td colspan="3" align="left"> | |
6565 | splay_tree_set | |
6566 | - </td></tr><tr><td rowspan="2" style="text-align: left" valign="top"> | |
6567 | + </td></tr><tr><td rowspan="2" align="left" valign="top"> | |
6568 | <code class="classname">tree</code> | |
6569 | - </td><td style="text-align: left"> | |
6570 | + </td><td align="left"> | |
6571 | <code class="classname">Tag</code> | |
6572 | - </td><td style="text-align: left"> | |
6573 | + </td><td align="left"> | |
6574 | <code class="classname">splay_tree_tag</code> | |
6575 | - </td></tr><tr><td style="text-align: left"> | |
6576 | + </td></tr><tr><td align="left"> | |
6577 | <code class="classname">Node_Update</code> | |
6578 | - </td><td style="text-align: left"> | |
6579 | + </td><td align="left"> | |
6580 | <code class="classname">null_node_update</code> | |
6581 | - </td></tr><tr style="background-color: #B0B0B0"><td colspan="3" style="text-align: left"> | |
6582 | + </td></tr><tr bgcolor="#B0B0B0"><td colspan="3" align="left"> | |
6583 | rb_tree_set | |
6584 | - </td></tr><tr><td rowspan="2" style="text-align: left" valign="top"> | |
6585 | + </td></tr><tr><td rowspan="2" align="left" valign="top"> | |
6586 | <code class="classname">tree</code> | |
6587 | - </td><td style="text-align: left"> | |
6588 | + </td><td align="left"> | |
6589 | <code class="classname">Tag</code> | |
6590 | - </td><td style="text-align: left"> | |
6591 | + </td><td align="left"> | |
6592 | <code class="classname">rb_tree_tag</code> | |
6593 | - </td></tr><tr><td style="text-align: left"> | |
6594 | + </td></tr><tr><td align="left"> | |
6595 | <code class="classname">Node_Update</code> | |
6596 | - </td><td style="text-align: left"> | |
6597 | + </td><td align="left"> | |
6598 | <code class="classname">null_node_update</code> | |
6599 | - </td></tr><tr style="background-color: #B0B0B0"><td colspan="3" style="text-align: left"> | |
6600 | + </td></tr><tr bgcolor="#B0B0B0"><td colspan="3" align="left"> | |
6601 | ov_tree_set | |
6602 | - </td></tr><tr><td rowspan="2" style="text-align: left" valign="top"> | |
6603 | + </td></tr><tr><td rowspan="2" align="left" valign="top"> | |
6604 | <code class="classname">tree</code> | |
6605 | - </td><td style="text-align: left"> | |
6606 | + </td><td align="left"> | |
6607 | <code class="classname">Tag</code> | |
6608 | - </td><td style="text-align: left"> | |
6609 | + </td><td align="left"> | |
6610 | <code class="classname">ov_tree_tag</code> | |
6611 | - </td></tr><tr><td style="text-align: left"> | |
6612 | + </td></tr><tr><td align="left"> | |
6613 | <code class="classname">Node_Update</code> | |
6614 | - </td><td style="text-align: left"> | |
6615 | + </td><td align="left"> | |
6616 | <code class="classname">null_node_update</code> | |
6617 | - </td></tr><tr style="background-color: #B0B0B0"><td colspan="3" style="text-align: left"> | |
6618 | + </td></tr><tr bgcolor="#B0B0B0"><td colspan="3" align="left"> | |
6619 | pat_trie_map | |
6620 | - </td></tr><tr><td rowspan="2" style="text-align: left" valign="top"> | |
6621 | + </td></tr><tr><td rowspan="2" align="left" valign="top"> | |
6622 | <code class="classname">tree</code> | |
6623 | - </td><td style="text-align: left"> | |
6624 | + </td><td align="left"> | |
6625 | <code class="classname">Tag</code> | |
6626 | - </td><td style="text-align: left"> | |
6627 | + </td><td align="left"> | |
6628 | <code class="classname">pat_trie_tag</code> | |
6629 | - </td></tr><tr><td style="text-align: left"> | |
6630 | + </td></tr><tr><td align="left"> | |
6631 | <code class="classname">Node_Update</code> | |
6632 | - </td><td style="text-align: left"> | |
6633 | + </td><td align="left"> | |
6634 | <code class="classname">null_node_update</code> | |
6635 | - </td></tr></tbody></table></div></div><div class="section" title="Observations"><div class="titlepage"><div><div><h6 class="title"><a id="branch.split_join.observations"/> | |
6636 | + </td></tr></tbody></table></div></div><div class="section" title="Observations"><div class="titlepage"><div><div><h6 class="title"><a id="branch.split_join.observations"></a> | |
6637 | Observations | |
6638 | </h6></div></div></div><p>In this test, the native red-black trees must be split and | |
6639 | joined externally, through a sequence of <code class="function">erase</code> and | |
6640 | @@ -1414,9 +1414,9 @@ | |
6641 | via <code class="classname">container_traits</code>).</p><p>It is important to note that <code class="function">split</code> and | |
6642 | <code class="function">join</code> are not esoteric methods - they are the most | |
6643 | efficient means of erasing a contiguous range of values from a | |
6644 | - tree based container.</p></div></div><div class="section" title="Order-Statistics"><div class="titlepage"><div><div><h5 class="title"><a id="performance.branch.order_statistics"/> | |
6645 | + tree based container.</p></div></div><div class="section" title="Order-Statistics"><div class="titlepage"><div><div><h5 class="title"><a id="performance.branch.order_statistics"></a> | |
6646 | Order-Statistics | |
6647 | - </h5></div></div></div><p/><div class="section" title="Description"><div class="titlepage"><div><div><h6 class="title"><a id="branch.order_statistics.info"/> | |
6648 | + </h5></div></div></div><p></p><div class="section" title="Description"><div class="titlepage"><div><div><h6 class="title"><a id="branch.order_statistics.info"></a> | |
6649 | Description | |
6650 | </h6></div></div></div><p>This test creates a container, inserts random integers into the | |
6651 | the container, and then checks the order-statistics of the | |
6652 | @@ -1433,42 +1433,42 @@ | |
6653 | performance/ext/pb_ds/tree_order_statistics_timing.cc | |
6654 | </code> | |
6655 | </p><p>The test checks the performance difference of policies based | |
6656 | - on node-invariant as opposed to a external functions.</p></div><div class="section" title="Results"><div class="titlepage"><div><div><h6 class="title"><a id="branch.order_statistics.results"/> | |
6657 | + on node-invariant as opposed to a external functions.</p></div><div class="section" title="Results"><div class="titlepage"><div><div><h6 class="title"><a id="branch.order_statistics.results"></a> | |
6658 | Results | |
6659 | </h6></div></div></div><p>The graphic immediately below shows the results for the | |
6660 | native tree type and several other tree types. | |
6661 | - </p><div class="informalfigure"><div class="mediaobject" style="text-align: center"><img src="../images/pbds_tree_order_statistics.png" style="text-align: middle"/></div></div><p> | |
6662 | + </p><div class="informalfigure"><div class="mediaobject" align="center"><img src="../images/pbds_tree_order_statistics.png" align="middle" /></div></div><p> | |
6663 | The abbreviated names in the legend of the graphic above are | |
6664 | instantiated with the types in the following table. | |
6665 | - </p><div class="informaltable"><table border="1"><colgroup><col style="text-align: left" class="c1"/><col style="text-align: left" class="c2"/><col style="text-align: left" class="c3"/></colgroup><thead><tr><th style="text-align: left"><span class="emphasis"><em>Name/Instantiating Type</em></span></th><th style="text-align: left"><span class="emphasis"><em>Parameter</em></span></th><th style="text-align: left"><span class="emphasis"><em>Details</em></span></th></tr></thead><tbody><tr style="background-color: #B0B0B0"><td colspan="3" style="text-align: left"> | |
6666 | + </p><div class="informaltable"><table border="1"><colgroup><col align="left" class="c1" /><col align="left" class="c2" /><col align="left" class="c3" /></colgroup><thead><tr><th align="left"><span class="emphasis"><em>Name/Instantiating Type</em></span></th><th align="left"><span class="emphasis"><em>Parameter</em></span></th><th align="left"><span class="emphasis"><em>Details</em></span></th></tr></thead><tbody><tr bgcolor="#B0B0B0"><td colspan="3" align="left"> | |
6667 | n_set | |
6668 | - </td></tr><tr><td style="text-align: left"> | |
6669 | + </td></tr><tr><td align="left"> | |
6670 | <code class="classname">std::set</code> | |
6671 | - </td><td colspan="2" style="text-align: left"> </td></tr><tr style="background-color: #B0B0B0"><td colspan="3" style="text-align: left"> | |
6672 | + </td><td colspan="2" align="left"> </td></tr><tr bgcolor="#B0B0B0"><td colspan="3" align="left"> | |
6673 | splay_tree_ost_set | |
6674 | - </td></tr><tr><td rowspan="2" style="text-align: left" valign="top"> | |
6675 | + </td></tr><tr><td rowspan="2" align="left" valign="top"> | |
6676 | <code class="classname">tree</code> | |
6677 | - </td><td style="text-align: left"> | |
6678 | + </td><td align="left"> | |
6679 | <code class="classname">Tag</code> | |
6680 | - </td><td style="text-align: left"> | |
6681 | + </td><td align="left"> | |
6682 | <code class="classname">splay_tree_tag</code> | |
6683 | - </td></tr><tr><td style="text-align: left"> | |
6684 | + </td></tr><tr><td align="left"> | |
6685 | <code class="classname">Node_Update</code> | |
6686 | - </td><td style="text-align: left"> | |
6687 | + </td><td align="left"> | |
6688 | <code class="classname">tree_order_statistics_node_update</code> | |
6689 | - </td></tr><tr style="background-color: #B0B0B0"><td colspan="3" style="text-align: left"> | |
6690 | + </td></tr><tr bgcolor="#B0B0B0"><td colspan="3" align="left"> | |
6691 | rb_tree_ost_set | |
6692 | - </td></tr><tr><td rowspan="2" style="text-align: left" valign="top"> | |
6693 | + </td></tr><tr><td rowspan="2" align="left" valign="top"> | |
6694 | <code class="classname">tree</code> | |
6695 | - </td><td style="text-align: left"> | |
6696 | + </td><td align="left"> | |
6697 | <code class="classname">Tag</code> | |
6698 | - </td><td style="text-align: left"> | |
6699 | + </td><td align="left"> | |
6700 | <code class="classname">rb_tree_tag</code> | |
6701 | - </td></tr><tr><td style="text-align: left"> | |
6702 | + </td></tr><tr><td align="left"> | |
6703 | <code class="classname">Node_Update</code> | |
6704 | - </td><td style="text-align: left"> | |
6705 | + </td><td align="left"> | |
6706 | <code class="classname">tree_order_statistics_node_update</code> | |
6707 | - </td></tr></tbody></table></div></div><div class="section" title="Observations"><div class="titlepage"><div><div><h6 class="title"><a id="branch.order_statistics.observations"/> | |
6708 | + </td></tr></tbody></table></div></div><div class="section" title="Observations"><div class="titlepage"><div><div><h6 class="title"><a id="branch.order_statistics.observations"></a> | |
6709 | Observations | |
6710 | </h6></div></div></div><p>In this test, the native red-black tree can support | |
6711 | order-statistics queries only externally, by performing a | |
6712 | @@ -1485,9 +1485,9 @@ | |
6713 | tree (<code class="classname">tree</code> | |
6714 | with <code class="classname">Tag =</code> <code class="classname">rb_tree_tag</code> ) is | |
6715 | logarithmic in the number of elements. Consequently, the splay | |
6716 | - tree has worse performance than the red-black tree.</p></div></div></div><div class="section" title="Multimap"><div class="titlepage"><div><div><h4 class="title"><a id="performance.multimap"/>Multimap</h4></div></div></div><p/><div class="section" title="Text find with Small Secondary-to-Primary Key Ratios"><div class="titlepage"><div><div><h5 class="title"><a id="performance.multimap.text_find_small"/> | |
6717 | + tree has worse performance than the red-black tree.</p></div></div></div><div class="section" title="Multimap"><div class="titlepage"><div><div><h4 class="title"><a id="performance.multimap"></a>Multimap</h4></div></div></div><p></p><div class="section" title="Text find with Small Secondary-to-Primary Key Ratios"><div class="titlepage"><div><div><h5 class="title"><a id="performance.multimap.text_find_small"></a> | |
6718 | Text <code class="function">find</code> with Small Secondary-to-Primary Key Ratios | |
6719 | - </h5></div></div></div><p/><div class="section" title="Description"><div class="titlepage"><div><div><h6 class="title"><a id="multimap.text_find_small.info"/> | |
6720 | + </h5></div></div></div><p></p><div class="section" title="Description"><div class="titlepage"><div><div><h6 class="title"><a id="multimap.text_find_small.info"></a> | |
6721 | Description | |
6722 | </h6></div></div></div><p>This test inserts a number of pairs into a container. The | |
6723 | first item of each pair is a string from an arbitrary text | |
6724 | @@ -1508,160 +1508,160 @@ | |
6725 | performance/ext/pb_ds/multimap_text_find_timing_small.cc | |
6726 | </code> | |
6727 | </p><p>The test checks the find-time scalability of different | |
6728 | - "multimap" designs.</p></div><div class="section" title="Results"><div class="titlepage"><div><div><h6 class="title"><a id="multimap.text_find_small.results"/> | |
6729 | + "multimap" designs.</p></div><div class="section" title="Results"><div class="titlepage"><div><div><h6 class="title"><a id="multimap.text_find_small.results"></a> | |
6730 | Results | |
6731 | </h6></div></div></div><p>The graphic below show the results for "multimaps" which | |
6732 | use a tree-based container for primary keys. | |
6733 | - </p><div class="informalfigure"><div class="mediaobject" style="text-align: center"><img src="../images/pbds_multimap_text_find_small_s2p_tree.png" style="text-align: middle"/></div></div><p> | |
6734 | + </p><div class="informalfigure"><div class="mediaobject" align="center"><img src="../images/pbds_multimap_text_find_small_s2p_tree.png" align="middle" /></div></div><p> | |
6735 | The abbreviated names in the legend of the graphic above are | |
6736 | instantiated with the types in the following table. | |
6737 | - </p><div class="informaltable"><table border="1"><colgroup><col style="text-align: left" class="c1"/><col style="text-align: left" class="c2"/><col style="text-align: left" class="c3"/><col style="text-align: left" class="c4"/><col style="text-align: left" class="c5"/><col style="text-align: left" class="c6"/><col style="text-align: left" class="c7"/></colgroup><thead><tr><th style="text-align: left"><span class="emphasis"><em>Name/Instantiating Type</em></span></th><th style="text-align: left"><span class="emphasis"><em>Parameter</em></span></th><th style="text-align: left"><span class="emphasis"><em>Details</em></span></th><th style="text-align: left"><span class="emphasis"><em>Parameter</em></span></th><th style="text-align: left"><span class="emphasis"><em>Details</em></span></th><th style="text-align: left"><span class="emphasis"><em>Parameter</em></span></th><th style="text-align: left"><span class="emphasis"><em>Details</em></span></th></tr></thead><tbody><tr style="background-color: #B0B0B0"><td colspan="7" style="text-align: left"> | |
6738 | + </p><div class="informaltable"><table border="1"><colgroup><col align="left" class="c1" /><col align="left" class="c2" /><col align="left" class="c3" /><col align="left" class="c4" /><col align="left" class="c5" /><col align="left" class="c6" /><col align="left" class="c7" /></colgroup><thead><tr><th align="left"><span class="emphasis"><em>Name/Instantiating Type</em></span></th><th align="left"><span class="emphasis"><em>Parameter</em></span></th><th align="left"><span class="emphasis"><em>Details</em></span></th><th align="left"><span class="emphasis"><em>Parameter</em></span></th><th align="left"><span class="emphasis"><em>Details</em></span></th><th align="left"><span class="emphasis"><em>Parameter</em></span></th><th align="left"><span class="emphasis"><em>Details</em></span></th></tr></thead><tbody><tr bgcolor="#B0B0B0"><td colspan="7" align="left"> | |
6739 | n_mmap | |
6740 | - </td></tr><tr><td style="text-align: left"> | |
6741 | + </td></tr><tr><td align="left"> | |
6742 | <code class="classname">std::multimap</code> | |
6743 | - </td><td colspan="6" style="text-align: left"> </td></tr><tr style="background-color: #B0B0B0"><td colspan="7" style="text-align: left"> | |
6744 | + </td><td colspan="6" align="left"> </td></tr><tr bgcolor="#B0B0B0"><td colspan="7" align="left"> | |
6745 | rb_tree_mmap_lu_mtf_set | |
6746 | - </td></tr><tr><td rowspan="3" style="text-align: left" valign="top"> | |
6747 | + </td></tr><tr><td rowspan="3" align="left" valign="top"> | |
6748 | <code class="classname">tree</code> | |
6749 | - </td><td style="text-align: left"> | |
6750 | + </td><td align="left"> | |
6751 | <code class="classname">Tag</code> | |
6752 | - </td><td style="text-align: left"> | |
6753 | + </td><td align="left"> | |
6754 | <code class="classname">rb_tree_tag</code> | |
6755 | - </td><td colspan="4" style="text-align: left"> </td></tr><tr><td style="text-align: left"> | |
6756 | + </td><td colspan="4" align="left"> </td></tr><tr><td align="left"> | |
6757 | <code class="classname">Node_Update</code> | |
6758 | - </td><td style="text-align: left"> | |
6759 | + </td><td align="left"> | |
6760 | <code class="classname">null_node_update</code> | |
6761 | - </td><td colspan="4" style="text-align: left"> </td></tr><tr><td style="text-align: left"> | |
6762 | + </td><td colspan="4" align="left"> </td></tr><tr><td align="left"> | |
6763 | <code class="classname">Mapped</code> | |
6764 | - </td><td style="text-align: left"> | |
6765 | + </td><td align="left"> | |
6766 | <code class="classname">list_update</code> | |
6767 | - </td><td style="text-align: left"> | |
6768 | + </td><td align="left"> | |
6769 | <code class="classname">Update_Policy</code> | |
6770 | - </td><td style="text-align: left"> | |
6771 | + </td><td align="left"> | |
6772 | <code class="classname">lu_move_to_front_policy</code> | |
6773 | - </td><td colspan="2" style="text-align: left"> </td></tr><tr style="background-color: #B0B0B0"><td colspan="7" style="text-align: left"> | |
6774 | + </td><td colspan="2" align="left"> </td></tr><tr bgcolor="#B0B0B0"><td colspan="7" align="left"> | |
6775 | rb_tree_mmap_cc_hash_mask_exp_1div2_nsth_set | |
6776 | - </td></tr><tr><td rowspan="5" style="text-align: left" valign="top"> | |
6777 | + </td></tr><tr><td rowspan="5" align="left" valign="top"> | |
6778 | <code class="classname">tree</code> | |
6779 | - </td><td style="text-align: left"> | |
6780 | + </td><td align="left"> | |
6781 | <code class="classname">Tag</code> | |
6782 | - </td><td style="text-align: left"> | |
6783 | + </td><td align="left"> | |
6784 | <code class="classname">rb_tree_tag</code> | |
6785 | - </td><td colspan="4" style="text-align: left"> </td></tr><tr><td style="text-align: left"> | |
6786 | + </td><td colspan="4" align="left"> </td></tr><tr><td align="left"> | |
6787 | <code class="classname">Node_Update</code> | |
6788 | - </td><td style="text-align: left"> | |
6789 | + </td><td align="left"> | |
6790 | <code class="classname">null_node_update</code> | |
6791 | - </td><td colspan="4" style="text-align: left"> </td></tr><tr><td rowspan="3" style="text-align: left" valign="top"> | |
6792 | + </td><td colspan="4" align="left"> </td></tr><tr><td rowspan="3" align="left" valign="top"> | |
6793 | <code class="classname">Mapped</code> | |
6794 | - </td><td rowspan="3" style="text-align: left" valign="top"> | |
6795 | + </td><td rowspan="3" align="left" valign="top"> | |
6796 | <code class="classname">cc_hash_table</code> | |
6797 | - </td><td style="text-align: left"> | |
6798 | + </td><td align="left"> | |
6799 | <code class="classname">Comb_Hash_Fn</code> | |
6800 | - </td><td style="text-align: left"> | |
6801 | + </td><td align="left"> | |
6802 | <code class="classname">direct_mask_range_hashing</code> | |
6803 | - </td><td colspan="2" style="text-align: left"> </td></tr><tr><td rowspan="2" style="text-align: left" valign="top"> | |
6804 | + </td><td colspan="2" align="left"> </td></tr><tr><td rowspan="2" align="left" valign="top"> | |
6805 | <code class="classname">Resize_Policy</code> | |
6806 | - </td><td rowspan="2" style="text-align: left" valign="top"> | |
6807 | + </td><td rowspan="2" align="left" valign="top"> | |
6808 | <code class="classname">hash_standard_resize_policy</code> | |
6809 | - </td><td style="text-align: left"> | |
6810 | + </td><td align="left"> | |
6811 | <code class="classname">Size_Policy</code> | |
6812 | - </td><td style="text-align: left"> | |
6813 | + </td><td align="left"> | |
6814 | <code class="classname">hash_exponential_size_policy</code> | |
6815 | - </td></tr><tr><td style="text-align: left" valign="top"> | |
6816 | + </td></tr><tr><td align="left" valign="top"> | |
6817 | <code class="classname">Trigger_Policy</code> | |
6818 | - </td><td style="text-align: left"> | |
6819 | + </td><td align="left"> | |
6820 | <code class="classname">hash_load_check_resize_trigger</code> with | |
6821 | α<sub>min</sub> = 1/8 and α<sub>max</sub> = 1/2 | |
6822 | </td></tr></tbody></table></div><p>The graphic below show the results for "multimaps" which | |
6823 | use a hash-based container for primary keys. | |
6824 | - </p><div class="informalfigure"><div class="mediaobject" style="text-align: center"><img src="../images/pbds_multimap_text_find_small_s2p_hash.png" style="text-align: middle"/></div></div><p> | |
6825 | + </p><div class="informalfigure"><div class="mediaobject" align="center"><img src="../images/pbds_multimap_text_find_small_s2p_hash.png" align="middle" /></div></div><p> | |
6826 | The abbreviated names in the legend of the graphic above are | |
6827 | instantiated with the types in the following table. | |
6828 | - </p><div class="informaltable"><table border="1"><colgroup><col style="text-align: left" class="c1"/><col style="text-align: left" class="c2"/><col style="text-align: left" class="c3"/><col style="text-align: left" class="c4"/><col style="text-align: left" class="c5"/><col style="text-align: left" class="c6"/><col style="text-align: left" class="c7"/></colgroup><thead><tr><th style="text-align: left"><span class="emphasis"><em>Name/Instantiating Type</em></span></th><th style="text-align: left"><span class="emphasis"><em>Parameter</em></span></th><th style="text-align: left"><span class="emphasis"><em>Details</em></span></th><th style="text-align: left"><span class="emphasis"><em>Parameter</em></span></th><th style="text-align: left"><span class="emphasis"><em>Details</em></span></th><th style="text-align: left"><span class="emphasis"><em>Parameter</em></span></th><th style="text-align: left"><span class="emphasis"><em>Details</em></span></th></tr></thead><tbody><tr style="background-color: #B0B0B0"><td colspan="7" style="text-align: left"> | |
6829 | + </p><div class="informaltable"><table border="1"><colgroup><col align="left" class="c1" /><col align="left" class="c2" /><col align="left" class="c3" /><col align="left" class="c4" /><col align="left" class="c5" /><col align="left" class="c6" /><col align="left" class="c7" /></colgroup><thead><tr><th align="left"><span class="emphasis"><em>Name/Instantiating Type</em></span></th><th align="left"><span class="emphasis"><em>Parameter</em></span></th><th align="left"><span class="emphasis"><em>Details</em></span></th><th align="left"><span class="emphasis"><em>Parameter</em></span></th><th align="left"><span class="emphasis"><em>Details</em></span></th><th align="left"><span class="emphasis"><em>Parameter</em></span></th><th align="left"><span class="emphasis"><em>Details</em></span></th></tr></thead><tbody><tr bgcolor="#B0B0B0"><td colspan="7" align="left"> | |
6830 | n_hash_mmap | |
6831 | - </td></tr><tr><td style="text-align: left"> | |
6832 | + </td></tr><tr><td align="left"> | |
6833 | <code class="classname">std::tr1::unordered_multimap</code> | |
6834 | - </td><td colspan="6" style="text-align: left"> </td></tr><tr style="background-color: #B0B0B0"><td colspan="7" style="text-align: left"> | |
6835 | + </td><td colspan="6" align="left"> </td></tr><tr bgcolor="#B0B0B0"><td colspan="7" align="left"> | |
6836 | rb_tree_mmap_lu_mtf_set | |
6837 | - </td></tr><tr><td rowspan="4" style="text-align: left" valign="top"> | |
6838 | + </td></tr><tr><td rowspan="4" align="left" valign="top"> | |
6839 | <code class="classname"> | |
6840 | cc_hash_table | |
6841 | </code> | |
6842 | - </td><td style="text-align: left"> | |
6843 | + </td><td align="left"> | |
6844 | <code class="classname">Comb_Hash_Fn</code> | |
6845 | - </td><td style="text-align: left"> | |
6846 | + </td><td align="left"> | |
6847 | <code class="classname">direct_mask_range_hashing</code> | |
6848 | - </td><td colspan="4" style="text-align: left"> </td></tr><tr><td rowspan="2" style="text-align: left" valign="top"> | |
6849 | + </td><td colspan="4" align="left"> </td></tr><tr><td rowspan="2" align="left" valign="top"> | |
6850 | <code class="classname">Resize_Policy</code> | |
6851 | - </td><td rowspan="2" style="text-align: left" valign="top"> | |
6852 | + </td><td rowspan="2" align="left" valign="top"> | |
6853 | <code class="classname">hash_standard_resize_policy</code> | |
6854 | - </td><td style="text-align: left"> | |
6855 | + </td><td align="left"> | |
6856 | <code class="classname">Size_Policy</code> | |
6857 | - </td><td style="text-align: left"> | |
6858 | + </td><td align="left"> | |
6859 | <code class="classname">hash_exponential_size_policy</code> | |
6860 | - </td><td colspan="2" style="text-align: left"> </td></tr><tr><td style="text-align: left" valign="top"> | |
6861 | + </td><td colspan="2" align="left"> </td></tr><tr><td align="left" valign="top"> | |
6862 | <code class="classname">Trigger_Policy</code> | |
6863 | - </td><td style="text-align: left"> | |
6864 | + </td><td align="left"> | |
6865 | <code class="classname">hash_load_check_resize_trigger</code> with | |
6866 | α<sub>min</sub> = 1/8 and α<sub>max</sub> = 1/2 | |
6867 | - </td><td colspan="2" style="text-align: left"> </td></tr><tr><td style="text-align: left"> | |
6868 | + </td><td colspan="2" align="left"> </td></tr><tr><td align="left"> | |
6869 | <code class="classname">Mapped</code> | |
6870 | - </td><td style="text-align: left"> | |
6871 | + </td><td align="left"> | |
6872 | <code class="classname">list_update</code> | |
6873 | - </td><td style="text-align: left"> | |
6874 | + </td><td align="left"> | |
6875 | <code class="classname">Update_Policy</code> | |
6876 | - </td><td style="text-align: left"> | |
6877 | + </td><td align="left"> | |
6878 | <code class="classname">lu_move_to_front_policy</code> | |
6879 | - </td><td colspan="2" style="text-align: left"> </td></tr><tr style="background-color: #B0B0B0"><td colspan="7" style="text-align: left"> | |
6880 | + </td><td colspan="2" align="left"> </td></tr><tr bgcolor="#B0B0B0"><td colspan="7" align="left"> | |
6881 | rb_tree_mmap_cc_hash_mask_exp_1div2_nsth_set | |
6882 | - </td></tr><tr><td rowspan="6" style="text-align: left" valign="top"> | |
6883 | + </td></tr><tr><td rowspan="6" align="left" valign="top"> | |
6884 | <code class="classname"> | |
6885 | cc_hash_table | |
6886 | </code> | |
6887 | - </td><td style="text-align: left"> | |
6888 | + </td><td align="left"> | |
6889 | <code class="classname">Comb_Hash_Fn</code> | |
6890 | - </td><td style="text-align: left"> | |
6891 | + </td><td align="left"> | |
6892 | <code class="classname">direct_mask_range_hashing</code> | |
6893 | - </td><td colspan="4" style="text-align: left"> </td></tr><tr><td rowspan="2" style="text-align: left" valign="top"> | |
6894 | + </td><td colspan="4" align="left"> </td></tr><tr><td rowspan="2" align="left" valign="top"> | |
6895 | <code class="classname">Resize_Policy</code> | |
6896 | - </td><td rowspan="2" style="text-align: left" valign="top"> | |
6897 | + </td><td rowspan="2" align="left" valign="top"> | |
6898 | <code class="classname">hash_standard_resize_policy</code> | |
6899 | - </td><td style="text-align: left"> | |
6900 | + </td><td align="left"> | |
6901 | <code class="classname">Size_Policy</code> | |
6902 | - </td><td style="text-align: left"> | |
6903 | + </td><td align="left"> | |
6904 | <code class="classname">hash_exponential_size_policy</code> | |
6905 | - </td><td colspan="2" style="text-align: left"> </td></tr><tr><td style="text-align: left" valign="top"> | |
6906 | + </td><td colspan="2" align="left"> </td></tr><tr><td align="left" valign="top"> | |
6907 | <code class="classname">Trigger_Policy</code> | |
6908 | - </td><td style="text-align: left"> | |
6909 | + </td><td align="left"> | |
6910 | <code class="classname">hash_load_check_resize_trigger</code> with | |
6911 | α<sub>min</sub> = 1/8 and α<sub>max</sub> = 1/2 | |
6912 | - </td><td colspan="2" style="text-align: left"> </td></tr><tr><td rowspan="3" style="text-align: left" valign="top"> | |
6913 | + </td><td colspan="2" align="left"> </td></tr><tr><td rowspan="3" align="left" valign="top"> | |
6914 | <code class="classname">Mapped</code> | |
6915 | - </td><td rowspan="3" style="text-align: left" valign="top"> | |
6916 | + </td><td rowspan="3" align="left" valign="top"> | |
6917 | <code class="classname">cc_hash_table</code> | |
6918 | - </td><td style="text-align: left"> | |
6919 | + </td><td align="left"> | |
6920 | <code class="classname">Comb_Hash_Fn</code> | |
6921 | - </td><td style="text-align: left"> | |
6922 | + </td><td align="left"> | |
6923 | <code class="classname">direct_mask_range_hashing</code> | |
6924 | - </td><td colspan="2" style="text-align: left"> </td></tr><tr><td rowspan="2" style="text-align: left" valign="top"> | |
6925 | + </td><td colspan="2" align="left"> </td></tr><tr><td rowspan="2" align="left" valign="top"> | |
6926 | <code class="classname">Resize_Policy</code> | |
6927 | - </td><td rowspan="2" style="text-align: left" valign="top"> | |
6928 | + </td><td rowspan="2" align="left" valign="top"> | |
6929 | <code class="classname">hash_standard_resize_policy</code> | |
6930 | - </td><td style="text-align: left"> | |
6931 | + </td><td align="left"> | |
6932 | <code class="classname">Size_Policy</code> | |
6933 | - </td><td style="text-align: left"> | |
6934 | + </td><td align="left"> | |
6935 | <code class="classname">hash_exponential_size_policy</code> | |
6936 | - </td></tr><tr><td style="text-align: left" valign="top"> | |
6937 | + </td></tr><tr><td align="left" valign="top"> | |
6938 | <code class="classname">Trigger_Policy</code> | |
6939 | - </td><td style="text-align: left"> | |
6940 | + </td><td align="left"> | |
6941 | <code class="classname">hash_load_check_resize_trigger</code> with | |
6942 | α<sub>min</sub> = 1/8 and α<sub>max</sub> = 1/2 | |
6943 | - </td></tr></tbody></table></div></div><div class="section" title="Observations"><div class="titlepage"><div><div><h6 class="title"><a id="multimap.text_find_small.observations"/> | |
6944 | + </td></tr></tbody></table></div></div><div class="section" title="Observations"><div class="titlepage"><div><div><h6 class="title"><a id="multimap.text_find_small.observations"></a> | |
6945 | Observations | |
6946 | </h6></div></div></div><p>See Observations::Mapping-Semantics | |
6947 | - Considerations.</p></div></div><div class="section" title="Text find with Large Secondary-to-Primary Key Ratios"><div class="titlepage"><div><div><h5 class="title"><a id="performance.multimap.text_find_large"/> | |
6948 | + Considerations.</p></div></div><div class="section" title="Text find with Large Secondary-to-Primary Key Ratios"><div class="titlepage"><div><div><h5 class="title"><a id="performance.multimap.text_find_large"></a> | |
6949 | Text <code class="function">find</code> with Large Secondary-to-Primary Key Ratios | |
6950 | - </h5></div></div></div><p/><div class="section" title="Description"><div class="titlepage"><div><div><h6 class="title"><a id="multimap.text_find_large.info"/> | |
6951 | + </h5></div></div></div><p></p><div class="section" title="Description"><div class="titlepage"><div><div><h6 class="title"><a id="multimap.text_find_large.info"></a> | |
6952 | Description | |
6953 | </h6></div></div></div><p>This test inserts a number of pairs into a container. The | |
6954 | first item of each pair is a string from an arbitrary text | |
6955 | @@ -1681,161 +1681,161 @@ | |
6956 | performance/ext/pb_ds/multimap_text_find_timing_large.cc | |
6957 | </code> | |
6958 | </p><p>The test checks the find-time scalability of different | |
6959 | - "multimap" designs.</p></div><div class="section" title="Results"><div class="titlepage"><div><div><h6 class="title"><a id="multimap.text_find_large.results"/> | |
6960 | + "multimap" designs.</p></div><div class="section" title="Results"><div class="titlepage"><div><div><h6 class="title"><a id="multimap.text_find_large.results"></a> | |
6961 | Results | |
6962 | </h6></div></div></div><p>The graphic below show the results for "multimaps" which | |
6963 | use a tree-based container for primary keys. | |
6964 | - </p><div class="informalfigure"><div class="mediaobject" style="text-align: center"><img src="../images/pbds_multimap_text_find_large_s2p_tree.png" style="text-align: middle"/></div></div><p> | |
6965 | + </p><div class="informalfigure"><div class="mediaobject" align="center"><img src="../images/pbds_multimap_text_find_large_s2p_tree.png" align="middle" /></div></div><p> | |
6966 | The abbreviated names in the legend of the graphic above are | |
6967 | instantiated with the types in the following table. | |
6968 | - </p><div class="informaltable"><table border="1"><colgroup><col style="text-align: left" class="c1"/><col style="text-align: left" class="c2"/><col style="text-align: left" class="c3"/><col style="text-align: left" class="c4"/><col style="text-align: left" class="c5"/><col style="text-align: left" class="c6"/><col style="text-align: left" class="c7"/></colgroup><thead><tr><th style="text-align: left"><span class="emphasis"><em>Name/Instantiating Type</em></span></th><th style="text-align: left"><span class="emphasis"><em>Parameter</em></span></th><th style="text-align: left"><span class="emphasis"><em>Details</em></span></th><th style="text-align: left"><span class="emphasis"><em>Parameter</em></span></th><th style="text-align: left"><span class="emphasis"><em>Details</em></span></th><th style="text-align: left"><span class="emphasis"><em>Parameter</em></span></th><th style="text-align: left"><span class="emphasis"><em>Details</em></span></th></tr></thead><tbody><tr style="background-color: #B0B0B0"><td colspan="7" style="text-align: left"> | |
6969 | + </p><div class="informaltable"><table border="1"><colgroup><col align="left" class="c1" /><col align="left" class="c2" /><col align="left" class="c3" /><col align="left" class="c4" /><col align="left" class="c5" /><col align="left" class="c6" /><col align="left" class="c7" /></colgroup><thead><tr><th align="left"><span class="emphasis"><em>Name/Instantiating Type</em></span></th><th align="left"><span class="emphasis"><em>Parameter</em></span></th><th align="left"><span class="emphasis"><em>Details</em></span></th><th align="left"><span class="emphasis"><em>Parameter</em></span></th><th align="left"><span class="emphasis"><em>Details</em></span></th><th align="left"><span class="emphasis"><em>Parameter</em></span></th><th align="left"><span class="emphasis"><em>Details</em></span></th></tr></thead><tbody><tr bgcolor="#B0B0B0"><td colspan="7" align="left"> | |
6970 | n_mmap | |
6971 | - </td></tr><tr><td style="text-align: left"> | |
6972 | + </td></tr><tr><td align="left"> | |
6973 | <code class="classname">std::multimap</code> | |
6974 | - </td><td colspan="6" style="text-align: left"> </td></tr><tr style="background-color: #B0B0B0"><td colspan="7" style="text-align: left"> | |
6975 | + </td><td colspan="6" align="left"> </td></tr><tr bgcolor="#B0B0B0"><td colspan="7" align="left"> | |
6976 | rb_tree_mmap_lu_mtf_set | |
6977 | - </td></tr><tr><td rowspan="3" style="text-align: left" valign="top"> | |
6978 | + </td></tr><tr><td rowspan="3" align="left" valign="top"> | |
6979 | <code class="classname">tree</code> | |
6980 | - </td><td style="text-align: left"> | |
6981 | + </td><td align="left"> | |
6982 | <code class="classname">Tag</code> | |
6983 | - </td><td style="text-align: left"> | |
6984 | + </td><td align="left"> | |
6985 | <code class="classname">rb_tree_tag</code> | |
6986 | - </td><td colspan="4" style="text-align: left"> </td></tr><tr><td style="text-align: left"> | |
6987 | + </td><td colspan="4" align="left"> </td></tr><tr><td align="left"> | |
6988 | <code class="classname">Node_Update</code> | |
6989 | - </td><td style="text-align: left"> | |
6990 | + </td><td align="left"> | |
6991 | <code class="classname">null_node_update</code> | |
6992 | - </td><td colspan="4" style="text-align: left"> </td></tr><tr><td style="text-align: left"> | |
6993 | + </td><td colspan="4" align="left"> </td></tr><tr><td align="left"> | |
6994 | <code class="classname">Mapped</code> | |
6995 | - </td><td style="text-align: left"> | |
6996 | + </td><td align="left"> | |
6997 | <code class="classname">list_update</code> | |
6998 | - </td><td style="text-align: left"> | |
6999 | + </td><td align="left"> | |
7000 | <code class="classname">Update_Policy</code> | |
7001 | - </td><td style="text-align: left"> | |
7002 | + </td><td align="left"> | |
7003 | <code class="classname">lu_move_to_front_policy</code> | |
7004 | - </td><td colspan="2" style="text-align: left"> </td></tr><tr style="background-color: #B0B0B0"><td colspan="7" style="text-align: left"> | |
7005 | + </td><td colspan="2" align="left"> </td></tr><tr bgcolor="#B0B0B0"><td colspan="7" align="left"> | |
7006 | rb_tree_mmap_cc_hash_mask_exp_1div2_nsth_set | |
7007 | - </td></tr><tr><td rowspan="5" style="text-align: left" valign="top"> | |
7008 | + </td></tr><tr><td rowspan="5" align="left" valign="top"> | |
7009 | <code class="classname">tree</code> | |
7010 | - </td><td style="text-align: left"> | |
7011 | + </td><td align="left"> | |
7012 | <code class="classname">Tag</code> | |
7013 | - </td><td style="text-align: left"> | |
7014 | + </td><td align="left"> | |
7015 | <code class="classname">rb_tree_tag</code> | |
7016 | - </td><td colspan="4" style="text-align: left"> </td></tr><tr><td style="text-align: left"> | |
7017 | + </td><td colspan="4" align="left"> </td></tr><tr><td align="left"> | |
7018 | <code class="classname">Node_Update</code> | |
7019 | - </td><td style="text-align: left"> | |
7020 | + </td><td align="left"> | |
7021 | <code class="classname">null_node_update</code> | |
7022 | - </td><td colspan="4" style="text-align: left"> </td></tr><tr><td rowspan="3" style="text-align: left" valign="top"> | |
7023 | + </td><td colspan="4" align="left"> </td></tr><tr><td rowspan="3" align="left" valign="top"> | |
7024 | <code class="classname">Mapped</code> | |
7025 | - </td><td rowspan="3" style="text-align: left" valign="top"> | |
7026 | + </td><td rowspan="3" align="left" valign="top"> | |
7027 | <code class="classname">cc_hash_table</code> | |
7028 | - </td><td style="text-align: left"> | |
7029 | + </td><td align="left"> | |
7030 | <code class="classname">Comb_Hash_Fn</code> | |
7031 | - </td><td style="text-align: left"> | |
7032 | + </td><td align="left"> | |
7033 | <code class="classname">direct_mask_range_hashing</code> | |
7034 | - </td><td colspan="2" style="text-align: left"> </td></tr><tr><td rowspan="2" style="text-align: left" valign="top"> | |
7035 | + </td><td colspan="2" align="left"> </td></tr><tr><td rowspan="2" align="left" valign="top"> | |
7036 | <code class="classname">Resize_Policy</code> | |
7037 | - </td><td rowspan="2" style="text-align: left" valign="top"> | |
7038 | + </td><td rowspan="2" align="left" valign="top"> | |
7039 | <code class="classname">hash_standard_resize_policy</code> | |
7040 | - </td><td style="text-align: left"> | |
7041 | + </td><td align="left"> | |
7042 | <code class="classname">Size_Policy</code> | |
7043 | - </td><td style="text-align: left"> | |
7044 | + </td><td align="left"> | |
7045 | <code class="classname">hash_exponential_size_policy</code> | |
7046 | - </td></tr><tr><td style="text-align: left" valign="top"> | |
7047 | + </td></tr><tr><td align="left" valign="top"> | |
7048 | <code class="classname">Trigger_Policy</code> | |
7049 | - </td><td style="text-align: left"> | |
7050 | + </td><td align="left"> | |
7051 | <code class="classname">hash_load_check_resize_trigger</code> with | |
7052 | α<sub>min</sub> = 1/8 and α<sub>max</sub> = 1/2 | |
7053 | </td></tr></tbody></table></div><p>The graphic below show the results for "multimaps" which | |
7054 | use a hash-based container for primary keys. | |
7055 | - </p><div class="informalfigure"><div class="mediaobject" style="text-align: center"><img src="../images/pbds_multimap_text_find_large_s2p_hash.png" style="text-align: middle"/></div></div><p> | |
7056 | + </p><div class="informalfigure"><div class="mediaobject" align="center"><img src="../images/pbds_multimap_text_find_large_s2p_hash.png" align="middle" /></div></div><p> | |
7057 | The abbreviated names in the legend of the graphic above are | |
7058 | instantiated with the types in the following table. | |
7059 | - </p><div class="informaltable"><table border="1"><colgroup><col style="text-align: left" class="c1"/><col style="text-align: left" class="c2"/><col style="text-align: left" class="c3"/><col style="text-align: left" class="c4"/><col style="text-align: left" class="c5"/><col style="text-align: left" class="c6"/><col style="text-align: left" class="c7"/></colgroup><thead><tr><th style="text-align: left"><span class="emphasis"><em>Name/Instantiating Type</em></span></th><th style="text-align: left"><span class="emphasis"><em>Parameter</em></span></th><th style="text-align: left"><span class="emphasis"><em>Details</em></span></th><th style="text-align: left"><span class="emphasis"><em>Parameter</em></span></th><th style="text-align: left"><span class="emphasis"><em>Details</em></span></th><th style="text-align: left"><span class="emphasis"><em>Parameter</em></span></th><th style="text-align: left"><span class="emphasis"><em>Details</em></span></th></tr></thead><tbody><tr style="background-color: #B0B0B0"><td colspan="7" style="text-align: left"> | |
7060 | + </p><div class="informaltable"><table border="1"><colgroup><col align="left" class="c1" /><col align="left" class="c2" /><col align="left" class="c3" /><col align="left" class="c4" /><col align="left" class="c5" /><col align="left" class="c6" /><col align="left" class="c7" /></colgroup><thead><tr><th align="left"><span class="emphasis"><em>Name/Instantiating Type</em></span></th><th align="left"><span class="emphasis"><em>Parameter</em></span></th><th align="left"><span class="emphasis"><em>Details</em></span></th><th align="left"><span class="emphasis"><em>Parameter</em></span></th><th align="left"><span class="emphasis"><em>Details</em></span></th><th align="left"><span class="emphasis"><em>Parameter</em></span></th><th align="left"><span class="emphasis"><em>Details</em></span></th></tr></thead><tbody><tr bgcolor="#B0B0B0"><td colspan="7" align="left"> | |
7061 | n_hash_mmap | |
7062 | - </td></tr><tr><td style="text-align: left"> | |
7063 | + </td></tr><tr><td align="left"> | |
7064 | <code class="classname">std::tr1::unordered_multimap</code> | |
7065 | - </td><td colspan="6" style="text-align: left"> </td></tr><tr style="background-color: #B0B0B0"><td colspan="7" style="text-align: left"> | |
7066 | + </td><td colspan="6" align="left"> </td></tr><tr bgcolor="#B0B0B0"><td colspan="7" align="left"> | |
7067 | rb_tree_mmap_lu_mtf_set | |
7068 | - </td></tr><tr><td rowspan="4" style="text-align: left" valign="top"> | |
7069 | + </td></tr><tr><td rowspan="4" align="left" valign="top"> | |
7070 | <code class="classname"> | |
7071 | cc_hash_table | |
7072 | </code> | |
7073 | - </td><td style="text-align: left"> | |
7074 | + </td><td align="left"> | |
7075 | <code class="classname">Comb_Hash_Fn</code> | |
7076 | - </td><td style="text-align: left"> | |
7077 | + </td><td align="left"> | |
7078 | <code class="classname">direct_mask_range_hashing</code> | |
7079 | - </td><td colspan="4" style="text-align: left"> </td></tr><tr><td rowspan="2" style="text-align: left" valign="top"> | |
7080 | + </td><td colspan="4" align="left"> </td></tr><tr><td rowspan="2" align="left" valign="top"> | |
7081 | <code class="classname">Resize_Policy</code> | |
7082 | - </td><td rowspan="2" style="text-align: left" valign="top"> | |
7083 | + </td><td rowspan="2" align="left" valign="top"> | |
7084 | <code class="classname">hash_standard_resize_policy</code> | |
7085 | - </td><td style="text-align: left"> | |
7086 | + </td><td align="left"> | |
7087 | <code class="classname">Size_Policy</code> | |
7088 | - </td><td style="text-align: left"> | |
7089 | + </td><td align="left"> | |
7090 | <code class="classname">hash_exponential_size_policy</code> | |
7091 | - </td><td colspan="2" style="text-align: left"> </td></tr><tr><td style="text-align: left" valign="top"> | |
7092 | + </td><td colspan="2" align="left"> </td></tr><tr><td align="left" valign="top"> | |
7093 | <code class="classname">Trigger_Policy</code> | |
7094 | - </td><td style="text-align: left"> | |
7095 | + </td><td align="left"> | |
7096 | <code class="classname">hash_load_check_resize_trigger</code> with | |
7097 | α<sub>min</sub> = 1/8 and α<sub>max</sub> = 1/2 | |
7098 | - </td><td colspan="2" style="text-align: left"> </td></tr><tr><td style="text-align: left"> | |
7099 | + </td><td colspan="2" align="left"> </td></tr><tr><td align="left"> | |
7100 | <code class="classname">Mapped</code> | |
7101 | - </td><td style="text-align: left"> | |
7102 | + </td><td align="left"> | |
7103 | <code class="classname">list_update</code> | |
7104 | - </td><td style="text-align: left"> | |
7105 | + </td><td align="left"> | |
7106 | <code class="classname">Update_Policy</code> | |
7107 | - </td><td style="text-align: left"> | |
7108 | + </td><td align="left"> | |
7109 | <code class="classname">lu_move_to_front_policy</code> | |
7110 | - </td><td colspan="2" style="text-align: left"> </td></tr><tr style="background-color: #B0B0B0"><td colspan="7" style="text-align: left"> | |
7111 | + </td><td colspan="2" align="left"> </td></tr><tr bgcolor="#B0B0B0"><td colspan="7" align="left"> | |
7112 | rb_tree_mmap_cc_hash_mask_exp_1div2_nsth_set | |
7113 | - </td></tr><tr><td rowspan="6" style="text-align: left" valign="top"> | |
7114 | + </td></tr><tr><td rowspan="6" align="left" valign="top"> | |
7115 | <code class="classname"> | |
7116 | cc_hash_table | |
7117 | </code> | |
7118 | - </td><td style="text-align: left"> | |
7119 | + </td><td align="left"> | |
7120 | <code class="classname">Comb_Hash_Fn</code> | |
7121 | - </td><td style="text-align: left"> | |
7122 | + </td><td align="left"> | |
7123 | <code class="classname">direct_mask_range_hashing</code> | |
7124 | - </td><td colspan="4" style="text-align: left"> </td></tr><tr><td rowspan="2" style="text-align: left" valign="top"> | |
7125 | + </td><td colspan="4" align="left"> </td></tr><tr><td rowspan="2" align="left" valign="top"> | |
7126 | <code class="classname">Resize_Policy</code> | |
7127 | - </td><td rowspan="2" style="text-align: left" valign="top"> | |
7128 | + </td><td rowspan="2" align="left" valign="top"> | |
7129 | <code class="classname">hash_standard_resize_policy</code> | |
7130 | - </td><td style="text-align: left"> | |
7131 | + </td><td align="left"> | |
7132 | <code class="classname">Size_Policy</code> | |
7133 | - </td><td style="text-align: left"> | |
7134 | + </td><td align="left"> | |
7135 | <code class="classname">hash_exponential_size_policy</code> | |
7136 | - </td><td colspan="2" style="text-align: left"> </td></tr><tr><td style="text-align: left" valign="top"> | |
7137 | + </td><td colspan="2" align="left"> </td></tr><tr><td align="left" valign="top"> | |
7138 | <code class="classname">Trigger_Policy</code> | |
7139 | - </td><td style="text-align: left"> | |
7140 | + </td><td align="left"> | |
7141 | <code class="classname">hash_load_check_resize_trigger</code> with | |
7142 | α<sub>min</sub> = 1/8 and α<sub>max</sub> = 1/2 | |
7143 | - </td><td colspan="2" style="text-align: left"> </td></tr><tr><td rowspan="3" style="text-align: left" valign="top"> | |
7144 | + </td><td colspan="2" align="left"> </td></tr><tr><td rowspan="3" align="left" valign="top"> | |
7145 | <code class="classname">Mapped</code> | |
7146 | - </td><td rowspan="3" style="text-align: left" valign="top"> | |
7147 | + </td><td rowspan="3" align="left" valign="top"> | |
7148 | <code class="classname">cc_hash_table</code> | |
7149 | - </td><td style="text-align: left"> | |
7150 | + </td><td align="left"> | |
7151 | <code class="classname">Comb_Hash_Fn</code> | |
7152 | - </td><td style="text-align: left"> | |
7153 | + </td><td align="left"> | |
7154 | <code class="classname">direct_mask_range_hashing</code> | |
7155 | - </td><td colspan="2" style="text-align: left"> </td></tr><tr><td rowspan="2" style="text-align: left" valign="top"> | |
7156 | + </td><td colspan="2" align="left"> </td></tr><tr><td rowspan="2" align="left" valign="top"> | |
7157 | <code class="classname">Resize_Policy</code> | |
7158 | - </td><td rowspan="2" style="text-align: left" valign="top"> | |
7159 | + </td><td rowspan="2" align="left" valign="top"> | |
7160 | <code class="classname">hash_standard_resize_policy</code> | |
7161 | - </td><td style="text-align: left"> | |
7162 | + </td><td align="left"> | |
7163 | <code class="classname">Size_Policy</code> | |
7164 | - </td><td style="text-align: left"> | |
7165 | + </td><td align="left"> | |
7166 | <code class="classname">hash_exponential_size_policy</code> | |
7167 | - </td></tr><tr><td style="text-align: left" valign="top"> | |
7168 | + </td></tr><tr><td align="left" valign="top"> | |
7169 | <code class="classname">Trigger_Policy</code> | |
7170 | - </td><td style="text-align: left"> | |
7171 | + </td><td align="left"> | |
7172 | <code class="classname">hash_load_check_resize_trigger</code> with | |
7173 | α<sub>min</sub> = 1/8 and α<sub>max</sub> = 1/2 | |
7174 | - </td></tr></tbody></table></div></div><div class="section" title="Observations"><div class="titlepage"><div><div><h6 class="title"><a id="multimap.text_find_large.observations"/> | |
7175 | + </td></tr></tbody></table></div></div><div class="section" title="Observations"><div class="titlepage"><div><div><h6 class="title"><a id="multimap.text_find_large.observations"></a> | |
7176 | Observations | |
7177 | </h6></div></div></div><p>See Observations::Mapping-Semantics | |
7178 | - Considerations.</p></div></div><div class="section" title="Text insert with Small Secondary-to-Primary Key Ratios"><div class="titlepage"><div><div><h5 class="title"><a id="performance.multimap.text_insert_small"/> | |
7179 | + Considerations.</p></div></div><div class="section" title="Text insert with Small Secondary-to-Primary Key Ratios"><div class="titlepage"><div><div><h5 class="title"><a id="performance.multimap.text_insert_small"></a> | |
7180 | Text <code class="function">insert</code> with Small | |
7181 | Secondary-to-Primary Key Ratios | |
7182 | - </h5></div></div></div><p/><div class="section" title="Description"><div class="titlepage"><div><div><h6 class="title"><a id="multimap.text_insert_small.info"/> | |
7183 | + </h5></div></div></div><p></p><div class="section" title="Description"><div class="titlepage"><div><div><h6 class="title"><a id="multimap.text_insert_small.info"></a> | |
7184 | Description | |
7185 | </h6></div></div></div><p>This test inserts a number of pairs into a container. The | |
7186 | first item of each pair is a string from an arbitrary text | |
7187 | @@ -1857,161 +1857,161 @@ | |
7188 | performance/ext/pb_ds/multimap_text_insert_timing_small.cc | |
7189 | </code> | |
7190 | </p><p>The test checks the insert-time scalability of different | |
7191 | - "multimap" designs.</p></div><div class="section" title="Results"><div class="titlepage"><div><div><h6 class="title"><a id="multimap.text_insert_small.results"/> | |
7192 | + "multimap" designs.</p></div><div class="section" title="Results"><div class="titlepage"><div><div><h6 class="title"><a id="multimap.text_insert_small.results"></a> | |
7193 | Results | |
7194 | </h6></div></div></div><p>The graphic below show the results for "multimaps" which | |
7195 | use a tree-based container for primary keys. | |
7196 | - </p><div class="informalfigure"><div class="mediaobject" style="text-align: center"><img src="../images/pbds_multimap_text_insert_small_s2p_tree.png" style="text-align: middle"/></div></div><p> | |
7197 | + </p><div class="informalfigure"><div class="mediaobject" align="center"><img src="../images/pbds_multimap_text_insert_small_s2p_tree.png" align="middle" /></div></div><p> | |
7198 | The abbreviated names in the legend of the graphic above are | |
7199 | instantiated with the types in the following table. | |
7200 | - </p><div class="informaltable"><table border="1"><colgroup><col style="text-align: left" class="c1"/><col style="text-align: left" class="c2"/><col style="text-align: left" class="c3"/><col style="text-align: left" class="c4"/><col style="text-align: left" class="c5"/><col style="text-align: left" class="c6"/><col style="text-align: left" class="c7"/></colgroup><thead><tr><th style="text-align: left"><span class="emphasis"><em>Name/Instantiating Type</em></span></th><th style="text-align: left"><span class="emphasis"><em>Parameter</em></span></th><th style="text-align: left"><span class="emphasis"><em>Details</em></span></th><th style="text-align: left"><span class="emphasis"><em>Parameter</em></span></th><th style="text-align: left"><span class="emphasis"><em>Details</em></span></th><th style="text-align: left"><span class="emphasis"><em>Parameter</em></span></th><th style="text-align: left"><span class="emphasis"><em>Details</em></span></th></tr></thead><tbody><tr style="background-color: #B0B0B0"><td colspan="7" style="text-align: left"> | |
7201 | + </p><div class="informaltable"><table border="1"><colgroup><col align="left" class="c1" /><col align="left" class="c2" /><col align="left" class="c3" /><col align="left" class="c4" /><col align="left" class="c5" /><col align="left" class="c6" /><col align="left" class="c7" /></colgroup><thead><tr><th align="left"><span class="emphasis"><em>Name/Instantiating Type</em></span></th><th align="left"><span class="emphasis"><em>Parameter</em></span></th><th align="left"><span class="emphasis"><em>Details</em></span></th><th align="left"><span class="emphasis"><em>Parameter</em></span></th><th align="left"><span class="emphasis"><em>Details</em></span></th><th align="left"><span class="emphasis"><em>Parameter</em></span></th><th align="left"><span class="emphasis"><em>Details</em></span></th></tr></thead><tbody><tr bgcolor="#B0B0B0"><td colspan="7" align="left"> | |
7202 | n_mmap | |
7203 | - </td></tr><tr><td style="text-align: left"> | |
7204 | + </td></tr><tr><td align="left"> | |
7205 | <code class="classname">std::multimap</code> | |
7206 | - </td><td colspan="6" style="text-align: left"> </td></tr><tr style="background-color: #B0B0B0"><td colspan="7" style="text-align: left"> | |
7207 | + </td><td colspan="6" align="left"> </td></tr><tr bgcolor="#B0B0B0"><td colspan="7" align="left"> | |
7208 | rb_tree_mmap_lu_mtf_set | |
7209 | - </td></tr><tr><td rowspan="3" style="text-align: left" valign="top"> | |
7210 | + </td></tr><tr><td rowspan="3" align="left" valign="top"> | |
7211 | <code class="classname">tree</code> | |
7212 | - </td><td style="text-align: left"> | |
7213 | + </td><td align="left"> | |
7214 | <code class="classname">Tag</code> | |
7215 | - </td><td style="text-align: left"> | |
7216 | + </td><td align="left"> | |
7217 | <code class="classname">rb_tree_tag</code> | |
7218 | - </td><td colspan="4" style="text-align: left"> </td></tr><tr><td style="text-align: left"> | |
7219 | + </td><td colspan="4" align="left"> </td></tr><tr><td align="left"> | |
7220 | <code class="classname">Node_Update</code> | |
7221 | - </td><td style="text-align: left"> | |
7222 | + </td><td align="left"> | |
7223 | <code class="classname">null_node_update</code> | |
7224 | - </td><td colspan="4" style="text-align: left"> </td></tr><tr><td style="text-align: left"> | |
7225 | + </td><td colspan="4" align="left"> </td></tr><tr><td align="left"> | |
7226 | <code class="classname">Mapped</code> | |
7227 | - </td><td style="text-align: left"> | |
7228 | + </td><td align="left"> | |
7229 | <code class="classname">list_update</code> | |
7230 | - </td><td style="text-align: left"> | |
7231 | + </td><td align="left"> | |
7232 | <code class="classname">Update_Policy</code> | |
7233 | - </td><td style="text-align: left"> | |
7234 | + </td><td align="left"> | |
7235 | <code class="classname">lu_move_to_front_policy</code> | |
7236 | - </td><td colspan="2" style="text-align: left"> </td></tr><tr style="background-color: #B0B0B0"><td colspan="7" style="text-align: left"> | |
7237 | + </td><td colspan="2" align="left"> </td></tr><tr bgcolor="#B0B0B0"><td colspan="7" align="left"> | |
7238 | rb_tree_mmap_cc_hash_mask_exp_1div2_nsth_set | |
7239 | - </td></tr><tr><td rowspan="5" style="text-align: left" valign="top"> | |
7240 | + </td></tr><tr><td rowspan="5" align="left" valign="top"> | |
7241 | <code class="classname">tree</code> | |
7242 | - </td><td style="text-align: left"> | |
7243 | + </td><td align="left"> | |
7244 | <code class="classname">Tag</code> | |
7245 | - </td><td style="text-align: left"> | |
7246 | + </td><td align="left"> | |
7247 | <code class="classname">rb_tree_tag</code> | |
7248 | - </td><td colspan="4" style="text-align: left"> </td></tr><tr><td style="text-align: left"> | |
7249 | + </td><td colspan="4" align="left"> </td></tr><tr><td align="left"> | |
7250 | <code class="classname">Node_Update</code> | |
7251 | - </td><td style="text-align: left"> | |
7252 | + </td><td align="left"> | |
7253 | <code class="classname">null_node_update</code> | |
7254 | - </td><td colspan="4" style="text-align: left"> </td></tr><tr><td rowspan="3" style="text-align: left" valign="top"> | |
7255 | + </td><td colspan="4" align="left"> </td></tr><tr><td rowspan="3" align="left" valign="top"> | |
7256 | <code class="classname">Mapped</code> | |
7257 | - </td><td rowspan="3" style="text-align: left" valign="top"> | |
7258 | + </td><td rowspan="3" align="left" valign="top"> | |
7259 | <code class="classname">cc_hash_table</code> | |
7260 | - </td><td style="text-align: left"> | |
7261 | + </td><td align="left"> | |
7262 | <code class="classname">Comb_Hash_Fn</code> | |
7263 | - </td><td style="text-align: left"> | |
7264 | + </td><td align="left"> | |
7265 | <code class="classname">direct_mask_range_hashing</code> | |
7266 | - </td><td colspan="2" style="text-align: left"> </td></tr><tr><td rowspan="2" style="text-align: left" valign="top"> | |
7267 | + </td><td colspan="2" align="left"> </td></tr><tr><td rowspan="2" align="left" valign="top"> | |
7268 | <code class="classname">Resize_Policy</code> | |
7269 | - </td><td rowspan="2" style="text-align: left" valign="top"> | |
7270 | + </td><td rowspan="2" align="left" valign="top"> | |
7271 | <code class="classname">hash_standard_resize_policy</code> | |
7272 | - </td><td style="text-align: left"> | |
7273 | + </td><td align="left"> | |
7274 | <code class="classname">Size_Policy</code> | |
7275 | - </td><td style="text-align: left"> | |
7276 | + </td><td align="left"> | |
7277 | <code class="classname">hash_exponential_size_policy</code> | |
7278 | - </td></tr><tr><td style="text-align: left" valign="top"> | |
7279 | + </td></tr><tr><td align="left" valign="top"> | |
7280 | <code class="classname">Trigger_Policy</code> | |
7281 | - </td><td style="text-align: left"> | |
7282 | + </td><td align="left"> | |
7283 | <code class="classname">hash_load_check_resize_trigger</code> with | |
7284 | α<sub>min</sub> = 1/8 and α<sub>max</sub> = 1/2 | |
7285 | </td></tr></tbody></table></div><p>The graphic below show the results for "multimaps" which | |
7286 | use a hash-based container for primary keys. | |
7287 | - </p><div class="informalfigure"><div class="mediaobject" style="text-align: center"><img src="../images/pbds_multimap_text_find_small_s2p_hash.png" style="text-align: middle"/></div></div><p> | |
7288 | + </p><div class="informalfigure"><div class="mediaobject" align="center"><img src="../images/pbds_multimap_text_find_small_s2p_hash.png" align="middle" /></div></div><p> | |
7289 | The abbreviated names in the legend of the graphic above are | |
7290 | instantiated with the types in the following table. | |
7291 | - </p><div class="informaltable"><table border="1"><colgroup><col style="text-align: left" class="c1"/><col style="text-align: left" class="c2"/><col style="text-align: left" class="c3"/><col style="text-align: left" class="c4"/><col style="text-align: left" class="c5"/><col style="text-align: left" class="c6"/><col style="text-align: left" class="c7"/></colgroup><thead><tr><th style="text-align: left"><span class="emphasis"><em>Name/Instantiating Type</em></span></th><th style="text-align: left"><span class="emphasis"><em>Parameter</em></span></th><th style="text-align: left"><span class="emphasis"><em>Details</em></span></th><th style="text-align: left"><span class="emphasis"><em>Parameter</em></span></th><th style="text-align: left"><span class="emphasis"><em>Details</em></span></th><th style="text-align: left"><span class="emphasis"><em>Parameter</em></span></th><th style="text-align: left"><span class="emphasis"><em>Details</em></span></th></tr></thead><tbody><tr style="background-color: #B0B0B0"><td colspan="7" style="text-align: left"> | |
7292 | + </p><div class="informaltable"><table border="1"><colgroup><col align="left" class="c1" /><col align="left" class="c2" /><col align="left" class="c3" /><col align="left" class="c4" /><col align="left" class="c5" /><col align="left" class="c6" /><col align="left" class="c7" /></colgroup><thead><tr><th align="left"><span class="emphasis"><em>Name/Instantiating Type</em></span></th><th align="left"><span class="emphasis"><em>Parameter</em></span></th><th align="left"><span class="emphasis"><em>Details</em></span></th><th align="left"><span class="emphasis"><em>Parameter</em></span></th><th align="left"><span class="emphasis"><em>Details</em></span></th><th align="left"><span class="emphasis"><em>Parameter</em></span></th><th align="left"><span class="emphasis"><em>Details</em></span></th></tr></thead><tbody><tr bgcolor="#B0B0B0"><td colspan="7" align="left"> | |
7293 | n_hash_mmap | |
7294 | - </td></tr><tr><td style="text-align: left"> | |
7295 | + </td></tr><tr><td align="left"> | |
7296 | <code class="classname">std::tr1::unordered_multimap</code> | |
7297 | - </td><td colspan="6" style="text-align: left"> </td></tr><tr style="background-color: #B0B0B0"><td colspan="7" style="text-align: left"> | |
7298 | + </td><td colspan="6" align="left"> </td></tr><tr bgcolor="#B0B0B0"><td colspan="7" align="left"> | |
7299 | rb_tree_mmap_lu_mtf_set | |
7300 | - </td></tr><tr><td rowspan="4" style="text-align: left" valign="top"> | |
7301 | + </td></tr><tr><td rowspan="4" align="left" valign="top"> | |
7302 | <code class="classname"> | |
7303 | cc_hash_table | |
7304 | </code> | |
7305 | - </td><td style="text-align: left"> | |
7306 | + </td><td align="left"> | |
7307 | <code class="classname">Comb_Hash_Fn</code> | |
7308 | - </td><td style="text-align: left"> | |
7309 | + </td><td align="left"> | |
7310 | <code class="classname">direct_mask_range_hashing</code> | |
7311 | - </td><td colspan="4" style="text-align: left"> </td></tr><tr><td rowspan="2" style="text-align: left" valign="top"> | |
7312 | + </td><td colspan="4" align="left"> </td></tr><tr><td rowspan="2" align="left" valign="top"> | |
7313 | <code class="classname">Resize_Policy</code> | |
7314 | - </td><td rowspan="2" style="text-align: left" valign="top"> | |
7315 | + </td><td rowspan="2" align="left" valign="top"> | |
7316 | <code class="classname">hash_standard_resize_policy</code> | |
7317 | - </td><td style="text-align: left"> | |
7318 | + </td><td align="left"> | |
7319 | <code class="classname">Size_Policy</code> | |
7320 | - </td><td style="text-align: left"> | |
7321 | + </td><td align="left"> | |
7322 | <code class="classname">hash_exponential_size_policy</code> | |
7323 | - </td><td colspan="2" style="text-align: left"> </td></tr><tr><td style="text-align: left" valign="top"> | |
7324 | + </td><td colspan="2" align="left"> </td></tr><tr><td align="left" valign="top"> | |
7325 | <code class="classname">Trigger_Policy</code> | |
7326 | - </td><td style="text-align: left"> | |
7327 | + </td><td align="left"> | |
7328 | <code class="classname">hash_load_check_resize_trigger</code> with | |
7329 | α<sub>min</sub> = 1/8 and α<sub>max</sub> = 1/2 | |
7330 | - </td><td colspan="2" style="text-align: left"> </td></tr><tr><td style="text-align: left"> | |
7331 | + </td><td colspan="2" align="left"> </td></tr><tr><td align="left"> | |
7332 | <code class="classname">Mapped</code> | |
7333 | - </td><td style="text-align: left"> | |
7334 | + </td><td align="left"> | |
7335 | <code class="classname">list_update</code> | |
7336 | - </td><td style="text-align: left"> | |
7337 | + </td><td align="left"> | |
7338 | <code class="classname">Update_Policy</code> | |
7339 | - </td><td style="text-align: left"> | |
7340 | + </td><td align="left"> | |
7341 | <code class="classname">lu_move_to_front_policy</code> | |
7342 | - </td><td colspan="2" style="text-align: left"> </td></tr><tr style="background-color: #B0B0B0"><td colspan="7" style="text-align: left"> | |
7343 | + </td><td colspan="2" align="left"> </td></tr><tr bgcolor="#B0B0B0"><td colspan="7" align="left"> | |
7344 | rb_tree_mmap_cc_hash_mask_exp_1div2_nsth_set | |
7345 | - </td></tr><tr><td rowspan="6" style="text-align: left" valign="top"> | |
7346 | + </td></tr><tr><td rowspan="6" align="left" valign="top"> | |
7347 | <code class="classname"> | |
7348 | cc_hash_table | |
7349 | </code> | |
7350 | - </td><td style="text-align: left"> | |
7351 | + </td><td align="left"> | |
7352 | <code class="classname">Comb_Hash_Fn</code> | |
7353 | - </td><td style="text-align: left"> | |
7354 | + </td><td align="left"> | |
7355 | <code class="classname">direct_mask_range_hashing</code> | |
7356 | - </td><td colspan="4" style="text-align: left"> </td></tr><tr><td rowspan="2" style="text-align: left" valign="top"> | |
7357 | + </td><td colspan="4" align="left"> </td></tr><tr><td rowspan="2" align="left" valign="top"> | |
7358 | <code class="classname">Resize_Policy</code> | |
7359 | - </td><td rowspan="2" style="text-align: left" valign="top"> | |
7360 | + </td><td rowspan="2" align="left" valign="top"> | |
7361 | <code class="classname">hash_standard_resize_policy</code> | |
7362 | - </td><td style="text-align: left"> | |
7363 | + </td><td align="left"> | |
7364 | <code class="classname">Size_Policy</code> | |
7365 | - </td><td style="text-align: left"> | |
7366 | + </td><td align="left"> | |
7367 | <code class="classname">hash_exponential_size_policy</code> | |
7368 | - </td><td colspan="2" style="text-align: left"> </td></tr><tr><td style="text-align: left" valign="top"> | |
7369 | + </td><td colspan="2" align="left"> </td></tr><tr><td align="left" valign="top"> | |
7370 | <code class="classname">Trigger_Policy</code> | |
7371 | - </td><td style="text-align: left"> | |
7372 | + </td><td align="left"> | |
7373 | <code class="classname">hash_load_check_resize_trigger</code> with | |
7374 | α<sub>min</sub> = 1/8 and α<sub>max</sub> = 1/2 | |
7375 | - </td><td colspan="2" style="text-align: left"> </td></tr><tr><td rowspan="3" style="text-align: left" valign="top"> | |
7376 | + </td><td colspan="2" align="left"> </td></tr><tr><td rowspan="3" align="left" valign="top"> | |
7377 | <code class="classname">Mapped</code> | |
7378 | - </td><td rowspan="3" style="text-align: left" valign="top"> | |
7379 | + </td><td rowspan="3" align="left" valign="top"> | |
7380 | <code class="classname">cc_hash_table</code> | |
7381 | - </td><td style="text-align: left"> | |
7382 | + </td><td align="left"> | |
7383 | <code class="classname">Comb_Hash_Fn</code> | |
7384 | - </td><td style="text-align: left"> | |
7385 | + </td><td align="left"> | |
7386 | <code class="classname">direct_mask_range_hashing</code> | |
7387 | - </td><td colspan="2" style="text-align: left"> </td></tr><tr><td rowspan="2" style="text-align: left" valign="top"> | |
7388 | + </td><td colspan="2" align="left"> </td></tr><tr><td rowspan="2" align="left" valign="top"> | |
7389 | <code class="classname">Resize_Policy</code> | |
7390 | - </td><td rowspan="2" style="text-align: left" valign="top"> | |
7391 | + </td><td rowspan="2" align="left" valign="top"> | |
7392 | <code class="classname">hash_standard_resize_policy</code> | |
7393 | - </td><td style="text-align: left"> | |
7394 | + </td><td align="left"> | |
7395 | <code class="classname">Size_Policy</code> | |
7396 | - </td><td style="text-align: left"> | |
7397 | + </td><td align="left"> | |
7398 | <code class="classname">hash_exponential_size_policy</code> | |
7399 | - </td></tr><tr><td style="text-align: left" valign="top"> | |
7400 | + </td></tr><tr><td align="left" valign="top"> | |
7401 | <code class="classname">Trigger_Policy</code> | |
7402 | - </td><td style="text-align: left"> | |
7403 | + </td><td align="left"> | |
7404 | <code class="classname">hash_load_check_resize_trigger</code> with | |
7405 | α<sub>min</sub> = 1/8 and α<sub>max</sub> = 1/2 | |
7406 | - </td></tr></tbody></table></div></div><div class="section" title="Observations"><div class="titlepage"><div><div><h6 class="title"><a id="multimap.text_insert_small.observations"/> | |
7407 | + </td></tr></tbody></table></div></div><div class="section" title="Observations"><div class="titlepage"><div><div><h6 class="title"><a id="multimap.text_insert_small.observations"></a> | |
7408 | Observations | |
7409 | </h6></div></div></div><p>See Observations::Mapping-Semantics | |
7410 | - Considerations.</p></div></div><div class="section" title="Text insert with Small Secondary-to-Primary Key Ratios"><div class="titlepage"><div><div><h5 class="title"><a id="performance.multimap.text_insert_large"/> | |
7411 | + Considerations.</p></div></div><div class="section" title="Text insert with Small Secondary-to-Primary Key Ratios"><div class="titlepage"><div><div><h5 class="title"><a id="performance.multimap.text_insert_large"></a> | |
7412 | Text <code class="function">insert</code> with Small | |
7413 | Secondary-to-Primary Key Ratios | |
7414 | - </h5></div></div></div><p/><div class="section" title="Description"><div class="titlepage"><div><div><h6 class="title"><a id="multimap.text_insert_large.info"/> | |
7415 | + </h5></div></div></div><p></p><div class="section" title="Description"><div class="titlepage"><div><div><h6 class="title"><a id="multimap.text_insert_large.info"></a> | |
7416 | Description | |
7417 | </h6></div></div></div><p>This test inserts a number of pairs into a container. The | |
7418 | first item of each pair is a string from an arbitrary text | |
7419 | @@ -2033,161 +2033,161 @@ | |
7420 | performance/ext/pb_ds/multimap_text_insert_timing_large.cc | |
7421 | </code> | |
7422 | </p><p>The test checks the insert-time scalability of different | |
7423 | - "multimap" designs.</p></div><div class="section" title="Results"><div class="titlepage"><div><div><h6 class="title"><a id="multimap.text_insert_large.results"/> | |
7424 | + "multimap" designs.</p></div><div class="section" title="Results"><div class="titlepage"><div><div><h6 class="title"><a id="multimap.text_insert_large.results"></a> | |
7425 | Results | |
7426 | </h6></div></div></div><p>The graphic below show the results for "multimaps" which | |
7427 | use a tree-based container for primary keys. | |
7428 | - </p><div class="informalfigure"><div class="mediaobject" style="text-align: center"><img src="../images/pbds_multimap_text_insert_large_s2p_tree.png" style="text-align: middle"/></div></div><p> | |
7429 | + </p><div class="informalfigure"><div class="mediaobject" align="center"><img src="../images/pbds_multimap_text_insert_large_s2p_tree.png" align="middle" /></div></div><p> | |
7430 | The abbreviated names in the legend of the graphic above are | |
7431 | instantiated with the types in the following table. | |
7432 | - </p><div class="informaltable"><table border="1"><colgroup><col style="text-align: left" class="c1"/><col style="text-align: left" class="c2"/><col style="text-align: left" class="c3"/><col style="text-align: left" class="c4"/><col style="text-align: left" class="c5"/><col style="text-align: left" class="c6"/><col style="text-align: left" class="c7"/></colgroup><thead><tr><th style="text-align: left"><span class="emphasis"><em>Name/Instantiating Type</em></span></th><th style="text-align: left"><span class="emphasis"><em>Parameter</em></span></th><th style="text-align: left"><span class="emphasis"><em>Details</em></span></th><th style="text-align: left"><span class="emphasis"><em>Parameter</em></span></th><th style="text-align: left"><span class="emphasis"><em>Details</em></span></th><th style="text-align: left"><span class="emphasis"><em>Parameter</em></span></th><th style="text-align: left"><span class="emphasis"><em>Details</em></span></th></tr></thead><tbody><tr style="background-color: #B0B0B0"><td colspan="7" style="text-align: left"> | |
7433 | + </p><div class="informaltable"><table border="1"><colgroup><col align="left" class="c1" /><col align="left" class="c2" /><col align="left" class="c3" /><col align="left" class="c4" /><col align="left" class="c5" /><col align="left" class="c6" /><col align="left" class="c7" /></colgroup><thead><tr><th align="left"><span class="emphasis"><em>Name/Instantiating Type</em></span></th><th align="left"><span class="emphasis"><em>Parameter</em></span></th><th align="left"><span class="emphasis"><em>Details</em></span></th><th align="left"><span class="emphasis"><em>Parameter</em></span></th><th align="left"><span class="emphasis"><em>Details</em></span></th><th align="left"><span class="emphasis"><em>Parameter</em></span></th><th align="left"><span class="emphasis"><em>Details</em></span></th></tr></thead><tbody><tr bgcolor="#B0B0B0"><td colspan="7" align="left"> | |
7434 | n_mmap | |
7435 | - </td></tr><tr><td style="text-align: left"> | |
7436 | + </td></tr><tr><td align="left"> | |
7437 | <code class="classname">std::multimap</code> | |
7438 | - </td><td colspan="6" style="text-align: left"> </td></tr><tr style="background-color: #B0B0B0"><td colspan="7" style="text-align: left"> | |
7439 | + </td><td colspan="6" align="left"> </td></tr><tr bgcolor="#B0B0B0"><td colspan="7" align="left"> | |
7440 | rb_tree_mmap_lu_mtf_set | |
7441 | - </td></tr><tr><td rowspan="3" style="text-align: left" valign="top"> | |
7442 | + </td></tr><tr><td rowspan="3" align="left" valign="top"> | |
7443 | <code class="classname">tree</code> | |
7444 | - </td><td style="text-align: left"> | |
7445 | + </td><td align="left"> | |
7446 | <code class="classname">Tag</code> | |
7447 | - </td><td style="text-align: left"> | |
7448 | + </td><td align="left"> | |
7449 | <code class="classname">rb_tree_tag</code> | |
7450 | - </td><td colspan="4" style="text-align: left"> </td></tr><tr><td style="text-align: left"> | |
7451 | + </td><td colspan="4" align="left"> </td></tr><tr><td align="left"> | |
7452 | <code class="classname">Node_Update</code> | |
7453 | - </td><td style="text-align: left"> | |
7454 | + </td><td align="left"> | |
7455 | <code class="classname">null_node_update</code> | |
7456 | - </td><td colspan="4" style="text-align: left"> </td></tr><tr><td style="text-align: left"> | |
7457 | + </td><td colspan="4" align="left"> </td></tr><tr><td align="left"> | |
7458 | <code class="classname">Mapped</code> | |
7459 | - </td><td style="text-align: left"> | |
7460 | + </td><td align="left"> | |
7461 | <code class="classname">list_update</code> | |
7462 | - </td><td style="text-align: left"> | |
7463 | + </td><td align="left"> | |
7464 | <code class="classname">Update_Policy</code> | |
7465 | - </td><td style="text-align: left"> | |
7466 | + </td><td align="left"> | |
7467 | <code class="classname">lu_move_to_front_policy</code> | |
7468 | - </td><td colspan="2" style="text-align: left"> </td></tr><tr style="background-color: #B0B0B0"><td colspan="7" style="text-align: left"> | |
7469 | + </td><td colspan="2" align="left"> </td></tr><tr bgcolor="#B0B0B0"><td colspan="7" align="left"> | |
7470 | rb_tree_mmap_cc_hash_mask_exp_1div2_nsth_set | |
7471 | - </td></tr><tr><td rowspan="5" style="text-align: left" valign="top"> | |
7472 | + </td></tr><tr><td rowspan="5" align="left" valign="top"> | |
7473 | <code class="classname">tree</code> | |
7474 | - </td><td style="text-align: left"> | |
7475 | + </td><td align="left"> | |
7476 | <code class="classname">Tag</code> | |
7477 | - </td><td style="text-align: left"> | |
7478 | + </td><td align="left"> | |
7479 | <code class="classname">rb_tree_tag</code> | |
7480 | - </td><td colspan="4" style="text-align: left"> </td></tr><tr><td style="text-align: left"> | |
7481 | + </td><td colspan="4" align="left"> </td></tr><tr><td align="left"> | |
7482 | <code class="classname">Node_Update</code> | |
7483 | - </td><td style="text-align: left"> | |
7484 | + </td><td align="left"> | |
7485 | <code class="classname">null_node_update</code> | |
7486 | - </td><td colspan="4" style="text-align: left"> </td></tr><tr><td rowspan="3" style="text-align: left" valign="top"> | |
7487 | + </td><td colspan="4" align="left"> </td></tr><tr><td rowspan="3" align="left" valign="top"> | |
7488 | <code class="classname">Mapped</code> | |
7489 | - </td><td rowspan="3" style="text-align: left" valign="top"> | |
7490 | + </td><td rowspan="3" align="left" valign="top"> | |
7491 | <code class="classname">cc_hash_table</code> | |
7492 | - </td><td style="text-align: left"> | |
7493 | + </td><td align="left"> | |
7494 | <code class="classname">Comb_Hash_Fn</code> | |
7495 | - </td><td style="text-align: left"> | |
7496 | + </td><td align="left"> | |
7497 | <code class="classname">direct_mask_range_hashing</code> | |
7498 | - </td><td colspan="2" style="text-align: left"> </td></tr><tr><td rowspan="2" style="text-align: left" valign="top"> | |
7499 | + </td><td colspan="2" align="left"> </td></tr><tr><td rowspan="2" align="left" valign="top"> | |
7500 | <code class="classname">Resize_Policy</code> | |
7501 | - </td><td rowspan="2" style="text-align: left" valign="top"> | |
7502 | + </td><td rowspan="2" align="left" valign="top"> | |
7503 | <code class="classname">hash_standard_resize_policy</code> | |
7504 | - </td><td style="text-align: left"> | |
7505 | + </td><td align="left"> | |
7506 | <code class="classname">Size_Policy</code> | |
7507 | - </td><td style="text-align: left"> | |
7508 | + </td><td align="left"> | |
7509 | <code class="classname">hash_exponential_size_policy</code> | |
7510 | - </td></tr><tr><td style="text-align: left" valign="top"> | |
7511 | + </td></tr><tr><td align="left" valign="top"> | |
7512 | <code class="classname">Trigger_Policy</code> | |
7513 | - </td><td style="text-align: left"> | |
7514 | + </td><td align="left"> | |
7515 | <code class="classname">hash_load_check_resize_trigger</code> with | |
7516 | α<sub>min</sub> = 1/8 and α<sub>max</sub> = 1/2 | |
7517 | </td></tr></tbody></table></div><p>The graphic below show the results for "multimaps" which | |
7518 | use a hash-based container for primary keys. | |
7519 | - </p><div class="informalfigure"><div class="mediaobject" style="text-align: center"><img src="../images/pbds_multimap_text_find_large_s2p_hash.png" style="text-align: middle"/></div></div><p> | |
7520 | + </p><div class="informalfigure"><div class="mediaobject" align="center"><img src="../images/pbds_multimap_text_find_large_s2p_hash.png" align="middle" /></div></div><p> | |
7521 | The abbreviated names in the legend of the graphic above are | |
7522 | instantiated with the types in the following table. | |
7523 | - </p><div class="informaltable"><table border="1"><colgroup><col style="text-align: left" class="c1"/><col style="text-align: left" class="c2"/><col style="text-align: left" class="c3"/><col style="text-align: left" class="c4"/><col style="text-align: left" class="c5"/><col style="text-align: left" class="c6"/><col style="text-align: left" class="c7"/></colgroup><thead><tr><th style="text-align: left"><span class="emphasis"><em>Name/Instantiating Type</em></span></th><th style="text-align: left"><span class="emphasis"><em>Parameter</em></span></th><th style="text-align: left"><span class="emphasis"><em>Details</em></span></th><th style="text-align: left"><span class="emphasis"><em>Parameter</em></span></th><th style="text-align: left"><span class="emphasis"><em>Details</em></span></th><th style="text-align: left"><span class="emphasis"><em>Parameter</em></span></th><th style="text-align: left"><span class="emphasis"><em>Details</em></span></th></tr></thead><tbody><tr style="background-color: #B0B0B0"><td colspan="7" style="text-align: left"> | |
7524 | + </p><div class="informaltable"><table border="1"><colgroup><col align="left" class="c1" /><col align="left" class="c2" /><col align="left" class="c3" /><col align="left" class="c4" /><col align="left" class="c5" /><col align="left" class="c6" /><col align="left" class="c7" /></colgroup><thead><tr><th align="left"><span class="emphasis"><em>Name/Instantiating Type</em></span></th><th align="left"><span class="emphasis"><em>Parameter</em></span></th><th align="left"><span class="emphasis"><em>Details</em></span></th><th align="left"><span class="emphasis"><em>Parameter</em></span></th><th align="left"><span class="emphasis"><em>Details</em></span></th><th align="left"><span class="emphasis"><em>Parameter</em></span></th><th align="left"><span class="emphasis"><em>Details</em></span></th></tr></thead><tbody><tr bgcolor="#B0B0B0"><td colspan="7" align="left"> | |
7525 | n_hash_mmap | |
7526 | - </td></tr><tr><td style="text-align: left"> | |
7527 | + </td></tr><tr><td align="left"> | |
7528 | <code class="classname">std::tr1::unordered_multimap</code> | |
7529 | - </td><td colspan="6" style="text-align: left"> </td></tr><tr style="background-color: #B0B0B0"><td colspan="7" style="text-align: left"> | |
7530 | + </td><td colspan="6" align="left"> </td></tr><tr bgcolor="#B0B0B0"><td colspan="7" align="left"> | |
7531 | rb_tree_mmap_lu_mtf_set | |
7532 | - </td></tr><tr><td rowspan="4" style="text-align: left" valign="top"> | |
7533 | + </td></tr><tr><td rowspan="4" align="left" valign="top"> | |
7534 | <code class="classname"> | |
7535 | cc_hash_table | |
7536 | </code> | |
7537 | - </td><td style="text-align: left"> | |
7538 | + </td><td align="left"> | |
7539 | <code class="classname">Comb_Hash_Fn</code> | |
7540 | - </td><td style="text-align: left"> | |
7541 | + </td><td align="left"> | |
7542 | <code class="classname">direct_mask_range_hashing</code> | |
7543 | - </td><td colspan="4" style="text-align: left"> </td></tr><tr><td rowspan="2" style="text-align: left" valign="top"> | |
7544 | + </td><td colspan="4" align="left"> </td></tr><tr><td rowspan="2" align="left" valign="top"> | |
7545 | <code class="classname">Resize_Policy</code> | |
7546 | - </td><td rowspan="2" style="text-align: left" valign="top"> | |
7547 | + </td><td rowspan="2" align="left" valign="top"> | |
7548 | <code class="classname">hash_standard_resize_policy</code> | |
7549 | - </td><td style="text-align: left"> | |
7550 | + </td><td align="left"> | |
7551 | <code class="classname">Size_Policy</code> | |
7552 | - </td><td style="text-align: left"> | |
7553 | + </td><td align="left"> | |
7554 | <code class="classname">hash_exponential_size_policy</code> | |
7555 | - </td><td colspan="2" style="text-align: left"> </td></tr><tr><td style="text-align: left" valign="top"> | |
7556 | + </td><td colspan="2" align="left"> </td></tr><tr><td align="left" valign="top"> | |
7557 | <code class="classname">Trigger_Policy</code> | |
7558 | - </td><td style="text-align: left"> | |
7559 | + </td><td align="left"> | |
7560 | <code class="classname">hash_load_check_resize_trigger</code> with | |
7561 | α<sub>min</sub> = 1/8 and α<sub>max</sub> = 1/2 | |
7562 | - </td><td colspan="2" style="text-align: left"> </td></tr><tr><td style="text-align: left"> | |
7563 | + </td><td colspan="2" align="left"> </td></tr><tr><td align="left"> | |
7564 | <code class="classname">Mapped</code> | |
7565 | - </td><td style="text-align: left"> | |
7566 | + </td><td align="left"> | |
7567 | <code class="classname">list_update</code> | |
7568 | - </td><td style="text-align: left"> | |
7569 | + </td><td align="left"> | |
7570 | <code class="classname">Update_Policy</code> | |
7571 | - </td><td style="text-align: left"> | |
7572 | + </td><td align="left"> | |
7573 | <code class="classname">lu_move_to_front_policy</code> | |
7574 | - </td><td colspan="2" style="text-align: left"> </td></tr><tr style="background-color: #B0B0B0"><td colspan="7" style="text-align: left"> | |
7575 | + </td><td colspan="2" align="left"> </td></tr><tr bgcolor="#B0B0B0"><td colspan="7" align="left"> | |
7576 | rb_tree_mmap_cc_hash_mask_exp_1div2_nsth_set | |
7577 | - </td></tr><tr><td rowspan="6" style="text-align: left" valign="top"> | |
7578 | + </td></tr><tr><td rowspan="6" align="left" valign="top"> | |
7579 | <code class="classname"> | |
7580 | cc_hash_table | |
7581 | </code> | |
7582 | - </td><td style="text-align: left"> | |
7583 | + </td><td align="left"> | |
7584 | <code class="classname">Comb_Hash_Fn</code> | |
7585 | - </td><td style="text-align: left"> | |
7586 | + </td><td align="left"> | |
7587 | <code class="classname">direct_mask_range_hashing</code> | |
7588 | - </td><td colspan="4" style="text-align: left"> </td></tr><tr><td rowspan="2" style="text-align: left" valign="top"> | |
7589 | + </td><td colspan="4" align="left"> </td></tr><tr><td rowspan="2" align="left" valign="top"> | |
7590 | <code class="classname">Resize_Policy</code> | |
7591 | - </td><td rowspan="2" style="text-align: left" valign="top"> | |
7592 | + </td><td rowspan="2" align="left" valign="top"> | |
7593 | <code class="classname">hash_standard_resize_policy</code> | |
7594 | - </td><td style="text-align: left"> | |
7595 | + </td><td align="left"> | |
7596 | <code class="classname">Size_Policy</code> | |
7597 | - </td><td style="text-align: left"> | |
7598 | + </td><td align="left"> | |
7599 | <code class="classname">hash_exponential_size_policy</code> | |
7600 | - </td><td colspan="2" style="text-align: left"> </td></tr><tr><td style="text-align: left" valign="top"> | |
7601 | + </td><td colspan="2" align="left"> </td></tr><tr><td align="left" valign="top"> | |
7602 | <code class="classname">Trigger_Policy</code> | |
7603 | - </td><td style="text-align: left"> | |
7604 | + </td><td align="left"> | |
7605 | <code class="classname">hash_load_check_resize_trigger</code> with | |
7606 | α<sub>min</sub> = 1/8 and α<sub>max</sub> = 1/2 | |
7607 | - </td><td colspan="2" style="text-align: left"> </td></tr><tr><td rowspan="3" style="text-align: left" valign="top"> | |
7608 | + </td><td colspan="2" align="left"> </td></tr><tr><td rowspan="3" align="left" valign="top"> | |
7609 | <code class="classname">Mapped</code> | |
7610 | - </td><td rowspan="3" style="text-align: left" valign="top"> | |
7611 | + </td><td rowspan="3" align="left" valign="top"> | |
7612 | <code class="classname">cc_hash_table</code> | |
7613 | - </td><td style="text-align: left"> | |
7614 | + </td><td align="left"> | |
7615 | <code class="classname">Comb_Hash_Fn</code> | |
7616 | - </td><td style="text-align: left"> | |
7617 | + </td><td align="left"> | |
7618 | <code class="classname">direct_mask_range_hashing</code> | |
7619 | - </td><td colspan="2" style="text-align: left"> </td></tr><tr><td rowspan="2" style="text-align: left" valign="top"> | |
7620 | + </td><td colspan="2" align="left"> </td></tr><tr><td rowspan="2" align="left" valign="top"> | |
7621 | <code class="classname">Resize_Policy</code> | |
7622 | - </td><td rowspan="2" style="text-align: left" valign="top"> | |
7623 | + </td><td rowspan="2" align="left" valign="top"> | |
7624 | <code class="classname">hash_standard_resize_policy</code> | |
7625 | - </td><td style="text-align: left"> | |
7626 | + </td><td align="left"> | |
7627 | <code class="classname">Size_Policy</code> | |
7628 | - </td><td style="text-align: left"> | |
7629 | + </td><td align="left"> | |
7630 | <code class="classname">hash_exponential_size_policy</code> | |
7631 | - </td></tr><tr><td style="text-align: left" valign="top"> | |
7632 | + </td></tr><tr><td align="left" valign="top"> | |
7633 | <code class="classname">Trigger_Policy</code> | |
7634 | - </td><td style="text-align: left"> | |
7635 | + </td><td align="left"> | |
7636 | <code class="classname">hash_load_check_resize_trigger</code> with | |
7637 | α<sub>min</sub> = 1/8 and α<sub>max</sub> = 1/2 | |
7638 | - </td></tr></tbody></table></div></div><div class="section" title="Observations"><div class="titlepage"><div><div><h6 class="title"><a id="multimap.text_insert_large.observations"/> | |
7639 | + </td></tr></tbody></table></div></div><div class="section" title="Observations"><div class="titlepage"><div><div><h6 class="title"><a id="multimap.text_insert_large.observations"></a> | |
7640 | Observations | |
7641 | </h6></div></div></div><p>See Observations::Mapping-Semantics | |
7642 | - Considerations.</p></div></div><div class="section" title="Text insert with Small Secondary-to-Primary Key Ratios Memory Use"><div class="titlepage"><div><div><h5 class="title"><a id="performance.multimap.text_insert_mem_small"/> | |
7643 | + Considerations.</p></div></div><div class="section" title="Text insert with Small Secondary-to-Primary Key Ratios Memory Use"><div class="titlepage"><div><div><h5 class="title"><a id="performance.multimap.text_insert_mem_small"></a> | |
7644 | Text <code class="function">insert</code> with Small | |
7645 | Secondary-to-Primary Key Ratios Memory Use | |
7646 | - </h5></div></div></div><p/><div class="section" title="Description"><div class="titlepage"><div><div><h6 class="title"><a id="multimap.text_insert_mem_small.info"/> | |
7647 | + </h5></div></div></div><p></p><div class="section" title="Description"><div class="titlepage"><div><div><h6 class="title"><a id="multimap.text_insert_mem_small.info"></a> | |
7648 | Description | |
7649 | </h6></div></div></div><p>This test inserts a number of pairs into a container. The | |
7650 | first item of each pair is a string from an arbitrary text | |
7651 | @@ -2204,161 +2204,161 @@ | |
7652 | performance/ext/pb_ds/multimap_text_insert_mem_usage_small.cc | |
7653 | </code> | |
7654 | </p><p>The test checks the memory scalability of different | |
7655 | - "multimap" designs.</p></div><div class="section" title="Results"><div class="titlepage"><div><div><h6 class="title"><a id="multimap.text_insert_mem_small.results"/> | |
7656 | + "multimap" designs.</p></div><div class="section" title="Results"><div class="titlepage"><div><div><h6 class="title"><a id="multimap.text_insert_mem_small.results"></a> | |
7657 | Results | |
7658 | </h6></div></div></div><p>The graphic below show the results for "multimaps" which | |
7659 | use a tree-based container for primary keys. | |
7660 | - </p><div class="informalfigure"><div class="mediaobject" style="text-align: center"><img src="../images/pbds_multimap_text_insert_mem_small_s2p_tree.png" style="text-align: middle"/></div></div><p> | |
7661 | + </p><div class="informalfigure"><div class="mediaobject" align="center"><img src="../images/pbds_multimap_text_insert_mem_small_s2p_tree.png" align="middle" /></div></div><p> | |
7662 | The abbreviated names in the legend of the graphic above are | |
7663 | instantiated with the types in the following table. | |
7664 | - </p><div class="informaltable"><table border="1"><colgroup><col style="text-align: left" class="c1"/><col style="text-align: left" class="c2"/><col style="text-align: left" class="c3"/><col style="text-align: left" class="c4"/><col style="text-align: left" class="c5"/><col style="text-align: left" class="c6"/><col style="text-align: left" class="c7"/></colgroup><thead><tr><th style="text-align: left"><span class="emphasis"><em>Name/Instantiating Type</em></span></th><th style="text-align: left"><span class="emphasis"><em>Parameter</em></span></th><th style="text-align: left"><span class="emphasis"><em>Details</em></span></th><th style="text-align: left"><span class="emphasis"><em>Parameter</em></span></th><th style="text-align: left"><span class="emphasis"><em>Details</em></span></th><th style="text-align: left"><span class="emphasis"><em>Parameter</em></span></th><th style="text-align: left"><span class="emphasis"><em>Details</em></span></th></tr></thead><tbody><tr style="background-color: #B0B0B0"><td colspan="7" style="text-align: left"> | |
7665 | + </p><div class="informaltable"><table border="1"><colgroup><col align="left" class="c1" /><col align="left" class="c2" /><col align="left" class="c3" /><col align="left" class="c4" /><col align="left" class="c5" /><col align="left" class="c6" /><col align="left" class="c7" /></colgroup><thead><tr><th align="left"><span class="emphasis"><em>Name/Instantiating Type</em></span></th><th align="left"><span class="emphasis"><em>Parameter</em></span></th><th align="left"><span class="emphasis"><em>Details</em></span></th><th align="left"><span class="emphasis"><em>Parameter</em></span></th><th align="left"><span class="emphasis"><em>Details</em></span></th><th align="left"><span class="emphasis"><em>Parameter</em></span></th><th align="left"><span class="emphasis"><em>Details</em></span></th></tr></thead><tbody><tr bgcolor="#B0B0B0"><td colspan="7" align="left"> | |
7666 | n_mmap | |
7667 | - </td></tr><tr><td style="text-align: left"> | |
7668 | + </td></tr><tr><td align="left"> | |
7669 | <code class="classname">std::multimap</code> | |
7670 | - </td><td colspan="6" style="text-align: left"> </td></tr><tr style="background-color: #B0B0B0"><td colspan="7" style="text-align: left"> | |
7671 | + </td><td colspan="6" align="left"> </td></tr><tr bgcolor="#B0B0B0"><td colspan="7" align="left"> | |
7672 | rb_tree_mmap_lu_mtf_set | |
7673 | - </td></tr><tr><td rowspan="3" style="text-align: left" valign="top"> | |
7674 | + </td></tr><tr><td rowspan="3" align="left" valign="top"> | |
7675 | <code class="classname">tree</code> | |
7676 | - </td><td style="text-align: left"> | |
7677 | + </td><td align="left"> | |
7678 | <code class="classname">Tag</code> | |
7679 | - </td><td style="text-align: left"> | |
7680 | + </td><td align="left"> | |
7681 | <code class="classname">rb_tree_tag</code> | |
7682 | - </td><td colspan="4" style="text-align: left"> </td></tr><tr><td style="text-align: left"> | |
7683 | + </td><td colspan="4" align="left"> </td></tr><tr><td align="left"> | |
7684 | <code class="classname">Node_Update</code> | |
7685 | - </td><td style="text-align: left"> | |
7686 | + </td><td align="left"> | |
7687 | <code class="classname">null_node_update</code> | |
7688 | - </td><td colspan="4" style="text-align: left"> </td></tr><tr><td style="text-align: left"> | |
7689 | + </td><td colspan="4" align="left"> </td></tr><tr><td align="left"> | |
7690 | <code class="classname">Mapped</code> | |
7691 | - </td><td style="text-align: left"> | |
7692 | + </td><td align="left"> | |
7693 | <code class="classname">list_update</code> | |
7694 | - </td><td style="text-align: left"> | |
7695 | + </td><td align="left"> | |
7696 | <code class="classname">Update_Policy</code> | |
7697 | - </td><td style="text-align: left"> | |
7698 | + </td><td align="left"> | |
7699 | <code class="classname">lu_move_to_front_policy</code> | |
7700 | - </td><td colspan="2" style="text-align: left"> </td></tr><tr style="background-color: #B0B0B0"><td colspan="7" style="text-align: left"> | |
7701 | + </td><td colspan="2" align="left"> </td></tr><tr bgcolor="#B0B0B0"><td colspan="7" align="left"> | |
7702 | rb_tree_mmap_cc_hash_mask_exp_1div2_nsth_set | |
7703 | - </td></tr><tr><td rowspan="5" style="text-align: left" valign="top"> | |
7704 | + </td></tr><tr><td rowspan="5" align="left" valign="top"> | |
7705 | <code class="classname">tree</code> | |
7706 | - </td><td style="text-align: left"> | |
7707 | + </td><td align="left"> | |
7708 | <code class="classname">Tag</code> | |
7709 | - </td><td style="text-align: left"> | |
7710 | + </td><td align="left"> | |
7711 | <code class="classname">rb_tree_tag</code> | |
7712 | - </td><td colspan="4" style="text-align: left"> </td></tr><tr><td style="text-align: left"> | |
7713 | + </td><td colspan="4" align="left"> </td></tr><tr><td align="left"> | |
7714 | <code class="classname">Node_Update</code> | |
7715 | - </td><td style="text-align: left"> | |
7716 | + </td><td align="left"> | |
7717 | <code class="classname">null_node_update</code> | |
7718 | - </td><td colspan="4" style="text-align: left"> </td></tr><tr><td rowspan="3" style="text-align: left" valign="top"> | |
7719 | + </td><td colspan="4" align="left"> </td></tr><tr><td rowspan="3" align="left" valign="top"> | |
7720 | <code class="classname">Mapped</code> | |
7721 | - </td><td rowspan="3" style="text-align: left" valign="top"> | |
7722 | + </td><td rowspan="3" align="left" valign="top"> | |
7723 | <code class="classname">cc_hash_table</code> | |
7724 | - </td><td style="text-align: left"> | |
7725 | + </td><td align="left"> | |
7726 | <code class="classname">Comb_Hash_Fn</code> | |
7727 | - </td><td style="text-align: left"> | |
7728 | + </td><td align="left"> | |
7729 | <code class="classname">direct_mask_range_hashing</code> | |
7730 | - </td><td colspan="2" style="text-align: left"> </td></tr><tr><td rowspan="2" style="text-align: left" valign="top"> | |
7731 | + </td><td colspan="2" align="left"> </td></tr><tr><td rowspan="2" align="left" valign="top"> | |
7732 | <code class="classname">Resize_Policy</code> | |
7733 | - </td><td rowspan="2" style="text-align: left" valign="top"> | |
7734 | + </td><td rowspan="2" align="left" valign="top"> | |
7735 | <code class="classname">hash_standard_resize_policy</code> | |
7736 | - </td><td style="text-align: left"> | |
7737 | + </td><td align="left"> | |
7738 | <code class="classname">Size_Policy</code> | |
7739 | - </td><td style="text-align: left"> | |
7740 | + </td><td align="left"> | |
7741 | <code class="classname">hash_exponential_size_policy</code> | |
7742 | - </td></tr><tr><td style="text-align: left" valign="top"> | |
7743 | + </td></tr><tr><td align="left" valign="top"> | |
7744 | <code class="classname">Trigger_Policy</code> | |
7745 | - </td><td style="text-align: left"> | |
7746 | + </td><td align="left"> | |
7747 | <code class="classname">hash_load_check_resize_trigger</code> with | |
7748 | α<sub>min</sub> = 1/8 and α<sub>max</sub> = 1/2 | |
7749 | </td></tr></tbody></table></div><p>The graphic below show the results for "multimaps" which | |
7750 | use a hash-based container for primary keys. | |
7751 | - </p><div class="informalfigure"><div class="mediaobject" style="text-align: center"><img src="../images/pbds_multimap_text_find_large_s2p_hash.png" style="text-align: middle"/></div></div><p> | |
7752 | + </p><div class="informalfigure"><div class="mediaobject" align="center"><img src="../images/pbds_multimap_text_find_large_s2p_hash.png" align="middle" /></div></div><p> | |
7753 | The abbreviated names in the legend of the graphic above are | |
7754 | instantiated with the types in the following table. | |
7755 | - </p><div class="informaltable"><table border="1"><colgroup><col style="text-align: left" class="c1"/><col style="text-align: left" class="c2"/><col style="text-align: left" class="c3"/><col style="text-align: left" class="c4"/><col style="text-align: left" class="c5"/><col style="text-align: left" class="c6"/><col style="text-align: left" class="c7"/></colgroup><thead><tr><th style="text-align: left"><span class="emphasis"><em>Name/Instantiating Type</em></span></th><th style="text-align: left"><span class="emphasis"><em>Parameter</em></span></th><th style="text-align: left"><span class="emphasis"><em>Details</em></span></th><th style="text-align: left"><span class="emphasis"><em>Parameter</em></span></th><th style="text-align: left"><span class="emphasis"><em>Details</em></span></th><th style="text-align: left"><span class="emphasis"><em>Parameter</em></span></th><th style="text-align: left"><span class="emphasis"><em>Details</em></span></th></tr></thead><tbody><tr style="background-color: #B0B0B0"><td colspan="7" style="text-align: left"> | |
7756 | + </p><div class="informaltable"><table border="1"><colgroup><col align="left" class="c1" /><col align="left" class="c2" /><col align="left" class="c3" /><col align="left" class="c4" /><col align="left" class="c5" /><col align="left" class="c6" /><col align="left" class="c7" /></colgroup><thead><tr><th align="left"><span class="emphasis"><em>Name/Instantiating Type</em></span></th><th align="left"><span class="emphasis"><em>Parameter</em></span></th><th align="left"><span class="emphasis"><em>Details</em></span></th><th align="left"><span class="emphasis"><em>Parameter</em></span></th><th align="left"><span class="emphasis"><em>Details</em></span></th><th align="left"><span class="emphasis"><em>Parameter</em></span></th><th align="left"><span class="emphasis"><em>Details</em></span></th></tr></thead><tbody><tr bgcolor="#B0B0B0"><td colspan="7" align="left"> | |
7757 | n_hash_mmap | |
7758 | - </td></tr><tr><td style="text-align: left"> | |
7759 | + </td></tr><tr><td align="left"> | |
7760 | <code class="classname">std::tr1::unordered_multimap</code> | |
7761 | - </td><td colspan="6" style="text-align: left"> </td></tr><tr style="background-color: #B0B0B0"><td colspan="7" style="text-align: left"> | |
7762 | + </td><td colspan="6" align="left"> </td></tr><tr bgcolor="#B0B0B0"><td colspan="7" align="left"> | |
7763 | rb_tree_mmap_lu_mtf_set | |
7764 | - </td></tr><tr><td rowspan="4" style="text-align: left" valign="top"> | |
7765 | + </td></tr><tr><td rowspan="4" align="left" valign="top"> | |
7766 | <code class="classname"> | |
7767 | cc_hash_table | |
7768 | </code> | |
7769 | - </td><td style="text-align: left"> | |
7770 | + </td><td align="left"> | |
7771 | <code class="classname">Comb_Hash_Fn</code> | |
7772 | - </td><td style="text-align: left"> | |
7773 | + </td><td align="left"> | |
7774 | <code class="classname">direct_mask_range_hashing</code> | |
7775 | - </td><td colspan="4" style="text-align: left"> </td></tr><tr><td rowspan="2" style="text-align: left" valign="top"> | |
7776 | + </td><td colspan="4" align="left"> </td></tr><tr><td rowspan="2" align="left" valign="top"> | |
7777 | <code class="classname">Resize_Policy</code> | |
7778 | - </td><td rowspan="2" style="text-align: left" valign="top"> | |
7779 | + </td><td rowspan="2" align="left" valign="top"> | |
7780 | <code class="classname">hash_standard_resize_policy</code> | |
7781 | - </td><td style="text-align: left"> | |
7782 | + </td><td align="left"> | |
7783 | <code class="classname">Size_Policy</code> | |
7784 | - </td><td style="text-align: left"> | |
7785 | + </td><td align="left"> | |
7786 | <code class="classname">hash_exponential_size_policy</code> | |
7787 | - </td><td colspan="2" style="text-align: left"> </td></tr><tr><td style="text-align: left" valign="top"> | |
7788 | + </td><td colspan="2" align="left"> </td></tr><tr><td align="left" valign="top"> | |
7789 | <code class="classname">Trigger_Policy</code> | |
7790 | - </td><td style="text-align: left"> | |
7791 | + </td><td align="left"> | |
7792 | <code class="classname">hash_load_check_resize_trigger</code> with | |
7793 | α<sub>min</sub> = 1/8 and α<sub>max</sub> = 1/2 | |
7794 | - </td><td colspan="2" style="text-align: left"> </td></tr><tr><td style="text-align: left"> | |
7795 | + </td><td colspan="2" align="left"> </td></tr><tr><td align="left"> | |
7796 | <code class="classname">Mapped</code> | |
7797 | - </td><td style="text-align: left"> | |
7798 | + </td><td align="left"> | |
7799 | <code class="classname">list_update</code> | |
7800 | - </td><td style="text-align: left"> | |
7801 | + </td><td align="left"> | |
7802 | <code class="classname">Update_Policy</code> | |
7803 | - </td><td style="text-align: left"> | |
7804 | + </td><td align="left"> | |
7805 | <code class="classname">lu_move_to_front_policy</code> | |
7806 | - </td><td colspan="2" style="text-align: left"> </td></tr><tr style="background-color: #B0B0B0"><td colspan="7" style="text-align: left"> | |
7807 | + </td><td colspan="2" align="left"> </td></tr><tr bgcolor="#B0B0B0"><td colspan="7" align="left"> | |
7808 | rb_tree_mmap_cc_hash_mask_exp_1div2_nsth_set | |
7809 | - </td></tr><tr><td rowspan="6" style="text-align: left" valign="top"> | |
7810 | + </td></tr><tr><td rowspan="6" align="left" valign="top"> | |
7811 | <code class="classname"> | |
7812 | cc_hash_table | |
7813 | </code> | |
7814 | - </td><td style="text-align: left"> | |
7815 | + </td><td align="left"> | |
7816 | <code class="classname">Comb_Hash_Fn</code> | |
7817 | - </td><td style="text-align: left"> | |
7818 | + </td><td align="left"> | |
7819 | <code class="classname">direct_mask_range_hashing</code> | |
7820 | - </td><td colspan="4" style="text-align: left"> </td></tr><tr><td rowspan="2" style="text-align: left" valign="top"> | |
7821 | + </td><td colspan="4" align="left"> </td></tr><tr><td rowspan="2" align="left" valign="top"> | |
7822 | <code class="classname">Resize_Policy</code> | |
7823 | - </td><td rowspan="2" style="text-align: left" valign="top"> | |
7824 | + </td><td rowspan="2" align="left" valign="top"> | |
7825 | <code class="classname">hash_standard_resize_policy</code> | |
7826 | - </td><td style="text-align: left"> | |
7827 | + </td><td align="left"> | |
7828 | <code class="classname">Size_Policy</code> | |
7829 | - </td><td style="text-align: left"> | |
7830 | + </td><td align="left"> | |
7831 | <code class="classname">hash_exponential_size_policy</code> | |
7832 | - </td><td colspan="2" style="text-align: left"> </td></tr><tr><td style="text-align: left" valign="top"> | |
7833 | + </td><td colspan="2" align="left"> </td></tr><tr><td align="left" valign="top"> | |
7834 | <code class="classname">Trigger_Policy</code> | |
7835 | - </td><td style="text-align: left"> | |
7836 | + </td><td align="left"> | |
7837 | <code class="classname">hash_load_check_resize_trigger</code> with | |
7838 | α<sub>min</sub> = 1/8 and α<sub>max</sub> = 1/2 | |
7839 | - </td><td colspan="2" style="text-align: left"> </td></tr><tr><td rowspan="3" style="text-align: left" valign="top"> | |
7840 | + </td><td colspan="2" align="left"> </td></tr><tr><td rowspan="3" align="left" valign="top"> | |
7841 | <code class="classname">Mapped</code> | |
7842 | - </td><td rowspan="3" style="text-align: left" valign="top"> | |
7843 | + </td><td rowspan="3" align="left" valign="top"> | |
7844 | <code class="classname">cc_hash_table</code> | |
7845 | - </td><td style="text-align: left"> | |
7846 | + </td><td align="left"> | |
7847 | <code class="classname">Comb_Hash_Fn</code> | |
7848 | - </td><td style="text-align: left"> | |
7849 | + </td><td align="left"> | |
7850 | <code class="classname">direct_mask_range_hashing</code> | |
7851 | - </td><td colspan="2" style="text-align: left"> </td></tr><tr><td rowspan="2" style="text-align: left" valign="top"> | |
7852 | + </td><td colspan="2" align="left"> </td></tr><tr><td rowspan="2" align="left" valign="top"> | |
7853 | <code class="classname">Resize_Policy</code> | |
7854 | - </td><td rowspan="2" style="text-align: left" valign="top"> | |
7855 | + </td><td rowspan="2" align="left" valign="top"> | |
7856 | <code class="classname">hash_standard_resize_policy</code> | |
7857 | - </td><td style="text-align: left"> | |
7858 | + </td><td align="left"> | |
7859 | <code class="classname">Size_Policy</code> | |
7860 | - </td><td style="text-align: left"> | |
7861 | + </td><td align="left"> | |
7862 | <code class="classname">hash_exponential_size_policy</code> | |
7863 | - </td></tr><tr><td style="text-align: left" valign="top"> | |
7864 | + </td></tr><tr><td align="left" valign="top"> | |
7865 | <code class="classname">Trigger_Policy</code> | |
7866 | - </td><td style="text-align: left"> | |
7867 | + </td><td align="left"> | |
7868 | <code class="classname">hash_load_check_resize_trigger</code> with | |
7869 | α<sub>min</sub> = 1/8 and α<sub>max</sub> = 1/2 | |
7870 | - </td></tr></tbody></table></div></div><div class="section" title="Observations"><div class="titlepage"><div><div><h6 class="title"><a id="multimap.text_insert_mem_small.observations"/> | |
7871 | + </td></tr></tbody></table></div></div><div class="section" title="Observations"><div class="titlepage"><div><div><h6 class="title"><a id="multimap.text_insert_mem_small.observations"></a> | |
7872 | Observations | |
7873 | </h6></div></div></div><p>See Observations::Mapping-Semantics | |
7874 | - Considerations.</p></div></div><div class="section" title="Text insert with Small Secondary-to-Primary Key Ratios Memory Use"><div class="titlepage"><div><div><h5 class="title"><a id="performance.multimap.text_insert_mem_large"/> | |
7875 | + Considerations.</p></div></div><div class="section" title="Text insert with Small Secondary-to-Primary Key Ratios Memory Use"><div class="titlepage"><div><div><h5 class="title"><a id="performance.multimap.text_insert_mem_large"></a> | |
7876 | Text <code class="function">insert</code> with Small | |
7877 | Secondary-to-Primary Key Ratios Memory Use | |
7878 | - </h5></div></div></div><p/><div class="section" title="Description"><div class="titlepage"><div><div><h6 class="title"><a id="multimap.text_insert_mem_large.info"/> | |
7879 | + </h5></div></div></div><p></p><div class="section" title="Description"><div class="titlepage"><div><div><h6 class="title"><a id="multimap.text_insert_mem_large.info"></a> | |
7880 | Description | |
7881 | </h6></div></div></div><p>This test inserts a number of pairs into a container. The | |
7882 | first item of each pair is a string from an arbitrary text | |
7883 | @@ -2375,160 +2375,160 @@ | |
7884 | performance/ext/pb_ds/multimap_text_insert_mem_usage_large.cc | |
7885 | </code> | |
7886 | </p><p>The test checks the memory scalability of different | |
7887 | - "multimap" designs.</p></div><div class="section" title="Results"><div class="titlepage"><div><div><h6 class="title"><a id="multimap.text_insert_mem_large.results"/> | |
7888 | + "multimap" designs.</p></div><div class="section" title="Results"><div class="titlepage"><div><div><h6 class="title"><a id="multimap.text_insert_mem_large.results"></a> | |
7889 | Results | |
7890 | </h6></div></div></div><p>The graphic below show the results for "multimaps" which | |
7891 | use a tree-based container for primary keys. | |
7892 | - </p><div class="informalfigure"><div class="mediaobject" style="text-align: center"><img src="../images/pbds_multimap_text_insert_mem_large_s2p_tree.png" style="text-align: middle"/></div></div><p> | |
7893 | + </p><div class="informalfigure"><div class="mediaobject" align="center"><img src="../images/pbds_multimap_text_insert_mem_large_s2p_tree.png" align="middle" /></div></div><p> | |
7894 | The abbreviated names in the legend of the graphic above are | |
7895 | instantiated with the types in the following table. | |
7896 | - </p><div class="informaltable"><table border="1"><colgroup><col style="text-align: left" class="c1"/><col style="text-align: left" class="c2"/><col style="text-align: left" class="c3"/><col style="text-align: left" class="c4"/><col style="text-align: left" class="c5"/><col style="text-align: left" class="c6"/><col style="text-align: left" class="c7"/></colgroup><thead><tr><th style="text-align: left"><span class="emphasis"><em>Name/Instantiating Type</em></span></th><th style="text-align: left"><span class="emphasis"><em>Parameter</em></span></th><th style="text-align: left"><span class="emphasis"><em>Details</em></span></th><th style="text-align: left"><span class="emphasis"><em>Parameter</em></span></th><th style="text-align: left"><span class="emphasis"><em>Details</em></span></th><th style="text-align: left"><span class="emphasis"><em>Parameter</em></span></th><th style="text-align: left"><span class="emphasis"><em>Details</em></span></th></tr></thead><tbody><tr style="background-color: #B0B0B0"><td colspan="7" style="text-align: left"> | |
7897 | + </p><div class="informaltable"><table border="1"><colgroup><col align="left" class="c1" /><col align="left" class="c2" /><col align="left" class="c3" /><col align="left" class="c4" /><col align="left" class="c5" /><col align="left" class="c6" /><col align="left" class="c7" /></colgroup><thead><tr><th align="left"><span class="emphasis"><em>Name/Instantiating Type</em></span></th><th align="left"><span class="emphasis"><em>Parameter</em></span></th><th align="left"><span class="emphasis"><em>Details</em></span></th><th align="left"><span class="emphasis"><em>Parameter</em></span></th><th align="left"><span class="emphasis"><em>Details</em></span></th><th align="left"><span class="emphasis"><em>Parameter</em></span></th><th align="left"><span class="emphasis"><em>Details</em></span></th></tr></thead><tbody><tr bgcolor="#B0B0B0"><td colspan="7" align="left"> | |
7898 | n_mmap | |
7899 | - </td></tr><tr><td style="text-align: left"> | |
7900 | + </td></tr><tr><td align="left"> | |
7901 | <code class="classname">std::multimap</code> | |
7902 | - </td><td colspan="6" style="text-align: left"> </td></tr><tr style="background-color: #B0B0B0"><td colspan="7" style="text-align: left"> | |
7903 | + </td><td colspan="6" align="left"> </td></tr><tr bgcolor="#B0B0B0"><td colspan="7" align="left"> | |
7904 | rb_tree_mmap_lu_mtf_set | |
7905 | - </td></tr><tr><td rowspan="3" style="text-align: left" valign="top"> | |
7906 | + </td></tr><tr><td rowspan="3" align="left" valign="top"> | |
7907 | <code class="classname">tree</code> | |
7908 | - </td><td style="text-align: left"> | |
7909 | + </td><td align="left"> | |
7910 | <code class="classname">Tag</code> | |
7911 | - </td><td style="text-align: left"> | |
7912 | + </td><td align="left"> | |
7913 | <code class="classname">rb_tree_tag</code> | |
7914 | - </td><td colspan="4" style="text-align: left"> </td></tr><tr><td style="text-align: left"> | |
7915 | + </td><td colspan="4" align="left"> </td></tr><tr><td align="left"> | |
7916 | <code class="classname">Node_Update</code> | |
7917 | - </td><td style="text-align: left"> | |
7918 | + </td><td align="left"> | |
7919 | <code class="classname">null_node_update</code> | |
7920 | - </td><td colspan="4" style="text-align: left"> </td></tr><tr><td style="text-align: left"> | |
7921 | + </td><td colspan="4" align="left"> </td></tr><tr><td align="left"> | |
7922 | <code class="classname">Mapped</code> | |
7923 | - </td><td style="text-align: left"> | |
7924 | + </td><td align="left"> | |
7925 | <code class="classname">list_update</code> | |
7926 | - </td><td style="text-align: left"> | |
7927 | + </td><td align="left"> | |
7928 | <code class="classname">Update_Policy</code> | |
7929 | - </td><td style="text-align: left"> | |
7930 | + </td><td align="left"> | |
7931 | <code class="classname">lu_move_to_front_policy</code> | |
7932 | - </td><td colspan="2" style="text-align: left"> </td></tr><tr style="background-color: #B0B0B0"><td colspan="7" style="text-align: left"> | |
7933 | + </td><td colspan="2" align="left"> </td></tr><tr bgcolor="#B0B0B0"><td colspan="7" align="left"> | |
7934 | rb_tree_mmap_cc_hash_mask_exp_1div2_nsth_set | |
7935 | - </td></tr><tr><td rowspan="5" style="text-align: left" valign="top"> | |
7936 | + </td></tr><tr><td rowspan="5" align="left" valign="top"> | |
7937 | <code class="classname">tree</code> | |
7938 | - </td><td style="text-align: left"> | |
7939 | + </td><td align="left"> | |
7940 | <code class="classname">Tag</code> | |
7941 | - </td><td style="text-align: left"> | |
7942 | + </td><td align="left"> | |
7943 | <code class="classname">rb_tree_tag</code> | |
7944 | - </td><td colspan="4" style="text-align: left"> </td></tr><tr><td style="text-align: left"> | |
7945 | + </td><td colspan="4" align="left"> </td></tr><tr><td align="left"> | |
7946 | <code class="classname">Node_Update</code> | |
7947 | - </td><td style="text-align: left"> | |
7948 | + </td><td align="left"> | |
7949 | <code class="classname">null_node_update</code> | |
7950 | - </td><td colspan="4" style="text-align: left"> </td></tr><tr><td rowspan="3" style="text-align: left" valign="top"> | |
7951 | + </td><td colspan="4" align="left"> </td></tr><tr><td rowspan="3" align="left" valign="top"> | |
7952 | <code class="classname">Mapped</code> | |
7953 | - </td><td rowspan="3" style="text-align: left" valign="top"> | |
7954 | + </td><td rowspan="3" align="left" valign="top"> | |
7955 | <code class="classname">cc_hash_table</code> | |
7956 | - </td><td style="text-align: left"> | |
7957 | + </td><td align="left"> | |
7958 | <code class="classname">Comb_Hash_Fn</code> | |
7959 | - </td><td style="text-align: left"> | |
7960 | + </td><td align="left"> | |
7961 | <code class="classname">direct_mask_range_hashing</code> | |
7962 | - </td><td colspan="2" style="text-align: left"> </td></tr><tr><td rowspan="2" style="text-align: left" valign="top"> | |
7963 | + </td><td colspan="2" align="left"> </td></tr><tr><td rowspan="2" align="left" valign="top"> | |
7964 | <code class="classname">Resize_Policy</code> | |
7965 | - </td><td rowspan="2" style="text-align: left" valign="top"> | |
7966 | + </td><td rowspan="2" align="left" valign="top"> | |
7967 | <code class="classname">hash_standard_resize_policy</code> | |
7968 | - </td><td style="text-align: left"> | |
7969 | + </td><td align="left"> | |
7970 | <code class="classname">Size_Policy</code> | |
7971 | - </td><td style="text-align: left"> | |
7972 | + </td><td align="left"> | |
7973 | <code class="classname">hash_exponential_size_policy</code> | |
7974 | - </td></tr><tr><td style="text-align: left" valign="top"> | |
7975 | + </td></tr><tr><td align="left" valign="top"> | |
7976 | <code class="classname">Trigger_Policy</code> | |
7977 | - </td><td style="text-align: left"> | |
7978 | + </td><td align="left"> | |
7979 | <code class="classname">hash_load_check_resize_trigger</code> with | |
7980 | α<sub>min</sub> = 1/8 and α<sub>max</sub> = 1/2 | |
7981 | </td></tr></tbody></table></div><p>The graphic below show the results for "multimaps" which | |
7982 | use a hash-based container for primary keys. | |
7983 | - </p><div class="informalfigure"><div class="mediaobject" style="text-align: center"><img src="../images/pbds_multimap_text_find_large_s2p_hash.png" style="text-align: middle"/></div></div><p> | |
7984 | + </p><div class="informalfigure"><div class="mediaobject" align="center"><img src="../images/pbds_multimap_text_find_large_s2p_hash.png" align="middle" /></div></div><p> | |
7985 | The abbreviated names in the legend of the graphic above are | |
7986 | instantiated with the types in the following table. | |
7987 | - </p><div class="informaltable"><table border="1"><colgroup><col style="text-align: left" class="c1"/><col style="text-align: left" class="c2"/><col style="text-align: left" class="c3"/><col style="text-align: left" class="c4"/><col style="text-align: left" class="c5"/><col style="text-align: left" class="c6"/><col style="text-align: left" class="c7"/></colgroup><thead><tr><th style="text-align: left"><span class="emphasis"><em>Name/Instantiating Type</em></span></th><th style="text-align: left"><span class="emphasis"><em>Parameter</em></span></th><th style="text-align: left"><span class="emphasis"><em>Details</em></span></th><th style="text-align: left"><span class="emphasis"><em>Parameter</em></span></th><th style="text-align: left"><span class="emphasis"><em>Details</em></span></th><th style="text-align: left"><span class="emphasis"><em>Parameter</em></span></th><th style="text-align: left"><span class="emphasis"><em>Details</em></span></th></tr></thead><tbody><tr style="background-color: #B0B0B0"><td colspan="7" style="text-align: left"> | |
7988 | + </p><div class="informaltable"><table border="1"><colgroup><col align="left" class="c1" /><col align="left" class="c2" /><col align="left" class="c3" /><col align="left" class="c4" /><col align="left" class="c5" /><col align="left" class="c6" /><col align="left" class="c7" /></colgroup><thead><tr><th align="left"><span class="emphasis"><em>Name/Instantiating Type</em></span></th><th align="left"><span class="emphasis"><em>Parameter</em></span></th><th align="left"><span class="emphasis"><em>Details</em></span></th><th align="left"><span class="emphasis"><em>Parameter</em></span></th><th align="left"><span class="emphasis"><em>Details</em></span></th><th align="left"><span class="emphasis"><em>Parameter</em></span></th><th align="left"><span class="emphasis"><em>Details</em></span></th></tr></thead><tbody><tr bgcolor="#B0B0B0"><td colspan="7" align="left"> | |
7989 | n_hash_mmap | |
7990 | - </td></tr><tr><td style="text-align: left"> | |
7991 | + </td></tr><tr><td align="left"> | |
7992 | <code class="classname">std::tr1::unordered_multimap</code> | |
7993 | - </td><td colspan="6" style="text-align: left"> </td></tr><tr style="background-color: #B0B0B0"><td colspan="7" style="text-align: left"> | |
7994 | + </td><td colspan="6" align="left"> </td></tr><tr bgcolor="#B0B0B0"><td colspan="7" align="left"> | |
7995 | rb_tree_mmap_lu_mtf_set | |
7996 | - </td></tr><tr><td rowspan="4" style="text-align: left" valign="top"> | |
7997 | + </td></tr><tr><td rowspan="4" align="left" valign="top"> | |
7998 | <code class="classname"> | |
7999 | cc_hash_table | |
8000 | </code> | |
8001 | - </td><td style="text-align: left"> | |
8002 | + </td><td align="left"> | |
8003 | <code class="classname">Comb_Hash_Fn</code> | |
8004 | - </td><td style="text-align: left"> | |
8005 | + </td><td align="left"> | |
8006 | <code class="classname">direct_mask_range_hashing</code> | |
8007 | - </td><td colspan="4" style="text-align: left"> </td></tr><tr><td rowspan="2" style="text-align: left" valign="top"> | |
8008 | + </td><td colspan="4" align="left"> </td></tr><tr><td rowspan="2" align="left" valign="top"> | |
8009 | <code class="classname">Resize_Policy</code> | |
8010 | - </td><td rowspan="2" style="text-align: left" valign="top"> | |
8011 | + </td><td rowspan="2" align="left" valign="top"> | |
8012 | <code class="classname">hash_standard_resize_policy</code> | |
8013 | - </td><td style="text-align: left"> | |
8014 | + </td><td align="left"> | |
8015 | <code class="classname">Size_Policy</code> | |
8016 | - </td><td style="text-align: left"> | |
8017 | + </td><td align="left"> | |
8018 | <code class="classname">hash_exponential_size_policy</code> | |
8019 | - </td><td colspan="2" style="text-align: left"> </td></tr><tr><td style="text-align: left" valign="top"> | |
8020 | + </td><td colspan="2" align="left"> </td></tr><tr><td align="left" valign="top"> | |
8021 | <code class="classname">Trigger_Policy</code> | |
8022 | - </td><td style="text-align: left"> | |
8023 | + </td><td align="left"> | |
8024 | <code class="classname">hash_load_check_resize_trigger</code> with | |
8025 | α<sub>min</sub> = 1/8 and α<sub>max</sub> = 1/2 | |
8026 | - </td><td colspan="2" style="text-align: left"> </td></tr><tr><td style="text-align: left"> | |
8027 | + </td><td colspan="2" align="left"> </td></tr><tr><td align="left"> | |
8028 | <code class="classname">Mapped</code> | |
8029 | - </td><td style="text-align: left"> | |
8030 | + </td><td align="left"> | |
8031 | <code class="classname">list_update</code> | |
8032 | - </td><td style="text-align: left"> | |
8033 | + </td><td align="left"> | |
8034 | <code class="classname">Update_Policy</code> | |
8035 | - </td><td style="text-align: left"> | |
8036 | + </td><td align="left"> | |
8037 | <code class="classname">lu_move_to_front_policy</code> | |
8038 | - </td><td colspan="2" style="text-align: left"> </td></tr><tr style="background-color: #B0B0B0"><td colspan="7" style="text-align: left"> | |
8039 | + </td><td colspan="2" align="left"> </td></tr><tr bgcolor="#B0B0B0"><td colspan="7" align="left"> | |
8040 | rb_tree_mmap_cc_hash_mask_exp_1div2_nsth_set | |
8041 | - </td></tr><tr><td rowspan="6" style="text-align: left" valign="top"> | |
8042 | + </td></tr><tr><td rowspan="6" align="left" valign="top"> | |
8043 | <code class="classname"> | |
8044 | cc_hash_table | |
8045 | </code> | |
8046 | - </td><td style="text-align: left"> | |
8047 | + </td><td align="left"> | |
8048 | <code class="classname">Comb_Hash_Fn</code> | |
8049 | - </td><td style="text-align: left"> | |
8050 | + </td><td align="left"> | |
8051 | <code class="classname">direct_mask_range_hashing</code> | |
8052 | - </td><td colspan="4" style="text-align: left"> </td></tr><tr><td rowspan="2" style="text-align: left" valign="top"> | |
8053 | + </td><td colspan="4" align="left"> </td></tr><tr><td rowspan="2" align="left" valign="top"> | |
8054 | <code class="classname">Resize_Policy</code> | |
8055 | - </td><td rowspan="2" style="text-align: left" valign="top"> | |
8056 | + </td><td rowspan="2" align="left" valign="top"> | |
8057 | <code class="classname">hash_standard_resize_policy</code> | |
8058 | - </td><td style="text-align: left"> | |
8059 | + </td><td align="left"> | |
8060 | <code class="classname">Size_Policy</code> | |
8061 | - </td><td style="text-align: left"> | |
8062 | + </td><td align="left"> | |
8063 | <code class="classname">hash_exponential_size_policy</code> | |
8064 | - </td><td colspan="2" style="text-align: left"> </td></tr><tr><td style="text-align: left" valign="top"> | |
8065 | + </td><td colspan="2" align="left"> </td></tr><tr><td align="left" valign="top"> | |
8066 | <code class="classname">Trigger_Policy</code> | |
8067 | - </td><td style="text-align: left"> | |
8068 | + </td><td align="left"> | |
8069 | <code class="classname">hash_load_check_resize_trigger</code> with | |
8070 | α<sub>min</sub> = 1/8 and α<sub>max</sub> = 1/2 | |
8071 | - </td><td colspan="2" style="text-align: left"> </td></tr><tr><td rowspan="3" style="text-align: left" valign="top"> | |
8072 | + </td><td colspan="2" align="left"> </td></tr><tr><td rowspan="3" align="left" valign="top"> | |
8073 | <code class="classname">Mapped</code> | |
8074 | - </td><td rowspan="3" style="text-align: left" valign="top"> | |
8075 | + </td><td rowspan="3" align="left" valign="top"> | |
8076 | <code class="classname">cc_hash_table</code> | |
8077 | - </td><td style="text-align: left"> | |
8078 | + </td><td align="left"> | |
8079 | <code class="classname">Comb_Hash_Fn</code> | |
8080 | - </td><td style="text-align: left"> | |
8081 | + </td><td align="left"> | |
8082 | <code class="classname">direct_mask_range_hashing</code> | |
8083 | - </td><td colspan="2" style="text-align: left"> </td></tr><tr><td rowspan="2" style="text-align: left" valign="top"> | |
8084 | + </td><td colspan="2" align="left"> </td></tr><tr><td rowspan="2" align="left" valign="top"> | |
8085 | <code class="classname">Resize_Policy</code> | |
8086 | - </td><td rowspan="2" style="text-align: left" valign="top"> | |
8087 | + </td><td rowspan="2" align="left" valign="top"> | |
8088 | <code class="classname">hash_standard_resize_policy</code> | |
8089 | - </td><td style="text-align: left"> | |
8090 | + </td><td align="left"> | |
8091 | <code class="classname">Size_Policy</code> | |
8092 | - </td><td style="text-align: left"> | |
8093 | + </td><td align="left"> | |
8094 | <code class="classname">hash_exponential_size_policy</code> | |
8095 | - </td></tr><tr><td style="text-align: left" valign="top"> | |
8096 | + </td></tr><tr><td align="left" valign="top"> | |
8097 | <code class="classname">Trigger_Policy</code> | |
8098 | - </td><td style="text-align: left"> | |
8099 | + </td><td align="left"> | |
8100 | <code class="classname">hash_load_check_resize_trigger</code> with | |
8101 | α<sub>min</sub> = 1/8 and α<sub>max</sub> = 1/2 | |
8102 | - </td></tr></tbody></table></div></div><div class="section" title="Observations"><div class="titlepage"><div><div><h6 class="title"><a id="multimap.text_insert_mem_large.observations"/> | |
8103 | + </td></tr></tbody></table></div></div><div class="section" title="Observations"><div class="titlepage"><div><div><h6 class="title"><a id="multimap.text_insert_mem_large.observations"></a> | |
8104 | Observations | |
8105 | </h6></div></div></div><p>See Observations::Mapping-Semantics | |
8106 | - Considerations.</p></div></div></div><div class="section" title="Priority Queue"><div class="titlepage"><div><div><h4 class="title"><a id="performance.priority_queue"/>Priority Queue</h4></div></div></div><div class="section" title="Text push"><div class="titlepage"><div><div><h5 class="title"><a id="performance.priority_queue.text_push"/> | |
8107 | + Considerations.</p></div></div></div><div class="section" title="Priority Queue"><div class="titlepage"><div><div><h4 class="title"><a id="performance.priority_queue"></a>Priority Queue</h4></div></div></div><div class="section" title="Text push"><div class="titlepage"><div><div><h5 class="title"><a id="performance.priority_queue.text_push"></a> | |
8108 | Text <code class="function">push</code> | |
8109 | - </h5></div></div></div><p/><div class="section" title="Description"><div class="titlepage"><div><div><h6 class="title"><a id="priority_queue.text_push.info"/> | |
8110 | + </h5></div></div></div><p></p><div class="section" title="Description"><div class="titlepage"><div><div><h6 class="title"><a id="priority_queue.text_push.info"></a> | |
8111 | Description | |
8112 | </h6></div></div></div><p>This test inserts a number of values with keys from an | |
8113 | arbitrary text ([ wickland96thirty ]) into | |
8114 | @@ -2541,7 +2541,7 @@ | |
8115 | </code> | |
8116 | </p><p>The test checks the effect of different underlying data | |
8117 | structures. | |
8118 | - </p></div><div class="section" title="Results"><div class="titlepage"><div><div><h6 class="title"><a id="priority_queue.text_push.results"/> | |
8119 | + </p></div><div class="section" title="Results"><div class="titlepage"><div><div><h6 class="title"><a id="priority_queue.text_push.results"></a> | |
8120 | Results | |
8121 | </h6></div></div></div><p>The two graphics below show the results for the native | |
8122 | priority_queues and this library's priority_queues. | |
8123 | @@ -2549,104 +2549,104 @@ | |
8124 | native priority_queue type instantiated with different underlying | |
8125 | container types versus several different versions of library's | |
8126 | priority_queues. | |
8127 | - </p><div class="informalfigure"><div class="mediaobject" style="text-align: center"><img src="../images/pbds_priority_queue_text_push.png" style="text-align: middle"/></div></div><p> | |
8128 | + </p><div class="informalfigure"><div class="mediaobject" align="center"><img src="../images/pbds_priority_queue_text_push.png" align="middle" /></div></div><p> | |
8129 | The abbreviated names in the legend of the graphic above are | |
8130 | instantiated with the types in the following table. | |
8131 | - </p><div class="informaltable"><table border="1"><colgroup><col style="text-align: left" class="c1"/><col style="text-align: left" class="c2"/><col style="text-align: left" class="c3"/></colgroup><thead><tr><th style="text-align: left"><span class="emphasis"><em>Name/Instantiating Type</em></span></th><th style="text-align: left"><span class="emphasis"><em>Parameter</em></span></th><th style="text-align: left"><span class="emphasis"><em>Details</em></span></th></tr></thead><tbody><tr style="background-color: #B0B0B0"><td colspan="3" style="text-align: left"> | |
8132 | + </p><div class="informaltable"><table border="1"><colgroup><col align="left" class="c1" /><col align="left" class="c2" /><col align="left" class="c3" /></colgroup><thead><tr><th align="left"><span class="emphasis"><em>Name/Instantiating Type</em></span></th><th align="left"><span class="emphasis"><em>Parameter</em></span></th><th align="left"><span class="emphasis"><em>Details</em></span></th></tr></thead><tbody><tr bgcolor="#B0B0B0"><td colspan="3" align="left"> | |
8133 | n_pq_vector | |
8134 | - </td></tr><tr><td style="text-align: left"> | |
8135 | + </td></tr><tr><td align="left"> | |
8136 | <code class="classname">std::priority_queue</code> | |
8137 | - </td><td style="text-align: left"> | |
8138 | + </td><td align="left"> | |
8139 | <code class="classname">Sequence</code> | |
8140 | - </td><td style="text-align: left"> | |
8141 | + </td><td align="left"> | |
8142 | <code class="classname">std::vector</code> | |
8143 | - </td></tr><tr style="background-color: #B0B0B0"><td colspan="3" style="text-align: left"> | |
8144 | + </td></tr><tr bgcolor="#B0B0B0"><td colspan="3" align="left"> | |
8145 | n_pq_deque | |
8146 | - </td></tr><tr><td style="text-align: left"> | |
8147 | + </td></tr><tr><td align="left"> | |
8148 | <code class="classname">std::priority_queue</code> | |
8149 | - </td><td style="text-align: left"> | |
8150 | + </td><td align="left"> | |
8151 | <code class="classname">Sequence</code> | |
8152 | - </td><td style="text-align: left"> | |
8153 | + </td><td align="left"> | |
8154 | <code class="classname">std::deque</code> | |
8155 | - </td></tr><tr style="background-color: #B0B0B0"><td colspan="3" style="text-align: left"> | |
8156 | + </td></tr><tr bgcolor="#B0B0B0"><td colspan="3" align="left"> | |
8157 | binary_heap | |
8158 | - </td></tr><tr><td style="text-align: left"> | |
8159 | + </td></tr><tr><td align="left"> | |
8160 | <code class="classname">priority_queue</code> | |
8161 | - </td><td style="text-align: left"> | |
8162 | + </td><td align="left"> | |
8163 | <code class="classname">Tag</code> | |
8164 | - </td><td style="text-align: left"> | |
8165 | + </td><td align="left"> | |
8166 | <code class="classname">binary_heap_tag</code> | |
8167 | - </td></tr><tr style="background-color: #B0B0B0"><td colspan="3" style="text-align: left"> | |
8168 | + </td></tr><tr bgcolor="#B0B0B0"><td colspan="3" align="left"> | |
8169 | binomial_heap | |
8170 | - </td></tr><tr><td style="text-align: left"> | |
8171 | + </td></tr><tr><td align="left"> | |
8172 | <code class="classname">priority_queue</code> | |
8173 | - </td><td style="text-align: left"> | |
8174 | + </td><td align="left"> | |
8175 | <code class="classname">Tag</code> | |
8176 | - </td><td style="text-align: left"> | |
8177 | + </td><td align="left"> | |
8178 | <code class="classname">binomial_heap_tag</code> | |
8179 | - </td></tr><tr style="background-color: #B0B0B0"><td colspan="3" style="text-align: left"> | |
8180 | + </td></tr><tr bgcolor="#B0B0B0"><td colspan="3" align="left"> | |
8181 | rc_binomial_heap | |
8182 | - </td></tr><tr><td style="text-align: left"> | |
8183 | + </td></tr><tr><td align="left"> | |
8184 | <code class="classname">priority_queue</code> | |
8185 | - </td><td style="text-align: left"> | |
8186 | + </td><td align="left"> | |
8187 | <code class="classname">Tag</code> | |
8188 | - </td><td style="text-align: left"> | |
8189 | + </td><td align="left"> | |
8190 | <code class="classname">rc_binomial_heap_tag</code> | |
8191 | - </td></tr><tr style="background-color: #B0B0B0"><td colspan="3" style="text-align: left"> | |
8192 | + </td></tr><tr bgcolor="#B0B0B0"><td colspan="3" align="left"> | |
8193 | thin_heap | |
8194 | - </td></tr><tr><td style="text-align: left"> | |
8195 | + </td></tr><tr><td align="left"> | |
8196 | <code class="classname">priority_queue</code> | |
8197 | - </td><td style="text-align: left"> | |
8198 | + </td><td align="left"> | |
8199 | <code class="classname">Tag</code> | |
8200 | - </td><td style="text-align: left"> | |
8201 | + </td><td align="left"> | |
8202 | <code class="classname">thin_heap_tag</code> | |
8203 | - </td></tr><tr style="background-color: #B0B0B0"><td colspan="3" style="text-align: left"> | |
8204 | + </td></tr><tr bgcolor="#B0B0B0"><td colspan="3" align="left"> | |
8205 | pairing_heap | |
8206 | - </td></tr><tr><td style="text-align: left"> | |
8207 | + </td></tr><tr><td align="left"> | |
8208 | <code class="classname">priority_queue</code> | |
8209 | - </td><td style="text-align: left"> | |
8210 | + </td><td align="left"> | |
8211 | <code class="classname">Tag</code> | |
8212 | - </td><td style="text-align: left"> | |
8213 | + </td><td align="left"> | |
8214 | <code class="classname">pairing_heap_tag</code> | |
8215 | </td></tr></tbody></table></div><p>The graphic below shows the results for the binary-heap | |
8216 | based native priority queues and this library's pairing-heap | |
8217 | priority_queue data structures. | |
8218 | - </p><div class="informalfigure"><div class="mediaobject" style="text-align: center"><img src="../images/pbds_pairing_priority_queue_text_push.png" style="text-align: middle"/></div></div><p> | |
8219 | + </p><div class="informalfigure"><div class="mediaobject" align="center"><img src="../images/pbds_pairing_priority_queue_text_push.png" align="middle" /></div></div><p> | |
8220 | The abbreviated names in the legend of the graphic above are | |
8221 | instantiated with the types in the following table. | |
8222 | - </p><div class="informaltable"><table border="1"><colgroup><col style="text-align: left" class="c1"/><col style="text-align: left" class="c2"/><col style="text-align: left" class="c3"/></colgroup><thead><tr><th style="text-align: left"><span class="emphasis"><em>Name/Instantiating Type</em></span></th><th style="text-align: left"><span class="emphasis"><em>Parameter</em></span></th><th style="text-align: left"><span class="emphasis"><em>Details</em></span></th></tr></thead><tbody><tr style="background-color: #B0B0B0"><td colspan="3" style="text-align: left"> | |
8223 | + </p><div class="informaltable"><table border="1"><colgroup><col align="left" class="c1" /><col align="left" class="c2" /><col align="left" class="c3" /></colgroup><thead><tr><th align="left"><span class="emphasis"><em>Name/Instantiating Type</em></span></th><th align="left"><span class="emphasis"><em>Parameter</em></span></th><th align="left"><span class="emphasis"><em>Details</em></span></th></tr></thead><tbody><tr bgcolor="#B0B0B0"><td colspan="3" align="left"> | |
8224 | n_pq_vector | |
8225 | - </td></tr><tr><td style="text-align: left"> | |
8226 | + </td></tr><tr><td align="left"> | |
8227 | <code class="classname">std::priority_queue</code> | |
8228 | - </td><td style="text-align: left"> | |
8229 | + </td><td align="left"> | |
8230 | <code class="classname">Sequence</code> | |
8231 | - </td><td style="text-align: left"> | |
8232 | + </td><td align="left"> | |
8233 | <code class="classname">std::vector</code> | |
8234 | - </td></tr><tr style="background-color: #B0B0B0"><td colspan="3" style="text-align: left"> | |
8235 | + </td></tr><tr bgcolor="#B0B0B0"><td colspan="3" align="left"> | |
8236 | n_pq_deque | |
8237 | - </td></tr><tr><td style="text-align: left"> | |
8238 | + </td></tr><tr><td align="left"> | |
8239 | <code class="classname">std::priority_queue</code> | |
8240 | - </td><td style="text-align: left"> | |
8241 | + </td><td align="left"> | |
8242 | <code class="classname">Sequence</code> | |
8243 | - </td><td style="text-align: left"> | |
8244 | + </td><td align="left"> | |
8245 | <code class="classname">std::deque</code> | |
8246 | - </td></tr><tr style="background-color: #B0B0B0"><td colspan="3" style="text-align: left"> | |
8247 | + </td></tr><tr bgcolor="#B0B0B0"><td colspan="3" align="left"> | |
8248 | thin_heap | |
8249 | - </td></tr><tr><td style="text-align: left"> | |
8250 | + </td></tr><tr><td align="left"> | |
8251 | <code class="classname">priority_queue</code> | |
8252 | - </td><td style="text-align: left"> | |
8253 | + </td><td align="left"> | |
8254 | <code class="classname">Tag</code> | |
8255 | - </td><td style="text-align: left"> | |
8256 | + </td><td align="left"> | |
8257 | <code class="classname">thin_heap_tag</code> | |
8258 | - </td></tr><tr style="background-color: #B0B0B0"><td colspan="3" style="text-align: left"> | |
8259 | + </td></tr><tr bgcolor="#B0B0B0"><td colspan="3" align="left"> | |
8260 | pairing_heap | |
8261 | - </td></tr><tr><td style="text-align: left"> | |
8262 | + </td></tr><tr><td align="left"> | |
8263 | <code class="classname">priority_queue</code> | |
8264 | - </td><td style="text-align: left"> | |
8265 | + </td><td align="left"> | |
8266 | <code class="classname">Tag</code> | |
8267 | - </td><td style="text-align: left"> | |
8268 | + </td><td align="left"> | |
8269 | <code class="classname">pairing_heap_tag</code> | |
8270 | - </td></tr></tbody></table></div></div><div class="section" title="Observations"><div class="titlepage"><div><div><h6 class="title"><a id="priority_queue.text_push.observations"/> | |
8271 | + </td></tr></tbody></table></div></div><div class="section" title="Observations"><div class="titlepage"><div><div><h6 class="title"><a id="priority_queue.text_push.observations"></a> | |
8272 | Observations | |
8273 | </h6></div></div></div><p>Pairing heaps (<code class="classname">priority_queue</code> with | |
8274 | <code class="classname">Tag</code> = <code class="classname">pairing_heap_tag</code>) | |
8275 | @@ -2664,9 +2664,9 @@ | |
8276 | operation, and the deque implementation is possibly hampered by | |
8277 | its need to manipulate a relatively-complex type (deques | |
8278 | support a O(1) <code class="function">push_front</code>, even though it is | |
8279 | - not used by <code class="classname">std::priority_queue</code>.)</p></div></div><div class="section" title="Text push and pop"><div class="titlepage"><div><div><h5 class="title"><a id="performance.priority_queue.text_push_pop"/> | |
8280 | + not used by <code class="classname">std::priority_queue</code>.)</p></div></div><div class="section" title="Text push and pop"><div class="titlepage"><div><div><h5 class="title"><a id="performance.priority_queue.text_push_pop"></a> | |
8281 | Text <code class="function">push</code> and <code class="function">pop</code> | |
8282 | - </h5></div></div></div><p/><div class="section" title="Description"><div class="titlepage"><div><div><h6 class="title"><a id="priority_queue.text_push_pop.info"/> | |
8283 | + </h5></div></div></div><p></p><div class="section" title="Description"><div class="titlepage"><div><div><h6 class="title"><a id="priority_queue.text_push_pop.info"></a> | |
8284 | Description | |
8285 | </h6></div></div></div><p>This test inserts a number of values with keys from an | |
8286 | arbitrary text ([ wickland96thirty ]) into | |
8287 | @@ -2679,7 +2679,7 @@ | |
8288 | </code> | |
8289 | </p><p>The test checks the effect of different underlying data | |
8290 | structures. | |
8291 | - </p></div><div class="section" title="Results"><div class="titlepage"><div><div><h6 class="title"><a id="priority_queue.text_push_pop.results"/> | |
8292 | + </p></div><div class="section" title="Results"><div class="titlepage"><div><div><h6 class="title"><a id="priority_queue.text_push_pop.results"></a> | |
8293 | Results | |
8294 | </h6></div></div></div><p>The two graphics below show the results for the native | |
8295 | priority_queues and this library's priority_queues. | |
8296 | @@ -2687,96 +2687,96 @@ | |
8297 | native priority_queue type instantiated with different underlying | |
8298 | container types versus several different versions of library's | |
8299 | priority_queues. | |
8300 | - </p><div class="informalfigure"><div class="mediaobject" style="text-align: center"><img src="../images/pbds_priority_queue_text_push_pop.png" style="text-align: middle"/></div></div><p> | |
8301 | + </p><div class="informalfigure"><div class="mediaobject" align="center"><img src="../images/pbds_priority_queue_text_push_pop.png" align="middle" /></div></div><p> | |
8302 | The abbreviated names in the legend of the graphic above are | |
8303 | instantiated with the types in the following table. | |
8304 | - </p><div class="informaltable"><table border="1"><colgroup><col style="text-align: left" class="c1"/><col style="text-align: left" class="c2"/><col style="text-align: left" class="c3"/></colgroup><thead><tr><th style="text-align: left"><span class="emphasis"><em>Name/Instantiating Type</em></span></th><th style="text-align: left"><span class="emphasis"><em>Parameter</em></span></th><th style="text-align: left"><span class="emphasis"><em>Details</em></span></th></tr></thead><tbody><tr style="background-color: #B0B0B0"><td colspan="3" style="text-align: left"> | |
8305 | + </p><div class="informaltable"><table border="1"><colgroup><col align="left" class="c1" /><col align="left" class="c2" /><col align="left" class="c3" /></colgroup><thead><tr><th align="left"><span class="emphasis"><em>Name/Instantiating Type</em></span></th><th align="left"><span class="emphasis"><em>Parameter</em></span></th><th align="left"><span class="emphasis"><em>Details</em></span></th></tr></thead><tbody><tr bgcolor="#B0B0B0"><td colspan="3" align="left"> | |
8306 | n_pq_vector | |
8307 | - </td></tr><tr><td style="text-align: left"> | |
8308 | + </td></tr><tr><td align="left"> | |
8309 | <code class="classname">std::priority_queue</code> | |
8310 | - </td><td style="text-align: left"> | |
8311 | + </td><td align="left"> | |
8312 | <code class="classname">Sequence</code> | |
8313 | - </td><td style="text-align: left"> | |
8314 | + </td><td align="left"> | |
8315 | <code class="classname">std::vector</code> | |
8316 | - </td></tr><tr style="background-color: #B0B0B0"><td colspan="3" style="text-align: left"> | |
8317 | + </td></tr><tr bgcolor="#B0B0B0"><td colspan="3" align="left"> | |
8318 | n_pq_deque | |
8319 | - </td></tr><tr><td style="text-align: left"> | |
8320 | + </td></tr><tr><td align="left"> | |
8321 | <code class="classname">std::priority_queue</code> | |
8322 | - </td><td style="text-align: left"> | |
8323 | + </td><td align="left"> | |
8324 | <code class="classname">Sequence</code> | |
8325 | - </td><td style="text-align: left"> | |
8326 | + </td><td align="left"> | |
8327 | <code class="classname">std::deque</code> | |
8328 | - </td></tr><tr style="background-color: #B0B0B0"><td colspan="3" style="text-align: left"> | |
8329 | + </td></tr><tr bgcolor="#B0B0B0"><td colspan="3" align="left"> | |
8330 | binary_heap | |
8331 | - </td></tr><tr><td style="text-align: left"> | |
8332 | + </td></tr><tr><td align="left"> | |
8333 | <code class="classname">priority_queue</code> | |
8334 | - </td><td style="text-align: left"> | |
8335 | + </td><td align="left"> | |
8336 | <code class="classname">Tag</code> | |
8337 | - </td><td style="text-align: left"> | |
8338 | + </td><td align="left"> | |
8339 | <code class="classname">binary_heap_tag</code> | |
8340 | - </td></tr><tr style="background-color: #B0B0B0"><td colspan="3" style="text-align: left"> | |
8341 | + </td></tr><tr bgcolor="#B0B0B0"><td colspan="3" align="left"> | |
8342 | binomial_heap | |
8343 | - </td></tr><tr><td style="text-align: left"> | |
8344 | + </td></tr><tr><td align="left"> | |
8345 | <code class="classname">priority_queue</code> | |
8346 | - </td><td style="text-align: left"> | |
8347 | + </td><td align="left"> | |
8348 | <code class="classname">Tag</code> | |
8349 | - </td><td style="text-align: left"> | |
8350 | + </td><td align="left"> | |
8351 | <code class="classname">binomial_heap_tag</code> | |
8352 | - </td></tr><tr style="background-color: #B0B0B0"><td colspan="3" style="text-align: left"> | |
8353 | + </td></tr><tr bgcolor="#B0B0B0"><td colspan="3" align="left"> | |
8354 | rc_binomial_heap | |
8355 | - </td></tr><tr><td style="text-align: left"> | |
8356 | + </td></tr><tr><td align="left"> | |
8357 | <code class="classname">priority_queue</code> | |
8358 | - </td><td style="text-align: left"> | |
8359 | + </td><td align="left"> | |
8360 | <code class="classname">Tag</code> | |
8361 | - </td><td style="text-align: left"> | |
8362 | + </td><td align="left"> | |
8363 | <code class="classname">rc_binomial_heap_tag</code> | |
8364 | - </td></tr><tr style="background-color: #B0B0B0"><td colspan="3" style="text-align: left"> | |
8365 | + </td></tr><tr bgcolor="#B0B0B0"><td colspan="3" align="left"> | |
8366 | thin_heap | |
8367 | - </td></tr><tr><td style="text-align: left"> | |
8368 | + </td></tr><tr><td align="left"> | |
8369 | <code class="classname">priority_queue</code> | |
8370 | - </td><td style="text-align: left"> | |
8371 | + </td><td align="left"> | |
8372 | <code class="classname">Tag</code> | |
8373 | - </td><td style="text-align: left"> | |
8374 | + </td><td align="left"> | |
8375 | <code class="classname">thin_heap_tag</code> | |
8376 | - </td></tr><tr style="background-color: #B0B0B0"><td colspan="3" style="text-align: left"> | |
8377 | + </td></tr><tr bgcolor="#B0B0B0"><td colspan="3" align="left"> | |
8378 | pairing_heap | |
8379 | - </td></tr><tr><td style="text-align: left"> | |
8380 | + </td></tr><tr><td align="left"> | |
8381 | <code class="classname">priority_queue</code> | |
8382 | - </td><td style="text-align: left"> | |
8383 | + </td><td align="left"> | |
8384 | <code class="classname">Tag</code> | |
8385 | - </td><td style="text-align: left"> | |
8386 | + </td><td align="left"> | |
8387 | <code class="classname">pairing_heap_tag</code> | |
8388 | </td></tr></tbody></table></div><p>The graphic below shows the results for the native priority | |
8389 | queues and this library's pairing-heap priority_queue data | |
8390 | structures. | |
8391 | - </p><div class="informalfigure"><div class="mediaobject" style="text-align: center"><img src="../images/pbds_pairing_priority_queue_text_push_pop.png" style="text-align: middle"/></div></div><p> | |
8392 | + </p><div class="informalfigure"><div class="mediaobject" align="center"><img src="../images/pbds_pairing_priority_queue_text_push_pop.png" align="middle" /></div></div><p> | |
8393 | The abbreviated names in the legend of the graphic above are | |
8394 | instantiated with the types in the following table. | |
8395 | - </p><div class="informaltable"><table border="1"><colgroup><col style="text-align: left" class="c1"/><col style="text-align: left" class="c2"/><col style="text-align: left" class="c3"/></colgroup><thead><tr><th style="text-align: left"><span class="emphasis"><em>Name/Instantiating Type</em></span></th><th style="text-align: left"><span class="emphasis"><em>Parameter</em></span></th><th style="text-align: left"><span class="emphasis"><em>Details</em></span></th></tr></thead><tbody><tr style="background-color: #B0B0B0"><td colspan="3" style="text-align: left"> | |
8396 | + </p><div class="informaltable"><table border="1"><colgroup><col align="left" class="c1" /><col align="left" class="c2" /><col align="left" class="c3" /></colgroup><thead><tr><th align="left"><span class="emphasis"><em>Name/Instantiating Type</em></span></th><th align="left"><span class="emphasis"><em>Parameter</em></span></th><th align="left"><span class="emphasis"><em>Details</em></span></th></tr></thead><tbody><tr bgcolor="#B0B0B0"><td colspan="3" align="left"> | |
8397 | n_pq_vector | |
8398 | - </td></tr><tr><td style="text-align: left"> | |
8399 | + </td></tr><tr><td align="left"> | |
8400 | <code class="classname">std::priority_queue</code> adapting <code class="classname">std::vector</code> | |
8401 | - </td><td style="text-align: left"> | |
8402 | + </td><td align="left"> | |
8403 | <code class="classname">Sequence</code> | |
8404 | - </td><td style="text-align: left"> | |
8405 | + </td><td align="left"> | |
8406 | <code class="classname">std::vector</code> | |
8407 | - </td></tr><tr style="background-color: #B0B0B0"><td colspan="3" style="text-align: left"> | |
8408 | + </td></tr><tr bgcolor="#B0B0B0"><td colspan="3" align="left"> | |
8409 | n_pq_deque | |
8410 | - </td></tr><tr><td style="text-align: left"> | |
8411 | + </td></tr><tr><td align="left"> | |
8412 | <code class="classname">std::priority_queue</code> | |
8413 | - </td><td style="text-align: left"> | |
8414 | + </td><td align="left"> | |
8415 | <code class="classname">Sequence</code> | |
8416 | - </td><td style="text-align: left"> | |
8417 | + </td><td align="left"> | |
8418 | <code class="classname">std::deque</code> | |
8419 | - </td></tr><tr style="background-color: #B0B0B0"><td colspan="3" style="text-align: left"> | |
8420 | + </td></tr><tr bgcolor="#B0B0B0"><td colspan="3" align="left"> | |
8421 | pairing_heap | |
8422 | - </td></tr><tr><td style="text-align: left"> | |
8423 | + </td></tr><tr><td align="left"> | |
8424 | <code class="classname">priority_queue</code> | |
8425 | - </td><td style="text-align: left"> | |
8426 | + </td><td align="left"> | |
8427 | <code class="classname">Tag</code> | |
8428 | - </td><td style="text-align: left"> | |
8429 | + </td><td align="left"> | |
8430 | <code class="classname">pairing_heap_tag</code> | |
8431 | - </td></tr></tbody></table></div></div><div class="section" title="Observations"><div class="titlepage"><div><div><h6 class="title"><a id="priority_queue.text_push_pop.observations"/> | |
8432 | + </td></tr></tbody></table></div></div><div class="section" title="Observations"><div class="titlepage"><div><div><h6 class="title"><a id="priority_queue.text_push_pop.observations"></a> | |
8433 | Observations | |
8434 | </h6></div></div></div><p>These results are very similar to Priority Queue Text | |
8435 | <code class="function">push</code> Timing Test. As stated there, pairing heaps | |
8436 | @@ -2796,9 +2796,9 @@ | |
8437 | of <code class="function">push</code> operations, pairing heaps are better | |
8438 | in this case. See Priority Queue Random | |
8439 | Integer <code class="function">push</code> and <code class="function">pop</code> | |
8440 | - Timing Test for a case which is different.</p></div></div><div class="section" title="Integer push"><div class="titlepage"><div><div><h5 class="title"><a id="performance.priority_queue.int_push"/> | |
8441 | + Timing Test for a case which is different.</p></div></div><div class="section" title="Integer push"><div class="titlepage"><div><div><h5 class="title"><a id="performance.priority_queue.int_push"></a> | |
8442 | Integer <code class="function">push</code> | |
8443 | - </h5></div></div></div><p/><div class="section" title="Description"><div class="titlepage"><div><div><h6 class="title"><a id="priority_queue.int_push.info"/> | |
8444 | + </h5></div></div></div><p></p><div class="section" title="Description"><div class="titlepage"><div><div><h6 class="title"><a id="priority_queue.int_push.info"></a> | |
8445 | Description | |
8446 | </h6></div></div></div><p>This test inserts a number of values with integer keys | |
8447 | into a container using <code class="function">push</code>. It | |
8448 | @@ -2810,7 +2810,7 @@ | |
8449 | </code> | |
8450 | </p><p>The test checks the effect of different underlying data | |
8451 | structures. | |
8452 | - </p></div><div class="section" title="Results"><div class="titlepage"><div><div><h6 class="title"><a id="priority_queue.int_push.results"/> | |
8453 | + </p></div><div class="section" title="Results"><div class="titlepage"><div><div><h6 class="title"><a id="priority_queue.int_push.results"></a> | |
8454 | Results | |
8455 | </h6></div></div></div><p>The two graphics below show the results for the native | |
8456 | priority_queues and this library's priority_queues. | |
8457 | @@ -2818,96 +2818,96 @@ | |
8458 | native priority_queue type instantiated with different underlying | |
8459 | container types versus several different versions of library's | |
8460 | priority_queues. | |
8461 | - </p><div class="informalfigure"><div class="mediaobject" style="text-align: center"><img src="../images/pbds_priority_queue_int_push.png" style="text-align: middle"/></div></div><p> | |
8462 | + </p><div class="informalfigure"><div class="mediaobject" align="center"><img src="../images/pbds_priority_queue_int_push.png" align="middle" /></div></div><p> | |
8463 | The abbreviated names in the legend of the graphic above are | |
8464 | instantiated with the types in the following table. | |
8465 | - </p><div class="informaltable"><table border="1"><colgroup><col style="text-align: left" class="c1"/><col style="text-align: left" class="c2"/><col style="text-align: left" class="c3"/></colgroup><thead><tr><th style="text-align: left"><span class="emphasis"><em>Name/Instantiating Type</em></span></th><th style="text-align: left"><span class="emphasis"><em>Parameter</em></span></th><th style="text-align: left"><span class="emphasis"><em>Details</em></span></th></tr></thead><tbody><tr style="background-color: #B0B0B0"><td colspan="3" style="text-align: left"> | |
8466 | + </p><div class="informaltable"><table border="1"><colgroup><col align="left" class="c1" /><col align="left" class="c2" /><col align="left" class="c3" /></colgroup><thead><tr><th align="left"><span class="emphasis"><em>Name/Instantiating Type</em></span></th><th align="left"><span class="emphasis"><em>Parameter</em></span></th><th align="left"><span class="emphasis"><em>Details</em></span></th></tr></thead><tbody><tr bgcolor="#B0B0B0"><td colspan="3" align="left"> | |
8467 | n_pq_vector | |
8468 | - </td></tr><tr><td style="text-align: left"> | |
8469 | + </td></tr><tr><td align="left"> | |
8470 | <code class="classname">std::priority_queue</code> | |
8471 | - </td><td style="text-align: left"> | |
8472 | + </td><td align="left"> | |
8473 | <code class="classname">Sequence</code> | |
8474 | - </td><td style="text-align: left"> | |
8475 | + </td><td align="left"> | |
8476 | <code class="classname">std::vector</code> | |
8477 | - </td></tr><tr style="background-color: #B0B0B0"><td colspan="3" style="text-align: left"> | |
8478 | + </td></tr><tr bgcolor="#B0B0B0"><td colspan="3" align="left"> | |
8479 | n_pq_deque | |
8480 | - </td></tr><tr><td style="text-align: left"> | |
8481 | + </td></tr><tr><td align="left"> | |
8482 | <code class="classname">std::priority_queue</code> | |
8483 | - </td><td style="text-align: left"> | |
8484 | + </td><td align="left"> | |
8485 | <code class="classname">Sequence</code> | |
8486 | - </td><td style="text-align: left"> | |
8487 | + </td><td align="left"> | |
8488 | <code class="classname">std::deque</code> | |
8489 | - </td></tr><tr style="background-color: #B0B0B0"><td colspan="3" style="text-align: left"> | |
8490 | + </td></tr><tr bgcolor="#B0B0B0"><td colspan="3" align="left"> | |
8491 | binary_heap | |
8492 | - </td></tr><tr><td style="text-align: left"> | |
8493 | + </td></tr><tr><td align="left"> | |
8494 | <code class="classname">priority_queue</code> | |
8495 | - </td><td style="text-align: left"> | |
8496 | + </td><td align="left"> | |
8497 | <code class="classname">Tag</code> | |
8498 | - </td><td style="text-align: left"> | |
8499 | + </td><td align="left"> | |
8500 | <code class="classname">binary_heap_tag</code> | |
8501 | - </td></tr><tr style="background-color: #B0B0B0"><td colspan="3" style="text-align: left"> | |
8502 | + </td></tr><tr bgcolor="#B0B0B0"><td colspan="3" align="left"> | |
8503 | binomial_heap | |
8504 | - </td></tr><tr><td style="text-align: left"> | |
8505 | + </td></tr><tr><td align="left"> | |
8506 | <code class="classname">priority_queue</code> | |
8507 | - </td><td style="text-align: left"> | |
8508 | + </td><td align="left"> | |
8509 | <code class="classname">Tag</code> | |
8510 | - </td><td style="text-align: left"> | |
8511 | + </td><td align="left"> | |
8512 | <code class="classname">binomial_heap_tag</code> | |
8513 | - </td></tr><tr style="background-color: #B0B0B0"><td colspan="3" style="text-align: left"> | |
8514 | + </td></tr><tr bgcolor="#B0B0B0"><td colspan="3" align="left"> | |
8515 | rc_binomial_heap | |
8516 | - </td></tr><tr><td style="text-align: left"> | |
8517 | + </td></tr><tr><td align="left"> | |
8518 | <code class="classname">priority_queue</code> | |
8519 | - </td><td style="text-align: left"> | |
8520 | + </td><td align="left"> | |
8521 | <code class="classname">Tag</code> | |
8522 | - </td><td style="text-align: left"> | |
8523 | + </td><td align="left"> | |
8524 | <code class="classname">rc_binomial_heap_tag</code> | |
8525 | - </td></tr><tr style="background-color: #B0B0B0"><td colspan="3" style="text-align: left"> | |
8526 | + </td></tr><tr bgcolor="#B0B0B0"><td colspan="3" align="left"> | |
8527 | thin_heap | |
8528 | - </td></tr><tr><td style="text-align: left"> | |
8529 | + </td></tr><tr><td align="left"> | |
8530 | <code class="classname">priority_queue</code> | |
8531 | - </td><td style="text-align: left"> | |
8532 | + </td><td align="left"> | |
8533 | <code class="classname">Tag</code> | |
8534 | - </td><td style="text-align: left"> | |
8535 | + </td><td align="left"> | |
8536 | <code class="classname">thin_heap_tag</code> | |
8537 | - </td></tr><tr style="background-color: #B0B0B0"><td colspan="3" style="text-align: left"> | |
8538 | + </td></tr><tr bgcolor="#B0B0B0"><td colspan="3" align="left"> | |
8539 | pairing_heap | |
8540 | - </td></tr><tr><td style="text-align: left"> | |
8541 | + </td></tr><tr><td align="left"> | |
8542 | <code class="classname">priority_queue</code> | |
8543 | - </td><td style="text-align: left"> | |
8544 | + </td><td align="left"> | |
8545 | <code class="classname">Tag</code> | |
8546 | - </td><td style="text-align: left"> | |
8547 | + </td><td align="left"> | |
8548 | <code class="classname">pairing_heap_tag</code> | |
8549 | </td></tr></tbody></table></div><p>The graphic below shows the results for the binary-heap | |
8550 | based native priority queues and this library's | |
8551 | priority_queue data structures. | |
8552 | - </p><div class="informalfigure"><div class="mediaobject" style="text-align: center"><img src="../images/pbds_binary_priority_queue_int_push.png" style="text-align: middle"/></div></div><p> | |
8553 | + </p><div class="informalfigure"><div class="mediaobject" align="center"><img src="../images/pbds_binary_priority_queue_int_push.png" align="middle" /></div></div><p> | |
8554 | The abbreviated names in the legend of the graphic above are | |
8555 | instantiated with the types in the following table. | |
8556 | - </p><div class="informaltable"><table border="1"><colgroup><col style="text-align: left" class="c1"/><col style="text-align: left" class="c2"/><col style="text-align: left" class="c3"/></colgroup><thead><tr><th style="text-align: left"><span class="emphasis"><em>Name/Instantiating Type</em></span></th><th style="text-align: left"><span class="emphasis"><em>Parameter</em></span></th><th style="text-align: left"><span class="emphasis"><em>Details</em></span></th></tr></thead><tbody><tr style="background-color: #B0B0B0"><td colspan="3" style="text-align: left"> | |
8557 | + </p><div class="informaltable"><table border="1"><colgroup><col align="left" class="c1" /><col align="left" class="c2" /><col align="left" class="c3" /></colgroup><thead><tr><th align="left"><span class="emphasis"><em>Name/Instantiating Type</em></span></th><th align="left"><span class="emphasis"><em>Parameter</em></span></th><th align="left"><span class="emphasis"><em>Details</em></span></th></tr></thead><tbody><tr bgcolor="#B0B0B0"><td colspan="3" align="left"> | |
8558 | n_pq_vector | |
8559 | - </td></tr><tr><td style="text-align: left"> | |
8560 | + </td></tr><tr><td align="left"> | |
8561 | <code class="classname">std::priority_queue</code> adapting <code class="classname">std::vector</code> | |
8562 | - </td><td style="text-align: left"> | |
8563 | + </td><td align="left"> | |
8564 | <code class="classname">Sequence</code> | |
8565 | - </td><td style="text-align: left"> | |
8566 | + </td><td align="left"> | |
8567 | <code class="classname">std::vector</code> | |
8568 | - </td></tr><tr style="background-color: #B0B0B0"><td colspan="3" style="text-align: left"> | |
8569 | + </td></tr><tr bgcolor="#B0B0B0"><td colspan="3" align="left"> | |
8570 | n_pq_deque | |
8571 | - </td></tr><tr><td style="text-align: left"> | |
8572 | + </td></tr><tr><td align="left"> | |
8573 | <code class="classname">std::priority_queue</code> | |
8574 | - </td><td style="text-align: left"> | |
8575 | + </td><td align="left"> | |
8576 | <code class="classname">Sequence</code> | |
8577 | - </td><td style="text-align: left"> | |
8578 | + </td><td align="left"> | |
8579 | <code class="classname">std::deque</code> | |
8580 | - </td></tr><tr style="background-color: #B0B0B0"><td colspan="3" style="text-align: left"> | |
8581 | + </td></tr><tr bgcolor="#B0B0B0"><td colspan="3" align="left"> | |
8582 | binary_heap | |
8583 | - </td></tr><tr><td style="text-align: left"> | |
8584 | + </td></tr><tr><td align="left"> | |
8585 | <code class="classname">priority_queue</code> | |
8586 | - </td><td style="text-align: left"> | |
8587 | + </td><td align="left"> | |
8588 | <code class="classname">Tag</code> | |
8589 | - </td><td style="text-align: left"> | |
8590 | + </td><td align="left"> | |
8591 | <code class="classname">binary_heap_tag</code> | |
8592 | - </td></tr></tbody></table></div></div><div class="section" title="Observations"><div class="titlepage"><div><div><h6 class="title"><a id="priority_queue.int_push.observations"/> | |
8593 | + </td></tr></tbody></table></div></div><div class="section" title="Observations"><div class="titlepage"><div><div><h6 class="title"><a id="priority_queue.int_push.observations"></a> | |
8594 | Observations | |
8595 | </h6></div></div></div><p>Binary heaps are the most suited for sequences of | |
8596 | <code class="function">push</code> and <code class="function">pop</code> operations of primitive types | |
8597 | @@ -2916,9 +2916,9 @@ | |
8598 | such types in arrays, they outperform even pairing heaps. (See | |
8599 | Priority | |
8600 | Queue Text <code class="function">push</code> Timing Test for the case of | |
8601 | - non-primitive types.)</p></div></div><div class="section" title="Integer push"><div class="titlepage"><div><div><h5 class="title"><a id="performance.priority_queue.int_push_pop"/> | |
8602 | + non-primitive types.)</p></div></div><div class="section" title="Integer push"><div class="titlepage"><div><div><h5 class="title"><a id="performance.priority_queue.int_push_pop"></a> | |
8603 | Integer <code class="function">push</code> | |
8604 | - </h5></div></div></div><p/><div class="section" title="Description"><div class="titlepage"><div><div><h6 class="title"><a id="priority_queue.int_push_pop.info"/> | |
8605 | + </h5></div></div></div><p></p><div class="section" title="Description"><div class="titlepage"><div><div><h6 class="title"><a id="priority_queue.int_push_pop.info"></a> | |
8606 | Description | |
8607 | </h6></div></div></div><p>This test inserts a number of values with integer keys | |
8608 | into a container using <code class="function">push</code> , then removes them | |
8609 | @@ -2931,72 +2931,72 @@ | |
8610 | </code> | |
8611 | </p><p>The test checks the effect of different underlying data | |
8612 | structures. | |
8613 | - </p></div><div class="section" title="Results"><div class="titlepage"><div><div><h6 class="title"><a id="priority_queue.int_push_pop.results"/> | |
8614 | + </p></div><div class="section" title="Results"><div class="titlepage"><div><div><h6 class="title"><a id="priority_queue.int_push_pop.results"></a> | |
8615 | Results | |
8616 | </h6></div></div></div><p>The graphic immediately below shows the results for the | |
8617 | native priority_queue type instantiated with different underlying | |
8618 | container types versus several different versions of library's | |
8619 | priority_queues. | |
8620 | - </p><div class="informalfigure"><div class="mediaobject" style="text-align: center"><img src="../images/pbds_priority_queue_int_push_pop.png" style="text-align: middle"/></div></div><p> | |
8621 | + </p><div class="informalfigure"><div class="mediaobject" align="center"><img src="../images/pbds_priority_queue_int_push_pop.png" align="middle" /></div></div><p> | |
8622 | The abbreviated names in the legend of the graphic above are | |
8623 | instantiated with the types in the following table. | |
8624 | - </p><div class="informaltable"><table border="1"><colgroup><col style="text-align: left" class="c1"/><col style="text-align: left" class="c2"/><col style="text-align: left" class="c3"/></colgroup><thead><tr><th style="text-align: left"><span class="emphasis"><em>Name/Instantiating Type</em></span></th><th style="text-align: left"><span class="emphasis"><em>Parameter</em></span></th><th style="text-align: left"><span class="emphasis"><em>Details</em></span></th></tr></thead><tbody><tr style="background-color: #B0B0B0"><td colspan="3" style="text-align: left"> | |
8625 | + </p><div class="informaltable"><table border="1"><colgroup><col align="left" class="c1" /><col align="left" class="c2" /><col align="left" class="c3" /></colgroup><thead><tr><th align="left"><span class="emphasis"><em>Name/Instantiating Type</em></span></th><th align="left"><span class="emphasis"><em>Parameter</em></span></th><th align="left"><span class="emphasis"><em>Details</em></span></th></tr></thead><tbody><tr bgcolor="#B0B0B0"><td colspan="3" align="left"> | |
8626 | n_pq_vector | |
8627 | - </td></tr><tr><td style="text-align: left"> | |
8628 | + </td></tr><tr><td align="left"> | |
8629 | <code class="classname">std::priority_queue</code> | |
8630 | - </td><td style="text-align: left"> | |
8631 | + </td><td align="left"> | |
8632 | <code class="classname">Sequence</code> | |
8633 | - </td><td style="text-align: left"> | |
8634 | + </td><td align="left"> | |
8635 | <code class="classname">std::vector</code> | |
8636 | - </td></tr><tr style="background-color: #B0B0B0"><td colspan="3" style="text-align: left"> | |
8637 | + </td></tr><tr bgcolor="#B0B0B0"><td colspan="3" align="left"> | |
8638 | n_pq_deque | |
8639 | - </td></tr><tr><td style="text-align: left"> | |
8640 | + </td></tr><tr><td align="left"> | |
8641 | <code class="classname">std::priority_queue</code> | |
8642 | - </td><td style="text-align: left"> | |
8643 | + </td><td align="left"> | |
8644 | <code class="classname">Sequence</code> | |
8645 | - </td><td style="text-align: left"> | |
8646 | + </td><td align="left"> | |
8647 | <code class="classname">std::deque</code> | |
8648 | - </td></tr><tr style="background-color: #B0B0B0"><td colspan="3" style="text-align: left"> | |
8649 | + </td></tr><tr bgcolor="#B0B0B0"><td colspan="3" align="left"> | |
8650 | binary_heap | |
8651 | - </td></tr><tr><td style="text-align: left"> | |
8652 | + </td></tr><tr><td align="left"> | |
8653 | <code class="classname">priority_queue</code> | |
8654 | - </td><td style="text-align: left"> | |
8655 | + </td><td align="left"> | |
8656 | <code class="classname">Tag</code> | |
8657 | - </td><td style="text-align: left"> | |
8658 | + </td><td align="left"> | |
8659 | <code class="classname">binary_heap_tag</code> | |
8660 | - </td></tr><tr style="background-color: #B0B0B0"><td colspan="3" style="text-align: left"> | |
8661 | + </td></tr><tr bgcolor="#B0B0B0"><td colspan="3" align="left"> | |
8662 | binomial_heap | |
8663 | - </td></tr><tr><td style="text-align: left"> | |
8664 | + </td></tr><tr><td align="left"> | |
8665 | <code class="classname">priority_queue</code> | |
8666 | - </td><td style="text-align: left"> | |
8667 | + </td><td align="left"> | |
8668 | <code class="classname">Tag</code> | |
8669 | - </td><td style="text-align: left"> | |
8670 | + </td><td align="left"> | |
8671 | <code class="classname">binomial_heap_tag</code> | |
8672 | - </td></tr><tr style="background-color: #B0B0B0"><td colspan="3" style="text-align: left"> | |
8673 | + </td></tr><tr bgcolor="#B0B0B0"><td colspan="3" align="left"> | |
8674 | rc_binomial_heap | |
8675 | - </td></tr><tr><td style="text-align: left"> | |
8676 | + </td></tr><tr><td align="left"> | |
8677 | <code class="classname">priority_queue</code> | |
8678 | - </td><td style="text-align: left"> | |
8679 | + </td><td align="left"> | |
8680 | <code class="classname">Tag</code> | |
8681 | - </td><td style="text-align: left"> | |
8682 | + </td><td align="left"> | |
8683 | <code class="classname">rc_binomial_heap_tag</code> | |
8684 | - </td></tr><tr style="background-color: #B0B0B0"><td colspan="3" style="text-align: left"> | |
8685 | + </td></tr><tr bgcolor="#B0B0B0"><td colspan="3" align="left"> | |
8686 | thin_heap | |
8687 | - </td></tr><tr><td style="text-align: left"> | |
8688 | + </td></tr><tr><td align="left"> | |
8689 | <code class="classname">priority_queue</code> | |
8690 | - </td><td style="text-align: left"> | |
8691 | + </td><td align="left"> | |
8692 | <code class="classname">Tag</code> | |
8693 | - </td><td style="text-align: left"> | |
8694 | + </td><td align="left"> | |
8695 | <code class="classname">thin_heap_tag</code> | |
8696 | - </td></tr><tr style="background-color: #B0B0B0"><td colspan="3" style="text-align: left"> | |
8697 | + </td></tr><tr bgcolor="#B0B0B0"><td colspan="3" align="left"> | |
8698 | pairing_heap | |
8699 | - </td></tr><tr><td style="text-align: left"> | |
8700 | + </td></tr><tr><td align="left"> | |
8701 | <code class="classname">priority_queue</code> | |
8702 | - </td><td style="text-align: left"> | |
8703 | + </td><td align="left"> | |
8704 | <code class="classname">Tag</code> | |
8705 | - </td><td style="text-align: left"> | |
8706 | + </td><td align="left"> | |
8707 | <code class="classname">pairing_heap_tag</code> | |
8708 | - </td></tr></tbody></table></div></div><div class="section" title="Observations"><div class="titlepage"><div><div><h6 class="title"><a id="priority_queue.int_push_pop.observations"/> | |
8709 | + </td></tr></tbody></table></div></div><div class="section" title="Observations"><div class="titlepage"><div><div><h6 class="title"><a id="priority_queue.int_push_pop.observations"></a> | |
8710 | Observations | |
8711 | </h6></div></div></div><p>Binary heaps are the most suited for sequences of | |
8712 | <code class="function">push</code> and <code class="function">pop</code> operations of primitive types | |
8713 | @@ -3007,7 +3007,7 @@ | |
8714 | types.)</p><p>At first glance it seems that the standard's vector-based | |
8715 | priority queue is approximately on par with this | |
8716 | library's corresponding priority queue. There are two | |
8717 | - differences however:</p><div class="orderedlist"><ol class="orderedlist"><li class="listitem"><p>The standard's priority queue does not downsize the underlying | |
8718 | + differences however:</p><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><p>The standard's priority queue does not downsize the underlying | |
8719 | vector (or deque) as the priority queue becomes smaller | |
8720 | (see Priority Queue | |
8721 | Text <code class="function">pop</code> Memory Use Test). It is therefore | |
8722 | @@ -3018,9 +3018,9 @@ | |
8723 | the number of | |
8724 | <code class="function">pop</code> operations is at most that of <code class="function">push</code> | |
8725 | operations, the test here is the "best" for the standard's | |
8726 | - priority queue.</p></li></ol></div></div></div><div class="section" title="Text pop Memory Use"><div class="titlepage"><div><div><h5 class="title"><a id="performance.priority_queue.text_pop"/> | |
8727 | + priority queue.</p></li></ol></div></div></div><div class="section" title="Text pop Memory Use"><div class="titlepage"><div><div><h5 class="title"><a id="performance.priority_queue.text_pop"></a> | |
8728 | Text <code class="function">pop</code> Memory Use | |
8729 | - </h5></div></div></div><p/><div class="section" title="Description"><div class="titlepage"><div><div><h6 class="title"><a id="priority_queue.text_pop.info"/> | |
8730 | + </h5></div></div></div><p></p><div class="section" title="Description"><div class="titlepage"><div><div><h6 class="title"><a id="priority_queue.text_pop.info"></a> | |
8731 | Description | |
8732 | </h6></div></div></div><p>This test inserts a number of values with keys from an | |
8733 | arbitrary text ([ wickland96thirty ]) into | |
8734 | @@ -3033,72 +3033,72 @@ | |
8735 | </code> | |
8736 | </p><p>The test checks the effect of different underlying data | |
8737 | structures. | |
8738 | - </p></div><div class="section" title="Results"><div class="titlepage"><div><div><h6 class="title"><a id="priority_queue.text_pop.results"/> | |
8739 | + </p></div><div class="section" title="Results"><div class="titlepage"><div><div><h6 class="title"><a id="priority_queue.text_pop.results"></a> | |
8740 | Results | |
8741 | </h6></div></div></div><p>The graphic immediately below shows the results for the | |
8742 | native priority_queue type instantiated with different underlying | |
8743 | container types versus several different versions of library's | |
8744 | priority_queues. | |
8745 | - </p><div class="informalfigure"><div class="mediaobject" style="text-align: center"><img src="../images/pbds_priority_queue_text_pop_mem.png" style="text-align: middle"/></div></div><p> | |
8746 | + </p><div class="informalfigure"><div class="mediaobject" align="center"><img src="../images/pbds_priority_queue_text_pop_mem.png" align="middle" /></div></div><p> | |
8747 | The abbreviated names in the legend of the graphic above are | |
8748 | instantiated with the types in the following table. | |
8749 | - </p><div class="informaltable"><table border="1"><colgroup><col style="text-align: left" class="c1"/><col style="text-align: left" class="c2"/><col style="text-align: left" class="c3"/></colgroup><thead><tr><th style="text-align: left"><span class="emphasis"><em>Name/Instantiating Type</em></span></th><th style="text-align: left"><span class="emphasis"><em>Parameter</em></span></th><th style="text-align: left"><span class="emphasis"><em>Details</em></span></th></tr></thead><tbody><tr style="background-color: #B0B0B0"><td colspan="3" style="text-align: left"> | |
8750 | + </p><div class="informaltable"><table border="1"><colgroup><col align="left" class="c1" /><col align="left" class="c2" /><col align="left" class="c3" /></colgroup><thead><tr><th align="left"><span class="emphasis"><em>Name/Instantiating Type</em></span></th><th align="left"><span class="emphasis"><em>Parameter</em></span></th><th align="left"><span class="emphasis"><em>Details</em></span></th></tr></thead><tbody><tr bgcolor="#B0B0B0"><td colspan="3" align="left"> | |
8751 | n_pq_vector | |
8752 | - </td></tr><tr><td style="text-align: left"> | |
8753 | + </td></tr><tr><td align="left"> | |
8754 | <code class="classname">std::priority_queue</code> | |
8755 | - </td><td style="text-align: left"> | |
8756 | + </td><td align="left"> | |
8757 | <code class="classname">Sequence</code> | |
8758 | - </td><td style="text-align: left"> | |
8759 | + </td><td align="left"> | |
8760 | <code class="classname">std::vector</code> | |
8761 | - </td></tr><tr style="background-color: #B0B0B0"><td colspan="3" style="text-align: left"> | |
8762 | + </td></tr><tr bgcolor="#B0B0B0"><td colspan="3" align="left"> | |
8763 | n_pq_deque | |
8764 | - </td></tr><tr><td style="text-align: left"> | |
8765 | + </td></tr><tr><td align="left"> | |
8766 | <code class="classname">std::priority_queue</code> | |
8767 | - </td><td style="text-align: left"> | |
8768 | + </td><td align="left"> | |
8769 | <code class="classname">Sequence</code> | |
8770 | - </td><td style="text-align: left"> | |
8771 | + </td><td align="left"> | |
8772 | <code class="classname">std::deque</code> | |
8773 | - </td></tr><tr style="background-color: #B0B0B0"><td colspan="3" style="text-align: left"> | |
8774 | + </td></tr><tr bgcolor="#B0B0B0"><td colspan="3" align="left"> | |
8775 | binary_heap | |
8776 | - </td></tr><tr><td style="text-align: left"> | |
8777 | + </td></tr><tr><td align="left"> | |
8778 | <code class="classname">priority_queue</code> | |
8779 | - </td><td style="text-align: left"> | |
8780 | + </td><td align="left"> | |
8781 | <code class="classname">Tag</code> | |
8782 | - </td><td style="text-align: left"> | |
8783 | + </td><td align="left"> | |
8784 | <code class="classname">binary_heap_tag</code> | |
8785 | - </td></tr><tr style="background-color: #B0B0B0"><td colspan="3" style="text-align: left"> | |
8786 | + </td></tr><tr bgcolor="#B0B0B0"><td colspan="3" align="left"> | |
8787 | binomial_heap | |
8788 | - </td></tr><tr><td style="text-align: left"> | |
8789 | + </td></tr><tr><td align="left"> | |
8790 | <code class="classname">priority_queue</code> | |
8791 | - </td><td style="text-align: left"> | |
8792 | + </td><td align="left"> | |
8793 | <code class="classname">Tag</code> | |
8794 | - </td><td style="text-align: left"> | |
8795 | + </td><td align="left"> | |
8796 | <code class="classname">binomial_heap_tag</code> | |
8797 | - </td></tr><tr style="background-color: #B0B0B0"><td colspan="3" style="text-align: left"> | |
8798 | + </td></tr><tr bgcolor="#B0B0B0"><td colspan="3" align="left"> | |
8799 | rc_binomial_heap | |
8800 | - </td></tr><tr><td style="text-align: left"> | |
8801 | + </td></tr><tr><td align="left"> | |
8802 | <code class="classname">priority_queue</code> | |
8803 | - </td><td style="text-align: left"> | |
8804 | + </td><td align="left"> | |
8805 | <code class="classname">Tag</code> | |
8806 | - </td><td style="text-align: left"> | |
8807 | + </td><td align="left"> | |
8808 | <code class="classname">rc_binomial_heap_tag</code> | |
8809 | - </td></tr><tr style="background-color: #B0B0B0"><td colspan="3" style="text-align: left"> | |
8810 | + </td></tr><tr bgcolor="#B0B0B0"><td colspan="3" align="left"> | |
8811 | thin_heap | |
8812 | - </td></tr><tr><td style="text-align: left"> | |
8813 | + </td></tr><tr><td align="left"> | |
8814 | <code class="classname">priority_queue</code> | |
8815 | - </td><td style="text-align: left"> | |
8816 | + </td><td align="left"> | |
8817 | <code class="classname">Tag</code> | |
8818 | - </td><td style="text-align: left"> | |
8819 | + </td><td align="left"> | |
8820 | <code class="classname">thin_heap_tag</code> | |
8821 | - </td></tr><tr style="background-color: #B0B0B0"><td colspan="3" style="text-align: left"> | |
8822 | + </td></tr><tr bgcolor="#B0B0B0"><td colspan="3" align="left"> | |
8823 | pairing_heap | |
8824 | - </td></tr><tr><td style="text-align: left"> | |
8825 | + </td></tr><tr><td align="left"> | |
8826 | <code class="classname">priority_queue</code> | |
8827 | - </td><td style="text-align: left"> | |
8828 | + </td><td align="left"> | |
8829 | <code class="classname">Tag</code> | |
8830 | - </td><td style="text-align: left"> | |
8831 | + </td><td align="left"> | |
8832 | <code class="classname">pairing_heap_tag</code> | |
8833 | - </td></tr></tbody></table></div></div><div class="section" title="Observations"><div class="titlepage"><div><div><h6 class="title"><a id="priority_queue.text_pop.observations"/> | |
8834 | + </td></tr></tbody></table></div></div><div class="section" title="Observations"><div class="titlepage"><div><div><h6 class="title"><a id="priority_queue.text_pop.observations"></a> | |
8835 | Observations | |
8836 | </h6></div></div></div><p>The priority queue implementations (excluding the standard's) use | |
8837 | memory proportionally to the number of values they hold: | |
8838 | @@ -3111,9 +3111,9 @@ | |
8839 | impede performance compared to the standard's priority | |
8840 | queues.</p><p>See Hash-Based Erase | |
8841 | Memory Use Test for a similar phenomenon regarding priority | |
8842 | - queues.</p></div></div><div class="section" title="Text join"><div class="titlepage"><div><div><h5 class="title"><a id="performance.priority_queue.text_join"/> | |
8843 | + queues.</p></div></div><div class="section" title="Text join"><div class="titlepage"><div><div><h5 class="title"><a id="performance.priority_queue.text_join"></a> | |
8844 | Text <code class="function">join</code> | |
8845 | - </h5></div></div></div><p/><div class="section" title="Description"><div class="titlepage"><div><div><h6 class="title"><a id="priority_queue.text_join.info"/> | |
8846 | + </h5></div></div></div><p></p><div class="section" title="Description"><div class="titlepage"><div><div><h6 class="title"><a id="priority_queue.text_join.info"></a> | |
8847 | Description | |
8848 | </h6></div></div></div><p>This test inserts a number of values with keys from an | |
8849 | arbitrary text ([ wickland96thirty ]) into | |
8850 | @@ -3128,72 +3128,72 @@ | |
8851 | </code> | |
8852 | </p><p>The test checks the effect of different underlying data | |
8853 | structures. | |
8854 | - </p></div><div class="section" title="Results"><div class="titlepage"><div><div><h6 class="title"><a id="priority_queue.text_join.results"/> | |
8855 | + </p></div><div class="section" title="Results"><div class="titlepage"><div><div><h6 class="title"><a id="priority_queue.text_join.results"></a> | |
8856 | Results | |
8857 | </h6></div></div></div><p>The graphic immediately below shows the results for the | |
8858 | native priority_queue type instantiated with different underlying | |
8859 | container types versus several different versions of library's | |
8860 | priority_queues. | |
8861 | - </p><div class="informalfigure"><div class="mediaobject" style="text-align: center"><img src="../images/pbds_priority_queue_text_join.png" style="text-align: middle"/></div></div><p> | |
8862 | + </p><div class="informalfigure"><div class="mediaobject" align="center"><img src="../images/pbds_priority_queue_text_join.png" align="middle" /></div></div><p> | |
8863 | The abbreviated names in the legend of the graphic above are | |
8864 | instantiated with the types in the following table. | |
8865 | - </p><div class="informaltable"><table border="1"><colgroup><col style="text-align: left" class="c1"/><col style="text-align: left" class="c2"/><col style="text-align: left" class="c3"/></colgroup><thead><tr><th style="text-align: left"><span class="emphasis"><em>Name/Instantiating Type</em></span></th><th style="text-align: left"><span class="emphasis"><em>Parameter</em></span></th><th style="text-align: left"><span class="emphasis"><em>Details</em></span></th></tr></thead><tbody><tr style="background-color: #B0B0B0"><td colspan="3" style="text-align: left"> | |
8866 | + </p><div class="informaltable"><table border="1"><colgroup><col align="left" class="c1" /><col align="left" class="c2" /><col align="left" class="c3" /></colgroup><thead><tr><th align="left"><span class="emphasis"><em>Name/Instantiating Type</em></span></th><th align="left"><span class="emphasis"><em>Parameter</em></span></th><th align="left"><span class="emphasis"><em>Details</em></span></th></tr></thead><tbody><tr bgcolor="#B0B0B0"><td colspan="3" align="left"> | |
8867 | n_pq_vector | |
8868 | - </td></tr><tr><td style="text-align: left"> | |
8869 | + </td></tr><tr><td align="left"> | |
8870 | <code class="classname">std::priority_queue</code> | |
8871 | - </td><td style="text-align: left"> | |
8872 | + </td><td align="left"> | |
8873 | <code class="classname">Sequence</code> | |
8874 | - </td><td style="text-align: left"> | |
8875 | + </td><td align="left"> | |
8876 | <code class="classname">std::vector</code> | |
8877 | - </td></tr><tr style="background-color: #B0B0B0"><td colspan="3" style="text-align: left"> | |
8878 | + </td></tr><tr bgcolor="#B0B0B0"><td colspan="3" align="left"> | |
8879 | n_pq_deque | |
8880 | - </td></tr><tr><td style="text-align: left"> | |
8881 | + </td></tr><tr><td align="left"> | |
8882 | <code class="classname">std::priority_queue</code> | |
8883 | - </td><td style="text-align: left"> | |
8884 | + </td><td align="left"> | |
8885 | <code class="classname">Sequence</code> | |
8886 | - </td><td style="text-align: left"> | |
8887 | + </td><td align="left"> | |
8888 | <code class="classname">std::deque</code> | |
8889 | - </td></tr><tr style="background-color: #B0B0B0"><td colspan="3" style="text-align: left"> | |
8890 | + </td></tr><tr bgcolor="#B0B0B0"><td colspan="3" align="left"> | |
8891 | binary_heap | |
8892 | - </td></tr><tr><td style="text-align: left"> | |
8893 | + </td></tr><tr><td align="left"> | |
8894 | <code class="classname">priority_queue</code> | |
8895 | - </td><td style="text-align: left"> | |
8896 | + </td><td align="left"> | |
8897 | <code class="classname">Tag</code> | |
8898 | - </td><td style="text-align: left"> | |
8899 | + </td><td align="left"> | |
8900 | <code class="classname">binary_heap_tag</code> | |
8901 | - </td></tr><tr style="background-color: #B0B0B0"><td colspan="3" style="text-align: left"> | |
8902 | + </td></tr><tr bgcolor="#B0B0B0"><td colspan="3" align="left"> | |
8903 | binomial_heap | |
8904 | - </td></tr><tr><td style="text-align: left"> | |
8905 | + </td></tr><tr><td align="left"> | |
8906 | <code class="classname">priority_queue</code> | |
8907 | - </td><td style="text-align: left"> | |
8908 | + </td><td align="left"> | |
8909 | <code class="classname">Tag</code> | |
8910 | - </td><td style="text-align: left"> | |
8911 | + </td><td align="left"> | |
8912 | <code class="classname">binomial_heap_tag</code> | |
8913 | - </td></tr><tr style="background-color: #B0B0B0"><td colspan="3" style="text-align: left"> | |
8914 | + </td></tr><tr bgcolor="#B0B0B0"><td colspan="3" align="left"> | |
8915 | rc_binomial_heap | |
8916 | - </td></tr><tr><td style="text-align: left"> | |
8917 | + </td></tr><tr><td align="left"> | |
8918 | <code class="classname">priority_queue</code> | |
8919 | - </td><td style="text-align: left"> | |
8920 | + </td><td align="left"> | |
8921 | <code class="classname">Tag</code> | |
8922 | - </td><td style="text-align: left"> | |
8923 | + </td><td align="left"> | |
8924 | <code class="classname">rc_binomial_heap_tag</code> | |
8925 | - </td></tr><tr style="background-color: #B0B0B0"><td colspan="3" style="text-align: left"> | |
8926 | + </td></tr><tr bgcolor="#B0B0B0"><td colspan="3" align="left"> | |
8927 | thin_heap | |
8928 | - </td></tr><tr><td style="text-align: left"> | |
8929 | + </td></tr><tr><td align="left"> | |
8930 | <code class="classname">priority_queue</code> | |
8931 | - </td><td style="text-align: left"> | |
8932 | + </td><td align="left"> | |
8933 | <code class="classname">Tag</code> | |
8934 | - </td><td style="text-align: left"> | |
8935 | + </td><td align="left"> | |
8936 | <code class="classname">thin_heap_tag</code> | |
8937 | - </td></tr><tr style="background-color: #B0B0B0"><td colspan="3" style="text-align: left"> | |
8938 | + </td></tr><tr bgcolor="#B0B0B0"><td colspan="3" align="left"> | |
8939 | pairing_heap | |
8940 | - </td></tr><tr><td style="text-align: left"> | |
8941 | + </td></tr><tr><td align="left"> | |
8942 | <code class="classname">priority_queue</code> | |
8943 | - </td><td style="text-align: left"> | |
8944 | + </td><td align="left"> | |
8945 | <code class="classname">Tag</code> | |
8946 | - </td><td style="text-align: left"> | |
8947 | + </td><td align="left"> | |
8948 | <code class="classname">pairing_heap_tag</code> | |
8949 | - </td></tr></tbody></table></div></div><div class="section" title="Observations"><div class="titlepage"><div><div><h6 class="title"><a id="priority_queue.text_join.observations"/> | |
8950 | + </td></tr></tbody></table></div></div><div class="section" title="Observations"><div class="titlepage"><div><div><h6 class="title"><a id="priority_queue.text_join.observations"></a> | |
8951 | Observations | |
8952 | </h6></div></div></div><p>In this test the node-based heaps perform <code class="function">join</code> in | |
8953 | either logarithmic or constant time. The binary heap requires | |
8954 | @@ -3205,9 +3205,9 @@ | |
8955 | and <code class="function">size()</code> (since they are enough to expose | |
8956 | the underlying array), but this is impossible for | |
8957 | a <code class="classname">std::deque</code>-based standard priority queue. | |
8958 | - Without heapify, the cost is super-linear.</p></div></div><div class="section" title="Text modify Up"><div class="titlepage"><div><div><h5 class="title"><a id="performance.priority_queue.text_modify_up"/> | |
8959 | + Without heapify, the cost is super-linear.</p></div></div><div class="section" title="Text modify Up"><div class="titlepage"><div><div><h5 class="title"><a id="performance.priority_queue.text_modify_up"></a> | |
8960 | Text <code class="function">modify</code> Up | |
8961 | - </h5></div></div></div><p/><div class="section" title="Description"><div class="titlepage"><div><div><h6 class="title"><a id="priority_queue.text_modify_up.info"/> | |
8962 | + </h5></div></div></div><p></p><div class="section" title="Description"><div class="titlepage"><div><div><h6 class="title"><a id="priority_queue.text_modify_up.info"></a> | |
8963 | Description | |
8964 | </h6></div></div></div><p>This test inserts a number of values with keys from an | |
8965 | arbitrary text ([ wickland96thirty ]) into | |
8966 | @@ -3227,7 +3227,7 @@ | |
8967 | arbitrary value larger (in the sense of the priority queue's | |
8968 | comparison functor) corresponds to decrease-key in standard graph | |
8969 | algorithms [clrs2001]. | |
8970 | - </p></div><div class="section" title="Results"><div class="titlepage"><div><div><h6 class="title"><a id="priority_queue.text_modify_up.results"/> | |
8971 | + </p></div><div class="section" title="Results"><div class="titlepage"><div><div><h6 class="title"><a id="priority_queue.text_modify_up.results"></a> | |
8972 | Results | |
8973 | </h6></div></div></div><p>The two graphics below show the results for the native | |
8974 | priority_queues and this library's priority_queues. | |
8975 | @@ -3235,88 +3235,88 @@ | |
8976 | native priority_queue type instantiated with different underlying | |
8977 | container types versus several different versions of library's | |
8978 | priority_queues. | |
8979 | - </p><div class="informalfigure"><div class="mediaobject" style="text-align: center"><img src="../images/pbds_priority_queue_text_modify_up.png" style="text-align: middle"/></div></div><p> | |
8980 | + </p><div class="informalfigure"><div class="mediaobject" align="center"><img src="../images/pbds_priority_queue_text_modify_up.png" align="middle" /></div></div><p> | |
8981 | The abbreviated names in the legend of the graphic above are | |
8982 | instantiated with the types in the following table. | |
8983 | - </p><div class="informaltable"><table border="1"><colgroup><col style="text-align: left" class="c1"/><col style="text-align: left" class="c2"/><col style="text-align: left" class="c3"/></colgroup><thead><tr><th style="text-align: left"><span class="emphasis"><em>Name/Instantiating Type</em></span></th><th style="text-align: left"><span class="emphasis"><em>Parameter</em></span></th><th style="text-align: left"><span class="emphasis"><em>Details</em></span></th></tr></thead><tbody><tr style="background-color: #B0B0B0"><td colspan="3" style="text-align: left"> | |
8984 | + </p><div class="informaltable"><table border="1"><colgroup><col align="left" class="c1" /><col align="left" class="c2" /><col align="left" class="c3" /></colgroup><thead><tr><th align="left"><span class="emphasis"><em>Name/Instantiating Type</em></span></th><th align="left"><span class="emphasis"><em>Parameter</em></span></th><th align="left"><span class="emphasis"><em>Details</em></span></th></tr></thead><tbody><tr bgcolor="#B0B0B0"><td colspan="3" align="left"> | |
8985 | n_pq_vector | |
8986 | - </td></tr><tr><td style="text-align: left"> | |
8987 | + </td></tr><tr><td align="left"> | |
8988 | <code class="classname">std::priority_queue</code> | |
8989 | - </td><td style="text-align: left"> | |
8990 | + </td><td align="left"> | |
8991 | <code class="classname">Sequence</code> | |
8992 | - </td><td style="text-align: left"> | |
8993 | + </td><td align="left"> | |
8994 | <code class="classname">std::vector</code> | |
8995 | - </td></tr><tr style="background-color: #B0B0B0"><td colspan="3" style="text-align: left"> | |
8996 | + </td></tr><tr bgcolor="#B0B0B0"><td colspan="3" align="left"> | |
8997 | n_pq_deque | |
8998 | - </td></tr><tr><td style="text-align: left"> | |
8999 | + </td></tr><tr><td align="left"> | |
9000 | <code class="classname">std::priority_queue</code> | |
9001 | - </td><td style="text-align: left"> | |
9002 | + </td><td align="left"> | |
9003 | <code class="classname">Sequence</code> | |
9004 | - </td><td style="text-align: left"> | |
9005 | + </td><td align="left"> | |
9006 | <code class="classname">std::deque</code> | |
9007 | - </td></tr><tr style="background-color: #B0B0B0"><td colspan="3" style="text-align: left"> | |
9008 | + </td></tr><tr bgcolor="#B0B0B0"><td colspan="3" align="left"> | |
9009 | binary_heap | |
9010 | - </td></tr><tr><td style="text-align: left"> | |
9011 | + </td></tr><tr><td align="left"> | |
9012 | <code class="classname">priority_queue</code> | |
9013 | - </td><td style="text-align: left"> | |
9014 | + </td><td align="left"> | |
9015 | <code class="classname">Tag</code> | |
9016 | - </td><td style="text-align: left"> | |
9017 | + </td><td align="left"> | |
9018 | <code class="classname">binary_heap_tag</code> | |
9019 | - </td></tr><tr style="background-color: #B0B0B0"><td colspan="3" style="text-align: left"> | |
9020 | + </td></tr><tr bgcolor="#B0B0B0"><td colspan="3" align="left"> | |
9021 | binomial_heap | |
9022 | - </td></tr><tr><td style="text-align: left"> | |
9023 | + </td></tr><tr><td align="left"> | |
9024 | <code class="classname">priority_queue</code> | |
9025 | - </td><td style="text-align: left"> | |
9026 | + </td><td align="left"> | |
9027 | <code class="classname">Tag</code> | |
9028 | - </td><td style="text-align: left"> | |
9029 | + </td><td align="left"> | |
9030 | <code class="classname">binomial_heap_tag</code> | |
9031 | - </td></tr><tr style="background-color: #B0B0B0"><td colspan="3" style="text-align: left"> | |
9032 | + </td></tr><tr bgcolor="#B0B0B0"><td colspan="3" align="left"> | |
9033 | rc_binomial_heap | |
9034 | - </td></tr><tr><td style="text-align: left"> | |
9035 | + </td></tr><tr><td align="left"> | |
9036 | <code class="classname">priority_queue</code> | |
9037 | - </td><td style="text-align: left"> | |
9038 | + </td><td align="left"> | |
9039 | <code class="classname">Tag</code> | |
9040 | - </td><td style="text-align: left"> | |
9041 | + </td><td align="left"> | |
9042 | <code class="classname">rc_binomial_heap_tag</code> | |
9043 | - </td></tr><tr style="background-color: #B0B0B0"><td colspan="3" style="text-align: left"> | |
9044 | + </td></tr><tr bgcolor="#B0B0B0"><td colspan="3" align="left"> | |
9045 | thin_heap | |
9046 | - </td></tr><tr><td style="text-align: left"> | |
9047 | + </td></tr><tr><td align="left"> | |
9048 | <code class="classname">priority_queue</code> | |
9049 | - </td><td style="text-align: left"> | |
9050 | + </td><td align="left"> | |
9051 | <code class="classname">Tag</code> | |
9052 | - </td><td style="text-align: left"> | |
9053 | + </td><td align="left"> | |
9054 | <code class="classname">thin_heap_tag</code> | |
9055 | - </td></tr><tr style="background-color: #B0B0B0"><td colspan="3" style="text-align: left"> | |
9056 | + </td></tr><tr bgcolor="#B0B0B0"><td colspan="3" align="left"> | |
9057 | pairing_heap | |
9058 | - </td></tr><tr><td style="text-align: left"> | |
9059 | + </td></tr><tr><td align="left"> | |
9060 | <code class="classname">priority_queue</code> | |
9061 | - </td><td style="text-align: left"> | |
9062 | + </td><td align="left"> | |
9063 | <code class="classname">Tag</code> | |
9064 | - </td><td style="text-align: left"> | |
9065 | + </td><td align="left"> | |
9066 | <code class="classname">pairing_heap_tag</code> | |
9067 | </td></tr></tbody></table></div><p>The graphic below shows the results for the | |
9068 | native priority queues and this library's pairing and thin heap | |
9069 | priority_queue data structures. | |
9070 | - </p><div class="informalfigure"><div class="mediaobject" style="text-align: center"><img src="../images/pbds_pairing_priority_queue_text_modify_up_thin.png" style="text-align: middle"/></div></div><p> | |
9071 | + </p><div class="informalfigure"><div class="mediaobject" align="center"><img src="../images/pbds_pairing_priority_queue_text_modify_up_thin.png" align="middle" /></div></div><p> | |
9072 | The abbreviated names in the legend of the graphic above are | |
9073 | instantiated with the types in the following table. | |
9074 | - </p><div class="informaltable"><table border="1"><colgroup><col style="text-align: left" class="c1"/><col style="text-align: left" class="c2"/><col style="text-align: left" class="c3"/></colgroup><thead><tr><th style="text-align: left"><span class="emphasis"><em>Name/Instantiating Type</em></span></th><th style="text-align: left"><span class="emphasis"><em>Parameter</em></span></th><th style="text-align: left"><span class="emphasis"><em>Details</em></span></th></tr></thead><tbody><tr style="background-color: #B0B0B0"><td colspan="3" style="text-align: left"> | |
9075 | + </p><div class="informaltable"><table border="1"><colgroup><col align="left" class="c1" /><col align="left" class="c2" /><col align="left" class="c3" /></colgroup><thead><tr><th align="left"><span class="emphasis"><em>Name/Instantiating Type</em></span></th><th align="left"><span class="emphasis"><em>Parameter</em></span></th><th align="left"><span class="emphasis"><em>Details</em></span></th></tr></thead><tbody><tr bgcolor="#B0B0B0"><td colspan="3" align="left"> | |
9076 | thin_heap | |
9077 | - </td></tr><tr><td style="text-align: left"> | |
9078 | + </td></tr><tr><td align="left"> | |
9079 | <code class="classname">priority_queue</code> | |
9080 | - </td><td style="text-align: left"> | |
9081 | + </td><td align="left"> | |
9082 | <code class="classname">Tag</code> | |
9083 | - </td><td style="text-align: left"> | |
9084 | + </td><td align="left"> | |
9085 | <code class="classname">thin_heap_tag</code> | |
9086 | - </td></tr><tr style="background-color: #B0B0B0"><td colspan="3" style="text-align: left"> | |
9087 | + </td></tr><tr bgcolor="#B0B0B0"><td colspan="3" align="left"> | |
9088 | pairing_heap | |
9089 | - </td></tr><tr><td style="text-align: left"> | |
9090 | + </td></tr><tr><td align="left"> | |
9091 | <code class="classname">priority_queue</code> | |
9092 | - </td><td style="text-align: left"> | |
9093 | + </td><td align="left"> | |
9094 | <code class="classname">Tag</code> | |
9095 | - </td><td style="text-align: left"> | |
9096 | + </td><td align="left"> | |
9097 | <code class="classname">pairing_heap_tag</code> | |
9098 | - </td></tr></tbody></table></div></div><div class="section" title="Observations"><div class="titlepage"><div><div><h6 class="title"><a id="priority_queue.text_modify_up.observations"/> | |
9099 | + </td></tr></tbody></table></div></div><div class="section" title="Observations"><div class="titlepage"><div><div><h6 class="title"><a id="priority_queue.text_modify_up.observations"></a> | |
9100 | Observations | |
9101 | </h6></div></div></div><p>As noted above, increasing an arbitrary value (in the sense of | |
9102 | the priority queue's comparison functor) is very common in | |
9103 | @@ -3344,9 +3344,9 @@ | |
9104 | finding the appropriate value, then use the range-type iterator | |
9105 | for the <code class="function">modify</code> operation.</p><p>The explanation for the standard's priority queues' performance | |
9106 | is similar to that in Priority Queue Text | |
9107 | - <code class="function">join</code> Timing Test.</p></div></div><div class="section" title="Text modify Down"><div class="titlepage"><div><div><h5 class="title"><a id="performance.priority_queue.text_modify_down"/> | |
9108 | + <code class="function">join</code> Timing Test.</p></div></div><div class="section" title="Text modify Down"><div class="titlepage"><div><div><h5 class="title"><a id="performance.priority_queue.text_modify_down"></a> | |
9109 | Text <code class="function">modify</code> Down | |
9110 | - </h5></div></div></div><p/><div class="section" title="Description"><div class="titlepage"><div><div><h6 class="title"><a id="priority_queue.text_modify_down.info"/> | |
9111 | + </h5></div></div></div><p></p><div class="section" title="Description"><div class="titlepage"><div><div><h6 class="title"><a id="priority_queue.text_modify_down.info"></a> | |
9112 | Description | |
9113 | </h6></div></div></div><p>This test inserts a number of values with keys from an | |
9114 | arbitrary text ([ wickland96thirty ]) into | |
9115 | @@ -3362,7 +3362,7 @@ | |
9116 | performance/ext/pb_ds/priority_queue_text_modify_down_timing.cc | |
9117 | </code> | |
9118 | </p><p>The main purpose of this test is to contrast Priority Queue | |
9119 | - Text <code class="classname">modify</code> Up Timing Test.</p></div><div class="section" title="Results"><div class="titlepage"><div><div><h6 class="title"><a id="priority_queue.text_modify_down.results"/> | |
9120 | + Text <code class="classname">modify</code> Up Timing Test.</p></div><div class="section" title="Results"><div class="titlepage"><div><div><h6 class="title"><a id="priority_queue.text_modify_down.results"></a> | |
9121 | Results | |
9122 | </h6></div></div></div><p>The two graphics below show the results for the native | |
9123 | priority_queues and this library's priority_queues. | |
9124 | @@ -3370,88 +3370,88 @@ | |
9125 | native priority_queue type instantiated with different underlying | |
9126 | container types versus several different versions of library's | |
9127 | priority_queues. | |
9128 | - </p><div class="informalfigure"><div class="mediaobject" style="text-align: center"><img src="../images/pbds_priority_queue_text_modify_down.png" style="text-align: middle"/></div></div><p> | |
9129 | + </p><div class="informalfigure"><div class="mediaobject" align="center"><img src="../images/pbds_priority_queue_text_modify_down.png" align="middle" /></div></div><p> | |
9130 | The abbreviated names in the legend of the graphic above are | |
9131 | instantiated with the types in the following table. | |
9132 | - </p><div class="informaltable"><table border="1"><colgroup><col style="text-align: left" class="c1"/><col style="text-align: left" class="c2"/><col style="text-align: left" class="c3"/></colgroup><thead><tr><th style="text-align: left"><span class="emphasis"><em>Name/Instantiating Type</em></span></th><th style="text-align: left"><span class="emphasis"><em>Parameter</em></span></th><th style="text-align: left"><span class="emphasis"><em>Details</em></span></th></tr></thead><tbody><tr style="background-color: #B0B0B0"><td colspan="3" style="text-align: left"> | |
9133 | + </p><div class="informaltable"><table border="1"><colgroup><col align="left" class="c1" /><col align="left" class="c2" /><col align="left" class="c3" /></colgroup><thead><tr><th align="left"><span class="emphasis"><em>Name/Instantiating Type</em></span></th><th align="left"><span class="emphasis"><em>Parameter</em></span></th><th align="left"><span class="emphasis"><em>Details</em></span></th></tr></thead><tbody><tr bgcolor="#B0B0B0"><td colspan="3" align="left"> | |
9134 | n_pq_vector | |
9135 | - </td></tr><tr><td style="text-align: left"> | |
9136 | + </td></tr><tr><td align="left"> | |
9137 | <code class="classname">std::priority_queue</code> | |
9138 | - </td><td style="text-align: left"> | |
9139 | + </td><td align="left"> | |
9140 | <code class="classname">Sequence</code> | |
9141 | - </td><td style="text-align: left"> | |
9142 | + </td><td align="left"> | |
9143 | <code class="classname">std::vector</code> | |
9144 | - </td></tr><tr style="background-color: #B0B0B0"><td colspan="3" style="text-align: left"> | |
9145 | + </td></tr><tr bgcolor="#B0B0B0"><td colspan="3" align="left"> | |
9146 | n_pq_deque | |
9147 | - </td></tr><tr><td style="text-align: left"> | |
9148 | + </td></tr><tr><td align="left"> | |
9149 | <code class="classname">std::priority_queue</code> | |
9150 | - </td><td style="text-align: left"> | |
9151 | + </td><td align="left"> | |
9152 | <code class="classname">Sequence</code> | |
9153 | - </td><td style="text-align: left"> | |
9154 | + </td><td align="left"> | |
9155 | <code class="classname">std::deque</code> | |
9156 | - </td></tr><tr style="background-color: #B0B0B0"><td colspan="3" style="text-align: left"> | |
9157 | + </td></tr><tr bgcolor="#B0B0B0"><td colspan="3" align="left"> | |
9158 | binary_heap | |
9159 | - </td></tr><tr><td style="text-align: left"> | |
9160 | + </td></tr><tr><td align="left"> | |
9161 | <code class="classname">priority_queue</code> | |
9162 | - </td><td style="text-align: left"> | |
9163 | + </td><td align="left"> | |
9164 | <code class="classname">Tag</code> | |
9165 | - </td><td style="text-align: left"> | |
9166 | + </td><td align="left"> | |
9167 | <code class="classname">binary_heap_tag</code> | |
9168 | - </td></tr><tr style="background-color: #B0B0B0"><td colspan="3" style="text-align: left"> | |
9169 | + </td></tr><tr bgcolor="#B0B0B0"><td colspan="3" align="left"> | |
9170 | binomial_heap | |
9171 | - </td></tr><tr><td style="text-align: left"> | |
9172 | + </td></tr><tr><td align="left"> | |
9173 | <code class="classname">priority_queue</code> | |
9174 | - </td><td style="text-align: left"> | |
9175 | + </td><td align="left"> | |
9176 | <code class="classname">Tag</code> | |
9177 | - </td><td style="text-align: left"> | |
9178 | + </td><td align="left"> | |
9179 | <code class="classname">binomial_heap_tag</code> | |
9180 | - </td></tr><tr style="background-color: #B0B0B0"><td colspan="3" style="text-align: left"> | |
9181 | + </td></tr><tr bgcolor="#B0B0B0"><td colspan="3" align="left"> | |
9182 | rc_binomial_heap | |
9183 | - </td></tr><tr><td style="text-align: left"> | |
9184 | + </td></tr><tr><td align="left"> | |
9185 | <code class="classname">priority_queue</code> | |
9186 | - </td><td style="text-align: left"> | |
9187 | + </td><td align="left"> | |
9188 | <code class="classname">Tag</code> | |
9189 | - </td><td style="text-align: left"> | |
9190 | + </td><td align="left"> | |
9191 | <code class="classname">rc_binomial_heap_tag</code> | |
9192 | - </td></tr><tr style="background-color: #B0B0B0"><td colspan="3" style="text-align: left"> | |
9193 | + </td></tr><tr bgcolor="#B0B0B0"><td colspan="3" align="left"> | |
9194 | thin_heap | |
9195 | - </td></tr><tr><td style="text-align: left"> | |
9196 | + </td></tr><tr><td align="left"> | |
9197 | <code class="classname">priority_queue</code> | |
9198 | - </td><td style="text-align: left"> | |
9199 | + </td><td align="left"> | |
9200 | <code class="classname">Tag</code> | |
9201 | - </td><td style="text-align: left"> | |
9202 | + </td><td align="left"> | |
9203 | <code class="classname">thin_heap_tag</code> | |
9204 | - </td></tr><tr style="background-color: #B0B0B0"><td colspan="3" style="text-align: left"> | |
9205 | + </td></tr><tr bgcolor="#B0B0B0"><td colspan="3" align="left"> | |
9206 | pairing_heap | |
9207 | - </td></tr><tr><td style="text-align: left"> | |
9208 | + </td></tr><tr><td align="left"> | |
9209 | <code class="classname">priority_queue</code> | |
9210 | - </td><td style="text-align: left"> | |
9211 | + </td><td align="left"> | |
9212 | <code class="classname">Tag</code> | |
9213 | - </td><td style="text-align: left"> | |
9214 | + </td><td align="left"> | |
9215 | <code class="classname">pairing_heap_tag</code> | |
9216 | </td></tr></tbody></table></div><p>The graphic below shows the results for the | |
9217 | native priority queues and this library's pairing and thin heap | |
9218 | priority_queue data structures. | |
9219 | - </p><div class="informalfigure"><div class="mediaobject" style="text-align: center"><img src="../images/pbds_pairing_priority_queue_text_modify_down_thin.png" style="text-align: middle"/></div></div><p> | |
9220 | + </p><div class="informalfigure"><div class="mediaobject" align="center"><img src="../images/pbds_pairing_priority_queue_text_modify_down_thin.png" align="middle" /></div></div><p> | |
9221 | The abbreviated names in the legend of the graphic above are | |
9222 | instantiated with the types in the following table. | |
9223 | - </p><div class="informaltable"><table border="1"><colgroup><col style="text-align: left" class="c1"/><col style="text-align: left" class="c2"/><col style="text-align: left" class="c3"/></colgroup><thead><tr><th style="text-align: left"><span class="emphasis"><em>Name/Instantiating Type</em></span></th><th style="text-align: left"><span class="emphasis"><em>Parameter</em></span></th><th style="text-align: left"><span class="emphasis"><em>Details</em></span></th></tr></thead><tbody><tr style="background-color: #B0B0B0"><td colspan="3" style="text-align: left"> | |
9224 | + </p><div class="informaltable"><table border="1"><colgroup><col align="left" class="c1" /><col align="left" class="c2" /><col align="left" class="c3" /></colgroup><thead><tr><th align="left"><span class="emphasis"><em>Name/Instantiating Type</em></span></th><th align="left"><span class="emphasis"><em>Parameter</em></span></th><th align="left"><span class="emphasis"><em>Details</em></span></th></tr></thead><tbody><tr bgcolor="#B0B0B0"><td colspan="3" align="left"> | |
9225 | thin_heap | |
9226 | - </td></tr><tr><td style="text-align: left"> | |
9227 | + </td></tr><tr><td align="left"> | |
9228 | <code class="classname">priority_queue</code> | |
9229 | - </td><td style="text-align: left"> | |
9230 | + </td><td align="left"> | |
9231 | <code class="classname">Tag</code> | |
9232 | - </td><td style="text-align: left"> | |
9233 | + </td><td align="left"> | |
9234 | <code class="classname">thin_heap_tag</code> | |
9235 | - </td></tr><tr style="background-color: #B0B0B0"><td colspan="3" style="text-align: left"> | |
9236 | + </td></tr><tr bgcolor="#B0B0B0"><td colspan="3" align="left"> | |
9237 | pairing_heap | |
9238 | - </td></tr><tr><td style="text-align: left"> | |
9239 | + </td></tr><tr><td align="left"> | |
9240 | <code class="classname">priority_queue</code> | |
9241 | - </td><td style="text-align: left"> | |
9242 | + </td><td align="left"> | |
9243 | <code class="classname">Tag</code> | |
9244 | - </td><td style="text-align: left"> | |
9245 | + </td><td align="left"> | |
9246 | <code class="classname">pairing_heap_tag</code> | |
9247 | - </td></tr></tbody></table></div></div><div class="section" title="Observations"><div class="titlepage"><div><div><h6 class="title"><a id="priority_queue.text_modify_down.observations"/> | |
9248 | + </td></tr></tbody></table></div></div><div class="section" title="Observations"><div class="titlepage"><div><div><h6 class="title"><a id="priority_queue.text_modify_down.observations"></a> | |
9249 | Observations | |
9250 | </h6></div></div></div><p>Most points in these results are similar to Priority Queue | |
9251 | Text <code class="function">modify</code> Up Timing Test.</p><p>It is interesting to note, however, that as opposed to that | |
9252 | @@ -3466,7 +3466,7 @@ | |
9253 | (in the sense of the priority queue's comparison functor), and | |
9254 | so Priority Queue | |
9255 | Text <code class="classname">modify</code> Up Timing Test - is more interesting | |
9256 | - than this test.</p></div></div></div><div class="section" title="Observations"><div class="titlepage"><div><div><h4 class="title"><a id="pbds.test.performance.observations"/>Observations</h4></div></div></div><div class="section" title="Associative"><div class="titlepage"><div><div><h5 class="title"><a id="observations.associative"/>Associative</h5></div></div></div><div class="section" title="Underlying Data-Structure Families"><div class="titlepage"><div><div><h6 class="title"><a id="observations.associative.underlying"/> | |
9257 | + than this test.</p></div></div></div><div class="section" title="Observations"><div class="titlepage"><div><div><h4 class="title"><a id="pbds.test.performance.observations"></a>Observations</h4></div></div></div><div class="section" title="Associative"><div class="titlepage"><div><div><h5 class="title"><a id="observations.associative"></a>Associative</h5></div></div></div><div class="section" title="Underlying Data-Structure Families"><div class="titlepage"><div><div><h6 class="title"><a id="observations.associative.underlying"></a> | |
9258 | Underlying Data-Structure Families | |
9259 | </h6></div></div></div><p>In general, hash-based containers have better timing performance | |
9260 | than containers based on different underlying-data structures. The | |
9261 | @@ -3475,7 +3475,7 @@ | |
9262 | order-preservation, or the ability to utilize node invariants. If | |
9263 | memory-use is the major factor, an ordered-vector tree gives | |
9264 | optimal results (albeit with high modificiation costs), and a | |
9265 | - list-based container gives reasonable results.</p></div><div class="section" title="Hash-Based Containers"><div class="titlepage"><div><div><h6 class="title"><a id="observations.associative.hash"/> | |
9266 | + list-based container gives reasonable results.</p></div><div class="section" title="Hash-Based Containers"><div class="titlepage"><div><div><h6 class="title"><a id="observations.associative.hash"></a> | |
9267 | Hash-Based Containers | |
9268 | </h6></div></div></div><p>Hash-based containers are typically either collision | |
9269 | chaining or probing. Collision-chaining | |
9270 | @@ -3490,7 +3490,7 @@ | |
9271 | useful also in multithreaded applications where each thread | |
9272 | manipulates a hash-based container: in the standard, allocators have | |
9273 | class-wise semantics (see [meyers96more] - Item 10); a | |
9274 | - probing container might incur less contention in this case.</p></div><div class="section" title="Hash Policies"><div class="titlepage"><div><div><h6 class="title"><a id="observations.associative.hash_policies"/> | |
9275 | + probing container might incur less contention in this case.</p></div><div class="section" title="Hash Policies"><div class="titlepage"><div><div><h6 class="title"><a id="observations.associative.hash_policies"></a> | |
9276 | Hash Policies | |
9277 | </h6></div></div></div><p>In hash-based containers, the range-hashing scheme seems to | |
9278 | affect performance more than other considerations. In most | |
9279 | @@ -3509,7 +3509,7 @@ | |
9280 | function.</p><p>An orthogonal consideration is the trigger policy. This | |
9281 | presents difficult tradeoffs. E.g., different load | |
9282 | factors in a load-check trigger policy yield a | |
9283 | - space/amortized-cost tradeoff.</p></div><div class="section" title="Branch-Based Containers"><div class="titlepage"><div><div><h6 class="title"><a id="observations.associative.branch"/> | |
9284 | + space/amortized-cost tradeoff.</p></div><div class="section" title="Branch-Based Containers"><div class="titlepage"><div><div><h6 class="title"><a id="observations.associative.branch"></a> | |
9285 | Branch-Based Containers | |
9286 | </h6></div></div></div><p>In general, there are several families of tree-based | |
9287 | underlying data structures: balanced node-based trees | |
9288 | @@ -3556,14 +3556,14 @@ | |
9289 | maintaining such trees is higher than that of balanced trees. | |
9290 | Moderate-fan-out trees might be useful for sequences where each | |
9291 | element has a limited number of choices, e.g., DNA | |
9292 | - strings.</p></div><div class="section" title="Mapping-Semantics"><div class="titlepage"><div><div><h6 class="title"><a id="observations.associative.mapping_semantics"/> | |
9293 | + strings.</p></div><div class="section" title="Mapping-Semantics"><div class="titlepage"><div><div><h6 class="title"><a id="observations.associative.mapping_semantics"></a> | |
9294 | Mapping-Semantics | |
9295 | </h6></div></div></div><p>Different mapping semantics were discussed in the introduction and design sections.Here | |
9296 | the focus will be on the case where a keys can be composed into | |
9297 | primary keys and secondary keys. (In the case where some keys | |
9298 | are completely identical, it is trivial that one should use an | |
9299 | associative container mapping values to size types.) In this | |
9300 | - case there are (at least) five possibilities:</p><div class="orderedlist"><ol class="orderedlist"><li class="listitem"><p>Use an associative container that allows equivalent-key | |
9301 | + case there are (at least) five possibilities:</p><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><p>Use an associative container that allows equivalent-key | |
9302 | values (such as <code class="classname">std::multimap</code>)</p></li><li class="listitem"><p>Use a unique-key value associative container that maps | |
9303 | each primary key to some complex associative container of | |
9304 | secondary keys, say a tree-based or hash-based container. | |
9305 | @@ -3636,105 +3636,105 @@ | |
9306 | but with very high constants; using 1 with a tree-based | |
9307 | container, the cost is Θ(nlog(mn)). Using 2, 3, | |
9308 | and 4, the expected cost is Θ(n), but typically | |
9309 | - with far lower costs than 1. 5 is similar to 1.</p></div></div><div class="section" title="Priority_Queue"><div class="titlepage"><div><div><h5 class="title"><a id="observations.priority_queue"/>Priority_Queue</h5></div></div></div><div class="section" title="Complexity"><div class="titlepage"><div><div><h6 class="title"><a id="observations.priority_queue.complexity"/>Complexity</h6></div></div></div><p>The following table shows the complexities of the different | |
9310 | + with far lower costs than 1. 5 is similar to 1.</p></div></div><div class="section" title="Priority_Queue"><div class="titlepage"><div><div><h5 class="title"><a id="observations.priority_queue"></a>Priority_Queue</h5></div></div></div><div class="section" title="Complexity"><div class="titlepage"><div><div><h6 class="title"><a id="observations.priority_queue.complexity"></a>Complexity</h6></div></div></div><p>The following table shows the complexities of the different | |
9311 | underlying data structures in terms of orders of growth. It is | |
9312 | interesting to note that this table implies something about the | |
9313 | constants of the operations as well (see Amortized <code class="function">push</code> | |
9314 | - and <code class="function">pop</code> operations).</p><div class="informaltable"><table border="1"><colgroup><col style="text-align: left" class="c1"/><col style="text-align: left" class="c2"/><col style="text-align: left" class="c3"/><col style="text-align: left" class="c4"/><col style="text-align: left" class="c5"/><col style="text-align: left" class="c6"/></colgroup><thead><tr><th style="text-align: left"> </th><th style="text-align: left"><span class="emphasis"><em><code class="function">push</code></em></span></th><th style="text-align: left"><span class="emphasis"><em><code class="function">pop</code></em></span></th><th style="text-align: left"><span class="emphasis"><em><code class="function">modify</code></em></span></th><th style="text-align: left"><span class="emphasis"><em><code class="function">erase</code></em></span></th><th style="text-align: left"><span class="emphasis"><em><code class="function">join</code></em></span></th></tr></thead><tbody><tr><td style="text-align: left"> | |
9315 | + and <code class="function">pop</code> operations).</p><div class="informaltable"><table border="1"><colgroup><col align="left" class="c1" /><col align="left" class="c2" /><col align="left" class="c3" /><col align="left" class="c4" /><col align="left" class="c5" /><col align="left" class="c6" /></colgroup><thead><tr><th align="left"> </th><th align="left"><span class="emphasis"><em><code class="function">push</code></em></span></th><th align="left"><span class="emphasis"><em><code class="function">pop</code></em></span></th><th align="left"><span class="emphasis"><em><code class="function">modify</code></em></span></th><th align="left"><span class="emphasis"><em><code class="function">erase</code></em></span></th><th align="left"><span class="emphasis"><em><code class="function">join</code></em></span></th></tr></thead><tbody><tr><td align="left"> | |
9316 | <code class="classname">std::priority_queue</code> | |
9317 | - </td><td style="text-align: left"> | |
9318 | + </td><td align="left"> | |
9319 | Θ(n) worst | |
9320 | Θ(log(n)) amortized | |
9321 | - </td><td style="text-align: left"> | |
9322 | + </td><td align="left"> | |
9323 | Θ(log(n)) Worst | |
9324 | - </td><td style="text-align: left"> | |
9325 | + </td><td align="left"> | |
9326 | Θ(n log(n)) Worst | |
9327 | <sub>[std note 1]</sub> | |
9328 | - </td><td style="text-align: left"> | |
9329 | + </td><td align="left"> | |
9330 | Θ(n log(n)) | |
9331 | <sub>[std note 2]</sub> | |
9332 | - </td><td style="text-align: left"> | |
9333 | + </td><td align="left"> | |
9334 | Θ(n log(n)) | |
9335 | <sub>[std note 1]</sub> | |
9336 | - </td></tr><tr><td style="text-align: left"> | |
9337 | + </td></tr><tr><td align="left"> | |
9338 | <code class="classname">priority_queue</code> | |
9339 | <<code class="classname">Tag</code> = | |
9340 | <code class="classname">pairing_heap_tag</code>> | |
9341 | - </td><td style="text-align: left"> | |
9342 | + </td><td align="left"> | |
9343 | O(1) | |
9344 | - </td><td style="text-align: left"> | |
9345 | + </td><td align="left"> | |
9346 | Θ(n) worst | |
9347 | Θ(log(n)) amortized | |
9348 | - </td><td style="text-align: left"> | |
9349 | + </td><td align="left"> | |
9350 | Θ(n) worst | |
9351 | Θ(log(n)) amortized | |
9352 | - </td><td style="text-align: left"> | |
9353 | + </td><td align="left"> | |
9354 | Θ(n) worst | |
9355 | Θ(log(n)) amortized | |
9356 | - </td><td style="text-align: left"> | |
9357 | + </td><td align="left"> | |
9358 | O(1) | |
9359 | - </td></tr><tr><td style="text-align: left"> | |
9360 | + </td></tr><tr><td align="left"> | |
9361 | <code class="classname">priority_queue</code> | |
9362 | <<code class="classname">Tag</code> = | |
9363 | <code class="classname">binary_heap_tag</code>> | |
9364 | - </td><td style="text-align: left"> | |
9365 | + </td><td align="left"> | |
9366 | Θ(n) worst | |
9367 | Θ(log(n)) amortized | |
9368 | - </td><td style="text-align: left"> | |
9369 | + </td><td align="left"> | |
9370 | Θ(n) worst | |
9371 | Θ(log(n)) amortized | |
9372 | - </td><td style="text-align: left"> | |
9373 | + </td><td align="left"> | |
9374 | Θ(n) | |
9375 | - </td><td style="text-align: left"> | |
9376 | + </td><td align="left"> | |
9377 | Θ(n) | |
9378 | - </td><td style="text-align: left"> | |
9379 | + </td><td align="left"> | |
9380 | Θ(n) | |
9381 | - </td></tr><tr><td style="text-align: left"> | |
9382 | + </td></tr><tr><td align="left"> | |
9383 | <code class="classname">priority_queue</code> | |
9384 | <<code class="classname">Tag</code> = | |
9385 | <code class="classname">binomial_heap_tag</code>> | |
9386 | - </td><td style="text-align: left"> | |
9387 | + </td><td align="left"> | |
9388 | Θ(log(n)) worst | |
9389 | O(1) amortized | |
9390 | - </td><td style="text-align: left"> | |
9391 | + </td><td align="left"> | |
9392 | Θ(log(n)) | |
9393 | - </td><td style="text-align: left"> | |
9394 | + </td><td align="left"> | |
9395 | Θ(log(n)) | |
9396 | - </td><td style="text-align: left"> | |
9397 | + </td><td align="left"> | |
9398 | Θ(log(n)) | |
9399 | - </td><td style="text-align: left"> | |
9400 | + </td><td align="left"> | |
9401 | Θ(log(n)) | |
9402 | - </td></tr><tr><td style="text-align: left"> | |
9403 | + </td></tr><tr><td align="left"> | |
9404 | <code class="classname">priority_queue</code> | |
9405 | <<code class="classname">Tag</code> = | |
9406 | <code class="classname">rc_binomial_heap_tag</code>> | |
9407 | - </td><td style="text-align: left"> | |
9408 | + </td><td align="left"> | |
9409 | O(1) | |
9410 | - </td><td style="text-align: left"> | |
9411 | + </td><td align="left"> | |
9412 | Θ(log(n)) | |
9413 | - </td><td style="text-align: left"> | |
9414 | + </td><td align="left"> | |
9415 | Θ(log(n)) | |
9416 | - </td><td style="text-align: left"> | |
9417 | + </td><td align="left"> | |
9418 | Θ(log(n)) | |
9419 | - </td><td style="text-align: left"> | |
9420 | + </td><td align="left"> | |
9421 | Θ(log(n)) | |
9422 | - </td></tr><tr><td style="text-align: left"> | |
9423 | + </td></tr><tr><td align="left"> | |
9424 | <code class="classname">priority_queue</code><<code class="classname">Tag</code> = | |
9425 | <code class="classname">thin_heap_tag</code>> | |
9426 | - </td><td style="text-align: left"> | |
9427 | + </td><td align="left"> | |
9428 | O(1) | |
9429 | - </td><td style="text-align: left"> | |
9430 | + </td><td align="left"> | |
9431 | Θ(n) worst | |
9432 | Θ(log(n)) amortized | |
9433 | - </td><td style="text-align: left"> | |
9434 | + </td><td align="left"> | |
9435 | Θ(log(n)) worst | |
9436 | O(1) amortized, | |
9437 | or Θ(log(n)) amortized | |
9438 | <sub>[thin_heap_note]</sub> | |
9439 | - </td><td style="text-align: left"> | |
9440 | + </td><td align="left"> | |
9441 | Θ(n) worst | |
9442 | Θ(log(n)) amortized | |
9443 | - </td><td style="text-align: left"> | |
9444 | + </td><td align="left"> | |
9445 | Θ(n) | |
9446 | </td></tr></tbody></table></div><p>[std note 1] This | |
9447 | is not a property of the algorithm, but rather due to the fact | |
9448 | @@ -3760,7 +3760,7 @@ | |
9449 | of the priority queue's comparison functor), then the amortized | |
9450 | time is O(1), but if II) it decreases it, then the | |
9451 | amortized time is the same as the worst case time. Note that | |
9452 | - for most algorithms, I) is important and II) is not.</p></div><div class="section" title="Amortized push and pop operations"><div class="titlepage"><div><div><h6 class="title"><a id="observations.priority_queue.amortized_ops"/> | |
9453 | + for most algorithms, I) is important and II) is not.</p></div><div class="section" title="Amortized push and pop operations"><div class="titlepage"><div><div><h6 class="title"><a id="observations.priority_queue.amortized_ops"></a> | |
9454 | Amortized <code class="function">push</code> | |
9455 | and <code class="function">pop</code> operations | |
9456 | </h6></div></div></div><p>In many cases, a priority queue is needed primarily for | |
9457 | @@ -3780,7 +3780,7 @@ | |
9458 | terms of constants.</p><p>As the table shows, the "least constrained" underlying | |
9459 | data structures are binary heaps and pairing heaps. | |
9460 | Consequently, it is not surprising that they perform best in | |
9461 | - terms of amortized constants.</p><div class="orderedlist"><ol class="orderedlist"><li class="listitem"><p>Pairing heaps seem to perform best for non-primitive | |
9462 | + terms of amortized constants.</p><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><p>Pairing heaps seem to perform best for non-primitive | |
9463 | types (e.g., <code class="classname">std::string</code>s), as shown by | |
9464 | Priority | |
9465 | Queue Text <code class="function">push</code> Timing Test and Priority | |
9466 | @@ -3790,7 +3790,7 @@ | |
9467 | Queue Random Integer <code class="function">push</code> Timing Test and | |
9468 | Priority | |
9469 | Queue Random Integer <code class="function">push</code> and <code class="function">pop</code> Timing | |
9470 | - Test.</p></li></ol></div></div><div class="section" title="Graph Algorithms"><div class="titlepage"><div><div><h6 class="title"><a id="observations.priority_queue.graphs"/> | |
9471 | + Test.</p></li></ol></div></div><div class="section" title="Graph Algorithms"><div class="titlepage"><div><div><h6 class="title"><a id="observations.priority_queue.graphs"></a> | |
9472 | Graph Algorithms | |
9473 | </h6></div></div></div><p>In some graph algorithms, a decrease-key operation is | |
9474 | required [clrs2001]; | |
9475 | @@ -3810,4 +3810,4 @@ | |
9476 | as well. It is difficult to find an a-priori characterization of | |
9477 | graphs in which the actual number of <code class="function">modify</code> | |
9478 | operations will dwarf the number of <code class="function">push</code> and | |
9479 | - <code class="function">pop</code> operations.</p></div></div></div></div></div><div class="navfooter"><hr/><table width="100%" summary="Navigation footer"><tr><td align="left"><a accesskey="p" href="policy_data_structures_design.html">Prev</a> </td><td align="center"><a accesskey="u" href="policy_data_structures.html">Up</a></td><td align="right"> <a accesskey="n" href="policy_data_structures_biblio.html">Next</a></td></tr><tr><td align="left" valign="top">Design </td><td align="center"><a accesskey="h" href="../index.html">Home</a></td><td align="right" valign="top"> Acknowledgments</td></tr></table></div></body></html> | |
9480 | + <code class="function">pop</code> operations.</p></div></div></div></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="policy_data_structures_design.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="policy_data_structures.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="policy_data_structures_biblio.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Design </td><td width="20%" align="center"><a accesskey="h" href="../index.html">Home</a></td><td width="40%" align="right" valign="top"> Acknowledgments</td></tr></table></div></body></html> | |
9481 | Index: libstdc++-v3/doc/html/manual/abi.html | |
9482 | =================================================================== | |
9f95000d AM |
9483 | --- libstdc++-v3/doc/html/manual/abi.html (.../tags/gcc_4_7_2_release) (wersja 192468) |
9484 | +++ libstdc++-v3/doc/html/manual/abi.html (.../branches/gcc-4_7-branch) (wersja 192468) | |
5a87b929 AM |
9485 | @@ -1,10 +1,10 @@ |
9486 | <?xml version="1.0" encoding="UTF-8" standalone="no"?> | |
9487 | -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> | |
9488 | -<html xmlns="http://www.w3.org/1999/xhtml"><head><title>ABI Policy and Guidelines</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1"/><meta name="keywords" content=" C++ , ABI , version , dynamic , shared , compatibility "/><meta name="keywords" content=" ISO C++ , library "/><meta name="keywords" content=" ISO C++ , runtime , library "/><link rel="home" href="../index.html" title="The GNU C++ Library"/><link rel="up" href="appendix_porting.html" title="Appendix B. Porting and Maintenance"/><link rel="prev" href="test.html" title="Test"/><link rel="next" href="api.html" title="API Evolution and Deprecation History"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">ABI Policy and Guidelines</th></tr><tr><td align="left"><a accesskey="p" href="test.html">Prev</a> </td><th width="60%" align="center">Appendix B. | |
9489 | +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> | |
9490 | +<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>ABI Policy and Guidelines</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1" /><meta name="keywords" content=" C++ , ABI , version , dynamic , shared , compatibility " /><meta name="keywords" content=" ISO C++ , library " /><meta name="keywords" content=" ISO C++ , runtime , library " /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="appendix_porting.html" title="Appendix B. Porting and Maintenance" /><link rel="prev" href="test.html" title="Test" /><link rel="next" href="api.html" title="API Evolution and Deprecation History" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">ABI Policy and Guidelines</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="test.html">Prev</a> </td><th width="60%" align="center">Appendix B. | |
9491 | Porting and Maintenance | |
9492 | ||
9493 | -</th><td align="right"> <a accesskey="n" href="api.html">Next</a></td></tr></table><hr/></div><div class="section" title="ABI Policy and Guidelines"><div class="titlepage"><div><div><h2 class="title"><a id="appendix.porting.abi"/>ABI Policy and Guidelines</h2></div></div></div><p> | |
9494 | -</p><div class="section" title="The C++ Interface"><div class="titlepage"><div><div><h3 class="title"><a id="abi.cxx_interface"/>The C++ Interface</h3></div></div></div><p> | |
9495 | +</th><td width="20%" align="right"> <a accesskey="n" href="api.html">Next</a></td></tr></table><hr /></div><div class="section" title="ABI Policy and Guidelines"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="appendix.porting.abi"></a>ABI Policy and Guidelines</h2></div></div></div><p> | |
9496 | +</p><div class="section" title="The C++ Interface"><div class="titlepage"><div><div><h3 class="title"><a id="abi.cxx_interface"></a>The C++ Interface</h3></div></div></div><p> | |
9497 | C++ applications often depend on specific language support | |
9498 | routines, say for throwing exceptions, or catching exceptions, and | |
9499 | perhaps also depend on features in the C++ Standard Library. | |
9500 | @@ -21,7 +21,7 @@ | |
9501 | virtual functions, etc. These details are defined as the compiler | |
9502 | Application Binary Interface, or ABI. The GNU C++ compiler uses an | |
9503 | industry-standard C++ ABI starting with version 3. Details can be | |
9504 | - found in the <a class="link" href="http://www.codesourcery.com/public/cxx-abi/abi.html">ABI | |
9505 | + found in the <a class="link" href="http://www.codesourcery.com/public/cxx-abi/abi.html" target="_top">ABI | |
9506 | specification</a>. | |
9507 | </p><p> | |
9508 | The GNU C++ compiler, g++, has a compiler command line option to | |
9509 | @@ -30,7 +30,7 @@ | |
9510 | g++ command line options may change the ABI as a side-effect of | |
9511 | use. Such flags include <code class="code">-fpack-struct</code> and | |
9512 | <code class="code">-fno-exceptions</code>, but include others: see the complete | |
9513 | - list in the GCC manual under the heading <a class="link" href="http://gcc.gnu.org/onlinedocs/gcc/Code-Gen-Options.html#Code%20Gen%20Options">Options | |
9514 | + list in the GCC manual under the heading <a class="link" href="http://gcc.gnu.org/onlinedocs/gcc/Code-Gen-Options.html#Code%20Gen%20Options" target="_top">Options | |
9515 | for Code Generation Conventions</a>. | |
9516 | </p><p> | |
9517 | The configure options used when building a specific libstdc++ | |
9518 | @@ -58,10 +58,10 @@ | |
9519 | To use a specific version of the C++ ABI, one must use a | |
9520 | corresponding GNU C++ toolchain (i.e., g++ and libstdc++) that | |
9521 | implements the C++ ABI in question. | |
9522 | -</p></div><div class="section" title="Versioning"><div class="titlepage"><div><div><h3 class="title"><a id="abi.versioning"/>Versioning</h3></div></div></div><p> The C++ interface has evolved throughout the history of the GNU | |
9523 | +</p></div><div class="section" title="Versioning"><div class="titlepage"><div><div><h3 class="title"><a id="abi.versioning"></a>Versioning</h3></div></div></div><p> The C++ interface has evolved throughout the history of the GNU | |
9524 | C++ toolchain. With each release, various details have been changed so | |
9525 | as to give distinct versions to the C++ interface. | |
9526 | -</p><div class="section" title="Goals"><div class="titlepage"><div><div><h4 class="title"><a id="abi.versioning.goals"/>Goals</h4></div></div></div><p>Extending existing, stable ABIs. Versioning gives subsequent | |
9527 | +</p><div class="section" title="Goals"><div class="titlepage"><div><div><h4 class="title"><a id="abi.versioning.goals"></a>Goals</h4></div></div></div><p>Extending existing, stable ABIs. Versioning gives subsequent | |
9528 | releases of library binaries the ability to add new symbols and add | |
9529 | functionality, all the while retaining compatibility with the previous | |
9530 | releases in the series. Thus, program binaries linked with the initial | |
9531 | @@ -75,7 +75,7 @@ | |
9532 | in the initial release of the library binary, and remain link | |
9533 | compatible. | |
9534 | </p><p>Allows multiple, incompatible ABIs to coexist at the same time. | |
9535 | -</p></div><div class="section" title="History"><div class="titlepage"><div><div><h4 class="title"><a id="abi.versioning.history"/>History</h4></div></div></div><p> | |
9536 | +</p></div><div class="section" title="History"><div class="titlepage"><div><div><h4 class="title"><a id="abi.versioning.history"></a>History</h4></div></div></div><p> | |
9537 | How can this complexity be managed? What does C++ versioning mean? | |
9538 | Because library and compiler changes often make binaries compiled | |
9539 | with one version of the GNU tools incompatible with binaries | |
9540 | @@ -84,12 +84,12 @@ | |
9541 | easier. | |
9542 | </p><p> | |
9543 | The following techniques are used: | |
9544 | -</p><div class="orderedlist"><ol class="orderedlist"><li class="listitem"><p>Release versioning on the libgcc_s.so binary. </p><p>This is implemented via file names and the ELF | |
9545 | +</p><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><p>Release versioning on the libgcc_s.so binary. </p><p>This is implemented via file names and the ELF | |
9546 | <code class="constant">DT_SONAME</code> mechanism (at least on ELF | |
9547 | systems). It is versioned as follows: | |
9548 | - </p><div class="itemizedlist"><ul class="itemizedlist"><li class="listitem"><p>GCC 3.x: libgcc_s.so.1</p></li><li class="listitem"><p>GCC 4.x: libgcc_s.so.1</p></li></ul></div><p>For m68k-linux the versions differ as follows: </p><div class="itemizedlist"><ul class="itemizedlist"><li class="listitem"><p>GCC 3.4, GCC 4.x: libgcc_s.so.1 | |
9549 | + </p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>GCC 3.x: libgcc_s.so.1</p></li><li class="listitem"><p>GCC 4.x: libgcc_s.so.1</p></li></ul></div><p>For m68k-linux the versions differ as follows: </p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>GCC 3.4, GCC 4.x: libgcc_s.so.1 | |
9550 | when configuring <code class="code">--with-sjlj-exceptions</code>, or | |
9551 | - libgcc_s.so.2 </p></li></ul></div><p>For hppa-linux the versions differ as follows: </p><div class="itemizedlist"><ul class="itemizedlist"><li class="listitem"><p>GCC 3.4, GCC 4.[0-1]: either libgcc_s.so.1 | |
9552 | + libgcc_s.so.2 </p></li></ul></div><p>For hppa-linux the versions differ as follows: </p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>GCC 3.4, GCC 4.[0-1]: either libgcc_s.so.1 | |
9553 | when configuring <code class="code">--with-sjlj-exceptions</code>, or | |
9554 | libgcc_s.so.2 </p></li><li class="listitem"><p>GCC 4.[2-7]: either libgcc_s.so.3 when configuring | |
9555 | <code class="code">--with-sjlj-exceptions</code>) or libgcc_s.so.4 | |
9556 | @@ -97,7 +97,7 @@ | |
9557 | definitions, where the version definition is the maximum for a | |
9558 | particular release. Labels are cumulative. If a particular release | |
9559 | is not listed, it has the same version labels as the preceding | |
9560 | - release.</p><p>This corresponds to the mapfile: gcc/libgcc-std.ver</p><div class="itemizedlist"><ul class="itemizedlist"><li class="listitem"><p>GCC 3.0.0: GCC_3.0</p></li><li class="listitem"><p>GCC 3.3.0: GCC_3.3</p></li><li class="listitem"><p>GCC 3.3.1: GCC_3.3.1</p></li><li class="listitem"><p>GCC 3.3.2: GCC_3.3.2</p></li><li class="listitem"><p>GCC 3.3.4: GCC_3.3.4</p></li><li class="listitem"><p>GCC 3.4.0: GCC_3.4</p></li><li class="listitem"><p>GCC 3.4.2: GCC_3.4.2</p></li><li class="listitem"><p>GCC 3.4.4: GCC_3.4.4</p></li><li class="listitem"><p>GCC 4.0.0: GCC_4.0.0</p></li><li class="listitem"><p>GCC 4.1.0: GCC_4.1.0</p></li><li class="listitem"><p>GCC 4.2.0: GCC_4.2.0</p></li><li class="listitem"><p>GCC 4.3.0: GCC_4.3.0</p></li><li class="listitem"><p>GCC 4.4.0: GCC_4.4.0</p></li><li class="listitem"><p>GCC 4.5.0: GCC_4.5.0</p></li><li class="listitem"><p>GCC 4.6.0: GCC_4.6.0</p></li><li class="listitem"><p>GCC 4.7.0: GCC_4.7.0</p></li></ul></div></li><li class="listitem"><p> | |
9561 | + release.</p><p>This corresponds to the mapfile: gcc/libgcc-std.ver</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>GCC 3.0.0: GCC_3.0</p></li><li class="listitem"><p>GCC 3.3.0: GCC_3.3</p></li><li class="listitem"><p>GCC 3.3.1: GCC_3.3.1</p></li><li class="listitem"><p>GCC 3.3.2: GCC_3.3.2</p></li><li class="listitem"><p>GCC 3.3.4: GCC_3.3.4</p></li><li class="listitem"><p>GCC 3.4.0: GCC_3.4</p></li><li class="listitem"><p>GCC 3.4.2: GCC_3.4.2</p></li><li class="listitem"><p>GCC 3.4.4: GCC_3.4.4</p></li><li class="listitem"><p>GCC 4.0.0: GCC_4.0.0</p></li><li class="listitem"><p>GCC 4.1.0: GCC_4.1.0</p></li><li class="listitem"><p>GCC 4.2.0: GCC_4.2.0</p></li><li class="listitem"><p>GCC 4.3.0: GCC_4.3.0</p></li><li class="listitem"><p>GCC 4.4.0: GCC_4.4.0</p></li><li class="listitem"><p>GCC 4.5.0: GCC_4.5.0</p></li><li class="listitem"><p>GCC 4.6.0: GCC_4.6.0</p></li><li class="listitem"><p>GCC 4.7.0: GCC_4.7.0</p></li></ul></div></li><li class="listitem"><p> | |
9562 | Release versioning on the libstdc++.so binary, implemented in | |
9563 | the same way as the libgcc_s.so binary above. Listed is the | |
9564 | filename: <code class="constant">DT_SONAME</code> can be deduced from | |
9565 | @@ -112,13 +112,13 @@ | |
9566 | has the same filename and <code class="constant">DT_SONAME</code> as the | |
9567 | preceding release. | |
9568 | </p><p>It is versioned as follows: | |
9569 | - </p><div class="itemizedlist"><ul class="itemizedlist"><li class="listitem"><p>GCC 3.0.0: libstdc++.so.3.0.0</p></li><li class="listitem"><p>GCC 3.0.1: libstdc++.so.3.0.1</p></li><li class="listitem"><p>GCC 3.0.2: libstdc++.so.3.0.2</p></li><li class="listitem"><p>GCC 3.0.3: libstdc++.so.3.0.2 (See Note 1)</p></li><li class="listitem"><p>GCC 3.0.4: libstdc++.so.3.0.4</p></li><li class="listitem"><p>GCC 3.1.0: libstdc++.so.4.0.0 <span class="emphasis"><em>(Incompatible with previous)</em></span></p></li><li class="listitem"><p>GCC 3.1.1: libstdc++.so.4.0.1</p></li><li class="listitem"><p>GCC 3.2.0: libstdc++.so.5.0.0 <span class="emphasis"><em>(Incompatible with previous)</em></span></p></li><li class="listitem"><p>GCC 3.2.1: libstdc++.so.5.0.1</p></li><li class="listitem"><p>GCC 3.2.2: libstdc++.so.5.0.2</p></li><li class="listitem"><p>GCC 3.2.3: libstdc++.so.5.0.3 (See Note 2)</p></li><li class="listitem"><p>GCC 3.3.0: libstdc++.so.5.0.4</p></li><li class="listitem"><p>GCC 3.3.1: libstdc++.so.5.0.5</p></li><li class="listitem"><p>GCC 3.4.0: libstdc++.so.6.0.0 <span class="emphasis"><em>(Incompatible with previous)</em></span></p></li><li class="listitem"><p>GCC 3.4.1: libstdc++.so.6.0.1</p></li><li class="listitem"><p>GCC 3.4.2: libstdc++.so.6.0.2</p></li><li class="listitem"><p>GCC 3.4.3: libstdc++.so.6.0.3</p></li><li class="listitem"><p>GCC 4.0.0: libstdc++.so.6.0.4</p></li><li class="listitem"><p>GCC 4.0.1: libstdc++.so.6.0.5</p></li><li class="listitem"><p>GCC 4.0.2: libstdc++.so.6.0.6</p></li><li class="listitem"><p>GCC 4.0.3: libstdc++.so.6.0.7</p></li><li class="listitem"><p>GCC 4.1.0: libstdc++.so.6.0.7</p></li><li class="listitem"><p>GCC 4.1.1: libstdc++.so.6.0.8</p></li><li class="listitem"><p>GCC 4.2.0: libstdc++.so.6.0.9</p></li><li class="listitem"><p>GCC 4.2.1: libstdc++.so.6.0.9 (See Note 3)</p></li><li class="listitem"><p>GCC 4.2.2: libstdc++.so.6.0.9</p></li><li class="listitem"><p>GCC 4.3.0: libstdc++.so.6.0.10</p></li><li class="listitem"><p>GCC 4.4.0: libstdc++.so.6.0.11</p></li><li class="listitem"><p>GCC 4.4.1: libstdc++.so.6.0.12</p></li><li class="listitem"><p>GCC 4.4.2: libstdc++.so.6.0.13</p></li><li class="listitem"><p>GCC 4.5.0: libstdc++.so.6.0.14</p></li><li class="listitem"><p>GCC 4.6.0: libstdc++.so.6.0.15</p></li><li class="listitem"><p>GCC 4.6.1: libstdc++.so.6.0.16</p></li></ul></div><p> | |
9570 | + </p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>GCC 3.0.0: libstdc++.so.3.0.0</p></li><li class="listitem"><p>GCC 3.0.1: libstdc++.so.3.0.1</p></li><li class="listitem"><p>GCC 3.0.2: libstdc++.so.3.0.2</p></li><li class="listitem"><p>GCC 3.0.3: libstdc++.so.3.0.2 (See Note 1)</p></li><li class="listitem"><p>GCC 3.0.4: libstdc++.so.3.0.4</p></li><li class="listitem"><p>GCC 3.1.0: libstdc++.so.4.0.0 <span class="emphasis"><em>(Incompatible with previous)</em></span></p></li><li class="listitem"><p>GCC 3.1.1: libstdc++.so.4.0.1</p></li><li class="listitem"><p>GCC 3.2.0: libstdc++.so.5.0.0 <span class="emphasis"><em>(Incompatible with previous)</em></span></p></li><li class="listitem"><p>GCC 3.2.1: libstdc++.so.5.0.1</p></li><li class="listitem"><p>GCC 3.2.2: libstdc++.so.5.0.2</p></li><li class="listitem"><p>GCC 3.2.3: libstdc++.so.5.0.3 (See Note 2)</p></li><li class="listitem"><p>GCC 3.3.0: libstdc++.so.5.0.4</p></li><li class="listitem"><p>GCC 3.3.1: libstdc++.so.5.0.5</p></li><li class="listitem"><p>GCC 3.4.0: libstdc++.so.6.0.0 <span class="emphasis"><em>(Incompatible with previous)</em></span></p></li><li class="listitem"><p>GCC 3.4.1: libstdc++.so.6.0.1</p></li><li class="listitem"><p>GCC 3.4.2: libstdc++.so.6.0.2</p></li><li class="listitem"><p>GCC 3.4.3: libstdc++.so.6.0.3</p></li><li class="listitem"><p>GCC 4.0.0: libstdc++.so.6.0.4</p></li><li class="listitem"><p>GCC 4.0.1: libstdc++.so.6.0.5</p></li><li class="listitem"><p>GCC 4.0.2: libstdc++.so.6.0.6</p></li><li class="listitem"><p>GCC 4.0.3: libstdc++.so.6.0.7</p></li><li class="listitem"><p>GCC 4.1.0: libstdc++.so.6.0.7</p></li><li class="listitem"><p>GCC 4.1.1: libstdc++.so.6.0.8</p></li><li class="listitem"><p>GCC 4.2.0: libstdc++.so.6.0.9</p></li><li class="listitem"><p>GCC 4.2.1: libstdc++.so.6.0.9 (See Note 3)</p></li><li class="listitem"><p>GCC 4.2.2: libstdc++.so.6.0.9</p></li><li class="listitem"><p>GCC 4.3.0: libstdc++.so.6.0.10</p></li><li class="listitem"><p>GCC 4.4.0: libstdc++.so.6.0.11</p></li><li class="listitem"><p>GCC 4.4.1: libstdc++.so.6.0.12</p></li><li class="listitem"><p>GCC 4.4.2: libstdc++.so.6.0.13</p></li><li class="listitem"><p>GCC 4.5.0: libstdc++.so.6.0.14</p></li><li class="listitem"><p>GCC 4.6.0: libstdc++.so.6.0.15</p></li><li class="listitem"><p>GCC 4.6.1: libstdc++.so.6.0.16</p></li></ul></div><p> | |
9571 | Note 1: Error should be libstdc++.so.3.0.3. | |
9572 | </p><p> | |
9573 | Note 2: Not strictly required. | |
9574 | </p><p> | |
9575 | Note 3: This release (but not previous or subsequent) has one | |
9576 | - known incompatibility, see <a class="link" href="http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33678">33678</a> | |
9577 | + known incompatibility, see <a class="link" href="http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33678" target="_top">33678</a> | |
9578 | in the GCC bug database. | |
9579 | </p></li><li class="listitem"><p>Symbol versioning on the libstdc++.so binary.</p><p>mapfile: libstdc++-v3/config/abi/pre/gnu.ver</p><p>It is versioned with the following labels and version | |
9580 | definitions, where the version definition is the maximum for a | |
9581 | @@ -130,7 +130,7 @@ | |
9582 | GLIBCPP_3.2 for symbols that were introduced in the GCC 3.2.0 | |
9583 | release.) If a particular release is not listed, it has the same | |
9584 | version labels as the preceding release. | |
9585 | - </p><div class="itemizedlist"><ul class="itemizedlist"><li class="listitem"><p>GCC 3.0.0: (Error, not versioned)</p></li><li class="listitem"><p>GCC 3.0.1: (Error, not versioned)</p></li><li class="listitem"><p>GCC 3.0.2: (Error, not versioned)</p></li><li class="listitem"><p>GCC 3.0.3: (Error, not versioned)</p></li><li class="listitem"><p>GCC 3.0.4: (Error, not versioned)</p></li><li class="listitem"><p>GCC 3.1.0: GLIBCPP_3.1, CXXABI_1</p></li><li class="listitem"><p>GCC 3.1.1: GLIBCPP_3.1, CXXABI_1</p></li><li class="listitem"><p>GCC 3.2.0: GLIBCPP_3.2, CXXABI_1.2</p></li><li class="listitem"><p>GCC 3.2.1: GLIBCPP_3.2.1, CXXABI_1.2</p></li><li class="listitem"><p>GCC 3.2.2: GLIBCPP_3.2.2, CXXABI_1.2</p></li><li class="listitem"><p>GCC 3.2.3: GLIBCPP_3.2.2, CXXABI_1.2</p></li><li class="listitem"><p>GCC 3.3.0: GLIBCPP_3.2.2, CXXABI_1.2.1</p></li><li class="listitem"><p>GCC 3.3.1: GLIBCPP_3.2.3, CXXABI_1.2.1</p></li><li class="listitem"><p>GCC 3.3.2: GLIBCPP_3.2.3, CXXABI_1.2.1</p></li><li class="listitem"><p>GCC 3.3.3: GLIBCPP_3.2.3, CXXABI_1.2.1</p></li><li class="listitem"><p>GCC 3.4.0: GLIBCXX_3.4, CXXABI_1.3</p></li><li class="listitem"><p>GCC 3.4.1: GLIBCXX_3.4.1, CXXABI_1.3</p></li><li class="listitem"><p>GCC 3.4.2: GLIBCXX_3.4.2</p></li><li class="listitem"><p>GCC 3.4.3: GLIBCXX_3.4.3</p></li><li class="listitem"><p>GCC 4.0.0: GLIBCXX_3.4.4, CXXABI_1.3.1</p></li><li class="listitem"><p>GCC 4.0.1: GLIBCXX_3.4.5</p></li><li class="listitem"><p>GCC 4.0.2: GLIBCXX_3.4.6</p></li><li class="listitem"><p>GCC 4.0.3: GLIBCXX_3.4.7</p></li><li class="listitem"><p>GCC 4.1.1: GLIBCXX_3.4.8</p></li><li class="listitem"><p>GCC 4.2.0: GLIBCXX_3.4.9</p></li><li class="listitem"><p>GCC 4.3.0: GLIBCXX_3.4.10, CXXABI_1.3.2</p></li><li class="listitem"><p>GCC 4.4.0: GLIBCXX_3.4.11, CXXABI_1.3.3</p></li><li class="listitem"><p>GCC 4.4.1: GLIBCXX_3.4.12, CXXABI_1.3.3</p></li><li class="listitem"><p>GCC 4.4.2: GLIBCXX_3.4.13, CXXABI_1.3.3</p></li><li class="listitem"><p>GCC 4.5.0: GLIBCXX_3.4.14, CXXABI_1.3.4</p></li><li class="listitem"><p>GCC 4.6.0: GLIBCXX_3.4.15, CXXABI_1.3.5</p></li><li class="listitem"><p>GCC 4.6.1: GLIBCXX_3.4.16, CXXABI_1.3.5</p></li></ul></div></li><li class="listitem"><p>Incremental bumping of a compiler pre-defined macro, | |
9586 | + </p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>GCC 3.0.0: (Error, not versioned)</p></li><li class="listitem"><p>GCC 3.0.1: (Error, not versioned)</p></li><li class="listitem"><p>GCC 3.0.2: (Error, not versioned)</p></li><li class="listitem"><p>GCC 3.0.3: (Error, not versioned)</p></li><li class="listitem"><p>GCC 3.0.4: (Error, not versioned)</p></li><li class="listitem"><p>GCC 3.1.0: GLIBCPP_3.1, CXXABI_1</p></li><li class="listitem"><p>GCC 3.1.1: GLIBCPP_3.1, CXXABI_1</p></li><li class="listitem"><p>GCC 3.2.0: GLIBCPP_3.2, CXXABI_1.2</p></li><li class="listitem"><p>GCC 3.2.1: GLIBCPP_3.2.1, CXXABI_1.2</p></li><li class="listitem"><p>GCC 3.2.2: GLIBCPP_3.2.2, CXXABI_1.2</p></li><li class="listitem"><p>GCC 3.2.3: GLIBCPP_3.2.2, CXXABI_1.2</p></li><li class="listitem"><p>GCC 3.3.0: GLIBCPP_3.2.2, CXXABI_1.2.1</p></li><li class="listitem"><p>GCC 3.3.1: GLIBCPP_3.2.3, CXXABI_1.2.1</p></li><li class="listitem"><p>GCC 3.3.2: GLIBCPP_3.2.3, CXXABI_1.2.1</p></li><li class="listitem"><p>GCC 3.3.3: GLIBCPP_3.2.3, CXXABI_1.2.1</p></li><li class="listitem"><p>GCC 3.4.0: GLIBCXX_3.4, CXXABI_1.3</p></li><li class="listitem"><p>GCC 3.4.1: GLIBCXX_3.4.1, CXXABI_1.3</p></li><li class="listitem"><p>GCC 3.4.2: GLIBCXX_3.4.2</p></li><li class="listitem"><p>GCC 3.4.3: GLIBCXX_3.4.3</p></li><li class="listitem"><p>GCC 4.0.0: GLIBCXX_3.4.4, CXXABI_1.3.1</p></li><li class="listitem"><p>GCC 4.0.1: GLIBCXX_3.4.5</p></li><li class="listitem"><p>GCC 4.0.2: GLIBCXX_3.4.6</p></li><li class="listitem"><p>GCC 4.0.3: GLIBCXX_3.4.7</p></li><li class="listitem"><p>GCC 4.1.1: GLIBCXX_3.4.8</p></li><li class="listitem"><p>GCC 4.2.0: GLIBCXX_3.4.9</p></li><li class="listitem"><p>GCC 4.3.0: GLIBCXX_3.4.10, CXXABI_1.3.2</p></li><li class="listitem"><p>GCC 4.4.0: GLIBCXX_3.4.11, CXXABI_1.3.3</p></li><li class="listitem"><p>GCC 4.4.1: GLIBCXX_3.4.12, CXXABI_1.3.3</p></li><li class="listitem"><p>GCC 4.4.2: GLIBCXX_3.4.13, CXXABI_1.3.3</p></li><li class="listitem"><p>GCC 4.5.0: GLIBCXX_3.4.14, CXXABI_1.3.4</p></li><li class="listitem"><p>GCC 4.6.0: GLIBCXX_3.4.15, CXXABI_1.3.5</p></li><li class="listitem"><p>GCC 4.6.1: GLIBCXX_3.4.16, CXXABI_1.3.5</p></li></ul></div></li><li class="listitem"><p>Incremental bumping of a compiler pre-defined macro, | |
9587 | __GXX_ABI_VERSION. This macro is defined as the version of the | |
9588 | compiler v3 ABI, with g++ 3.0 being version 100. This macro will | |
9589 | be automatically defined whenever g++ is used (the curious can | |
9590 | @@ -142,11 +142,11 @@ | |
9591 | '-fabi-version' command line option. | |
9592 | </p><p> | |
9593 | It is versioned as follows, where 'n' is given by '-fabi-version=n': | |
9594 | - </p><div class="itemizedlist"><ul class="itemizedlist"><li class="listitem"><p>GCC 3.0: 100</p></li><li class="listitem"><p>GCC 3.1: 100 (Error, should be 101)</p></li><li class="listitem"><p>GCC 3.2: 102</p></li><li class="listitem"><p>GCC 3.3: 102</p></li><li class="listitem"><p>GCC 3.4, GCC 4.x: 102 (when n=1)</p></li><li class="listitem"><p>GCC 3.4, GCC 4.x: 1000 + n (when n>1) </p></li><li class="listitem"><p>GCC 3.4, GCC 4.x: 999999 (when n=0)</p></li></ul></div><p/></li><li class="listitem"><p>Changes to the default compiler option for | |
9595 | + </p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>GCC 3.0: 100</p></li><li class="listitem"><p>GCC 3.1: 100 (Error, should be 101)</p></li><li class="listitem"><p>GCC 3.2: 102</p></li><li class="listitem"><p>GCC 3.3: 102</p></li><li class="listitem"><p>GCC 3.4, GCC 4.x: 102 (when n=1)</p></li><li class="listitem"><p>GCC 3.4, GCC 4.x: 1000 + n (when n>1) </p></li><li class="listitem"><p>GCC 3.4, GCC 4.x: 999999 (when n=0)</p></li></ul></div><p></p></li><li class="listitem"><p>Changes to the default compiler option for | |
9596 | <code class="code">-fabi-version</code>. | |
9597 | </p><p> | |
9598 | It is versioned as follows: | |
9599 | - </p><div class="itemizedlist"><ul class="itemizedlist"><li class="listitem"><p>GCC 3.0: (Error, not versioned) </p></li><li class="listitem"><p>GCC 3.1: (Error, not versioned) </p></li><li class="listitem"><p>GCC 3.2: <code class="code">-fabi-version=1</code></p></li><li class="listitem"><p>GCC 3.3: <code class="code">-fabi-version=1</code></p></li><li class="listitem"><p>GCC 3.4, GCC 4.x: <code class="code">-fabi-version=2</code> <span class="emphasis"><em>(Incompatible with previous)</em></span></p></li></ul></div><p/></li><li class="listitem"><p>Incremental bumping of a library pre-defined macro. For releases | |
9600 | + </p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>GCC 3.0: (Error, not versioned) </p></li><li class="listitem"><p>GCC 3.1: (Error, not versioned) </p></li><li class="listitem"><p>GCC 3.2: <code class="code">-fabi-version=1</code></p></li><li class="listitem"><p>GCC 3.3: <code class="code">-fabi-version=1</code></p></li><li class="listitem"><p>GCC 3.4, GCC 4.x: <code class="code">-fabi-version=2</code> <span class="emphasis"><em>(Incompatible with previous)</em></span></p></li></ul></div><p></p></li><li class="listitem"><p>Incremental bumping of a library pre-defined macro. For releases | |
9601 | before 3.4.0, the macro is __GLIBCPP__. For later releases, it's | |
9602 | __GLIBCXX__. (The libstdc++ project generously changed from CPP to | |
9603 | CXX throughout its source to allow the "C" pre-processor the CPP | |
9604 | @@ -159,7 +159,7 @@ | |
9605 | the same value as gcc/DATESTAMP.) | |
9606 | </p><p> | |
9607 | It is versioned as follows: | |
9608 | - </p><div class="itemizedlist"><ul class="itemizedlist"><li class="listitem"><p>GCC 3.0.0: 20010615</p></li><li class="listitem"><p>GCC 3.0.1: 20010819</p></li><li class="listitem"><p>GCC 3.0.2: 20011023</p></li><li class="listitem"><p>GCC 3.0.3: 20011220</p></li><li class="listitem"><p>GCC 3.0.4: 20020220</p></li><li class="listitem"><p>GCC 3.1.0: 20020514</p></li><li class="listitem"><p>GCC 3.1.1: 20020725</p></li><li class="listitem"><p>GCC 3.2.0: 20020814</p></li><li class="listitem"><p>GCC 3.2.1: 20021119</p></li><li class="listitem"><p>GCC 3.2.2: 20030205</p></li><li class="listitem"><p>GCC 3.2.3: 20030422</p></li><li class="listitem"><p>GCC 3.3.0: 20030513</p></li><li class="listitem"><p>GCC 3.3.1: 20030804</p></li><li class="listitem"><p>GCC 3.3.2: 20031016</p></li><li class="listitem"><p>GCC 3.3.3: 20040214</p></li><li class="listitem"><p>GCC 3.4.0: 20040419</p></li><li class="listitem"><p>GCC 3.4.1: 20040701</p></li><li class="listitem"><p>GCC 3.4.2: 20040906</p></li><li class="listitem"><p>GCC 3.4.3: 20041105</p></li><li class="listitem"><p>GCC 3.4.4: 20050519</p></li><li class="listitem"><p>GCC 3.4.5: 20051201</p></li><li class="listitem"><p>GCC 3.4.6: 20060306</p></li><li class="listitem"><p>GCC 4.0.0: 20050421</p></li><li class="listitem"><p>GCC 4.0.1: 20050707</p></li><li class="listitem"><p>GCC 4.0.2: 20050921</p></li><li class="listitem"><p>GCC 4.0.3: 20060309</p></li><li class="listitem"><p>GCC 4.1.0: 20060228</p></li><li class="listitem"><p>GCC 4.1.1: 20060524</p></li><li class="listitem"><p>GCC 4.1.2: 20070214</p></li><li class="listitem"><p>GCC 4.2.0: 20070514</p></li><li class="listitem"><p>GCC 4.2.1: 20070719</p></li><li class="listitem"><p>GCC 4.2.2: 20071007</p></li><li class="listitem"><p>GCC 4.2.3: 20080201</p></li><li class="listitem"><p>GCC 4.2.4: 20080519</p></li><li class="listitem"><p>GCC 4.3.0: 20080306</p></li><li class="listitem"><p>GCC 4.3.1: 20080606</p></li><li class="listitem"><p>GCC 4.3.2: 20080827</p></li><li class="listitem"><p>GCC 4.3.3: 20090124</p></li><li class="listitem"><p>GCC 4.3.4: 20090804</p></li><li class="listitem"><p>GCC 4.3.5: 20100522</p></li><li class="listitem"><p>GCC 4.3.6: 20110627</p></li><li class="listitem"><p>GCC 4.4.0: 20090421</p></li><li class="listitem"><p>GCC 4.4.1: 20090722</p></li><li class="listitem"><p>GCC 4.4.2: 20091015</p></li><li class="listitem"><p>GCC 4.4.3: 20100121</p></li><li class="listitem"><p>GCC 4.4.4: 20100429</p></li><li class="listitem"><p>GCC 4.4.5: 20101001</p></li><li class="listitem"><p>GCC 4.4.6: 20110416</p></li><li class="listitem"><p>GCC 4.5.0: 20100414</p></li><li class="listitem"><p>GCC 4.5.1: 20100731</p></li><li class="listitem"><p>GCC 4.5.2: 20101216</p></li><li class="listitem"><p>GCC 4.5.3: 20110428</p></li><li class="listitem"><p>GCC 4.6.0: 20110325</p></li><li class="listitem"><p>GCC 4.6.1: 20110627</p></li><li class="listitem"><p>GCC 4.6.2: 20111026</p></li></ul></div><p/></li><li class="listitem"><p> | |
9609 | + </p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>GCC 3.0.0: 20010615</p></li><li class="listitem"><p>GCC 3.0.1: 20010819</p></li><li class="listitem"><p>GCC 3.0.2: 20011023</p></li><li class="listitem"><p>GCC 3.0.3: 20011220</p></li><li class="listitem"><p>GCC 3.0.4: 20020220</p></li><li class="listitem"><p>GCC 3.1.0: 20020514</p></li><li class="listitem"><p>GCC 3.1.1: 20020725</p></li><li class="listitem"><p>GCC 3.2.0: 20020814</p></li><li class="listitem"><p>GCC 3.2.1: 20021119</p></li><li class="listitem"><p>GCC 3.2.2: 20030205</p></li><li class="listitem"><p>GCC 3.2.3: 20030422</p></li><li class="listitem"><p>GCC 3.3.0: 20030513</p></li><li class="listitem"><p>GCC 3.3.1: 20030804</p></li><li class="listitem"><p>GCC 3.3.2: 20031016</p></li><li class="listitem"><p>GCC 3.3.3: 20040214</p></li><li class="listitem"><p>GCC 3.4.0: 20040419</p></li><li class="listitem"><p>GCC 3.4.1: 20040701</p></li><li class="listitem"><p>GCC 3.4.2: 20040906</p></li><li class="listitem"><p>GCC 3.4.3: 20041105</p></li><li class="listitem"><p>GCC 3.4.4: 20050519</p></li><li class="listitem"><p>GCC 3.4.5: 20051201</p></li><li class="listitem"><p>GCC 3.4.6: 20060306</p></li><li class="listitem"><p>GCC 4.0.0: 20050421</p></li><li class="listitem"><p>GCC 4.0.1: 20050707</p></li><li class="listitem"><p>GCC 4.0.2: 20050921</p></li><li class="listitem"><p>GCC 4.0.3: 20060309</p></li><li class="listitem"><p>GCC 4.1.0: 20060228</p></li><li class="listitem"><p>GCC 4.1.1: 20060524</p></li><li class="listitem"><p>GCC 4.1.2: 20070214</p></li><li class="listitem"><p>GCC 4.2.0: 20070514</p></li><li class="listitem"><p>GCC 4.2.1: 20070719</p></li><li class="listitem"><p>GCC 4.2.2: 20071007</p></li><li class="listitem"><p>GCC 4.2.3: 20080201</p></li><li class="listitem"><p>GCC 4.2.4: 20080519</p></li><li class="listitem"><p>GCC 4.3.0: 20080306</p></li><li class="listitem"><p>GCC 4.3.1: 20080606</p></li><li class="listitem"><p>GCC 4.3.2: 20080827</p></li><li class="listitem"><p>GCC 4.3.3: 20090124</p></li><li class="listitem"><p>GCC 4.3.4: 20090804</p></li><li class="listitem"><p>GCC 4.3.5: 20100522</p></li><li class="listitem"><p>GCC 4.3.6: 20110627</p></li><li class="listitem"><p>GCC 4.4.0: 20090421</p></li><li class="listitem"><p>GCC 4.4.1: 20090722</p></li><li class="listitem"><p>GCC 4.4.2: 20091015</p></li><li class="listitem"><p>GCC 4.4.3: 20100121</p></li><li class="listitem"><p>GCC 4.4.4: 20100429</p></li><li class="listitem"><p>GCC 4.4.5: 20101001</p></li><li class="listitem"><p>GCC 4.4.6: 20110416</p></li><li class="listitem"><p>GCC 4.5.0: 20100414</p></li><li class="listitem"><p>GCC 4.5.1: 20100731</p></li><li class="listitem"><p>GCC 4.5.2: 20101216</p></li><li class="listitem"><p>GCC 4.5.3: 20110428</p></li><li class="listitem"><p>GCC 4.6.0: 20110325</p></li><li class="listitem"><p>GCC 4.6.1: 20110627</p></li><li class="listitem"><p>GCC 4.6.2: 20111026</p></li></ul></div><p></p></li><li class="listitem"><p> | |
9610 | Incremental bumping of a library pre-defined macro, | |
9611 | _GLIBCPP_VERSION. This macro is defined as the released version of | |
9612 | the library, as a string literal. This is only implemented in | |
9613 | @@ -172,7 +172,7 @@ | |
9614 | of config.h. | |
9615 | </p><p> | |
9616 | It is versioned as follows: | |
9617 | - </p><div class="itemizedlist"><ul class="itemizedlist"><li class="listitem"><p>GCC 3.0.0: "3.0.0"</p></li><li class="listitem"><p>GCC 3.0.1: "3.0.0" (Error, should be "3.0.1")</p></li><li class="listitem"><p>GCC 3.0.2: "3.0.0" (Error, should be "3.0.2")</p></li><li class="listitem"><p>GCC 3.0.3: "3.0.0" (Error, should be "3.0.3")</p></li><li class="listitem"><p>GCC 3.0.4: "3.0.0" (Error, should be "3.0.4")</p></li><li class="listitem"><p>GCC 3.1.0: "3.1.0"</p></li><li class="listitem"><p>GCC 3.1.1: "3.1.1"</p></li><li class="listitem"><p>GCC 3.2.0: "3.2"</p></li><li class="listitem"><p>GCC 3.2.1: "3.2.1"</p></li><li class="listitem"><p>GCC 3.2.2: "3.2.2"</p></li><li class="listitem"><p>GCC 3.2.3: "3.2.3"</p></li><li class="listitem"><p>GCC 3.3.0: "3.3"</p></li><li class="listitem"><p>GCC 3.3.1: "3.3.1"</p></li><li class="listitem"><p>GCC 3.3.2: "3.3.2"</p></li><li class="listitem"><p>GCC 3.3.3: "3.3.3"</p></li><li class="listitem"><p>GCC 3.4: "version-unused"</p></li><li class="listitem"><p>GCC 4.x: "version-unused"</p></li></ul></div><p/></li><li class="listitem"><p> | |
9618 | + </p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>GCC 3.0.0: "3.0.0"</p></li><li class="listitem"><p>GCC 3.0.1: "3.0.0" (Error, should be "3.0.1")</p></li><li class="listitem"><p>GCC 3.0.2: "3.0.0" (Error, should be "3.0.2")</p></li><li class="listitem"><p>GCC 3.0.3: "3.0.0" (Error, should be "3.0.3")</p></li><li class="listitem"><p>GCC 3.0.4: "3.0.0" (Error, should be "3.0.4")</p></li><li class="listitem"><p>GCC 3.1.0: "3.1.0"</p></li><li class="listitem"><p>GCC 3.1.1: "3.1.1"</p></li><li class="listitem"><p>GCC 3.2.0: "3.2"</p></li><li class="listitem"><p>GCC 3.2.1: "3.2.1"</p></li><li class="listitem"><p>GCC 3.2.2: "3.2.2"</p></li><li class="listitem"><p>GCC 3.2.3: "3.2.3"</p></li><li class="listitem"><p>GCC 3.3.0: "3.3"</p></li><li class="listitem"><p>GCC 3.3.1: "3.3.1"</p></li><li class="listitem"><p>GCC 3.3.2: "3.3.2"</p></li><li class="listitem"><p>GCC 3.3.3: "3.3.3"</p></li><li class="listitem"><p>GCC 3.4: "version-unused"</p></li><li class="listitem"><p>GCC 4.x: "version-unused"</p></li></ul></div><p></p></li><li class="listitem"><p> | |
9619 | Matching each specific C++ compiler release to a specific set of | |
9620 | C++ include files. This is only implemented in GCC 3.1.1 releases | |
9621 | and higher. | |
9622 | @@ -185,13 +185,13 @@ | |
9623 | file's macro GLIBCXX_CONFIGURE (GLIBCPP_CONFIGURE before GCC 3.4.0). | |
9624 | </p><p> | |
9625 | C++ includes are versioned as follows: | |
9626 | - </p><div class="itemizedlist"><ul class="itemizedlist"><li class="listitem"><p>GCC 3.0.0: include/g++-v3</p></li><li class="listitem"><p>GCC 3.0.1: include/g++-v3</p></li><li class="listitem"><p>GCC 3.0.2: include/g++-v3</p></li><li class="listitem"><p>GCC 3.0.3: include/g++-v3</p></li><li class="listitem"><p>GCC 3.0.4: include/g++-v3</p></li><li class="listitem"><p>GCC 3.1.0: include/g++-v3</p></li><li class="listitem"><p>GCC 3.1.1: include/c++/3.1.1</p></li><li class="listitem"><p>GCC 3.2.0: include/c++/3.2</p></li><li class="listitem"><p>GCC 3.2.1: include/c++/3.2.1</p></li><li class="listitem"><p>GCC 3.2.2: include/c++/3.2.2</p></li><li class="listitem"><p>GCC 3.2.3: include/c++/3.2.3</p></li><li class="listitem"><p>GCC 3.3.0: include/c++/3.3</p></li><li class="listitem"><p>GCC 3.3.1: include/c++/3.3.1</p></li><li class="listitem"><p>GCC 3.3.2: include/c++/3.3.2</p></li><li class="listitem"><p>GCC 3.3.3: include/c++/3.3.3</p></li><li class="listitem"><p>GCC 3.4.x: include/c++/3.4.x</p></li><li class="listitem"><p>GCC 4.x.y: include/c++/4.x.y</p></li></ul></div><p/></li></ol></div><p> | |
9627 | + </p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>GCC 3.0.0: include/g++-v3</p></li><li class="listitem"><p>GCC 3.0.1: include/g++-v3</p></li><li class="listitem"><p>GCC 3.0.2: include/g++-v3</p></li><li class="listitem"><p>GCC 3.0.3: include/g++-v3</p></li><li class="listitem"><p>GCC 3.0.4: include/g++-v3</p></li><li class="listitem"><p>GCC 3.1.0: include/g++-v3</p></li><li class="listitem"><p>GCC 3.1.1: include/c++/3.1.1</p></li><li class="listitem"><p>GCC 3.2.0: include/c++/3.2</p></li><li class="listitem"><p>GCC 3.2.1: include/c++/3.2.1</p></li><li class="listitem"><p>GCC 3.2.2: include/c++/3.2.2</p></li><li class="listitem"><p>GCC 3.2.3: include/c++/3.2.3</p></li><li class="listitem"><p>GCC 3.3.0: include/c++/3.3</p></li><li class="listitem"><p>GCC 3.3.1: include/c++/3.3.1</p></li><li class="listitem"><p>GCC 3.3.2: include/c++/3.3.2</p></li><li class="listitem"><p>GCC 3.3.3: include/c++/3.3.3</p></li><li class="listitem"><p>GCC 3.4.x: include/c++/3.4.x</p></li><li class="listitem"><p>GCC 4.x.y: include/c++/4.x.y</p></li></ul></div><p></p></li></ol></div><p> | |
9628 | Taken together, these techniques can accurately specify interface | |
9629 | and implementation changes in the GNU C++ tools themselves. Used | |
9630 | properly, they allow both the GNU C++ tools implementation, and | |
9631 | programs using them, an evolving yet controlled development that | |
9632 | maintains backward compatibility. | |
9633 | -</p></div><div class="section" title="Prerequisites"><div class="titlepage"><div><div><h4 class="title"><a id="abi.versioning.prereq"/>Prerequisites</h4></div></div></div><p> | |
9634 | +</p></div><div class="section" title="Prerequisites"><div class="titlepage"><div><div><h4 class="title"><a id="abi.versioning.prereq"></a>Prerequisites</h4></div></div></div><p> | |
9635 | Minimum environment that supports a versioned ABI: A supported | |
9636 | dynamic linker, a GNU linker of sufficient vintage to understand | |
9637 | demangled C++ name globbing (ld) or the Sun linker, a shared | |
9638 | @@ -206,7 +206,7 @@ | |
9639 | Most modern GNU/Linux and BSD versions, particularly ones using | |
9640 | GCC 3.1 and later, will meet the | |
9641 | requirements above, as does Solaris 2.5 and up. | |
9642 | - </p></div><div class="section" title="Configuring"><div class="titlepage"><div><div><h4 class="title"><a id="abi.versioning.config"/>Configuring</h4></div></div></div><p> | |
9643 | + </p></div><div class="section" title="Configuring"><div class="titlepage"><div><div><h4 class="title"><a id="abi.versioning.config"></a>Configuring</h4></div></div></div><p> | |
9644 | It turns out that most of the configure options that change | |
9645 | default behavior will impact the mangled names of exported | |
9646 | symbols, and thus impact versioning and compatibility. | |
9647 | @@ -224,7 +224,7 @@ | |
9648 | attempts to make sure that all the requirement for symbol | |
9649 | versioning are in place. For more information, please consult | |
9650 | acinclude.m4. | |
9651 | - </p></div><div class="section" title="Checking Active"><div class="titlepage"><div><div><h4 class="title"><a id="abi.versioning.active"/>Checking Active</h4></div></div></div><p> | |
9652 | + </p></div><div class="section" title="Checking Active"><div class="titlepage"><div><div><h4 class="title"><a id="abi.versioning.active"></a>Checking Active</h4></div></div></div><p> | |
9653 | When the GNU C++ library is being built with symbol versioning | |
9654 | on, you should see the following at configure time for | |
9655 | libstdc++: | |
9656 | @@ -272,16 +272,16 @@ | |
9657 | libc.so.1 (SUNWprivate_1.1, SYSVABI_1.3); | |
9658 | </pre><p> | |
9659 | <code class="code">ldd -v</code> works too, but is very verbose. | |
9660 | -</p></div></div><div class="section" title="Allowed Changes"><div class="titlepage"><div><div><h3 class="title"><a id="abi.changes_allowed"/>Allowed Changes</h3></div></div></div><p> | |
9661 | +</p></div></div><div class="section" title="Allowed Changes"><div class="titlepage"><div><div><h3 class="title"><a id="abi.changes_allowed"></a>Allowed Changes</h3></div></div></div><p> | |
9662 | The following will cause the library minor version number to | |
9663 | increase, say from "libstdc++.so.3.0.4" to "libstdc++.so.3.0.5". | |
9664 | -</p><div class="orderedlist"><ol class="orderedlist"><li class="listitem"><p>Adding an exported global or static data member</p></li><li class="listitem"><p>Adding an exported function, static or non-virtual member function</p></li><li class="listitem"><p>Adding an exported symbol or symbols by additional instantiations</p></li></ol></div><p> | |
9665 | +</p><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><p>Adding an exported global or static data member</p></li><li class="listitem"><p>Adding an exported function, static or non-virtual member function</p></li><li class="listitem"><p>Adding an exported symbol or symbols by additional instantiations</p></li></ol></div><p> | |
9666 | Other allowed changes are possible. | |
9667 | -</p></div><div class="section" title="Prohibited Changes"><div class="titlepage"><div><div><h3 class="title"><a id="abi.changes_no"/>Prohibited Changes</h3></div></div></div><p> | |
9668 | +</p></div><div class="section" title="Prohibited Changes"><div class="titlepage"><div><div><h3 class="title"><a id="abi.changes_no"></a>Prohibited Changes</h3></div></div></div><p> | |
9669 | The following non-exhaustive list will cause the library major version | |
9670 | number to increase, say from "libstdc++.so.3.0.4" to | |
9671 | "libstdc++.so.4.0.0". | |
9672 | -</p><div class="orderedlist"><ol class="orderedlist"><li class="listitem"><p>Changes in the gcc/g++ compiler ABI</p></li><li class="listitem"><p>Changing size of an exported symbol</p></li><li class="listitem"><p>Changing alignment of an exported symbol</p></li><li class="listitem"><p>Changing the layout of an exported symbol</p></li><li class="listitem"><p>Changing mangling on an exported symbol</p></li><li class="listitem"><p>Deleting an exported symbol</p></li><li class="listitem"><p>Changing the inheritance properties of a type by adding or removing | |
9673 | +</p><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><p>Changes in the gcc/g++ compiler ABI</p></li><li class="listitem"><p>Changing size of an exported symbol</p></li><li class="listitem"><p>Changing alignment of an exported symbol</p></li><li class="listitem"><p>Changing the layout of an exported symbol</p></li><li class="listitem"><p>Changing mangling on an exported symbol</p></li><li class="listitem"><p>Deleting an exported symbol</p></li><li class="listitem"><p>Changing the inheritance properties of a type by adding or removing | |
9674 | base classes</p></li><li class="listitem"><p> | |
9675 | Changing the size, alignment, or layout of types | |
9676 | specified in the C++ standard. These may not necessarily be | |
9677 | @@ -293,10 +293,10 @@ | |
9678 | the way the compiler deals with this class in by-value return | |
9679 | statements or parameters: instead of passing instances of this | |
9680 | class in registers, the compiler will be forced to use memory. See the | |
9681 | -section on <a class="link" href="http://www.codesourcery.com/public/cxx-abi/abi.html#calls">Function | |
9682 | +section on <a class="link" href="http://www.codesourcery.com/public/cxx-abi/abi.html#calls" target="_top">Function | |
9683 | Calling Conventions and APIs</a> | |
9684 | of the C++ ABI documentation for further details. | |
9685 | -</p></li></ol></div></div><div class="section" title="Implementation"><div class="titlepage"><div><div><h3 class="title"><a id="abi.impl"/>Implementation</h3></div></div></div><div class="orderedlist"><ol class="orderedlist"><li class="listitem"><p> | |
9686 | +</p></li></ol></div></div><div class="section" title="Implementation"><div class="titlepage"><div><div><h3 class="title"><a id="abi.impl"></a>Implementation</h3></div></div></div><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><p> | |
9687 | Separation of interface and implementation | |
9688 | </p><p> | |
9689 | This is accomplished by two techniques that separate the API from | |
9690 | @@ -344,7 +344,7 @@ | |
9691 | <code class="code">CXXABI</code>, select items are allowed to be visible.</p></dd></dl></div><p> | |
9692 | </p></li><li class="listitem"><p>Freezing the API</p><p>Disallowed changes, as above, are not made on a stable release | |
9693 | branch. Enforcement tends to be less strict with GNU extensions that | |
9694 | -standard includes.</p></li></ol></div></div><div class="section" title="Testing"><div class="titlepage"><div><div><h3 class="title"><a id="abi.testing"/>Testing</h3></div></div></div><div class="section" title="Single ABI Testing"><div class="titlepage"><div><div><h4 class="title"><a id="abi.testing.single"/>Single ABI Testing</h4></div></div></div><p> | |
9695 | +standard includes.</p></li></ol></div></div><div class="section" title="Testing"><div class="titlepage"><div><div><h3 class="title"><a id="abi.testing"></a>Testing</h3></div></div></div><div class="section" title="Single ABI Testing"><div class="titlepage"><div><div><h4 class="title"><a id="abi.testing.single"></a>Single ABI Testing</h4></div></div></div><p> | |
9696 | Testing for GNU C++ ABI changes is composed of two distinct | |
9697 | areas: testing the C++ compiler (g++) for compiler changes, and | |
9698 | testing the C++ library (libstdc++) for library changes. | |
9699 | @@ -410,7 +410,7 @@ | |
9700 | </p><p> | |
9701 | Perhaps there are other C++ ABI checkers. If so, please notify | |
9702 | us. We'd like to know about them! | |
9703 | -</p></div><div class="section" title="Multiple ABI Testing"><div class="titlepage"><div><div><h4 class="title"><a id="abi.testing.multi"/>Multiple ABI Testing</h4></div></div></div><p> | |
9704 | +</p></div><div class="section" title="Multiple ABI Testing"><div class="titlepage"><div><div><h4 class="title"><a id="abi.testing.multi"></a>Multiple ABI Testing</h4></div></div></div><p> | |
9705 | A "C" application, dynamically linked to two shared libraries, liba, | |
9706 | libb. The dependent library liba is a C++ shared library compiled with | |
9707 | GCC 3.3, and uses io, exceptions, locale, etc. The dependent library | |
9708 | @@ -473,7 +473,7 @@ | |
9709 | This resulting binary, when executed, will be able to safely use | |
9710 | code from both liba, and the dependent libstdc++.so.6, and libb, | |
9711 | with the dependent libstdc++.so.5. | |
9712 | -</p></div></div><div class="section" title="Outstanding Issues"><div class="titlepage"><div><div><h3 class="title"><a id="abi.issues"/>Outstanding Issues</h3></div></div></div><p> | |
9713 | +</p></div></div><div class="section" title="Outstanding Issues"><div class="titlepage"><div><div><h3 class="title"><a id="abi.issues"></a>Outstanding Issues</h3></div></div></div><p> | |
9714 | Some features in the C++ language make versioning especially | |
9715 | difficult. In particular, compiler generated constructs such as | |
9716 | implicit instantiations for templates, typeinfo information, and | |
9717 | @@ -483,54 +483,54 @@ | |
9718 | </p><p> | |
9719 | For more background on this issue, see these bugzilla entries: | |
9720 | </p><p> | |
9721 | -<a class="link" href="http://gcc.gnu.org/PR24660">24660: versioning weak symbols in libstdc++</a> | |
9722 | +<a class="link" href="http://gcc.gnu.org/PR24660" target="_top">24660: versioning weak symbols in libstdc++</a> | |
9723 | </p><p> | |
9724 | -<a class="link" href="http://gcc.gnu.org/PR19664">19664: libstdc++ headers should have pop/push of the visibility around the declarations</a> | |
9725 | -</p></div><div class="bibliography" title="Bibliography"><div class="titlepage"><div><div><h3 class="title"><a id="abi.biblio"/>Bibliography</h3></div></div></div><div class="biblioentry" title="ABIcheck"><a id="biblio.abicheck"/><p>[biblio.abicheck] <span class="title"><em> | |
9726 | - <a class="link" href="http://abicheck.sourceforge.net"> | |
9727 | +<a class="link" href="http://gcc.gnu.org/PR19664" target="_top">19664: libstdc++ headers should have pop/push of the visibility around the declarations</a> | |
9728 | +</p></div><div class="bibliography" title="Bibliography"><div class="titlepage"><div><div><h3 class="title"><a id="abi.biblio"></a>Bibliography</h3></div></div></div><div class="biblioentry" title="ABIcheck"><a id="biblio.abicheck"></a><p>[biblio.abicheck] <span class="title"><em> | |
9729 | + <a class="link" href="http://abicheck.sourceforge.net" target="_top"> | |
9730 | ABIcheck | |
9731 | </a> | |
9732 | - </em>. </span></p></div><div class="biblioentry" title="C++ ABI Summary"><a id="biblio.cxxabi"/><p>[biblio.cxxabi] <span class="title"><em> | |
9733 | - <a class="link" href="http://www.codesourcery.com/public/cxx-abi"> | |
9734 | + </em>. </span></p></div><div class="biblioentry" title="C++ ABI Summary"><a id="biblio.cxxabi"></a><p>[biblio.cxxabi] <span class="title"><em> | |
9735 | + <a class="link" href="http://www.codesourcery.com/public/cxx-abi" target="_top"> | |
9736 | C++ ABI Summary | |
9737 | </a> | |
9738 | - </em>. </span></p></div><div class="biblioentry" title="Intel Compilers for Linux Compatibility with the GNU Compilers"><a id="id560115"/><p><span class="title"><em> | |
9739 | - <a class="link" href="http://www.intel.com/cd/software/products/asmo-na/eng/284736.htm"> | |
9740 | + </em>. </span></p></div><div class="biblioentry" title="Intel Compilers for Linux Compatibility with the GNU Compilers"><a id="id738618"></a><p><span class="title"><em> | |
9741 | + <a class="link" href="http://www.intel.com/cd/software/products/asmo-na/eng/284736.htm" target="_top"> | |
9742 | Intel Compilers for Linux Compatibility with the GNU Compilers | |
9743 | </a> | |
9744 | - </em>. </span></p></div><div class="biblioentry" title="Linker and Libraries Guide (document 819-0690)"><a id="id560131"/><p><span class="title"><em> | |
9745 | - <a class="link" href="http://download.oracle.com/docs/cd/E19963-01/html/819-0690/index.html"> | |
9746 | + </em>. </span></p></div><div class="biblioentry" title="Linker and Libraries Guide (document 819-0690)"><a id="id738634"></a><p><span class="title"><em> | |
9747 | + <a class="link" href="http://download.oracle.com/docs/cd/E19963-01/html/819-0690/index.html" target="_top"> | |
9748 | Linker and Libraries Guide (document 819-0690) | |
9749 | </a> | |
9750 | - </em>. </span></p></div><div class="biblioentry" title="Sun Studio 11: C++ Migration Guide (document 819-3689)"><a id="id560146"/><p><span class="title"><em> | |
9751 | - <a class="link" href="http://download.oracle.com/docs/cd/E19422-01/819-3689/index.html"> | |
9752 | + </em>. </span></p></div><div class="biblioentry" title="Sun Studio 11: C++ Migration Guide (document 819-3689)"><a id="id738649"></a><p><span class="title"><em> | |
9753 | + <a class="link" href="http://download.oracle.com/docs/cd/E19422-01/819-3689/index.html" target="_top"> | |
9754 | Sun Studio 11: C++ Migration Guide (document 819-3689) | |
9755 | </a> | |
9756 | - </em>. </span></p></div><div class="biblioentry" title="How to Write Shared Libraries"><a id="id560162"/><p><span class="title"><em> | |
9757 | - <a class="link" href="http://www.akkadia.org/drepper/dsohowto.pdf"> | |
9758 | + </em>. </span></p></div><div class="biblioentry" title="How to Write Shared Libraries"><a id="id738665"></a><p><span class="title"><em> | |
9759 | + <a class="link" href="http://www.akkadia.org/drepper/dsohowto.pdf" target="_top"> | |
9760 | How to Write Shared Libraries | |
9761 | </a> | |
9762 | - </em>. </span><span class="author"><span class="firstname">Ulrich</span> <span class="surname">Drepper</span>. </span></p></div><div class="biblioentry" title="C++ ABI for the ARM Architecture"><a id="id560190"/><p><span class="title"><em> | |
9763 | - <a class="link" href="http://www.arm.com/miscPDFs/8033.pdf"> | |
9764 | + </em>. </span><span class="author"><span class="firstname">Ulrich</span> <span class="surname">Drepper</span>. </span></p></div><div class="biblioentry" title="C++ ABI for the ARM Architecture"><a id="id738693"></a><p><span class="title"><em> | |
9765 | + <a class="link" href="http://www.arm.com/miscPDFs/8033.pdf" target="_top"> | |
9766 | C++ ABI for the ARM Architecture | |
9767 | </a> | |
9768 | - </em>. </span></p></div><div class="biblioentry" title="Dynamic Shared Objects: Survey and Issues"><a id="id560205"/><p><span class="title"><em> | |
9769 | - <a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2006/n1976.html"> | |
9770 | + </em>. </span></p></div><div class="biblioentry" title="Dynamic Shared Objects: Survey and Issues"><a id="id738708"></a><p><span class="title"><em> | |
9771 | + <a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2006/n1976.html" target="_top"> | |
9772 | Dynamic Shared Objects: Survey and Issues | |
9773 | </a> | |
9774 | </em>. </span><span class="subtitle"> | |
9775 | ISO C++ J16/06-0046 | |
9776 | - . </span><span class="author"><span class="firstname">Benjamin</span> <span class="surname">Kosnik</span>. </span></p></div><div class="biblioentry" title="Versioning With Namespaces"><a id="id560233"/><p><span class="title"><em> | |
9777 | - <a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2006/n2013.html"> | |
9778 | + . </span><span class="author"><span class="firstname">Benjamin</span> <span class="surname">Kosnik</span>. </span></p></div><div class="biblioentry" title="Versioning With Namespaces"><a id="id738736"></a><p><span class="title"><em> | |
9779 | + <a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2006/n2013.html" target="_top"> | |
9780 | Versioning With Namespaces | |
9781 | </a> | |
9782 | </em>. </span><span class="subtitle"> | |
9783 | ISO C++ J16/06-0083 | |
9784 | - . </span><span class="author"><span class="firstname">Benjamin</span> <span class="surname">Kosnik</span>. </span></p></div><div class="biblioentry" title="Binary Compatibility of Shared Libraries Implemented in C++ on GNU/Linux Systems"><a id="id560260"/><p><span class="title"><em> | |
9785 | - <a class="link" href="http://syrcose.ispras.ru/2009/files/SYRCoSE2009-CfP.pdf"> | |
9786 | + . </span><span class="author"><span class="firstname">Benjamin</span> <span class="surname">Kosnik</span>. </span></p></div><div class="biblioentry" title="Binary Compatibility of Shared Libraries Implemented in C++ on GNU/Linux Systems"><a id="id738763"></a><p><span class="title"><em> | |
9787 | + <a class="link" href="http://syrcose.ispras.ru/2009/files/SYRCoSE2009-CfP.pdf" target="_top"> | |
9788 | Binary Compatibility of Shared Libraries Implemented in C++ | |
9789 | on GNU/Linux Systems | |
9790 | </a> | |
9791 | </em>. </span><span class="subtitle"> | |
9792 | SYRCoSE 2009 | |
9793 | - . </span><span class="author"><span class="firstname">Pavel</span> <span class="surname">Shved</span>. </span><span class="author"><span class="firstname">Denis</span> <span class="surname">Silakov</span>. </span></p></div></div></div><div class="navfooter"><hr/><table width="100%" summary="Navigation footer"><tr><td align="left"><a accesskey="p" href="test.html">Prev</a> </td><td align="center"><a accesskey="u" href="appendix_porting.html">Up</a></td><td align="right"> <a accesskey="n" href="api.html">Next</a></td></tr><tr><td align="left" valign="top">Test </td><td align="center"><a accesskey="h" href="../index.html">Home</a></td><td align="right" valign="top"> API Evolution and Deprecation History</td></tr></table></div></body></html> | |
9794 | + . </span><span class="author"><span class="firstname">Pavel</span> <span class="surname">Shved</span>. </span><span class="author"><span class="firstname">Denis</span> <span class="surname">Silakov</span>. </span></p></div></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="test.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="appendix_porting.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="api.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Test </td><td width="20%" align="center"><a accesskey="h" href="../index.html">Home</a></td><td width="40%" align="right" valign="top"> API Evolution and Deprecation History</td></tr></table></div></body></html> | |
9795 | Index: libstdc++-v3/doc/html/manual/intro.html | |
9796 | =================================================================== | |
9f95000d AM |
9797 | --- libstdc++-v3/doc/html/manual/intro.html (.../tags/gcc_4_7_2_release) (wersja 192468) |
9798 | +++ libstdc++-v3/doc/html/manual/intro.html (.../branches/gcc-4_7-branch) (wersja 192468) | |
5a87b929 AM |
9799 | @@ -1,9 +1,9 @@ |
9800 | <?xml version="1.0" encoding="UTF-8" standalone="no"?> | |
9801 | -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> | |
9802 | -<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Part I. Introduction</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1"/><meta name="keywords" content=" ISO C++ , library "/><meta name="keywords" content=" ISO C++ , runtime , library "/><link rel="home" href="../index.html" title="The GNU C++ Library"/><link rel="up" href="index.html" title="The GNU C++ Library Manual"/><link rel="prev" href="index.html" title="The GNU C++ Library Manual"/><link rel="next" href="status.html" title="Chapter 1. Status"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Part I. | |
9803 | +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> | |
9804 | +<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Part I. Introduction</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1" /><meta name="keywords" content=" ISO C++ , library " /><meta name="keywords" content=" ISO C++ , runtime , library " /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="index.html" title="The GNU C++ Library Manual" /><link rel="prev" href="index.html" title="The GNU C++ Library Manual" /><link rel="next" href="status.html" title="Chapter 1. Status" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Part I. | |
9805 | Introduction | |
9806 | ||
9807 | -</th></tr><tr><td align="left"><a accesskey="p" href="index.html">Prev</a> </td><th width="60%" align="center">The GNU C++ Library Manual</th><td align="right"> <a accesskey="n" href="status.html">Next</a></td></tr></table><hr/></div><div class="part" title="Part I. Introduction"><div class="titlepage"><div><div><h1 class="title"><a id="manual.intro"/>Part I. | |
9808 | +</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="index.html">Prev</a> </td><th width="60%" align="center">The GNU C++ Library Manual</th><td width="20%" align="right"> <a accesskey="n" href="status.html">Next</a></td></tr></table><hr /></div><div class="part" title="Part I. Introduction"><div class="titlepage"><div><div><h1 class="title"><a id="manual.intro"></a>Part I. | |
9809 | Introduction | |
9810 | - <a id="id388470" class="indexterm"/> | |
9811 | -</h1></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl><dt><span class="chapter"><a href="status.html">1. Status</a></span></dt><dd><dl><dt><span class="section"><a href="status.html#manual.intro.status.iso">Implementation Status</a></span></dt><dd><dl><dt><span class="section"><a href="status.html#status.iso.1998">C++ 1998/2003</a></span></dt><dd><dl><dt><span class="section"><a href="status.html#iso.1998.status">Implementation Status</a></span></dt><dt><span class="section"><a href="status.html#iso.1998.specific">Implementation Specific Behavior</a></span></dt></dl></dd><dt><span class="section"><a href="status.html#status.iso.2011">C++ 2011</a></span></dt><dd><dl><dt><span class="section"><a href="status.html#iso.2011.specific">Implementation Specific Behavior</a></span></dt></dl></dd><dt><span class="section"><a href="status.html#status.iso.tr1">C++ TR1</a></span></dt><dd><dl><dt><span class="section"><a href="status.html#iso.tr1.specific">Implementation Specific Behavior</a></span></dt></dl></dd><dt><span class="section"><a href="status.html#status.iso.tr24733">C++ TR 24733</a></span></dt></dl></dd><dt><span class="section"><a href="license.html">License</a></span></dt><dd><dl><dt><span class="section"><a href="license.html#manual.intro.status.license.gpl">The Code: GPL</a></span></dt><dt><span class="section"><a href="license.html#manual.intro.status.license.fdl">The Documentation: GPL, FDL</a></span></dt></dl></dd><dt><span class="section"><a href="bugs.html">Bugs</a></span></dt><dd><dl><dt><span class="section"><a href="bugs.html#manual.intro.status.bugs.impl">Implementation Bugs</a></span></dt><dt><span class="section"><a href="bugs.html#manual.intro.status.bugs.iso">Standard Bugs</a></span></dt></dl></dd></dl></dd><dt><span class="chapter"><a href="setup.html">2. Setup</a></span></dt><dd><dl><dt><span class="section"><a href="setup.html#manual.intro.setup.prereq">Prerequisites</a></span></dt><dt><span class="section"><a href="configure.html">Configure</a></span></dt><dt><span class="section"><a href="make.html">Make</a></span></dt></dl></dd><dt><span class="chapter"><a href="using.html">3. Using</a></span></dt><dd><dl><dt><span class="section"><a href="using.html#manual.intro.using.flags">Command Options</a></span></dt><dt><span class="section"><a href="using_headers.html">Headers</a></span></dt><dd><dl><dt><span class="section"><a href="using_headers.html#manual.intro.using.headers.all">Header Files</a></span></dt><dt><span class="section"><a href="using_headers.html#manual.intro.using.headers.mixing">Mixing Headers</a></span></dt><dt><span class="section"><a href="using_headers.html#manual.intro.using.headers.cheaders">The C Headers and <code class="code">namespace std</code></a></span></dt><dt><span class="section"><a href="using_headers.html#manual.intro.using.headers.pre">Precompiled Headers</a></span></dt></dl></dd><dt><span class="section"><a href="using_macros.html">Macros</a></span></dt><dt><span class="section"><a href="using_namespaces.html">Namespaces</a></span></dt><dd><dl><dt><span class="section"><a href="using_namespaces.html#manual.intro.using.namespaces.all">Available Namespaces</a></span></dt><dt><span class="section"><a href="using_namespaces.html#manual.intro.using.namespaces.std">namespace std</a></span></dt><dt><span class="section"><a href="using_namespaces.html#manual.intro.using.namespaces.comp">Using Namespace Composition</a></span></dt></dl></dd><dt><span class="section"><a href="using_dynamic_or_shared.html">Linking</a></span></dt><dd><dl><dt><span class="section"><a href="using_dynamic_or_shared.html#manual.intro.using.linkage.freestanding">Almost Nothing</a></span></dt><dt><span class="section"><a href="using_dynamic_or_shared.html#manual.intro.using.linkage.dynamic">Finding Dynamic or Shared Libraries</a></span></dt></dl></dd><dt><span class="section"><a href="using_concurrency.html">Concurrency</a></span></dt><dd><dl><dt><span class="section"><a href="using_concurrency.html#manual.intro.using.concurrency.prereq">Prerequisites</a></span></dt><dt><span class="section"><a href="using_concurrency.html#manual.intro.using.concurrency.thread_safety">Thread Safety</a></span></dt><dt><span class="section"><a href="using_concurrency.html#manual.intro.using.concurrency.atomics">Atomics</a></span></dt><dt><span class="section"><a href="using_concurrency.html#manual.intro.using.concurrency.io">IO</a></span></dt><dd><dl><dt><span class="section"><a href="using_concurrency.html#concurrency.io.structure">Structure</a></span></dt><dt><span class="section"><a href="using_concurrency.html#concurrency.io.defaults">Defaults</a></span></dt><dt><span class="section"><a href="using_concurrency.html#concurrency.io.future">Future</a></span></dt><dt><span class="section"><a href="using_concurrency.html#concurrency.io.alt">Alternatives</a></span></dt></dl></dd><dt><span class="section"><a href="using_concurrency.html#manual.intro.using.concurrency.containers">Containers</a></span></dt></dl></dd><dt><span class="section"><a href="using_exceptions.html">Exceptions</a></span></dt><dd><dl><dt><span class="section"><a href="using_exceptions.html#intro.using.exception.safety">Exception Safety</a></span></dt><dt><span class="section"><a href="using_exceptions.html#intro.using.exception.propagating">Exception Neutrality</a></span></dt><dt><span class="section"><a href="using_exceptions.html#intro.using.exception.no">Doing without</a></span></dt><dt><span class="section"><a href="using_exceptions.html#intro.using.exception.compat">Compatibility</a></span></dt><dd><dl><dt><span class="section"><a href="using_exceptions.html#using.exception.compat.c">With <code class="literal">C</code></a></span></dt><dt><span class="section"><a href="using_exceptions.html#using.exception.compat.posix">With <code class="literal">POSIX</code> thread cancellation</a></span></dt></dl></dd></dl></dd><dt><span class="section"><a href="debug.html">Debugging Support</a></span></dt><dd><dl><dt><span class="section"><a href="debug.html#debug.compiler">Using <span class="command"><strong>g++</strong></span></a></span></dt><dt><span class="section"><a href="debug.html#debug.req">Debug Versions of Library Binary Files</a></span></dt><dt><span class="section"><a href="debug.html#debug.memory">Memory Leak Hunting</a></span></dt><dt><span class="section"><a href="debug.html#debug.races">Data Race Hunting</a></span></dt><dt><span class="section"><a href="debug.html#debug.gdb">Using <span class="command"><strong>gdb</strong></span></a></span></dt><dt><span class="section"><a href="debug.html#debug.exceptions">Tracking uncaught exceptions</a></span></dt><dt><span class="section"><a href="debug.html#debug.debug_mode">Debug Mode</a></span></dt><dt><span class="section"><a href="debug.html#debug.compile_time_checks">Compile Time Checking</a></span></dt><dt><span class="section"><a href="debug.html#debug.profile_mode">Profile-based Performance Analysis</a></span></dt></dl></dd></dl></dd></dl></div></div><div class="navfooter"><hr/><table width="100%" summary="Navigation footer"><tr><td align="left"><a accesskey="p" href="index.html">Prev</a> </td><td align="center"><a accesskey="u" href="index.html">Up</a></td><td align="right"> <a accesskey="n" href="status.html">Next</a></td></tr><tr><td align="left" valign="top">The GNU C++ Library Manual </td><td align="center"><a accesskey="h" href="../index.html">Home</a></td><td align="right" valign="top"> Chapter 1. Status</td></tr></table></div></body></html> | |
9812 | + <a id="id576366" class="indexterm"></a> | |
9813 | +</h1></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl><dt><span class="chapter"><a href="status.html">1. Status</a></span></dt><dd><dl><dt><span class="section"><a href="status.html#manual.intro.status.iso">Implementation Status</a></span></dt><dd><dl><dt><span class="section"><a href="status.html#status.iso.1998">C++ 1998/2003</a></span></dt><dd><dl><dt><span class="section"><a href="status.html#iso.1998.status">Implementation Status</a></span></dt><dt><span class="section"><a href="status.html#iso.1998.specific">Implementation Specific Behavior</a></span></dt></dl></dd><dt><span class="section"><a href="status.html#status.iso.2011">C++ 2011</a></span></dt><dd><dl><dt><span class="section"><a href="status.html#iso.2011.specific">Implementation Specific Behavior</a></span></dt></dl></dd><dt><span class="section"><a href="status.html#status.iso.tr1">C++ TR1</a></span></dt><dd><dl><dt><span class="section"><a href="status.html#iso.tr1.specific">Implementation Specific Behavior</a></span></dt></dl></dd><dt><span class="section"><a href="status.html#status.iso.tr24733">C++ TR 24733</a></span></dt></dl></dd><dt><span class="section"><a href="license.html">License</a></span></dt><dd><dl><dt><span class="section"><a href="license.html#manual.intro.status.license.gpl">The Code: GPL</a></span></dt><dt><span class="section"><a href="license.html#manual.intro.status.license.fdl">The Documentation: GPL, FDL</a></span></dt></dl></dd><dt><span class="section"><a href="bugs.html">Bugs</a></span></dt><dd><dl><dt><span class="section"><a href="bugs.html#manual.intro.status.bugs.impl">Implementation Bugs</a></span></dt><dt><span class="section"><a href="bugs.html#manual.intro.status.bugs.iso">Standard Bugs</a></span></dt></dl></dd></dl></dd><dt><span class="chapter"><a href="setup.html">2. Setup</a></span></dt><dd><dl><dt><span class="section"><a href="setup.html#manual.intro.setup.prereq">Prerequisites</a></span></dt><dt><span class="section"><a href="configure.html">Configure</a></span></dt><dt><span class="section"><a href="make.html">Make</a></span></dt></dl></dd><dt><span class="chapter"><a href="using.html">3. Using</a></span></dt><dd><dl><dt><span class="section"><a href="using.html#manual.intro.using.flags">Command Options</a></span></dt><dt><span class="section"><a href="using_headers.html">Headers</a></span></dt><dd><dl><dt><span class="section"><a href="using_headers.html#manual.intro.using.headers.all">Header Files</a></span></dt><dt><span class="section"><a href="using_headers.html#manual.intro.using.headers.mixing">Mixing Headers</a></span></dt><dt><span class="section"><a href="using_headers.html#manual.intro.using.headers.cheaders">The C Headers and <code class="code">namespace std</code></a></span></dt><dt><span class="section"><a href="using_headers.html#manual.intro.using.headers.pre">Precompiled Headers</a></span></dt></dl></dd><dt><span class="section"><a href="using_macros.html">Macros</a></span></dt><dt><span class="section"><a href="using_namespaces.html">Namespaces</a></span></dt><dd><dl><dt><span class="section"><a href="using_namespaces.html#manual.intro.using.namespaces.all">Available Namespaces</a></span></dt><dt><span class="section"><a href="using_namespaces.html#manual.intro.using.namespaces.std">namespace std</a></span></dt><dt><span class="section"><a href="using_namespaces.html#manual.intro.using.namespaces.comp">Using Namespace Composition</a></span></dt></dl></dd><dt><span class="section"><a href="using_dynamic_or_shared.html">Linking</a></span></dt><dd><dl><dt><span class="section"><a href="using_dynamic_or_shared.html#manual.intro.using.linkage.freestanding">Almost Nothing</a></span></dt><dt><span class="section"><a href="using_dynamic_or_shared.html#manual.intro.using.linkage.dynamic">Finding Dynamic or Shared Libraries</a></span></dt></dl></dd><dt><span class="section"><a href="using_concurrency.html">Concurrency</a></span></dt><dd><dl><dt><span class="section"><a href="using_concurrency.html#manual.intro.using.concurrency.prereq">Prerequisites</a></span></dt><dt><span class="section"><a href="using_concurrency.html#manual.intro.using.concurrency.thread_safety">Thread Safety</a></span></dt><dt><span class="section"><a href="using_concurrency.html#manual.intro.using.concurrency.atomics">Atomics</a></span></dt><dt><span class="section"><a href="using_concurrency.html#manual.intro.using.concurrency.io">IO</a></span></dt><dd><dl><dt><span class="section"><a href="using_concurrency.html#concurrency.io.structure">Structure</a></span></dt><dt><span class="section"><a href="using_concurrency.html#concurrency.io.defaults">Defaults</a></span></dt><dt><span class="section"><a href="using_concurrency.html#concurrency.io.future">Future</a></span></dt><dt><span class="section"><a href="using_concurrency.html#concurrency.io.alt">Alternatives</a></span></dt></dl></dd><dt><span class="section"><a href="using_concurrency.html#manual.intro.using.concurrency.containers">Containers</a></span></dt></dl></dd><dt><span class="section"><a href="using_exceptions.html">Exceptions</a></span></dt><dd><dl><dt><span class="section"><a href="using_exceptions.html#intro.using.exception.safety">Exception Safety</a></span></dt><dt><span class="section"><a href="using_exceptions.html#intro.using.exception.propagating">Exception Neutrality</a></span></dt><dt><span class="section"><a href="using_exceptions.html#intro.using.exception.no">Doing without</a></span></dt><dt><span class="section"><a href="using_exceptions.html#intro.using.exception.compat">Compatibility</a></span></dt><dd><dl><dt><span class="section"><a href="using_exceptions.html#using.exception.compat.c">With <code class="literal">C</code></a></span></dt><dt><span class="section"><a href="using_exceptions.html#using.exception.compat.posix">With <code class="literal">POSIX</code> thread cancellation</a></span></dt></dl></dd></dl></dd><dt><span class="section"><a href="debug.html">Debugging Support</a></span></dt><dd><dl><dt><span class="section"><a href="debug.html#debug.compiler">Using <span class="command"><strong>g++</strong></span></a></span></dt><dt><span class="section"><a href="debug.html#debug.req">Debug Versions of Library Binary Files</a></span></dt><dt><span class="section"><a href="debug.html#debug.memory">Memory Leak Hunting</a></span></dt><dt><span class="section"><a href="debug.html#debug.races">Data Race Hunting</a></span></dt><dt><span class="section"><a href="debug.html#debug.gdb">Using <span class="command"><strong>gdb</strong></span></a></span></dt><dt><span class="section"><a href="debug.html#debug.exceptions">Tracking uncaught exceptions</a></span></dt><dt><span class="section"><a href="debug.html#debug.debug_mode">Debug Mode</a></span></dt><dt><span class="section"><a href="debug.html#debug.compile_time_checks">Compile Time Checking</a></span></dt><dt><span class="section"><a href="debug.html#debug.profile_mode">Profile-based Performance Analysis</a></span></dt></dl></dd></dl></dd></dl></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="index.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="index.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="status.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">The GNU C++ Library Manual </td><td width="20%" align="center"><a accesskey="h" href="../index.html">Home</a></td><td width="40%" align="right" valign="top"> Chapter 1. Status</td></tr></table></div></body></html> | |
9814 | Index: libstdc++-v3/doc/html/manual/atomics.html | |
9815 | =================================================================== | |
9f95000d AM |
9816 | --- libstdc++-v3/doc/html/manual/atomics.html (.../tags/gcc_4_7_2_release) (wersja 192468) |
9817 | +++ libstdc++-v3/doc/html/manual/atomics.html (.../branches/gcc-4_7-branch) (wersja 192468) | |
5a87b929 AM |
9818 | @@ -1,16 +1,16 @@ |
9819 | <?xml version="1.0" encoding="UTF-8" standalone="no"?> | |
9820 | -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> | |
9821 | -<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Chapter 14. Atomics</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1"/><meta name="keywords" content=" ISO C++ , library , atomic "/><meta name="keywords" content=" ISO C++ , runtime , library "/><link rel="home" href="../index.html" title="The GNU C++ Library"/><link rel="up" href="bk01pt02.html" title="Part II. Standard Contents"/><link rel="prev" href="io_and_c.html" title="Interacting with C"/><link rel="next" href="concurrency.html" title="Chapter 15. Concurrency"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 14. | |
9822 | +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> | |
9823 | +<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Chapter 14. Atomics</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1" /><meta name="keywords" content=" ISO C++ , library , atomic " /><meta name="keywords" content=" ISO C++ , runtime , library " /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="bk01pt02.html" title="Part II. Standard Contents" /><link rel="prev" href="io_and_c.html" title="Interacting with C" /><link rel="next" href="concurrency.html" title="Chapter 15. Concurrency" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 14. | |
9824 | Atomics | |
9825 | ||
9826 | -</th></tr><tr><td align="left"><a accesskey="p" href="io_and_c.html">Prev</a> </td><th width="60%" align="center">Part II. | |
9827 | +</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="io_and_c.html">Prev</a> </td><th width="60%" align="center">Part II. | |
9828 | Standard Contents | |
9829 | - </th><td align="right"> <a accesskey="n" href="concurrency.html">Next</a></td></tr></table><hr/></div><div class="chapter" title="Chapter 14. Atomics"><div class="titlepage"><div><div><h2 class="title"><a id="std.atomics"/>Chapter 14. | |
9830 | + </th><td width="20%" align="right"> <a accesskey="n" href="concurrency.html">Next</a></td></tr></table><hr /></div><div class="chapter" title="Chapter 14. Atomics"><div class="titlepage"><div><div><h2 class="title"><a id="std.atomics"></a>Chapter 14. | |
9831 | Atomics | |
9832 | - <a id="id506046" class="indexterm"/> | |
9833 | + <a id="id684532" class="indexterm"></a> | |
9834 | </h2></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl><dt><span class="section"><a href="atomics.html#std.atomics.api">API Reference</a></span></dt></dl></div><p> | |
9835 | Facilities for atomic operations. | |
9836 | -</p><div class="section" title="API Reference"><div class="titlepage"><div><div><h2 class="title"><a id="std.atomics.api"/>API Reference</h2></div></div></div><p> | |
9837 | +</p><div class="section" title="API Reference"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="std.atomics.api"></a>API Reference</h2></div></div></div><p> | |
9838 | All items are declared in the standard header | |
9839 | file <code class="filename">atomic</code>. | |
9840 | </p><p> | |
9841 | @@ -25,7 +25,7 @@ | |
9842 | <code class="classname">atomic<int></code>. | |
9843 | </p><p> | |
9844 | Full API details. | |
9845 | - </p></div></div><div class="navfooter"><hr/><table width="100%" summary="Navigation footer"><tr><td align="left"><a accesskey="p" href="io_and_c.html">Prev</a> </td><td align="center"><a accesskey="u" href="bk01pt02.html">Up</a></td><td align="right"> <a accesskey="n" href="concurrency.html">Next</a></td></tr><tr><td align="left" valign="top">Interacting with C </td><td align="center"><a accesskey="h" href="../index.html">Home</a></td><td align="right" valign="top"> Chapter 15. | |
9846 | + </p></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="io_and_c.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="bk01pt02.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="concurrency.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Interacting with C </td><td width="20%" align="center"><a accesskey="h" href="../index.html">Home</a></td><td width="40%" align="right" valign="top"> Chapter 15. | |
9847 | Concurrency | |
9848 | ||
9849 | </td></tr></table></div></body></html> | |
9850 | Index: libstdc++-v3/doc/html/manual/internals.html | |
9851 | =================================================================== | |
9f95000d AM |
9852 | --- libstdc++-v3/doc/html/manual/internals.html (.../tags/gcc_4_7_2_release) (wersja 192468) |
9853 | +++ libstdc++-v3/doc/html/manual/internals.html (.../branches/gcc-4_7-branch) (wersja 192468) | |
5a87b929 AM |
9854 | @@ -1,9 +1,9 @@ |
9855 | <?xml version="1.0" encoding="UTF-8" standalone="no"?> | |
9856 | -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> | |
9857 | -<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Porting to New Hardware or Operating Systems</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1"/><meta name="keywords" content=" ISO C++ , internals "/><meta name="keywords" content=" ISO C++ , library "/><meta name="keywords" content=" ISO C++ , runtime , library "/><link rel="home" href="../index.html" title="The GNU C++ Library"/><link rel="up" href="appendix_porting.html" title="Appendix B. Porting and Maintenance"/><link rel="prev" href="documentation_hacking.html" title="Writing and Generating Documentation"/><link rel="next" href="test.html" title="Test"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Porting to New Hardware or Operating Systems</th></tr><tr><td align="left"><a accesskey="p" href="documentation_hacking.html">Prev</a> </td><th width="60%" align="center">Appendix B. | |
9858 | +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> | |
9859 | +<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Porting to New Hardware or Operating Systems</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1" /><meta name="keywords" content=" ISO C++ , internals " /><meta name="keywords" content=" ISO C++ , library " /><meta name="keywords" content=" ISO C++ , runtime , library " /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="appendix_porting.html" title="Appendix B. Porting and Maintenance" /><link rel="prev" href="documentation_hacking.html" title="Writing and Generating Documentation" /><link rel="next" href="test.html" title="Test" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Porting to New Hardware or Operating Systems</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="documentation_hacking.html">Prev</a> </td><th width="60%" align="center">Appendix B. | |
9860 | Porting and Maintenance | |
9861 | ||
9862 | -</th><td align="right"> <a accesskey="n" href="test.html">Next</a></td></tr></table><hr/></div><div class="section" title="Porting to New Hardware or Operating Systems"><div class="titlepage"><div><div><h2 class="title"><a id="appendix.porting.internals"/>Porting to New Hardware or Operating Systems</h2></div></div></div><p> | |
9863 | +</th><td width="20%" align="right"> <a accesskey="n" href="test.html">Next</a></td></tr></table><hr /></div><div class="section" title="Porting to New Hardware or Operating Systems"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="appendix.porting.internals"></a>Porting to New Hardware or Operating Systems</h2></div></div></div><p> | |
9864 | </p><p>This document explains how to port libstdc++ (the GNU C++ library) to | |
9865 | a new target. | |
9866 | </p><p>In order to make the GNU C++ library (libstdc++) work with a new | |
9867 | @@ -20,7 +20,7 @@ | |
9868 | library, but you should at least try some minimal test cases. | |
9869 | </p><p>(Note that what we think of as a "target," the library refers to as | |
9870 | a "host." The comment at the top of <code class="code">configure.ac</code> explains why.) | |
9871 | - </p><div class="section" title="Operating System"><div class="titlepage"><div><div><h3 class="title"><a id="internals.os"/>Operating System</h3></div></div></div><p>If you are porting to a new operating system (as opposed to a new chip | |
9872 | + </p><div class="section" title="Operating System"><div class="titlepage"><div><div><h3 class="title"><a id="internals.os"></a>Operating System</h3></div></div></div><p>If you are porting to a new operating system (as opposed to a new chip | |
9873 | using an existing operating system), you will need to create a new | |
9874 | directory in the <code class="code">config/os</code> hierarchy. For example, the IRIX | |
9875 | configuration files are all in <code class="code">config/os/irix</code>. There is no set | |
9876 | @@ -99,7 +99,7 @@ | |
9877 | #endif | |
9878 | </pre><p>We recommend copying an existing <code class="code">os_defines.h</code> to use as a | |
9879 | starting point. | |
9880 | - </p></div><div class="section" title="CPU"><div class="titlepage"><div><div><h3 class="title"><a id="internals.cpu"/>CPU</h3></div></div></div><p>If you are porting to a new chip (as opposed to a new operating system | |
9881 | + </p></div><div class="section" title="CPU"><div class="titlepage"><div><div><h3 class="title"><a id="internals.cpu"></a>CPU</h3></div></div></div><p>If you are porting to a new chip (as opposed to a new operating system | |
9882 | running on an existing chip), you will need to create a new directory in the | |
9883 | <code class="code">config/cpu</code> hierarchy. Much like the <a class="link" href="internals.html#internals.os" title="Operating System">Operating system</a> setup, | |
9884 | there are no strict rules on how to organize the CPU configuration | |
9885 | @@ -117,7 +117,7 @@ | |
9886 | </p><p>The <code class="code">cpu_include_dir</code> sets default locations for the files controlling | |
9887 | <a class="link" href="internals.html#internals.thread_safety" title="Thread Safety">Thread safety</a> and <a class="link" href="internals.html#internals.numeric_limits" title="Numeric Limits">Numeric limits</a>, if the defaults are not | |
9888 | appropriate for your chip. | |
9889 | - </p></div><div class="section" title="Character Types"><div class="titlepage"><div><div><h3 class="title"><a id="internals.char_types"/>Character Types</h3></div></div></div><p>The library requires that you provide three header files to implement | |
9890 | + </p></div><div class="section" title="Character Types"><div class="titlepage"><div><div><h3 class="title"><a id="internals.char_types"></a>Character Types</h3></div></div></div><p>The library requires that you provide three header files to implement | |
9891 | character classification, analogous to that provided by the C libraries | |
9892 | <code class="code"><ctype.h></code> header. You can model these on the files provided in | |
9893 | <code class="code">config/os/generic</code>. However, these files will almost | |
9894 | @@ -276,7 +276,7 @@ | |
9895 | ++__low; | |
9896 | return __low; | |
9897 | } | |
9898 | -</pre></div><div class="section" title="Thread Safety"><div class="titlepage"><div><div><h3 class="title"><a id="internals.thread_safety"/>Thread Safety</h3></div></div></div><p>The C++ library string functionality requires a couple of atomic | |
9899 | +</pre></div><div class="section" title="Thread Safety"><div class="titlepage"><div><div><h3 class="title"><a id="internals.thread_safety"></a>Thread Safety</h3></div></div></div><p>The C++ library string functionality requires a couple of atomic | |
9900 | operations to provide thread-safety. If you don't take any special | |
9901 | action, the library will use stub versions of these functions that are | |
9902 | not thread-safe. They will work fine, unless your applications are | |
9903 | @@ -331,7 +331,7 @@ | |
9904 | { | |
9905 | *__mem += __val; | |
9906 | } | |
9907 | -</pre></div><div class="section" title="Numeric Limits"><div class="titlepage"><div><div><h3 class="title"><a id="internals.numeric_limits"/>Numeric Limits</h3></div></div></div><p>The C++ library requires information about the fundamental data types, | |
9908 | +</pre></div><div class="section" title="Numeric Limits"><div class="titlepage"><div><div><h3 class="title"><a id="internals.numeric_limits"></a>Numeric Limits</h3></div></div></div><p>The C++ library requires information about the fundamental data types, | |
9909 | such as the minimum and maximum representable values of each type. | |
9910 | You can define each of these values individually, but it is usually | |
9911 | easiest just to indicate how many bits are used in each of the data | |
9912 | @@ -343,7 +343,7 @@ | |
9913 | do not have to provide the same definitions for each operating system. | |
9914 | To take that approach, create a new file called <code class="code">cpu_limits.h</code> in | |
9915 | your CPU configuration directory (see <a class="link" href="internals.html#internals.cpu" title="CPU">CPU</a>). | |
9916 | - </p></div><div class="section" title="Libtool"><div class="titlepage"><div><div><h3 class="title"><a id="internals.libtool"/>Libtool</h3></div></div></div><p>The C++ library is compiled, archived and linked with libtool. | |
9917 | + </p></div><div class="section" title="Libtool"><div class="titlepage"><div><div><h3 class="title"><a id="internals.libtool"></a>Libtool</h3></div></div></div><p>The C++ library is compiled, archived and linked with libtool. | |
9918 | Explaining the full workings of libtool is beyond the scope of this | |
9919 | document, but there are a few, particular bits that are necessary for | |
9920 | porting. | |
9921 | @@ -365,4 +365,4 @@ | |
9922 | <code class="code">ltcf-c.sh</code> in the top-level directory. Find the switch statement | |
9923 | that sets <code class="code">archive_cmds</code>. Here, adjust the setting for your | |
9924 | operating system. | |
9925 | - </p></div></div><div class="navfooter"><hr/><table width="100%" summary="Navigation footer"><tr><td align="left"><a accesskey="p" href="documentation_hacking.html">Prev</a> </td><td align="center"><a accesskey="u" href="appendix_porting.html">Up</a></td><td align="right"> <a accesskey="n" href="test.html">Next</a></td></tr><tr><td align="left" valign="top">Writing and Generating Documentation </td><td align="center"><a accesskey="h" href="../index.html">Home</a></td><td align="right" valign="top"> Test</td></tr></table></div></body></html> | |
9926 | + </p></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="documentation_hacking.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="appendix_porting.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="test.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Writing and Generating Documentation </td><td width="20%" align="center"><a accesskey="h" href="../index.html">Home</a></td><td width="40%" align="right" valign="top"> Test</td></tr></table></div></body></html> | |
9927 | Index: libstdc++-v3/doc/html/manual/policy_data_structures_using.html | |
9928 | =================================================================== | |
9f95000d AM |
9929 | --- libstdc++-v3/doc/html/manual/policy_data_structures_using.html (.../tags/gcc_4_7_2_release) (wersja 192468) |
9930 | +++ libstdc++-v3/doc/html/manual/policy_data_structures_using.html (.../branches/gcc-4_7-branch) (wersja 192468) | |
5a87b929 AM |
9931 | @@ -1,6 +1,6 @@ |
9932 | <?xml version="1.0" encoding="UTF-8" standalone="no"?> | |
9933 | -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> | |
9934 | -<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Using</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1"/><meta name="keywords" content=" 	ISO C++ , 	policy , 	container , 	data , 	structure , 	associated , 	tree , 	trie , 	hash , 	metaprogramming "/><meta name="keywords" content=" ISO C++ , library "/><meta name="keywords" content=" ISO C++ , runtime , library "/><link rel="home" href="../index.html" title="The GNU C++ Library"/><link rel="up" href="policy_data_structures.html" title="Chapter 22. Policy-Based Data Structures"/><link rel="prev" href="policy_data_structures.html" title="Chapter 22. Policy-Based Data Structures"/><link rel="next" href="policy_data_structures_design.html" title="Design"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Using</th></tr><tr><td align="left"><a accesskey="p" href="policy_data_structures.html">Prev</a> </td><th width="60%" align="center">Chapter 22. Policy-Based Data Structures</th><td align="right"> <a accesskey="n" href="policy_data_structures_design.html">Next</a></td></tr></table><hr/></div><div class="section" title="Using"><div class="titlepage"><div><div><h2 class="title"><a id="containers.pbds.using"/>Using</h2></div></div></div><div class="section" title="Prerequisites"><div class="titlepage"><div><div><h3 class="title"><a id="pbds.using.prereq"/>Prerequisites</h3></div></div></div><p>The library contains only header files, and does not require any | |
9935 | +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> | |
9936 | +<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Using</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1" /><meta name="keywords" content=" 	ISO C++ , 	policy , 	container , 	data , 	structure , 	associated , 	tree , 	trie , 	hash , 	metaprogramming " /><meta name="keywords" content=" ISO C++ , library " /><meta name="keywords" content=" ISO C++ , runtime , library " /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="policy_data_structures.html" title="Chapter 22. Policy-Based Data Structures" /><link rel="prev" href="policy_data_structures.html" title="Chapter 22. Policy-Based Data Structures" /><link rel="next" href="policy_data_structures_design.html" title="Design" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Using</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="policy_data_structures.html">Prev</a> </td><th width="60%" align="center">Chapter 22. Policy-Based Data Structures</th><td width="20%" align="right"> <a accesskey="n" href="policy_data_structures_design.html">Next</a></td></tr></table><hr /></div><div class="section" title="Using"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="containers.pbds.using"></a>Using</h2></div></div></div><div class="section" title="Prerequisites"><div class="titlepage"><div><div><h3 class="title"><a id="pbds.using.prereq"></a>Prerequisites</h3></div></div></div><p>The library contains only header files, and does not require any | |
9937 | other libraries except the standard C++ library . All classes are | |
9938 | defined in namespace <code class="code">__gnu_pbds</code>. The library internally | |
9939 | uses macros beginning with <code class="code">PB_DS</code>, but | |
9940 | @@ -11,11 +11,11 @@ | |
9941 | Further dependencies are necessary to create the visual output | |
9942 | for the performance tests. To create these graphs, an | |
9943 | additional package is needed: <span class="command"><strong>pychart</strong></span>. | |
9944 | - </p></div><div class="section" title="Organization"><div class="titlepage"><div><div><h3 class="title"><a id="pbds.using.organization"/>Organization</h3></div></div></div><p> | |
9945 | + </p></div><div class="section" title="Organization"><div class="titlepage"><div><div><h3 class="title"><a id="pbds.using.organization"></a>Organization</h3></div></div></div><p> | |
9946 | The various data structures are organized as follows. | |
9947 | - </p><div class="itemizedlist"><ul class="itemizedlist"><li class="listitem"><p> | |
9948 | + </p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p> | |
9949 | Branch-Based | |
9950 | - </p><div class="itemizedlist"><ul class="itemizedlist"><li class="listitem"><p> | |
9951 | + </p><div class="itemizedlist"><ul class="itemizedlist" type="circle"><li class="listitem"><p> | |
9952 | <code class="classname">basic_branch</code> | |
9953 | is an abstract base class for branched-based | |
9954 | associative-containers | |
9955 | @@ -29,7 +29,7 @@ | |
9956 | associative-containers | |
9957 | </p></li></ul></div></li><li class="listitem"><p> | |
9958 | Hash-Based | |
9959 | - </p><div class="itemizedlist"><ul class="itemizedlist"><li class="listitem"><p> | |
9960 | + </p><div class="itemizedlist"><ul class="itemizedlist" type="circle"><li class="listitem"><p> | |
9961 | <code class="classname">basic_hash_table</code> | |
9962 | is an abstract base class for hash-based | |
9963 | associative-containers | |
9964 | @@ -43,12 +43,12 @@ | |
9965 | associative-containers | |
9966 | </p></li></ul></div></li><li class="listitem"><p> | |
9967 | List-Based | |
9968 | - </p><div class="itemizedlist"><ul class="itemizedlist"><li class="listitem"><p> | |
9969 | + </p><div class="itemizedlist"><ul class="itemizedlist" type="circle"><li class="listitem"><p> | |
9970 | <code class="classname">list_update</code> | |
9971 | list-based update-policy associative container | |
9972 | </p></li></ul></div></li><li class="listitem"><p> | |
9973 | Heap-Based | |
9974 | - </p><div class="itemizedlist"><ul class="itemizedlist"><li class="listitem"><p> | |
9975 | + </p><div class="itemizedlist"><ul class="itemizedlist" type="circle"><li class="listitem"><p> | |
9976 | <code class="classname">priority_queue</code> | |
9977 | A priority queue. | |
9978 | </p></li></ul></div></li></ul></div><p> | |
9979 | @@ -62,7 +62,7 @@ | |
9980 | In addition, there are the following diagnostics classes, | |
9981 | used to report errors specific to this library's data | |
9982 | structures. | |
9983 | - </p><div class="figure"><a id="id517828"/><p class="title"><strong>Figure 22.7. Exception Hierarchy</strong></p><div class="figure-contents"><div class="mediaobject" style="text-align: center"><img src="../images/pbds_exception_hierarchy.png" style="text-align: middle" alt="Exception Hierarchy"/></div></div></div><br class="figure-break"/></div><div class="section" title="Tutorial"><div class="titlepage"><div><div><h3 class="title"><a id="pbds.using.tutorial"/>Tutorial</h3></div></div></div><div class="section" title="Basic Use"><div class="titlepage"><div><div><h4 class="title"><a id="pbds.using.tutorial.basic"/>Basic Use</h4></div></div></div><p> | |
9984 | + </p><div class="figure"><a id="id696315"></a><p class="title"><strong>Figure 22.7. Exception Hierarchy</strong></p><div class="figure-contents"><div class="mediaobject" align="center"><img src="../images/pbds_exception_hierarchy.png" align="middle" alt="Exception Hierarchy" /></div></div></div><br class="figure-break" /></div><div class="section" title="Tutorial"><div class="titlepage"><div><div><h3 class="title"><a id="pbds.using.tutorial"></a>Tutorial</h3></div></div></div><div class="section" title="Basic Use"><div class="titlepage"><div><div><h4 class="title"><a id="pbds.using.tutorial.basic"></a>Basic Use</h4></div></div></div><p> | |
9985 | For the most part, the policy-based containers containers in | |
9986 | namespace <code class="literal">__gnu_pbds</code> have the same interface as | |
9987 | the equivalent containers in the standard C++ library, except for | |
9988 | @@ -186,7 +186,7 @@ | |
9989 | </pre><p> | |
9990 | so all hash-based associative containers inherit the same | |
9991 | hash-functor accessor methods. | |
9992 | - </p></div><div class="section" title="Configuring via Template Parameters"><div class="titlepage"><div><div><h4 class="title"><a id="pbds.using.tutorial.configuring"/> | |
9993 | + </p></div><div class="section" title="Configuring via Template Parameters"><div class="titlepage"><div><div><h4 class="title"><a id="pbds.using.tutorial.configuring"></a> | |
9994 | Configuring via Template Parameters | |
9995 | </h4></div></div></div><p> | |
9996 | In general, each of this library's containers is | |
9997 | @@ -240,9 +240,9 @@ | |
9998 | by one of them.</p><p>Note that as opposed to the | |
9999 | <code class="classname">std::priority_queue</code>, | |
10000 | <code class="classname">__gnu_pbds::priority_queue</code> is not a | |
10001 | - sequence-adapter; it is a regular container.</p></div><div class="section" title="Querying Container Attributes"><div class="titlepage"><div><div><h4 class="title"><a id="pbds.using.tutorial.traits"/> | |
10002 | + sequence-adapter; it is a regular container.</p></div><div class="section" title="Querying Container Attributes"><div class="titlepage"><div><div><h4 class="title"><a id="pbds.using.tutorial.traits"></a> | |
10003 | Querying Container Attributes | |
10004 | - </h4></div></div></div><p/><p>A containers underlying data structure | |
10005 | + </h4></div></div></div><p></p><p>A containers underlying data structure | |
10006 | affect their performance; Unfortunately, they can also affect | |
10007 | their interface. When manipulating generically associative | |
10008 | containers, it is often useful to be able to statically | |
10009 | @@ -278,9 +278,9 @@ | |
10010 | </pre><p>is the container's invalidation guarantee. Invalidation | |
10011 | guarantees are especially important regarding priority queues, | |
10012 | since in this library's design, iterators are practically the | |
10013 | - only way to manipulate them.</p></div><div class="section" title="Point and Range Iteration"><div class="titlepage"><div><div><h4 class="title"><a id="pbds.using.tutorial.point_range_iteration"/> | |
10014 | + only way to manipulate them.</p></div><div class="section" title="Point and Range Iteration"><div class="titlepage"><div><div><h4 class="title"><a id="pbds.using.tutorial.point_range_iteration"></a> | |
10015 | Point and Range Iteration | |
10016 | - </h4></div></div></div><p/><p>This library differentiates between two types of methods | |
10017 | + </h4></div></div></div><p></p><p>This library differentiates between two types of methods | |
10018 | and iterators: point-type, and range-type. For example, | |
10019 | <code class="function">find</code> and <code class="function">insert</code> are point-type methods, since | |
10020 | they each deal with a specific element; their returned | |
10021 | @@ -377,11 +377,11 @@ | |
10022 | </pre><p> | |
10023 | gives one of three pre-determined types that answer this | |
10024 | query. | |
10025 | - </p></div></div><div class="section" title="Examples"><div class="titlepage"><div><div><h3 class="title"><a id="pbds.using.examples"/>Examples</h3></div></div></div><p> | |
10026 | + </p></div></div><div class="section" title="Examples"><div class="titlepage"><div><div><h3 class="title"><a id="pbds.using.examples"></a>Examples</h3></div></div></div><p> | |
10027 | Additional code examples are provided in the source | |
10028 | distribution, as part of the regression and performance | |
10029 | testsuite. | |
10030 | - </p><div class="section" title="Intermediate Use"><div class="titlepage"><div><div><h4 class="title"><a id="pbds.using.examples.basic"/>Intermediate Use</h4></div></div></div><div class="itemizedlist"><ul class="itemizedlist"><li class="listitem"><p> | |
10031 | + </p><div class="section" title="Intermediate Use"><div class="titlepage"><div><div><h4 class="title"><a id="pbds.using.examples.basic"></a>Intermediate Use</h4></div></div></div><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p> | |
10032 | Basic use of maps: | |
10033 | <code class="filename">basic_map.cc</code> | |
10034 | </p></li><li class="listitem"><p> | |
10035 | @@ -405,7 +405,7 @@ | |
10036 | </p></li><li class="listitem"><p> | |
10037 | Conditionally erasing values from a priority queue: | |
10038 | <code class="filename">priority_queue_erase_if.cc</code> | |
10039 | - </p></li></ul></div></div><div class="section" title="Querying with container_traits"><div class="titlepage"><div><div><h4 class="title"><a id="pbds.using.examples.query"/>Querying with <code class="classname">container_traits</code> </h4></div></div></div><div class="itemizedlist"><ul class="itemizedlist"><li class="listitem"><p> | |
10040 | + </p></li></ul></div></div><div class="section" title="Querying with container_traits"><div class="titlepage"><div><div><h4 class="title"><a id="pbds.using.examples.query"></a>Querying with <code class="classname">container_traits</code> </h4></div></div></div><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p> | |
10041 | Using <code class="classname">container_traits</code> to query | |
10042 | about underlying data structure behavior: | |
10043 | <code class="filename">assoc_container_traits.cc</code> | |
10044 | @@ -416,7 +416,7 @@ | |
10045 | Using <code class="classname">container_traits</code> | |
10046 | to query about underlying data structure behavior: | |
10047 | <code class="filename">priority_queue_container_traits.cc</code> | |
10048 | - </p></li></ul></div></div><div class="section" title="By Container Method"><div class="titlepage"><div><div><h4 class="title"><a id="pbds.using.examples.container"/>By Container Method</h4></div></div></div><p/><div class="section" title="Hash-Based"><div class="titlepage"><div><div><h5 class="title"><a id="pbds.using.examples.container.hash"/>Hash-Based</h5></div></div></div><div class="section" title="size Related"><div class="titlepage"><div><div><h6 class="title"><a id="pbds.using.examples.container.hash.resize"/>size Related</h6></div></div></div><div class="itemizedlist"><ul class="itemizedlist"><li class="listitem"><p> | |
10049 | + </p></li></ul></div></div><div class="section" title="By Container Method"><div class="titlepage"><div><div><h4 class="title"><a id="pbds.using.examples.container"></a>By Container Method</h4></div></div></div><p></p><div class="section" title="Hash-Based"><div class="titlepage"><div><div><h5 class="title"><a id="pbds.using.examples.container.hash"></a>Hash-Based</h5></div></div></div><div class="section" title="size Related"><div class="titlepage"><div><div><h6 class="title"><a id="pbds.using.examples.container.hash.resize"></a>size Related</h6></div></div></div><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p> | |
10050 | Setting the initial size of a hash-based container | |
10051 | object: | |
10052 | <code class="filename">hash_initial_size.cc</code> | |
10053 | @@ -434,7 +434,7 @@ | |
10054 | </p></li><li class="listitem"><p> | |
10055 | Changing the load factors of a hash-based container | |
10056 | object: <code class="filename">hash_load_set_change.cc</code> | |
10057 | - </p></li></ul></div></div><div class="section" title="Hashing Function Related"><div class="titlepage"><div><div><h6 class="title"><a id="pbds.using.examples.container.hash.hashor"/>Hashing Function Related</h6></div></div></div><p/><div class="itemizedlist"><ul class="itemizedlist"><li class="listitem"><p> | |
10058 | + </p></li></ul></div></div><div class="section" title="Hashing Function Related"><div class="titlepage"><div><div><h6 class="title"><a id="pbds.using.examples.container.hash.hashor"></a>Hashing Function Related</h6></div></div></div><p></p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p> | |
10059 | Using a modulo range-hashing function for the case of an | |
10060 | unknown skewed key distribution: | |
10061 | <code class="filename">hash_mod.cc</code> | |
10062 | @@ -448,7 +448,7 @@ | |
10063 | </p></li><li class="listitem"><p> | |
10064 | Writing a ranged-hash functor: | |
10065 | <code class="filename">ranged_hash.cc</code> | |
10066 | - </p></li></ul></div></div></div><div class="section" title="Branch-Based"><div class="titlepage"><div><div><h5 class="title"><a id="pbds.using.examples.container.branch"/>Branch-Based</h5></div></div></div><div class="section" title="split or join Related"><div class="titlepage"><div><div><h6 class="title"><a id="pbds.using.examples.container.branch.split"/>split or join Related</h6></div></div></div><div class="itemizedlist"><ul class="itemizedlist"><li class="listitem"><p> | |
10067 | + </p></li></ul></div></div></div><div class="section" title="Branch-Based"><div class="titlepage"><div><div><h5 class="title"><a id="pbds.using.examples.container.branch"></a>Branch-Based</h5></div></div></div><div class="section" title="split or join Related"><div class="titlepage"><div><div><h6 class="title"><a id="pbds.using.examples.container.branch.split"></a>split or join Related</h6></div></div></div><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p> | |
10068 | Joining two tree-based container objects: | |
10069 | <code class="filename">tree_join.cc</code> | |
10070 | </p></li><li class="listitem"><p> | |
10071 | @@ -458,21 +458,21 @@ | |
10072 | Order statistics while joining two tree-based container | |
10073 | objects: | |
10074 | <code class="filename">tree_order_statistics_join.cc</code> | |
10075 | - </p></li></ul></div></div><div class="section" title="Node Invariants"><div class="titlepage"><div><div><h6 class="title"><a id="pbds.using.examples.container.branch.invariants"/>Node Invariants</h6></div></div></div><div class="itemizedlist"><ul class="itemizedlist"><li class="listitem"><p> | |
10076 | + </p></li></ul></div></div><div class="section" title="Node Invariants"><div class="titlepage"><div><div><h6 class="title"><a id="pbds.using.examples.container.branch.invariants"></a>Node Invariants</h6></div></div></div><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p> | |
10077 | Using trees for order statistics: | |
10078 | <code class="filename">tree_order_statistics.cc</code> | |
10079 | </p></li><li class="listitem"><p> | |
10080 | Augmenting trees to support operations on line | |
10081 | intervals: | |
10082 | <code class="filename">tree_intervals.cc</code> | |
10083 | - </p></li></ul></div></div><div class="section" title="trie"><div class="titlepage"><div><div><h6 class="title"><a id="pbds.using.examples.container.branch.trie"/>trie</h6></div></div></div><div class="itemizedlist"><ul class="itemizedlist"><li class="listitem"><p> | |
10084 | + </p></li></ul></div></div><div class="section" title="trie"><div class="titlepage"><div><div><h6 class="title"><a id="pbds.using.examples.container.branch.trie"></a>trie</h6></div></div></div><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p> | |
10085 | Using a PATRICIA trie for DNA strings: | |
10086 | <code class="filename">trie_dna.cc</code> | |
10087 | </p></li><li class="listitem"><p> | |
10088 | Using a PATRICIA | |
10089 | trie for finding all entries whose key matches a given prefix: | |
10090 | <code class="filename">trie_prefix_search.cc</code> | |
10091 | - </p></li></ul></div></div></div><div class="section" title="Priority Queues"><div class="titlepage"><div><div><h5 class="title"><a id="pbds.using.examples.container.priority_queue"/>Priority Queues</h5></div></div></div><div class="itemizedlist"><ul class="itemizedlist"><li class="listitem"><p> | |
10092 | + </p></li></ul></div></div></div><div class="section" title="Priority Queues"><div class="titlepage"><div><div><h5 class="title"><a id="pbds.using.examples.container.priority_queue"></a>Priority Queues</h5></div></div></div><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p> | |
10093 | Cross referencing an associative container and a priority | |
10094 | queue: <code class="filename">priority_queue_xref.cc</code> | |
10095 | </p></li><li class="listitem"><p> | |
10096 | @@ -480,4 +480,4 @@ | |
10097 | very simple version of Dijkstra's shortest path | |
10098 | algorithm: | |
10099 | <code class="filename">priority_queue_dijkstra.cc</code> | |
10100 | - </p></li></ul></div></div></div></div></div><div class="navfooter"><hr/><table width="100%" summary="Navigation footer"><tr><td align="left"><a accesskey="p" href="policy_data_structures.html">Prev</a> </td><td align="center"><a accesskey="u" href="policy_data_structures.html">Up</a></td><td align="right"> <a accesskey="n" href="policy_data_structures_design.html">Next</a></td></tr><tr><td align="left" valign="top">Chapter 22. Policy-Based Data Structures </td><td align="center"><a accesskey="h" href="../index.html">Home</a></td><td align="right" valign="top"> Design</td></tr></table></div></body></html> | |
10101 | + </p></li></ul></div></div></div></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="policy_data_structures.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="policy_data_structures.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="policy_data_structures_design.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Chapter 22. Policy-Based Data Structures </td><td width="20%" align="center"><a accesskey="h" href="../index.html">Home</a></td><td width="40%" align="right" valign="top"> Design</td></tr></table></div></body></html> | |
10102 | Index: libstdc++-v3/doc/html/manual/bugs.html | |
10103 | =================================================================== | |
9f95000d AM |
10104 | --- libstdc++-v3/doc/html/manual/bugs.html (.../tags/gcc_4_7_2_release) (wersja 192468) |
10105 | +++ libstdc++-v3/doc/html/manual/bugs.html (.../branches/gcc-4_7-branch) (wersja 192468) | |
5a87b929 AM |
10106 | @@ -1,10 +1,10 @@ |
10107 | <?xml version="1.0" encoding="UTF-8" standalone="no"?> | |
10108 | -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> | |
10109 | -<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Bugs</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1"/><meta name="keywords" content=" ISO C++ , library "/><meta name="keywords" content=" ISO C++ , runtime , library "/><link rel="home" href="../index.html" title="The GNU C++ Library"/><link rel="up" href="status.html" title="Chapter 1. Status"/><link rel="prev" href="license.html" title="License"/><link rel="next" href="setup.html" title="Chapter 2. Setup"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Bugs</th></tr><tr><td align="left"><a accesskey="p" href="license.html">Prev</a> </td><th width="60%" align="center">Chapter 1. Status</th><td align="right"> <a accesskey="n" href="setup.html">Next</a></td></tr></table><hr/></div><div class="section" title="Bugs"><div class="titlepage"><div><div><h2 class="title"><a id="manual.intro.status.bugs"/>Bugs</h2></div></div></div><div class="section" title="Implementation Bugs"><div class="titlepage"><div><div><h3 class="title"><a id="manual.intro.status.bugs.impl"/>Implementation Bugs</h3></div></div></div><p> | |
10110 | +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> | |
10111 | +<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Bugs</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1" /><meta name="keywords" content=" ISO C++ , library " /><meta name="keywords" content=" ISO C++ , runtime , library " /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="status.html" title="Chapter 1. Status" /><link rel="prev" href="license.html" title="License" /><link rel="next" href="setup.html" title="Chapter 2. Setup" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Bugs</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="license.html">Prev</a> </td><th width="60%" align="center">Chapter 1. Status</th><td width="20%" align="right"> <a accesskey="n" href="setup.html">Next</a></td></tr></table><hr /></div><div class="section" title="Bugs"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="manual.intro.status.bugs"></a>Bugs</h2></div></div></div><div class="section" title="Implementation Bugs"><div class="titlepage"><div><div><h3 class="title"><a id="manual.intro.status.bugs.impl"></a>Implementation Bugs</h3></div></div></div><p> | |
10112 | Information on known bugs, details on efforts to fix them, and | |
10113 | - fixed bugs are all available as part of the <a class="link" href="http://gcc.gnu.org/bugs/">GCC bug tracking system</a>, | |
10114 | + fixed bugs are all available as part of the <a class="link" href="http://gcc.gnu.org/bugs/" target="_top">GCC bug tracking system</a>, | |
10115 | with the category set to <code class="literal">libstdc++</code>. | |
10116 | - </p></div><div class="section" title="Standard Bugs"><div class="titlepage"><div><div><h3 class="title"><a id="manual.intro.status.bugs.iso"/>Standard Bugs</h3></div></div></div><p> | |
10117 | + </p></div><div class="section" title="Standard Bugs"><div class="titlepage"><div><div><h3 class="title"><a id="manual.intro.status.bugs.iso"></a>Standard Bugs</h3></div></div></div><p> | |
10118 | Everybody's got issues. Even the C++ Standard Library. | |
10119 | </p><p> | |
10120 | The Library Working Group, or LWG, is the ISO subcommittee responsible | |
10121 | @@ -15,9 +15,9 @@ | |
10122 | Here are the issues which have resulted in code changes to the library. | |
10123 | The links are to the specific defect reports from a <span class="emphasis"><em>partial | |
10124 | copy</em></span> of the Issues List. You can read the full version online | |
10125 | - at the <a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/">ISO C++ | |
10126 | + at the <a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/" target="_top">ISO C++ | |
10127 | Committee homepage</a>, linked to on the | |
10128 | - <a class="link" href="http://gcc.gnu.org/readings.html">GCC "Readings" | |
10129 | + <a class="link" href="http://gcc.gnu.org/readings.html" target="_top">GCC "Readings" | |
10130 | page</a>. If | |
10131 | you spend a lot of time reading the issues, we recommend downloading | |
10132 | the ZIP file and reading them locally. | |
10133 | @@ -34,319 +34,319 @@ | |
10134 | and src directories for appearances of | |
10135 | <code class="constant">_GLIBCXX_RESOLVE_LIB_DEFECTS</code> for examples | |
10136 | of style. Note that we usually do not make changes to the | |
10137 | - code until an issue has reached <a class="link" href="../ext/lwg-active.html#DR">DR</a> status. | |
10138 | - </p><div class="variablelist"><dl><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#5">5</a>: | |
10139 | + code until an issue has reached <a class="link" href="../ext/lwg-active.html#DR" target="_top">DR</a> status. | |
10140 | + </p><div class="variablelist"><dl><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#5" target="_top">5</a>: | |
10141 | <span class="emphasis"><em>string::compare specification questionable</em></span> | |
10142 | </span></dt><dd><p>This should be two overloaded functions rather than a single function. | |
10143 | - </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#17">17</a>: | |
10144 | + </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#17" target="_top">17</a>: | |
10145 | <span class="emphasis"><em>Bad bool parsing</em></span> | |
10146 | </span></dt><dd><p>Apparently extracting Boolean values was messed up... | |
10147 | - </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#19">19</a>: | |
10148 | + </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#19" target="_top">19</a>: | |
10149 | <span class="emphasis"><em>"Noconv" definition too vague</em></span> | |
10150 | </span></dt><dd><p>If <code class="code">codecvt::do_in</code> returns <code class="code">noconv</code> there are | |
10151 | no changes to the values in <code class="code">[to, to_limit)</code>. | |
10152 | - </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#22">22</a>: | |
10153 | + </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#22" target="_top">22</a>: | |
10154 | <span class="emphasis"><em>Member open vs flags</em></span> | |
10155 | </span></dt><dd><p>Re-opening a file stream does <span class="emphasis"><em>not</em></span> clear the state flags. | |
10156 | - </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#23">23</a>: | |
10157 | + </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#23" target="_top">23</a>: | |
10158 | <span class="emphasis"><em>Num_get overflow result</em></span> | |
10159 | </span></dt><dd><p>Implement the proposed resolution. | |
10160 | - </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#25">25</a>: | |
10161 | + </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#25" target="_top">25</a>: | |
10162 | <span class="emphasis"><em>String operator<< uses width() value wrong</em></span> | |
10163 | </span></dt><dd><p>Padding issues. | |
10164 | - </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#48">48</a>: | |
10165 | + </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#48" target="_top">48</a>: | |
10166 | <span class="emphasis"><em>Use of non-existent exception constructor</em></span> | |
10167 | </span></dt><dd><p>An instance of <code class="code">ios_base::failure</code> is constructed instead. | |
10168 | - </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#49">49</a>: | |
10169 | + </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#49" target="_top">49</a>: | |
10170 | <span class="emphasis"><em>Underspecification of ios_base::sync_with_stdio</em></span> | |
10171 | </span></dt><dd><p>The return type is the <span class="emphasis"><em>previous</em></span> state of synchronization. | |
10172 | - </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#50">50</a>: | |
10173 | + </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#50" target="_top">50</a>: | |
10174 | <span class="emphasis"><em>Copy constructor and assignment operator of ios_base</em></span> | |
10175 | </span></dt><dd><p>These members functions are declared <code class="code">private</code> and are | |
10176 | thus inaccessible. Specifying the correct semantics of | |
10177 | "copying stream state" was deemed too complicated. | |
10178 | - </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#60">60</a>: | |
10179 | + </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#60" target="_top">60</a>: | |
10180 | <span class="emphasis"><em>What is a formatted input function?</em></span> | |
10181 | </span></dt><dd><p>This DR made many widespread changes to <code class="code">basic_istream</code> | |
10182 | and <code class="code">basic_ostream</code> all of which have been implemented. | |
10183 | - </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#63">63</a>: | |
10184 | + </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#63" target="_top">63</a>: | |
10185 | <span class="emphasis"><em>Exception-handling policy for unformatted output</em></span> | |
10186 | </span></dt><dd><p>Make the policy consistent with that of formatted input, unformatted | |
10187 | input, and formatted output. | |
10188 | - </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#68">68</a>: | |
10189 | + </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#68" target="_top">68</a>: | |
10190 | <span class="emphasis"><em>Extractors for char* should store null at end</em></span> | |
10191 | </span></dt><dd><p>And they do now. An editing glitch in the last item in the list of | |
10192 | [27.6.1.2.3]/7. | |
10193 | - </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#74">74</a>: | |
10194 | + </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#74" target="_top">74</a>: | |
10195 | <span class="emphasis"><em>Garbled text for codecvt::do_max_length</em></span> | |
10196 | </span></dt><dd><p>The text of the standard was gibberish. Typos gone rampant. | |
10197 | - </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#75">75</a>: | |
10198 | + </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#75" target="_top">75</a>: | |
10199 | <span class="emphasis"><em>Contradiction in codecvt::length's argument types</em></span> | |
10200 | </span></dt><dd><p>Change the first parameter to <code class="code">stateT&</code> and implement | |
10201 | the new effects paragraph. | |
10202 | - </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#83">83</a>: | |
10203 | + </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#83" target="_top">83</a>: | |
10204 | <span class="emphasis"><em>string::npos vs. string::max_size()</em></span> | |
10205 | </span></dt><dd><p>Safety checks on the size of the string should test against | |
10206 | <code class="code">max_size()</code> rather than <code class="code">npos</code>. | |
10207 | - </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#90">90</a>: | |
10208 | + </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#90" target="_top">90</a>: | |
10209 | <span class="emphasis"><em>Incorrect description of operator>> for strings</em></span> | |
10210 | </span></dt><dd><p>The effect contain <code class="code">isspace(c,getloc())</code> which must be | |
10211 | replaced by <code class="code">isspace(c,is.getloc())</code>. | |
10212 | - </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#91">91</a>: | |
10213 | + </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#91" target="_top">91</a>: | |
10214 | <span class="emphasis"><em>Description of operator>> and getline() for string<> | |
10215 | might cause endless loop</em></span> | |
10216 | </span></dt><dd><p>They behave as a formatted input function and as an unformatted | |
10217 | input function, respectively (except that <code class="code">getline</code> is | |
10218 | not required to set <code class="code">gcount</code>). | |
10219 | - </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#103">103</a>: | |
10220 | + </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#103" target="_top">103</a>: | |
10221 | <span class="emphasis"><em>set::iterator is required to be modifiable, but this allows | |
10222 | modification of keys.</em></span> | |
10223 | </span></dt><dd><p>For associative containers where the value type is the same as | |
10224 | the key type, both <code class="code">iterator</code> and <code class="code">const_iterator | |
10225 | </code> are constant iterators. | |
10226 | - </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#109">109</a>: | |
10227 | + </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#109" target="_top">109</a>: | |
10228 | <span class="emphasis"><em>Missing binders for non-const sequence elements</em></span> | |
10229 | </span></dt><dd><p>The <code class="code">binder1st</code> and <code class="code">binder2nd</code> didn't have an | |
10230 | <code class="code">operator()</code> taking a non-const parameter. | |
10231 | - </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#110">110</a>: | |
10232 | + </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#110" target="_top">110</a>: | |
10233 | <span class="emphasis"><em>istreambuf_iterator::equal not const</em></span> | |
10234 | </span></dt><dd><p>This was not a const member function. Note that the DR says to | |
10235 | replace the function with a const one; we have instead provided an | |
10236 | overloaded version with identical contents. | |
10237 | - </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#117">117</a>: | |
10238 | + </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#117" target="_top">117</a>: | |
10239 | <span class="emphasis"><em>basic_ostream uses nonexistent num_put member functions</em></span> | |
10240 | </span></dt><dd><p><code class="code">num_put::put()</code> was overloaded on the wrong types. | |
10241 | - </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#118">118</a>: | |
10242 | + </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#118" target="_top">118</a>: | |
10243 | <span class="emphasis"><em>basic_istream uses nonexistent num_get member functions</em></span> | |
10244 | </span></dt><dd><p>Same as 117, but for <code class="code">num_get::get()</code>. | |
10245 | - </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#129">129</a>: | |
10246 | + </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#129" target="_top">129</a>: | |
10247 | <span class="emphasis"><em>Need error indication from seekp() and seekg()</em></span> | |
10248 | </span></dt><dd><p>These functions set <code class="code">failbit</code> on error now. | |
10249 | - </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#130">130</a>: | |
10250 | + </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#130" target="_top">130</a>: | |
10251 | <span class="emphasis"><em>Return type of container::erase(iterator) differs for associative containers</em></span> | |
10252 | </span></dt><dd><p>Make member <code class="code">erase</code> return iterator for <code class="code">set</code>, <code class="code">multiset</code>, <code class="code">map</code>, <code class="code">multimap</code>. | |
10253 | - </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#136">136</a>: | |
10254 | + </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#136" target="_top">136</a>: | |
10255 | <span class="emphasis"><em>seekp, seekg setting wrong streams?</em></span> | |
10256 | </span></dt><dd><p><code class="code">seekp</code> should only set the output stream, and | |
10257 | <code class="code">seekg</code> should only set the input stream. | |
10258 | - </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#167">167</a>: | |
10259 | + </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#167" target="_top">167</a>: | |
10260 | <span class="emphasis"><em>Improper use of traits_type::length()</em></span> | |
10261 | </span></dt><dd><p><code class="code">op<<</code> with a <code class="code">const char*</code> was | |
10262 | calculating an incorrect number of characters to write. | |
10263 | - </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#169">169</a>: | |
10264 | + </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#169" target="_top">169</a>: | |
10265 | <span class="emphasis"><em>Bad efficiency of overflow() mandated</em></span> | |
10266 | </span></dt><dd><p>Grow efficiently the internal array object. | |
10267 | - </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#171">171</a>: | |
10268 | + </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#171" target="_top">171</a>: | |
10269 | <span class="emphasis"><em>Strange seekpos() semantics due to joint position</em></span> | |
10270 | </span></dt><dd><p>Quite complex to summarize... | |
10271 | - </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#181">181</a>: | |
10272 | + </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#181" target="_top">181</a>: | |
10273 | <span class="emphasis"><em>make_pair() unintended behavior</em></span> | |
10274 | </span></dt><dd><p>This function used to take its arguments as reference-to-const, now | |
10275 | it copies them (pass by value). | |
10276 | - </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#195">195</a>: | |
10277 | + </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#195" target="_top">195</a>: | |
10278 | <span class="emphasis"><em>Should basic_istream::sentry's constructor ever set eofbit?</em></span> | |
10279 | </span></dt><dd><p>Yes, it can, specifically if EOF is reached while skipping whitespace. | |
10280 | - </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#211">211</a>: | |
10281 | + </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#211" target="_top">211</a>: | |
10282 | <span class="emphasis"><em>operator>>(istream&, string&) doesn't set failbit</em></span> | |
10283 | </span></dt><dd><p>If nothing is extracted into the string, <code class="code">op>></code> now | |
10284 | sets <code class="code">failbit</code> (which can cause an exception, etc., etc.). | |
10285 | - </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#214">214</a>: | |
10286 | + </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#214" target="_top">214</a>: | |
10287 | <span class="emphasis"><em>set::find() missing const overload</em></span> | |
10288 | </span></dt><dd><p>Both <code class="code">set</code> and <code class="code">multiset</code> were missing | |
10289 | overloaded find, lower_bound, upper_bound, and equal_range functions | |
10290 | for const instances. | |
10291 | - </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#231">231</a>: | |
10292 | + </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#231" target="_top">231</a>: | |
10293 | <span class="emphasis"><em>Precision in iostream?</em></span> | |
10294 | </span></dt><dd><p>For conversion from a floating-point type, <code class="code">str.precision()</code> | |
10295 | is specified in the conversion specification. | |
10296 | - </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#233">233</a>: | |
10297 | + </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#233" target="_top">233</a>: | |
10298 | <span class="emphasis"><em>Insertion hints in associative containers</em></span> | |
10299 | </span></dt><dd><p>Implement N1780, first check before then check after, insert as close | |
10300 | to hint as possible. | |
10301 | - </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#235">235</a>: | |
10302 | + </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#235" target="_top">235</a>: | |
10303 | <span class="emphasis"><em>No specification of default ctor for reverse_iterator</em></span> | |
10304 | </span></dt><dd><p>The declaration of <code class="code">reverse_iterator</code> lists a default constructor. | |
10305 | However, no specification is given what this constructor should do. | |
10306 | - </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#241">241</a>: | |
10307 | + </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#241" target="_top">241</a>: | |
10308 | <span class="emphasis"><em>Does unique_copy() require CopyConstructible and Assignable?</em></span> | |
10309 | </span></dt><dd><p>Add a helper for forward_iterator/output_iterator, fix the existing | |
10310 | one for input_iterator/output_iterator to not rely on Assignability. | |
10311 | - </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#243">243</a>: | |
10312 | + </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#243" target="_top">243</a>: | |
10313 | <span class="emphasis"><em>get and getline when sentry reports failure</em></span> | |
10314 | </span></dt><dd><p>Store a null character only if the character array has a non-zero size. | |
10315 | - </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#251">251</a>: | |
10316 | + </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#251" target="_top">251</a>: | |
10317 | <span class="emphasis"><em>basic_stringbuf missing allocator_type</em></span> | |
10318 | </span></dt><dd><p>This nested typedef was originally not specified. | |
10319 | - </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#253">253</a>: | |
10320 | + </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#253" target="_top">253</a>: | |
10321 | <span class="emphasis"><em>valarray helper functions are almost entirely useless</em></span> | |
10322 | </span></dt><dd><p>Make the copy constructor and copy-assignment operator declarations | |
10323 | public in gslice_array, indirect_array, mask_array, slice_array; provide | |
10324 | definitions. | |
10325 | - </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#265">265</a>: | |
10326 | + </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#265" target="_top">265</a>: | |
10327 | <span class="emphasis"><em>std::pair::pair() effects overly restrictive</em></span> | |
10328 | </span></dt><dd><p>The default ctor would build its members from copies of temporaries; | |
10329 | now it simply uses their respective default ctors. | |
10330 | - </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#266">266</a>: | |
10331 | + </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#266" target="_top">266</a>: | |
10332 | <span class="emphasis"><em>bad_exception::~bad_exception() missing Effects clause</em></span> | |
10333 | </span></dt><dd><p>The <code class="code">bad_</code>* classes no longer have destructors (they | |
10334 | are trivial), since no description of them was ever given. | |
10335 | - </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#271">271</a>: | |
10336 | + </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#271" target="_top">271</a>: | |
10337 | <span class="emphasis"><em>basic_iostream missing typedefs</em></span> | |
10338 | </span></dt><dd><p>The typedefs it inherits from its base classes can't be used, since | |
10339 | (for example) <code class="code">basic_iostream<T>::traits_type</code> is ambiguous. | |
10340 | - </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#275">275</a>: | |
10341 | + </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#275" target="_top">275</a>: | |
10342 | <span class="emphasis"><em>Wrong type in num_get::get() overloads</em></span> | |
10343 | </span></dt><dd><p>Similar to 118. | |
10344 | - </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#280">280</a>: | |
10345 | + </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#280" target="_top">280</a>: | |
10346 | <span class="emphasis"><em>Comparison of reverse_iterator to const reverse_iterator</em></span> | |
10347 | </span></dt><dd><p>Add global functions with two template parameters. | |
10348 | (NB: not added for now a templated assignment operator) | |
10349 | - </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#292">292</a>: | |
10350 | + </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#292" target="_top">292</a>: | |
10351 | <span class="emphasis"><em>Effects of a.copyfmt (a)</em></span> | |
10352 | </span></dt><dd><p>If <code class="code">(this == &rhs)</code> do nothing. | |
10353 | - </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#300">300</a>: | |
10354 | + </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#300" target="_top">300</a>: | |
10355 | <span class="emphasis"><em>List::merge() specification incomplete</em></span> | |
10356 | </span></dt><dd><p>If <code class="code">(this == &x)</code> do nothing. | |
10357 | - </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#303">303</a>: | |
10358 | + </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#303" target="_top">303</a>: | |
10359 | <span class="emphasis"><em>Bitset input operator underspecified</em></span> | |
10360 | </span></dt><dd><p>Basically, compare the input character to | |
10361 | <code class="code">is.widen(0)</code> and <code class="code">is.widen(1)</code>. | |
10362 | - </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#305">305</a>: | |
10363 | + </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#305" target="_top">305</a>: | |
10364 | <span class="emphasis"><em>Default behavior of codecvt<wchar_t, char, | |
10365 | mbstate_t>::length()</em></span> | |
10366 | </span></dt><dd><p>Do not specify what <code class="code">codecvt<wchar_t, char, | |
10367 | mbstate_t>::do_length</code> must return. | |
10368 | - </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#328">328</a>: | |
10369 | + </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#328" target="_top">328</a>: | |
10370 | <span class="emphasis"><em>Bad sprintf format modifier in | |
10371 | money_put<>::do_put()</em></span> | |
10372 | </span></dt><dd><p>Change the format string to "%.0Lf". | |
10373 | - </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#365">365</a>: | |
10374 | + </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#365" target="_top">365</a>: | |
10375 | <span class="emphasis"><em>Lack of const-qualification in clause 27</em></span> | |
10376 | </span></dt><dd><p>Add const overloads of <code class="code">is_open</code>. | |
10377 | - </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#387">387</a>: | |
10378 | + </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#387" target="_top">387</a>: | |
10379 | <span class="emphasis"><em>std::complex over-encapsulated</em></span> | |
10380 | </span></dt><dd><p>Add the <code class="code">real(T)</code> and <code class="code">imag(T)</code> | |
10381 | members; in C++11 mode, also adjust the existing | |
10382 | <code class="code">real()</code> and <code class="code">imag()</code> members and | |
10383 | free functions. | |
10384 | - </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#389">389</a>: | |
10385 | + </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#389" target="_top">389</a>: | |
10386 | <span class="emphasis"><em>Const overload of valarray::operator[] returns | |
10387 | by value</em></span> | |
10388 | </span></dt><dd><p>Change it to return a <code class="code">const T&</code>. | |
10389 | - </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#396">396</a>: | |
10390 | + </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#396" target="_top">396</a>: | |
10391 | <span class="emphasis"><em>what are characters zero and one</em></span> | |
10392 | </span></dt><dd><p>Implement the proposed resolution. | |
10393 | - </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#402">402</a>: | |
10394 | + </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#402" target="_top">402</a>: | |
10395 | <span class="emphasis"><em>Wrong new expression in [some_]allocator::construct</em></span> | |
10396 | </span></dt><dd><p>Replace "new" with "::new". | |
10397 | - </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-closed.html#408">408</a>: | |
10398 | + </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-closed.html#408" target="_top">408</a>: | |
10399 | <span class="emphasis"><em> | |
10400 | Is vector<reverse_iterator<char*> > forbidden? | |
10401 | </em></span> | |
10402 | </span></dt><dd><p>Tweak the debug-mode checks in _Safe_iterator. | |
10403 | - </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#409">409</a>: | |
10404 | + </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#409" target="_top">409</a>: | |
10405 | <span class="emphasis"><em>Closing an fstream should clear the error state</em></span> | |
10406 | </span></dt><dd><p>Have <code class="code">open</code> clear the error flags. | |
10407 | - </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-closed.html#431">431</a>: | |
10408 | + </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-closed.html#431" target="_top">431</a>: | |
10409 | <span class="emphasis"><em>Swapping containers with unequal allocators</em></span> | |
10410 | </span></dt><dd><p>Implement Option 3, as per N1599. | |
10411 | - </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#432">432</a>: | |
10412 | + </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#432" target="_top">432</a>: | |
10413 | <span class="emphasis"><em>stringbuf::overflow() makes only one write position | |
10414 | available</em></span> | |
10415 | </span></dt><dd><p>Implement the resolution, beyond DR 169. | |
10416 | - </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#434">434</a>: | |
10417 | + </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#434" target="_top">434</a>: | |
10418 | <span class="emphasis"><em>bitset::to_string() hard to use</em></span> | |
10419 | </span></dt><dd><p>Add three overloads, taking fewer template arguments. | |
10420 | - </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#438">438</a>: | |
10421 | + </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#438" target="_top">438</a>: | |
10422 | <span class="emphasis"><em>Ambiguity in the "do the right thing" clause</em></span> | |
10423 | </span></dt><dd><p>Implement the resolution, basically cast less. | |
10424 | - </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#453">453</a>: | |
10425 | + </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#453" target="_top">453</a>: | |
10426 | <span class="emphasis"><em>basic_stringbuf::seekoff need not always fail for an empty stream</em></span> | |
10427 | </span></dt><dd><p>Don't fail if the next pointer is null and newoff is zero. | |
10428 | - </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#455">455</a>: | |
10429 | + </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#455" target="_top">455</a>: | |
10430 | <span class="emphasis"><em>cerr::tie() and wcerr::tie() are overspecified</em></span> | |
10431 | </span></dt><dd><p>Initialize cerr tied to cout and wcerr tied to wcout. | |
10432 | - </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#464">464</a>: | |
10433 | + </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#464" target="_top">464</a>: | |
10434 | <span class="emphasis"><em>Suggestion for new member functions in standard containers</em></span> | |
10435 | </span></dt><dd><p>Add <code class="code">data()</code> to <code class="code">std::vector</code> and | |
10436 | <code class="code">at(const key_type&)</code> to <code class="code">std::map</code>. | |
10437 | - </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#508">508</a>: | |
10438 | + </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#508" target="_top">508</a>: | |
10439 | <span class="emphasis"><em>Bad parameters for ranlux64_base_01</em></span> | |
10440 | </span></dt><dd><p>Fix the parameters. | |
10441 | - </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-closed.html#512">512</a>: | |
10442 | + </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-closed.html#512" target="_top">512</a>: | |
10443 | <span class="emphasis"><em>Seeding subtract_with_carry_01 from a single unsigned long</em></span> | |
10444 | </span></dt><dd><p>Construct a <code class="code">linear_congruential</code> engine and seed with it. | |
10445 | - </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-closed.html#526">526</a>: | |
10446 | + </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-closed.html#526" target="_top">526</a>: | |
10447 | <span class="emphasis"><em>Is it undefined if a function in the standard changes in | |
10448 | parameters?</em></span> | |
10449 | </span></dt><dd><p>Use &value. | |
10450 | - </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#538">538</a>: | |
10451 | + </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#538" target="_top">538</a>: | |
10452 | <span class="emphasis"><em>241 again: Does unique_copy() require CopyConstructible | |
10453 | and Assignable?</em></span> | |
10454 | </span></dt><dd><p>In case of input_iterator/output_iterator rely on Assignability of | |
10455 | input_iterator' value_type. | |
10456 | - </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#539">539</a>: | |
10457 | + </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#539" target="_top">539</a>: | |
10458 | <span class="emphasis"><em>partial_sum and adjacent_difference should mention | |
10459 | requirements</em></span> | |
10460 | </span></dt><dd><p>We were almost doing the right thing, just use std::move | |
10461 | in adjacent_difference. | |
10462 | - </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#541">541</a>: | |
10463 | + </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#541" target="_top">541</a>: | |
10464 | <span class="emphasis"><em>shared_ptr template assignment and void</em></span> | |
10465 | </span></dt><dd><p>Add an auto_ptr<void> specialization. | |
10466 | - </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#543">543</a>: | |
10467 | + </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#543" target="_top">543</a>: | |
10468 | <span class="emphasis"><em>valarray slice default constructor</em></span> | |
10469 | </span></dt><dd><p>Follow the straightforward proposed resolution. | |
10470 | - </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#550">550</a>: | |
10471 | + </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#550" target="_top">550</a>: | |
10472 | <span class="emphasis"><em>What should the return type of pow(float,int) be?</em></span> | |
10473 | </span></dt><dd><p>In C++11 mode, remove the pow(float,int), etc., signatures. | |
10474 | - </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#586">586</a>: | |
10475 | + </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#586" target="_top">586</a>: | |
10476 | <span class="emphasis"><em>string inserter not a formatted function</em></span> | |
10477 | </span></dt><dd><p>Change it to be a formatted output function (i.e. catch exceptions). | |
10478 | - </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#596">596</a>: | |
10479 | + </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#596" target="_top">596</a>: | |
10480 | <span class="emphasis"><em>27.8.1.3 Table 112 omits "a+" and "a+b" modes</em></span> | |
10481 | </span></dt><dd><p>Add the missing modes to fopen_mode. | |
10482 | - </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#630">630</a>: | |
10483 | + </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#630" target="_top">630</a>: | |
10484 | <span class="emphasis"><em>arrays of valarray</em></span> | |
10485 | </span></dt><dd><p>Implement the simple resolution. | |
10486 | - </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#660">660</a>: | |
10487 | + </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#660" target="_top">660</a>: | |
10488 | <span class="emphasis"><em>Missing bitwise operations</em></span> | |
10489 | </span></dt><dd><p>Add the missing operations. | |
10490 | - </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#691">691</a>: | |
10491 | + </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#691" target="_top">691</a>: | |
10492 | <span class="emphasis"><em>const_local_iterator cbegin, cend missing from TR1</em></span> | |
10493 | </span></dt><dd><p>In C++11 mode add cbegin(size_type) and cend(size_type) | |
10494 | to the unordered containers. | |
10495 | - </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#693">693</a>: | |
10496 | + </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#693" target="_top">693</a>: | |
10497 | <span class="emphasis"><em>std::bitset::all() missing</em></span> | |
10498 | </span></dt><dd><p>Add it, consistently with the discussion. | |
10499 | - </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#695">695</a>: | |
10500 | + </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#695" target="_top">695</a>: | |
10501 | <span class="emphasis"><em>ctype<char>::classic_table() not accessible</em></span> | |
10502 | </span></dt><dd><p>Make the member functions table and classic_table public. | |
10503 | - </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#696">696</a>: | |
10504 | + </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#696" target="_top">696</a>: | |
10505 | <span class="emphasis"><em>istream::operator>>(int&) broken</em></span> | |
10506 | </span></dt><dd><p>Implement the straightforward resolution. | |
10507 | - </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#761">761</a>: | |
10508 | + </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#761" target="_top">761</a>: | |
10509 | <span class="emphasis"><em>unordered_map needs an at() member function</em></span> | |
10510 | </span></dt><dd><p>In C++11 mode, add at() and at() const. | |
10511 | - </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#775">775</a>: | |
10512 | + </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#775" target="_top">775</a>: | |
10513 | <span class="emphasis"><em>Tuple indexing should be unsigned?</em></span> | |
10514 | </span></dt><dd><p>Implement the int -> size_t replacements. | |
10515 | - </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#776">776</a>: | |
10516 | + </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#776" target="_top">776</a>: | |
10517 | <span class="emphasis"><em>Undescribed assign function of std::array</em></span> | |
10518 | </span></dt><dd><p>In C++11 mode, remove assign, add fill. | |
10519 | - </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#781">781</a>: | |
10520 | + </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#781" target="_top">781</a>: | |
10521 | <span class="emphasis"><em>std::complex should add missing C99 functions</em></span> | |
10522 | </span></dt><dd><p>In C++11 mode, add std::proj. | |
10523 | - </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#809">809</a>: | |
10524 | + </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#809" target="_top">809</a>: | |
10525 | <span class="emphasis"><em>std::swap should be overloaded for array types</em></span> | |
10526 | </span></dt><dd><p>Add the overload. | |
10527 | - </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#844">844</a>: | |
10528 | + </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#844" target="_top">844</a>: | |
10529 | <span class="emphasis"><em>complex pow return type is ambiguous</em></span> | |
10530 | </span></dt><dd><p>In C++11 mode, remove the pow(complex<T>, int) signature. | |
10531 | - </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#853">853</a>: | |
10532 | + </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#853" target="_top">853</a>: | |
10533 | <span class="emphasis"><em>to_string needs updating with zero and one</em></span> | |
10534 | </span></dt><dd><p>Update / add the signatures. | |
10535 | - </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#865">865</a>: | |
10536 | + </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#865" target="_top">865</a>: | |
10537 | <span class="emphasis"><em>More algorithms that throw away information</em></span> | |
10538 | </span></dt><dd><p>The traditional HP / SGI return type and value is blessed | |
10539 | by the resolution of the DR. | |
10540 | - </p></dd></dl></div></div></div><div class="navfooter"><hr/><table width="100%" summary="Navigation footer"><tr><td align="left"><a accesskey="p" href="license.html">Prev</a> </td><td align="center"><a accesskey="u" href="status.html">Up</a></td><td align="right"> <a accesskey="n" href="setup.html">Next</a></td></tr><tr><td align="left" valign="top">License </td><td align="center"><a accesskey="h" href="../index.html">Home</a></td><td align="right" valign="top"> Chapter 2. Setup</td></tr></table></div></body></html> | |
10541 | + </p></dd></dl></div></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="license.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="status.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="setup.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">License </td><td width="20%" align="center"><a accesskey="h" href="../index.html">Home</a></td><td width="40%" align="right" valign="top"> Chapter 2. Setup</td></tr></table></div></body></html> | |
10542 | Index: libstdc++-v3/doc/html/manual/bk01pt04.html | |
10543 | =================================================================== | |
9f95000d AM |
10544 | --- libstdc++-v3/doc/html/manual/bk01pt04.html (.../tags/gcc_4_7_2_release) (wersja 192468) |
10545 | +++ libstdc++-v3/doc/html/manual/bk01pt04.html (.../branches/gcc-4_7-branch) (wersja 192468) | |
5a87b929 AM |
10546 | @@ -1,8 +1,8 @@ |
10547 | <?xml version="1.0" encoding="UTF-8" standalone="no"?> | |
10548 | -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> | |
10549 | -<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Part IV. Appendices</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1"/><meta name="keywords" content=" ISO C++ , runtime , library "/><link rel="home" href="../index.html" title="The GNU C++ Library"/><link rel="up" href="index.html" title="The GNU C++ Library Manual"/><link rel="prev" href="bk01pt03ch30s03.html" title="Use"/><link rel="next" href="appendix_contributing.html" title="Appendix A. Contributing"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Part IV. | |
10550 | +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> | |
10551 | +<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Part IV. Appendices</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1" /><meta name="keywords" content=" ISO C++ , runtime , library " /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="index.html" title="The GNU C++ Library Manual" /><link rel="prev" href="bk01pt03ch30s03.html" title="Use" /><link rel="next" href="appendix_contributing.html" title="Appendix A. Contributing" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Part IV. | |
10552 | Appendices | |
10553 | -</th></tr><tr><td align="left"><a accesskey="p" href="bk01pt03ch30s03.html">Prev</a> </td><th width="60%" align="center">The GNU C++ Library Manual</th><td align="right"> <a accesskey="n" href="appendix_contributing.html">Next</a></td></tr></table><hr/></div><div class="part" title="Part IV. Appendices"><div class="titlepage"><div><div><h1 class="title"><a id="appendix"/>Part IV. | |
10554 | +</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="bk01pt03ch30s03.html">Prev</a> </td><th width="60%" align="center">The GNU C++ Library Manual</th><td width="20%" align="right"> <a accesskey="n" href="appendix_contributing.html">Next</a></td></tr></table><hr /></div><div class="part" title="Part IV. Appendices"><div class="titlepage"><div><div><h1 class="title"><a id="appendix"></a>Part IV. | |
10555 | Appendices | |
10556 | </h1></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl><dt><span class="appendix"><a href="appendix_contributing.html">A. | |
10557 | Contributing | |
10558 | @@ -37,7 +37,7 @@ | |
10559 | ||
10560 | </a></span></dt><dt><span class="appendix"><a href="appendix_gpl.html">D. | |
10561 | <acronym class="acronym">GNU</acronym> General Public License version 3 | |
10562 | - </a></span></dt><dt><span class="appendix"><a href="appendix_gfdl.html">E. GNU Free Documentation License</a></span></dt></dl></div></div><div class="navfooter"><hr/><table width="100%" summary="Navigation footer"><tr><td align="left"><a accesskey="p" href="bk01pt03ch30s03.html">Prev</a> </td><td align="center"><a accesskey="u" href="index.html">Up</a></td><td align="right"> <a accesskey="n" href="appendix_contributing.html">Next</a></td></tr><tr><td align="left" valign="top">Use </td><td align="center"><a accesskey="h" href="../index.html">Home</a></td><td align="right" valign="top"> Appendix A. | |
10563 | + </a></span></dt><dt><span class="appendix"><a href="appendix_gfdl.html">E. GNU Free Documentation License</a></span></dt></dl></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="bk01pt03ch30s03.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="index.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="appendix_contributing.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Use </td><td width="20%" align="center"><a accesskey="h" href="../index.html">Home</a></td><td width="40%" align="right" valign="top"> Appendix A. | |
10564 | Contributing | |
10565 | ||
10566 | </td></tr></table></div></body></html> | |
10567 | Index: libstdc++-v3/doc/html/manual/ext_numerics.html | |
10568 | =================================================================== | |
9f95000d AM |
10569 | --- libstdc++-v3/doc/html/manual/ext_numerics.html (.../tags/gcc_4_7_2_release) (wersja 192468) |
10570 | +++ libstdc++-v3/doc/html/manual/ext_numerics.html (.../branches/gcc-4_7-branch) (wersja 192468) | |
5a87b929 AM |
10571 | @@ -1,9 +1,9 @@ |
10572 | <?xml version="1.0" encoding="UTF-8" standalone="no"?> | |
10573 | -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> | |
10574 | -<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Chapter 26. Numerics</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1"/><meta name="keywords" content=" ISO C++ , library "/><meta name="keywords" content=" ISO C++ , runtime , library "/><link rel="home" href="../index.html" title="The GNU C++ Library"/><link rel="up" href="extensions.html" title="Part III. Extensions"/><link rel="prev" href="ext_algorithms.html" title="Chapter 25. Algorithms"/><link rel="next" href="ext_iterators.html" title="Chapter 27. Iterators"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 26. Numerics</th></tr><tr><td align="left"><a accesskey="p" href="ext_algorithms.html">Prev</a> </td><th width="60%" align="center">Part III. | |
10575 | +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> | |
10576 | +<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Chapter 26. Numerics</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1" /><meta name="keywords" content=" ISO C++ , library " /><meta name="keywords" content=" ISO C++ , runtime , library " /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="extensions.html" title="Part III. Extensions" /><link rel="prev" href="ext_algorithms.html" title="Chapter 25. Algorithms" /><link rel="next" href="ext_iterators.html" title="Chapter 27. Iterators" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 26. Numerics</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ext_algorithms.html">Prev</a> </td><th width="60%" align="center">Part III. | |
10577 | Extensions | |
10578 | ||
10579 | -</th><td align="right"> <a accesskey="n" href="ext_iterators.html">Next</a></td></tr></table><hr/></div><div class="chapter" title="Chapter 26. Numerics"><div class="titlepage"><div><div><h2 class="title"><a id="manual.ext.numerics"/>Chapter 26. Numerics</h2></div></div></div><p>26.4, the generalized numeric operations such as <code class="code">accumulate</code>, | |
10580 | +</th><td width="20%" align="right"> <a accesskey="n" href="ext_iterators.html">Next</a></td></tr></table><hr /></div><div class="chapter" title="Chapter 26. Numerics"><div class="titlepage"><div><div><h2 class="title"><a id="manual.ext.numerics"></a>Chapter 26. Numerics</h2></div></div></div><p>26.4, the generalized numeric operations such as <code class="code">accumulate</code>, | |
10581 | are extended with the following functions: | |
10582 | </p><pre class="programlisting"> | |
10583 | power (x, n); | |
10584 | @@ -15,10 +15,10 @@ | |
10585 | The operation functor must be associative. | |
10586 | </p><p>The <code class="code">iota</code> function wins the award for Extension With the | |
10587 | Coolest Name (the name comes from Ken Iverson's APL language.) As | |
10588 | - described in the <a class="link" href="http://www.sgi.com/tech/stl/iota.html">SGI | |
10589 | + described in the <a class="link" href="http://www.sgi.com/tech/stl/iota.html" target="_top">SGI | |
10590 | documentation</a>, it "assigns sequentially increasing values to a range. | |
10591 | That is, it assigns <code class="code">value</code> to <code class="code">*first</code>, | |
10592 | <code class="code">value + 1</code> to<code class="code"> *(first + 1)</code> and so on." | |
10593 | </p><pre class="programlisting"> | |
10594 | void iota(_ForwardIter first, _ForwardIter last, _Tp value);</pre><p>The <code class="code">iota</code> function is included in the ISO C++ 2011 standard. | |
10595 | -</p></div><div class="navfooter"><hr/><table width="100%" summary="Navigation footer"><tr><td align="left"><a accesskey="p" href="ext_algorithms.html">Prev</a> </td><td align="center"><a accesskey="u" href="extensions.html">Up</a></td><td align="right"> <a accesskey="n" href="ext_iterators.html">Next</a></td></tr><tr><td align="left" valign="top">Chapter 25. Algorithms </td><td align="center"><a accesskey="h" href="../index.html">Home</a></td><td align="right" valign="top"> Chapter 27. Iterators</td></tr></table></div></body></html> | |
10596 | +</p></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="ext_algorithms.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="extensions.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="ext_iterators.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Chapter 25. Algorithms </td><td width="20%" align="center"><a accesskey="h" href="../index.html">Home</a></td><td width="40%" align="right" valign="top"> Chapter 27. Iterators</td></tr></table></div></body></html> | |
10597 | Index: libstdc++-v3/doc/html/manual/bk01pt03ch20s02.html | |
10598 | =================================================================== | |
9f95000d AM |
10599 | --- libstdc++-v3/doc/html/manual/bk01pt03ch20s02.html (.../tags/gcc_4_7_2_release) (wersja 192468) |
10600 | +++ libstdc++-v3/doc/html/manual/bk01pt03ch20s02.html (.../branches/gcc-4_7-branch) (wersja 192468) | |
5a87b929 AM |
10601 | @@ -1,6 +1,6 @@ |
10602 | <?xml version="1.0" encoding="UTF-8" standalone="no"?> | |
10603 | -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> | |
10604 | -<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Design Issues</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1"/><meta name="keywords" content=" ISO C++ , allocator "/><meta name="keywords" content=" ISO C++ , library "/><meta name="keywords" content=" ISO C++ , runtime , library "/><link rel="home" href="../index.html" title="The GNU C++ Library"/><link rel="up" href="mt_allocator.html" title="Chapter 20. The mt_allocator"/><link rel="prev" href="mt_allocator.html" title="Chapter 20. The mt_allocator"/><link rel="next" href="bk01pt03ch20s03.html" title="Implementation"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Design Issues</th></tr><tr><td align="left"><a accesskey="p" href="mt_allocator.html">Prev</a> </td><th width="60%" align="center">Chapter 20. The mt_allocator</th><td align="right"> <a accesskey="n" href="bk01pt03ch20s03.html">Next</a></td></tr></table><hr/></div><div class="section" title="Design Issues"><div class="titlepage"><div><div><h2 class="title"><a id="allocator.mt.design_issues"/>Design Issues</h2></div></div></div><div class="section" title="Overview"><div class="titlepage"><div><div><h3 class="title"><a id="allocator.mt.overview"/>Overview</h3></div></div></div><p> There are three general components to the allocator: a datum | |
10605 | +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> | |
10606 | +<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Design Issues</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1" /><meta name="keywords" content=" ISO C++ , allocator " /><meta name="keywords" content=" ISO C++ , library " /><meta name="keywords" content=" ISO C++ , runtime , library " /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="mt_allocator.html" title="Chapter 20. The mt_allocator" /><link rel="prev" href="mt_allocator.html" title="Chapter 20. The mt_allocator" /><link rel="next" href="bk01pt03ch20s03.html" title="Implementation" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Design Issues</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="mt_allocator.html">Prev</a> </td><th width="60%" align="center">Chapter 20. The mt_allocator</th><td width="20%" align="right"> <a accesskey="n" href="bk01pt03ch20s03.html">Next</a></td></tr></table><hr /></div><div class="section" title="Design Issues"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="allocator.mt.design_issues"></a>Design Issues</h2></div></div></div><div class="section" title="Overview"><div class="titlepage"><div><div><h3 class="title"><a id="allocator.mt.overview"></a>Overview</h3></div></div></div><p> There are three general components to the allocator: a datum | |
10607 | describing the characteristics of the memory pool, a policy class | |
10608 | containing this pool that links instantiation types to common or | |
10609 | individual pools, and a class inheriting from the policy class that is | |
10610 | @@ -36,4 +36,4 @@ | |
10611 | </pre><p> This class has the interface required for standard library allocator | |
10612 | classes, namely member functions <code class="code">allocate</code> and | |
10613 | <code class="code">deallocate</code>, plus others. | |
10614 | -</p></div></div><div class="navfooter"><hr/><table width="100%" summary="Navigation footer"><tr><td align="left"><a accesskey="p" href="mt_allocator.html">Prev</a> </td><td align="center"><a accesskey="u" href="mt_allocator.html">Up</a></td><td align="right"> <a accesskey="n" href="bk01pt03ch20s03.html">Next</a></td></tr><tr><td align="left" valign="top">Chapter 20. The mt_allocator </td><td align="center"><a accesskey="h" href="../index.html">Home</a></td><td align="right" valign="top"> Implementation</td></tr></table></div></body></html> | |
10615 | +</p></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="mt_allocator.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="mt_allocator.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="bk01pt03ch20s03.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Chapter 20. The mt_allocator </td><td width="20%" align="center"><a accesskey="h" href="../index.html">Home</a></td><td width="40%" align="right" valign="top"> Implementation</td></tr></table></div></body></html> | |
10616 | Index: libstdc++-v3/doc/html/manual/bk01pt03ch21s02.html | |
10617 | =================================================================== | |
9f95000d AM |
10618 | --- libstdc++-v3/doc/html/manual/bk01pt03ch21s02.html (.../tags/gcc_4_7_2_release) (wersja 192468) |
10619 | +++ libstdc++-v3/doc/html/manual/bk01pt03ch21s02.html (.../branches/gcc-4_7-branch) (wersja 192468) | |
5a87b929 AM |
10620 | @@ -1,6 +1,6 @@ |
10621 | <?xml version="1.0" encoding="UTF-8" standalone="no"?> | |
10622 | -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> | |
10623 | -<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Implementation</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1"/><meta name="keywords" content=" ISO C++ , allocator "/><meta name="keywords" content=" ISO C++ , library "/><meta name="keywords" content=" ISO C++ , runtime , library "/><link rel="home" href="../index.html" title="The GNU C++ Library"/><link rel="up" href="bitmap_allocator.html" title="Chapter 21. The bitmap_allocator"/><link rel="prev" href="bitmap_allocator.html" title="Chapter 21. The bitmap_allocator"/><link rel="next" href="policy_data_structures.html" title="Chapter 22. Policy-Based Data Structures"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Implementation</th></tr><tr><td align="left"><a accesskey="p" href="bitmap_allocator.html">Prev</a> </td><th width="60%" align="center">Chapter 21. The bitmap_allocator</th><td align="right"> <a accesskey="n" href="policy_data_structures.html">Next</a></td></tr></table><hr/></div><div class="section" title="Implementation"><div class="titlepage"><div><div><h2 class="title"><a id="allocator.bitmap.impl"/>Implementation</h2></div></div></div><div class="section" title="Free List Store"><div class="titlepage"><div><div><h3 class="title"><a id="bitmap.impl.free_list_store"/>Free List Store</h3></div></div></div><p> | |
10624 | +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> | |
10625 | +<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Implementation</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1" /><meta name="keywords" content=" ISO C++ , allocator " /><meta name="keywords" content=" ISO C++ , library " /><meta name="keywords" content=" ISO C++ , runtime , library " /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="bitmap_allocator.html" title="Chapter 21. The bitmap_allocator" /><link rel="prev" href="bitmap_allocator.html" title="Chapter 21. The bitmap_allocator" /><link rel="next" href="policy_data_structures.html" title="Chapter 22. Policy-Based Data Structures" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Implementation</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="bitmap_allocator.html">Prev</a> </td><th width="60%" align="center">Chapter 21. The bitmap_allocator</th><td width="20%" align="right"> <a accesskey="n" href="policy_data_structures.html">Next</a></td></tr></table><hr /></div><div class="section" title="Implementation"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="allocator.bitmap.impl"></a>Implementation</h2></div></div></div><div class="section" title="Free List Store"><div class="titlepage"><div><div><h3 class="title"><a id="bitmap.impl.free_list_store"></a>Free List Store</h3></div></div></div><p> | |
10626 | The Free List Store (referred to as FLS for the remaining part of this | |
10627 | document) is the Global memory pool that is shared by all instances of | |
10628 | the bitmapped allocator instantiated for any type. This maintains a | |
10629 | @@ -38,7 +38,7 @@ | |
10630 | this internal fragmentation has to be decided by this function. I | |
10631 | can see 3 possibilities right now. Please add more as and when you | |
10632 | find better strategies. | |
10633 | - </p><div class="orderedlist"><ol class="orderedlist"><li class="listitem"><p>Equal size check. Return true only when the 2 blocks are of equal | |
10634 | + </p><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><p>Equal size check. Return true only when the 2 blocks are of equal | |
10635 | size.</p></li><li class="listitem"><p>Difference Threshold: Return true only when the _block_size is | |
10636 | greater than or equal to the _required_size, and if the _BS is > _RS | |
10637 | by a difference of less than some THRESHOLD value, then return true, | |
10638 | @@ -48,7 +48,7 @@ | |
10639 | else return false.</p></li></ol></div><p> | |
10640 | Currently, (3) is being used with a value of 36% Maximum wastage per | |
10641 | Super Block. | |
10642 | - </p></div><div class="section" title="Super Block"><div class="titlepage"><div><div><h3 class="title"><a id="bitmap.impl.super_block"/>Super Block</h3></div></div></div><p> | |
10643 | + </p></div><div class="section" title="Super Block"><div class="titlepage"><div><div><h3 class="title"><a id="bitmap.impl.super_block"></a>Super Block</h3></div></div></div><p> | |
10644 | A super block is the block of memory acquired from the FLS from | |
10645 | which the bitmap allocator carves out memory for single objects | |
10646 | and satisfies the user's requests. These super blocks come in | |
10647 | @@ -63,7 +63,7 @@ | |
10648 | The super block is contained in the FLS, and the FLS is responsible for | |
10649 | getting / returning Super Bocks to and from the OS using operator new | |
10650 | as defined by the C++ standard. | |
10651 | - </p></div><div class="section" title="Super Block Data Layout"><div class="titlepage"><div><div><h3 class="title"><a id="bitmap.impl.super_block_data"/>Super Block Data Layout</h3></div></div></div><p> | |
10652 | + </p></div><div class="section" title="Super Block Data Layout"><div class="titlepage"><div><div><h3 class="title"><a id="bitmap.impl.super_block_data"></a>Super Block Data Layout</h3></div></div></div><p> | |
10653 | Each Super Block will be of some size that is a multiple of the | |
10654 | number of Bits Per Block. Typically, this value is chosen as | |
10655 | Bits_Per_Byte x sizeof(size_t). On an x86 system, this gives the | |
10656 | @@ -76,7 +76,7 @@ | |
10657 | </p><p> | |
10658 | Consider a block of size 64 ints. In memory, it would look like this: | |
10659 | (assume a 32-bit system where, size_t is a 32-bit entity). | |
10660 | - </p><div class="table"><a id="id515279"/><p class="title"><strong>Table 21.1. Bitmap Allocator Memory Map</strong></p><div class="table-contents"><table summary="Bitmap Allocator Memory Map" border="1"><colgroup><col style="text-align: left" class="c1"/><col style="text-align: left" class="c2"/><col style="text-align: left" class="c3"/><col style="text-align: left" class="c4"/><col style="text-align: left" class="c5"/></colgroup><tbody><tr><td style="text-align: left">268</td><td style="text-align: left">0</td><td style="text-align: left">4294967295</td><td style="text-align: left">4294967295</td><td style="text-align: left">Data -> Space for 64 ints</td></tr></tbody></table></div></div><br class="table-break"/><p> | |
10661 | + </p><div class="table"><a id="id693765"></a><p class="title"><strong>Table 21.1. Bitmap Allocator Memory Map</strong></p><div class="table-contents"><table summary="Bitmap Allocator Memory Map" border="1"><colgroup><col align="left" class="c1" /><col align="left" class="c2" /><col align="left" class="c3" /><col align="left" class="c4" /><col align="left" class="c5" /></colgroup><tbody><tr><td align="left">268</td><td align="left">0</td><td align="left">4294967295</td><td align="left">4294967295</td><td align="left">Data -> Space for 64 ints</td></tr></tbody></table></div></div><br class="table-break" /><p> | |
10662 | The first Column(268) represents the size of the Block in bytes as | |
10663 | seen by the Bitmap Allocator. Internally, a global free list is | |
10664 | used to keep track of the free blocks used and given back by the | |
10665 | @@ -103,7 +103,7 @@ | |
10666 | The 3rd 4x2 is size of the bitmap itself, which is the size of 32-bits | |
10667 | x 2, | |
10668 | which is 8-bytes, or 2 x sizeof(size_t). | |
10669 | - </p></div><div class="section" title="Maximum Wasted Percentage"><div class="titlepage"><div><div><h3 class="title"><a id="bitmap.impl.max_wasted"/>Maximum Wasted Percentage</h3></div></div></div><p> | |
10670 | + </p></div><div class="section" title="Maximum Wasted Percentage"><div class="titlepage"><div><div><h3 class="title"><a id="bitmap.impl.max_wasted"></a>Maximum Wasted Percentage</h3></div></div></div><p> | |
10671 | This has nothing to do with the algorithm per-se, | |
10672 | only with some vales that must be chosen correctly to ensure that the | |
10673 | allocator performs well in a real word scenario, and maintains a good | |
10674 | @@ -128,14 +128,14 @@ | |
10675 | </p><p> | |
10676 | Thus, knowing these values, and based on the sizeof(value_type), we may | |
10677 | create a function that returns the Max_Wastage_Percentage for us to use. | |
10678 | - </p></div><div class="section" title="allocate"><div class="titlepage"><div><div><h3 class="title"><a id="bitmap.impl.allocate"/><code class="function">allocate</code></h3></div></div></div><p> | |
10679 | + </p></div><div class="section" title="allocate"><div class="titlepage"><div><div><h3 class="title"><a id="bitmap.impl.allocate"></a><code class="function">allocate</code></h3></div></div></div><p> | |
10680 | The allocate function is specialized for single object allocation | |
10681 | ONLY. Thus, ONLY if n == 1, will the bitmap_allocator's | |
10682 | specialized algorithm be used. Otherwise, the request is satisfied | |
10683 | directly by calling operator new. | |
10684 | </p><p> | |
10685 | Suppose n == 1, then the allocator does the following: | |
10686 | - </p><div class="orderedlist"><ol class="orderedlist"><li class="listitem"><p> | |
10687 | + </p><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><p> | |
10688 | Checks to see whether a free block exists somewhere in a region | |
10689 | of memory close to the last satisfied request. If so, then that | |
10690 | block is marked as allocated in the bit map and given to the | |
10691 | @@ -148,7 +148,7 @@ | |
10692 | </p></li><li class="listitem"><p> | |
10693 | Is there any block in whatever region of memory that we own | |
10694 | free? This is done by checking | |
10695 | - </p><div class="itemizedlist"><ul class="itemizedlist"><li class="listitem"><p> | |
10696 | + </p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p> | |
10697 | The use count for each super block, and if that fails then | |
10698 | </p></li><li class="listitem"><p> | |
10699 | The individual bit-maps for each super block. | |
10700 | @@ -163,7 +163,7 @@ | |
10701 | This process involves Refilling the internal exponentially | |
10702 | growing memory pool. The said effect is achieved by calling | |
10703 | _S_refill_pool which does the following: | |
10704 | - </p><div class="itemizedlist"><ul class="itemizedlist"><li class="listitem"><p> | |
10705 | + </p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p> | |
10706 | Gets more memory from the Global Free List of the Required | |
10707 | size. | |
10708 | </p></li><li class="listitem"><p> | |
10709 | @@ -183,13 +183,13 @@ | |
10710 | Thus, you can clearly see that the allocate function is nothing but a | |
10711 | combination of the next-fit and first-fit algorithm optimized ONLY for | |
10712 | single object allocations. | |
10713 | -</p></div><div class="section" title="deallocate"><div class="titlepage"><div><div><h3 class="title"><a id="bitmap.impl.deallocate"/><code class="function">deallocate</code></h3></div></div></div><p> | |
10714 | +</p></div><div class="section" title="deallocate"><div class="titlepage"><div><div><h3 class="title"><a id="bitmap.impl.deallocate"></a><code class="function">deallocate</code></h3></div></div></div><p> | |
10715 | The deallocate function again is specialized for single objects ONLY. | |
10716 | For all n belonging to > 1, the operator delete is called without | |
10717 | further ado, and the deallocate function returns. | |
10718 | </p><p> | |
10719 | However for n == 1, a series of steps are performed: | |
10720 | - </p><div class="orderedlist"><ol class="orderedlist"><li class="listitem"><p> | |
10721 | + </p><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><p> | |
10722 | We first need to locate that super-block which holds the memory | |
10723 | location given to us by the user. For that purpose, we maintain | |
10724 | a static variable _S_last_dealloc_index, which holds the index | |
10725 | @@ -214,7 +214,7 @@ | |
10726 | the vector. While doing this, we also make sure that the basic | |
10727 | invariant is maintained by making sure that _S_last_request and | |
10728 | _S_last_dealloc_index point to valid locations within the vector. | |
10729 | - </p></div><div class="section" title="Questions"><div class="titlepage"><div><div><h3 class="title"><a id="bitmap.impl.questions"/>Questions</h3></div></div></div><div class="section" title="1"><div class="titlepage"><div><div><h4 class="title"><a id="bitmap.impl.question.1"/>1</h4></div></div></div><p> | |
10730 | + </p></div><div class="section" title="Questions"><div class="titlepage"><div><div><h3 class="title"><a id="bitmap.impl.questions"></a>Questions</h3></div></div></div><div class="section" title="1"><div class="titlepage"><div><div><h4 class="title"><a id="bitmap.impl.question.1"></a>1</h4></div></div></div><p> | |
10731 | Q1) The "Data Layout" section is | |
10732 | cryptic. I have no idea of what you are trying to say. Layout of what? | |
10733 | The free-list? Each bitmap? The Super Block? | |
10734 | @@ -224,7 +224,7 @@ | |
10735 | general formula for calculating the size of a super block is | |
10736 | 32 x sizeof(value_type) x 2^n, where n ranges from 0 to 32 for 32-bit | |
10737 | systems. | |
10738 | - </p></div><div class="section" title="2"><div class="titlepage"><div><div><h4 class="title"><a id="bitmap.impl.question.2"/>2</h4></div></div></div><p> | |
10739 | + </p></div><div class="section" title="2"><div class="titlepage"><div><div><h4 class="title"><a id="bitmap.impl.question.2"></a>2</h4></div></div></div><p> | |
10740 | And since I just mentioned the | |
10741 | term `each bitmap', what in the world is meant by it? What does each | |
10742 | bitmap manage? How does it relate to the super block? Is the Super | |
10743 | @@ -241,7 +241,7 @@ | |
10744 | blocks' status. Each bit-map is made up of a number of size_t, | |
10745 | whose exact number for a super-block of a given size I have just | |
10746 | mentioned. | |
10747 | - </p></div><div class="section" title="3"><div class="titlepage"><div><div><h4 class="title"><a id="bitmap.impl.question.3"/>3</h4></div></div></div><p> | |
10748 | + </p></div><div class="section" title="3"><div class="titlepage"><div><div><h4 class="title"><a id="bitmap.impl.question.3"></a>3</h4></div></div></div><p> | |
10749 | How do the allocate and deallocate functions work in regard to | |
10750 | bitmaps? | |
10751 | </p><p> | |
10752 | @@ -270,13 +270,13 @@ | |
10753 | </p><p> | |
10754 | The bit-map now looks like this: | |
10755 | 1111111111111111111111111111111111111111111111111111111111111110 | |
10756 | - </p></div></div><div class="section" title="Locality"><div class="titlepage"><div><div><h3 class="title"><a id="bitmap.impl.locality"/>Locality</h3></div></div></div><p> | |
10757 | + </p></div></div><div class="section" title="Locality"><div class="titlepage"><div><div><h3 class="title"><a id="bitmap.impl.locality"></a>Locality</h3></div></div></div><p> | |
10758 | Another issue would be whether to keep the all bitmaps in a | |
10759 | separate area in memory, or to keep them near the actual blocks | |
10760 | that will be given out or allocated for the client. After some | |
10761 | testing, I've decided to keep these bitmaps close to the actual | |
10762 | blocks. This will help in 2 ways. | |
10763 | - </p><div class="orderedlist"><ol class="orderedlist"><li class="listitem"><p>Constant time access for the bitmap themselves, since no kind of | |
10764 | + </p><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><p>Constant time access for the bitmap themselves, since no kind of | |
10765 | look up will be needed to find the correct bitmap list or its | |
10766 | equivalent.</p></li><li class="listitem"><p>And also this would preserve the cache as far as possible.</p></li></ol></div><p> | |
10767 | So in effect, this kind of an allocator might prove beneficial from a | |
10768 | @@ -287,7 +287,7 @@ | |
10769 | new_allocator's book keeping overhead is too much for small objects and | |
10770 | single object allocations, though it preserves the locality of blocks | |
10771 | very well when they are returned back to the allocator. | |
10772 | - </p></div><div class="section" title="Overhead and Grow Policy"><div class="titlepage"><div><div><h3 class="title"><a id="bitmap.impl.grow_policy"/>Overhead and Grow Policy</h3></div></div></div><p> | |
10773 | + </p></div><div class="section" title="Overhead and Grow Policy"><div class="titlepage"><div><div><h3 class="title"><a id="bitmap.impl.grow_policy"></a>Overhead and Grow Policy</h3></div></div></div><p> | |
10774 | Expected overhead per block would be 1 bit in memory. Also, once | |
10775 | the address of the free list has been found, the cost for | |
10776 | allocation/deallocation would be negligible, and is supposed to be | |
10777 | @@ -310,4 +310,4 @@ | |
10778 | sizeof(size_t) x 8 which is the number of bits in an integer, | |
10779 | which can fit exactly in a CPU register. Hence, the term given is | |
10780 | exponential growth of the internal pool. | |
10781 | - </p></div></div><div class="navfooter"><hr/><table width="100%" summary="Navigation footer"><tr><td align="left"><a accesskey="p" href="bitmap_allocator.html">Prev</a> </td><td align="center"><a accesskey="u" href="bitmap_allocator.html">Up</a></td><td align="right"> <a accesskey="n" href="policy_data_structures.html">Next</a></td></tr><tr><td align="left" valign="top">Chapter 21. The bitmap_allocator </td><td align="center"><a accesskey="h" href="../index.html">Home</a></td><td align="right" valign="top"> Chapter 22. Policy-Based Data Structures</td></tr></table></div></body></html> | |
10782 | + </p></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="bitmap_allocator.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="bitmap_allocator.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="policy_data_structures.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Chapter 21. The bitmap_allocator </td><td width="20%" align="center"><a accesskey="h" href="../index.html">Home</a></td><td width="40%" align="right" valign="top"> Chapter 22. Policy-Based Data Structures</td></tr></table></div></body></html> | |
10783 | Index: libstdc++-v3/doc/html/manual/bk01pt03pr01.html | |
10784 | =================================================================== | |
9f95000d AM |
10785 | --- libstdc++-v3/doc/html/manual/bk01pt03pr01.html (.../tags/gcc_4_7_2_release) (wersja 192468) |
10786 | +++ libstdc++-v3/doc/html/manual/bk01pt03pr01.html (.../branches/gcc-4_7-branch) (wersja 192468) | |
5a87b929 AM |
10787 | @@ -1,16 +1,16 @@ |
10788 | <?xml version="1.0" encoding="UTF-8" standalone="no"?> | |
10789 | -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> | |
10790 | -<html xmlns="http://www.w3.org/1999/xhtml"><head><title/><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1"/><meta name="keywords" content=" ISO C++ , library "/><meta name="keywords" content=" ISO C++ , runtime , library "/><link rel="home" href="../index.html" title="The GNU C++ Library"/><link rel="up" href="extensions.html" title="Part III. Extensions"/><link rel="prev" href="extensions.html" title="Part III. Extensions"/><link rel="next" href="ext_compile_checks.html" title="Chapter 16. Compile Time Checks"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"/></tr><tr><td align="left"><a accesskey="p" href="extensions.html">Prev</a> </td><th width="60%" align="center">Part III. | |
10791 | +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> | |
10792 | +<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title></title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1" /><meta name="keywords" content=" ISO C++ , library " /><meta name="keywords" content=" ISO C++ , runtime , library " /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="extensions.html" title="Part III. Extensions" /><link rel="prev" href="extensions.html" title="Part III. Extensions" /><link rel="next" href="ext_compile_checks.html" title="Chapter 16. Compile Time Checks" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="extensions.html">Prev</a> </td><th width="60%" align="center">Part III. | |
10793 | Extensions | |
10794 | ||
10795 | -</th><td align="right"> <a accesskey="n" href="ext_compile_checks.html">Next</a></td></tr></table><hr/></div><div class="preface"><div class="titlepage"><div><div><h1 class="title"><a id="id506349"/></h1></div></div></div><p> | |
10796 | +</th><td width="20%" align="right"> <a accesskey="n" href="ext_compile_checks.html">Next</a></td></tr></table><hr /></div><div class="preface"><div class="titlepage"><div><div><h1 class="title"><a id="id684835"></a></h1></div></div></div><p> | |
10797 | Here we will make an attempt at describing the non-Standard | |
10798 | extensions to the library. Some of these are from older versions of | |
10799 | standard library components, namely SGI's STL, and some of these are | |
10800 | GNU's. | |
10801 | </p><p><span class="emphasis"><em>Before</em></span> you leap in and use any of these | |
10802 | extensions, be aware of two things: | |
10803 | -</p><div class="orderedlist"><ol class="orderedlist"><li class="listitem"><p> | |
10804 | +</p><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><p> | |
10805 | Non-Standard means exactly that. | |
10806 | </p><p> | |
10807 | The behavior, and the very | |
10808 | @@ -21,7 +21,7 @@ | |
10809 | treat them differently, or... | |
10810 | </p></li><li class="listitem"><p> | |
10811 | You should know how to access these headers properly. | |
10812 | - </p></li></ol></div></div><div class="navfooter"><hr/><table width="100%" summary="Navigation footer"><tr><td align="left"><a accesskey="p" href="extensions.html">Prev</a> </td><td align="center"><a accesskey="u" href="extensions.html">Up</a></td><td align="right"> <a accesskey="n" href="ext_compile_checks.html">Next</a></td></tr><tr><td align="left" valign="top">Part III. | |
10813 | + </p></li></ol></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="extensions.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="extensions.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="ext_compile_checks.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Part III. | |
10814 | Extensions | |
10815 | ||
10816 | - </td><td align="center"><a accesskey="h" href="../index.html">Home</a></td><td align="right" valign="top"> Chapter 16. Compile Time Checks</td></tr></table></div></body></html> | |
10817 | + </td><td width="20%" align="center"><a accesskey="h" href="../index.html">Home</a></td><td width="40%" align="right" valign="top"> Chapter 16. Compile Time Checks</td></tr></table></div></body></html> | |
10818 | Index: libstdc++-v3/doc/html/manual/memory.html | |
10819 | =================================================================== | |
9f95000d AM |
10820 | --- libstdc++-v3/doc/html/manual/memory.html (.../tags/gcc_4_7_2_release) (wersja 192468) |
10821 | +++ libstdc++-v3/doc/html/manual/memory.html (.../branches/gcc-4_7-branch) (wersja 192468) | |
5a87b929 AM |
10822 | @@ -1,15 +1,15 @@ |
10823 | <?xml version="1.0" encoding="UTF-8" standalone="no"?> | |
10824 | -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> | |
10825 | -<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Memory</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1"/><meta name="keywords" content=" ISO C++ , library "/><meta name="keywords" content=" ISO C++ , runtime , library "/><link rel="home" href="../index.html" title="The GNU C++ Library"/><link rel="up" href="utilities.html" title="Chapter 6. Utilities"/><link rel="prev" href="pairs.html" title="Pairs"/><link rel="next" href="traits.html" title="Traits"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Memory</th></tr><tr><td align="left"><a accesskey="p" href="pairs.html">Prev</a> </td><th width="60%" align="center">Chapter 6. | |
10826 | +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> | |
10827 | +<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Memory</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1" /><meta name="keywords" content=" ISO C++ , library " /><meta name="keywords" content=" ISO C++ , runtime , library " /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="utilities.html" title="Chapter 6. Utilities" /><link rel="prev" href="pairs.html" title="Pairs" /><link rel="next" href="traits.html" title="Traits" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Memory</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="pairs.html">Prev</a> </td><th width="60%" align="center">Chapter 6. | |
10828 | Utilities | |
10829 | ||
10830 | -</th><td align="right"> <a accesskey="n" href="traits.html">Next</a></td></tr></table><hr/></div><div class="section" title="Memory"><div class="titlepage"><div><div><h2 class="title"><a id="std.util.memory"/>Memory</h2></div></div></div><p> | |
10831 | +</th><td width="20%" align="right"> <a accesskey="n" href="traits.html">Next</a></td></tr></table><hr /></div><div class="section" title="Memory"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="std.util.memory"></a>Memory</h2></div></div></div><p> | |
10832 | Memory contains three general areas. First, function and operator | |
10833 | calls via <code class="function">new</code> and <code class="function">delete</code> | |
10834 | operator or member function calls. Second, allocation via | |
10835 | <code class="classname">allocator</code>. And finally, smart pointer and | |
10836 | intelligent pointer abstractions. | |
10837 | - </p><div class="section" title="Allocators"><div class="titlepage"><div><div><h3 class="title"><a id="std.util.memory.allocator"/>Allocators</h3></div></div></div><p> | |
10838 | + </p><div class="section" title="Allocators"><div class="titlepage"><div><div><h3 class="title"><a id="std.util.memory.allocator"></a>Allocators</h3></div></div></div><p> | |
10839 | Memory management for Standard Library entities is encapsulated in a | |
10840 | class template called <code class="classname">allocator</code>. The | |
10841 | <code class="classname">allocator</code> abstraction is used throughout the | |
10842 | @@ -17,9 +17,9 @@ | |
10843 | algorithms, and parts of iostreams. This class, and base classes of | |
10844 | it, are the superset of available free store (<span class="quote">“<span class="quote">heap</span>”</span>) | |
10845 | management classes. | |
10846 | -</p><div class="section" title="Requirements"><div class="titlepage"><div><div><h4 class="title"><a id="allocator.req"/>Requirements</h4></div></div></div><p> | |
10847 | +</p><div class="section" title="Requirements"><div class="titlepage"><div><div><h4 class="title"><a id="allocator.req"></a>Requirements</h4></div></div></div><p> | |
10848 | The C++ standard only gives a few directives in this area: | |
10849 | - </p><div class="itemizedlist"><ul class="itemizedlist"><li class="listitem"><p> | |
10850 | + </p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p> | |
10851 | When you add elements to a container, and the container must | |
10852 | allocate more memory to hold them, the container makes the | |
10853 | request via its <span class="type">Allocator</span> template | |
10854 | @@ -54,11 +54,11 @@ | |
10855 | </p></li></ul></div><p> | |
10856 | Complete details can be found in the C++ standard, look in | |
10857 | <code class="constant">[20.4 Memory]</code>. | |
10858 | - </p></div><div class="section" title="Design Issues"><div class="titlepage"><div><div><h4 class="title"><a id="allocator.design_issues"/>Design Issues</h4></div></div></div><p> | |
10859 | + </p></div><div class="section" title="Design Issues"><div class="titlepage"><div><div><h4 class="title"><a id="allocator.design_issues"></a>Design Issues</h4></div></div></div><p> | |
10860 | The easiest way of fulfilling the requirements is to call | |
10861 | <code class="function">operator new</code> each time a container needs | |
10862 | memory, and to call <code class="function">operator delete</code> each time | |
10863 | - the container releases memory. This method may be <a class="link" href="http://gcc.gnu.org/ml/libstdc++/2001-05/msg00105.html">slower</a> | |
10864 | + the container releases memory. This method may be <a class="link" href="http://gcc.gnu.org/ml/libstdc++/2001-05/msg00105.html" target="_top">slower</a> | |
10865 | than caching the allocations and re-using previously-allocated | |
10866 | memory, but has the advantage of working correctly across a wide | |
10867 | variety of hardware and operating systems, including large | |
10868 | @@ -93,7 +93,7 @@ | |
10869 | or loading and unloading shared objects in memory. As such, using | |
10870 | caching allocators on systems that do not support | |
10871 | <code class="function">abi::__cxa_atexit</code> is not recommended. | |
10872 | - </p></div><div class="section" title="Implementation"><div class="titlepage"><div><div><h4 class="title"><a id="allocator.impl"/>Implementation</h4></div></div></div><div class="section" title="Interface Design"><div class="titlepage"><div><div><h5 class="title"><a id="id485345"/>Interface Design</h5></div></div></div><p> | |
10873 | + </p></div><div class="section" title="Implementation"><div class="titlepage"><div><div><h4 class="title"><a id="allocator.impl"></a>Implementation</h4></div></div></div><div class="section" title="Interface Design"><div class="titlepage"><div><div><h5 class="title"><a id="id663833"></a>Interface Design</h5></div></div></div><p> | |
10874 | The only allocator interface that | |
10875 | is supported is the standard C++ interface. As such, all STL | |
10876 | containers have been adjusted, and all external allocators have | |
10877 | @@ -106,7 +106,7 @@ | |
10878 | </p><p> | |
10879 | The base class that <code class="classname">allocator</code> is derived from | |
10880 | may not be user-configurable. | |
10881 | -</p></div><div class="section" title="Selecting Default Allocation Policy"><div class="titlepage"><div><div><h5 class="title"><a id="id485374"/>Selecting Default Allocation Policy</h5></div></div></div><p> | |
10882 | +</p></div><div class="section" title="Selecting Default Allocation Policy"><div class="titlepage"><div><div><h5 class="title"><a id="id663862"></a>Selecting Default Allocation Policy</h5></div></div></div><p> | |
10883 | It's difficult to pick an allocation strategy that will provide | |
10884 | maximum utility, without excessively penalizing some behavior. In | |
10885 | fact, it's difficult just deciding which typical actions to measure | |
10886 | @@ -114,14 +114,14 @@ | |
10887 | </p><p> | |
10888 | Three synthetic benchmarks have been created that provide data | |
10889 | that is used to compare different C++ allocators. These tests are: | |
10890 | - </p><div class="orderedlist"><ol class="orderedlist"><li class="listitem"><p> | |
10891 | + </p><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><p> | |
10892 | Insertion. | |
10893 | </p><p> | |
10894 | Over multiple iterations, various STL container | |
10895 | objects have elements inserted to some maximum amount. A variety | |
10896 | of allocators are tested. | |
10897 | - Test source for <a class="link" href="http://gcc.gnu.org/viewcvs/trunk/libstdc%2B%2B-v3/testsuite/performance/23_containers/insert/sequence.cc?view=markup">sequence</a> | |
10898 | - and <a class="link" href="http://gcc.gnu.org/viewcvs/trunk/libstdc%2B%2B-v3/testsuite/performance/23_containers/insert/associative.cc?view=markup">associative</a> | |
10899 | + Test source for <a class="link" href="http://gcc.gnu.org/viewcvs/trunk/libstdc%2B%2B-v3/testsuite/performance/23_containers/insert/sequence.cc?view=markup" target="_top">sequence</a> | |
10900 | + and <a class="link" href="http://gcc.gnu.org/viewcvs/trunk/libstdc%2B%2B-v3/testsuite/performance/23_containers/insert/associative.cc?view=markup" target="_top">associative</a> | |
10901 | containers. | |
10902 | </p></li><li class="listitem"><p> | |
10903 | Insertion and erasure in a multi-threaded environment. | |
10904 | @@ -130,20 +130,20 @@ | |
10905 | on a per-thread basis, as well as measuring thread contention | |
10906 | for memory resources. | |
10907 | Test source | |
10908 | - <a class="link" href="http://gcc.gnu.org/viewcvs/trunk/libstdc%2B%2B-v3/testsuite/performance/23_containers/insert_erase/associative.cc?view=markup">here</a>. | |
10909 | + <a class="link" href="http://gcc.gnu.org/viewcvs/trunk/libstdc%2B%2B-v3/testsuite/performance/23_containers/insert_erase/associative.cc?view=markup" target="_top">here</a>. | |
10910 | </p></li><li class="listitem"><p> | |
10911 | A threaded producer/consumer model. | |
10912 | </p><p> | |
10913 | Test source for | |
10914 | - <a class="link" href="http://gcc.gnu.org/viewcvs/trunk/libstdc++-v3/testsuite/performance/23_containers/producer_consumer/sequence.cc?view=markup">sequence</a> | |
10915 | + <a class="link" href="http://gcc.gnu.org/viewcvs/trunk/libstdc++-v3/testsuite/performance/23_containers/producer_consumer/sequence.cc?view=markup" target="_top">sequence</a> | |
10916 | and | |
10917 | - <a class="link" href="http://gcc.gnu.org/viewcvs/trunk/libstdc++-v3/testsuite/performance/23_containers/producer_consumer/associative.cc?view=markup">associative</a> | |
10918 | + <a class="link" href="http://gcc.gnu.org/viewcvs/trunk/libstdc++-v3/testsuite/performance/23_containers/producer_consumer/associative.cc?view=markup" target="_top">associative</a> | |
10919 | containers. | |
10920 | </p></li></ol></div><p> | |
10921 | The current default choice for | |
10922 | <code class="classname">allocator</code> is | |
10923 | <code class="classname">__gnu_cxx::new_allocator</code>. | |
10924 | - </p></div><div class="section" title="Disabling Memory Caching"><div class="titlepage"><div><div><h5 class="title"><a id="id485485"/>Disabling Memory Caching</h5></div></div></div><p> | |
10925 | + </p></div><div class="section" title="Disabling Memory Caching"><div class="titlepage"><div><div><h5 class="title"><a id="id663973"></a>Disabling Memory Caching</h5></div></div></div><p> | |
10926 | In use, <code class="classname">allocator</code> may allocate and | |
10927 | deallocate using implementation-specified strategies and | |
10928 | heuristics. Because of this, every call to an allocator object's | |
10929 | @@ -179,7 +179,7 @@ | |
10930 | environment, it likely means that you linked against objects | |
10931 | built against the older library (objects which might still using the | |
10932 | cached allocations...). | |
10933 | - </p></div></div><div class="section" title="Using a Specific Allocator"><div class="titlepage"><div><div><h4 class="title"><a id="allocator.using"/>Using a Specific Allocator</h4></div></div></div><p> | |
10934 | + </p></div></div><div class="section" title="Using a Specific Allocator"><div class="titlepage"><div><div><h4 class="title"><a id="allocator.using"></a>Using a Specific Allocator</h4></div></div></div><p> | |
10935 | You can specify different memory management schemes on a | |
10936 | per-container basis, by overriding the default | |
10937 | <span class="type">Allocator</span> template parameter. For example, an easy | |
10938 | @@ -190,7 +190,7 @@ | |
10939 | Likewise, a debugging form of whichever allocator is currently in use: | |
10940 | </p><pre class="programlisting"> | |
10941 | std::deque <int, __gnu_cxx::debug_allocator<std::allocator<int> > > debug_deque; | |
10942 | - </pre></div><div class="section" title="Custom Allocators"><div class="titlepage"><div><div><h4 class="title"><a id="allocator.custom"/>Custom Allocators</h4></div></div></div><p> | |
10943 | + </pre></div><div class="section" title="Custom Allocators"><div class="titlepage"><div><div><h4 class="title"><a id="allocator.custom"></a>Custom Allocators</h4></div></div></div><p> | |
10944 | Writing a portable C++ allocator would dictate that the interface | |
10945 | would look much like the one specified for | |
10946 | <code class="classname">allocator</code>. Additional member functions, but | |
10947 | @@ -199,7 +199,7 @@ | |
10948 | Probably the best place to start would be to copy one of the | |
10949 | extension allocators: say a simple one like | |
10950 | <code class="classname">new_allocator</code>. | |
10951 | - </p></div><div class="section" title="Extension Allocators"><div class="titlepage"><div><div><h4 class="title"><a id="allocator.ext"/>Extension Allocators</h4></div></div></div><p> | |
10952 | + </p></div><div class="section" title="Extension Allocators"><div class="titlepage"><div><div><h4 class="title"><a id="allocator.ext"></a>Extension Allocators</h4></div></div></div><p> | |
10953 | Several other allocators are provided as part of this | |
10954 | implementation. The location of the extension allocators and their | |
10955 | names have changed, but in all cases, functionality is | |
10956 | @@ -209,7 +209,7 @@ | |
10957 | chart to track the changes. | |
10958 | </p><p> | |
10959 | More details on each of these extension allocators follows. | |
10960 | - </p><div class="orderedlist"><ol class="orderedlist"><li class="listitem"><p> | |
10961 | + </p><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><p> | |
10962 | <code class="classname">new_allocator</code> | |
10963 | </p><p> | |
10964 | Simply wraps <code class="function">::operator new</code> | |
10965 | @@ -308,33 +308,33 @@ | |
10966 | A high-performance allocator that uses a bit-map to keep track | |
10967 | of the used and unused memory locations. It has its own | |
10968 | documentation, found <a class="link" href="bitmap_allocator.html" title="Chapter 21. The bitmap_allocator">here</a>. | |
10969 | - </p></li></ol></div></div><div class="bibliography" title="Bibliography"><div class="titlepage"><div><div><h4 class="title"><a id="allocator.biblio"/>Bibliography</h4></div></div></div><div class="biblioentry"><a id="id485936"/><p><span class="citetitle"><em class="citetitle"> | |
10970 | + </p></li></ol></div></div><div class="bibliography" title="Bibliography"><div class="titlepage"><div><div><h4 class="title"><a id="allocator.biblio"></a>Bibliography</h4></div></div></div><div class="biblioentry"><a id="id664424"></a><p><span class="citetitle"><em class="citetitle"> | |
10971 | ISO/IEC 14882:1998 Programming languages - C++ | |
10972 | </em>. </span> | |
10973 | isoc++_1998 | |
10974 | - <span class="pagenums">20.4 Memory. </span></p></div><div class="biblioentry" title="The Standard Librarian: What Are Allocators Good For?"><a id="id485951"/><p><span class="title"><em> | |
10975 | - <a class="link" href="http://www.drdobbs.com/cpp/184403759"> | |
10976 | + <span class="pagenums">20.4 Memory. </span></p></div><div class="biblioentry" title="The Standard Librarian: What Are Allocators Good For?"><a id="id664439"></a><p><span class="title"><em> | |
10977 | + <a class="link" href="http://www.drdobbs.com/cpp/184403759" target="_top"> | |
10978 | The Standard Librarian: What Are Allocators Good For? | |
10979 | </a> | |
10980 | </em>. </span><span class="author"><span class="firstname">Matt</span> <span class="surname">Austern</span>. </span><span class="publisher"><span class="publishername"> | |
10981 | C/C++ Users Journal | |
10982 | - . </span></span></p></div><div class="biblioentry" title="The Hoard Memory Allocator"><a id="id485982"/><p><span class="title"><em> | |
10983 | - <a class="link" href="http://www.cs.umass.edu/~emery/hoard"> | |
10984 | + . </span></span></p></div><div class="biblioentry" title="The Hoard Memory Allocator"><a id="id664470"></a><p><span class="title"><em> | |
10985 | + <a class="link" href="http://www.cs.umass.edu/~emery/hoard" target="_top"> | |
10986 | The Hoard Memory Allocator | |
10987 | </a> | |
10988 | - </em>. </span><span class="author"><span class="firstname">Emery</span> <span class="surname">Berger</span>. </span></p></div><div class="biblioentry" title="Reconsidering Custom Memory Allocation"><a id="id486005"/><p><span class="title"><em> | |
10989 | - <a class="link" href="http://www.cs.umass.edu/~emery/pubs/berger-oopsla2002.pdf"> | |
10990 | + </em>. </span><span class="author"><span class="firstname">Emery</span> <span class="surname">Berger</span>. </span></p></div><div class="biblioentry" title="Reconsidering Custom Memory Allocation"><a id="id664493"></a><p><span class="title"><em> | |
10991 | + <a class="link" href="http://www.cs.umass.edu/~emery/pubs/berger-oopsla2002.pdf" target="_top"> | |
10992 | Reconsidering Custom Memory Allocation | |
10993 | </a> | |
10994 | - </em>. </span><span class="author"><span class="firstname">Emery</span> <span class="surname">Berger</span>. </span><span class="author"><span class="firstname">Ben</span> <span class="surname">Zorn</span>. </span><span class="author"><span class="firstname">Kathryn</span> <span class="surname">McKinley</span>. </span><span class="copyright">Copyright © 2002 OOPSLA. </span></p></div><div class="biblioentry" title="Allocator Types"><a id="id486057"/><p><span class="title"><em> | |
10995 | - <a class="link" href="http://www.angelikalanger.com/Articles/C++Report/Allocators/Allocators.html"> | |
10996 | + </em>. </span><span class="author"><span class="firstname">Emery</span> <span class="surname">Berger</span>. </span><span class="author"><span class="firstname">Ben</span> <span class="surname">Zorn</span>. </span><span class="author"><span class="firstname">Kathryn</span> <span class="surname">McKinley</span>. </span><span class="copyright">Copyright © 2002 OOPSLA. </span></p></div><div class="biblioentry" title="Allocator Types"><a id="id664545"></a><p><span class="title"><em> | |
10997 | + <a class="link" href="http://www.angelikalanger.com/Articles/C++Report/Allocators/Allocators.html" target="_top"> | |
10998 | Allocator Types | |
10999 | </a> | |
11000 | </em>. </span><span class="author"><span class="firstname">Klaus</span> <span class="surname">Kreft</span>. </span><span class="author"><span class="firstname">Angelika</span> <span class="surname">Langer</span>. </span><span class="publisher"><span class="publishername"> | |
11001 | C/C++ Users Journal | |
11002 | - . </span></span></p></div><div class="biblioentry"><a id="id486096"/><p><span class="citetitle"><em class="citetitle">The C++ Programming Language</em>. </span><span class="author"><span class="firstname">Bjarne</span> <span class="surname">Stroustrup</span>. </span><span class="copyright">Copyright © 2000 . </span><span class="pagenums">19.4 Allocators. </span><span class="publisher"><span class="publishername"> | |
11003 | + . </span></span></p></div><div class="biblioentry"><a id="id664584"></a><p><span class="citetitle"><em class="citetitle">The C++ Programming Language</em>. </span><span class="author"><span class="firstname">Bjarne</span> <span class="surname">Stroustrup</span>. </span><span class="copyright">Copyright © 2000 . </span><span class="pagenums">19.4 Allocators. </span><span class="publisher"><span class="publishername"> | |
11004 | Addison Wesley | |
11005 | - . </span></span></p></div><div class="biblioentry"><a id="id486133"/><p><span class="citetitle"><em class="citetitle">Yalloc: A Recycling C++ Allocator</em>. </span><span class="author"><span class="firstname">Felix</span> <span class="surname">Yen</span>. </span></p></div></div></div><div class="section" title="auto_ptr"><div class="titlepage"><div><div><h3 class="title"><a id="std.util.memory.auto_ptr"/>auto_ptr</h3></div></div></div><div class="section" title="Limitations"><div class="titlepage"><div><div><h4 class="title"><a id="auto_ptr.limitations"/>Limitations</h4></div></div></div><p>Explaining all of the fun and delicious things that can | |
11006 | + . </span></span></p></div><div class="biblioentry"><a id="id664621"></a><p><span class="citetitle"><em class="citetitle">Yalloc: A Recycling C++ Allocator</em>. </span><span class="author"><span class="firstname">Felix</span> <span class="surname">Yen</span>. </span></p></div></div></div><div class="section" title="auto_ptr"><div class="titlepage"><div><div><h3 class="title"><a id="std.util.memory.auto_ptr"></a>auto_ptr</h3></div></div></div><div class="section" title="Limitations"><div class="titlepage"><div><div><h4 class="title"><a id="auto_ptr.limitations"></a>Limitations</h4></div></div></div><p>Explaining all of the fun and delicious things that can | |
11007 | happen with misuse of the <code class="classname">auto_ptr</code> class | |
11008 | template (called <acronym class="acronym">AP</acronym> here) would take some | |
11009 | time. Suffice it to say that the use of <acronym class="acronym">AP</acronym> | |
11010 | @@ -385,7 +385,7 @@ | |
11011 | to die. AP is trivial to write, however, so you could write your | |
11012 | own <code class="code">auto_array_ptr</code> for that situation (in fact, this has | |
11013 | been done many times; check the mailing lists, Usenet, Boost, etc). | |
11014 | - </p></div><div class="section" title="Use in Containers"><div class="titlepage"><div><div><h4 class="title"><a id="auto_ptr.using"/>Use in Containers</h4></div></div></div><p> | |
11015 | + </p></div><div class="section" title="Use in Containers"><div class="titlepage"><div><div><h4 class="title"><a id="auto_ptr.using"></a>Use in Containers</h4></div></div></div><p> | |
11016 | </p><p>All of the <a class="link" href="containers.html" title="Chapter 9. Containers">containers</a> | |
11017 | described in the standard library require their contained types | |
11018 | to have, among other things, a copy constructor like this: | |
11019 | @@ -421,16 +421,16 @@ | |
11020 | } | |
11021 | </pre><p> | |
11022 | Should you try this with the checks enabled, you will see an error. | |
11023 | - </p></div></div><div class="section" title="shared_ptr"><div class="titlepage"><div><div><h3 class="title"><a id="std.util.memory.shared_ptr"/>shared_ptr</h3></div></div></div><p> | |
11024 | + </p></div></div><div class="section" title="shared_ptr"><div class="titlepage"><div><div><h3 class="title"><a id="std.util.memory.shared_ptr"></a>shared_ptr</h3></div></div></div><p> | |
11025 | The shared_ptr class template stores a pointer, usually obtained via new, | |
11026 | and implements shared ownership semantics. | |
11027 | -</p><div class="section" title="Requirements"><div class="titlepage"><div><div><h4 class="title"><a id="shared_ptr.req"/>Requirements</h4></div></div></div><p> | |
11028 | +</p><div class="section" title="Requirements"><div class="titlepage"><div><div><h4 class="title"><a id="shared_ptr.req"></a>Requirements</h4></div></div></div><p> | |
11029 | </p><p> | |
11030 | The standard deliberately doesn't require a reference-counted | |
11031 | implementation, allowing other techniques such as a | |
11032 | circular-linked-list. | |
11033 | </p><p> | |
11034 | - </p></div><div class="section" title="Design Issues"><div class="titlepage"><div><div><h4 class="title"><a id="shared_ptr.design_issues"/>Design Issues</h4></div></div></div><p> | |
11035 | + </p></div><div class="section" title="Design Issues"><div class="titlepage"><div><div><h4 class="title"><a id="shared_ptr.design_issues"></a>Design Issues</h4></div></div></div><p> | |
11036 | The <code class="classname">shared_ptr</code> code is kindly donated to GCC by the Boost | |
11037 | project and the original authors of the code. The basic design and | |
11038 | algorithms are from Boost, the notes below describe details specific to | |
11039 | @@ -444,7 +444,7 @@ | |
11040 | Derived classes override those functions to destroy resources in a context | |
11041 | where the correct dynamic type is known. This is an application of the | |
11042 | technique known as type erasure. | |
11043 | - </p></div><div class="section" title="Implementation"><div class="titlepage"><div><div><h4 class="title"><a id="shared_ptr.impl"/>Implementation</h4></div></div></div><div class="section" title="Class Hierarchy"><div class="titlepage"><div><div><h5 class="title"><a id="id486484"/>Class Hierarchy</h5></div></div></div><p> | |
11044 | + </p></div><div class="section" title="Implementation"><div class="titlepage"><div><div><h4 class="title"><a id="shared_ptr.impl"></a>Implementation</h4></div></div></div><div class="section" title="Class Hierarchy"><div class="titlepage"><div><div><h5 class="title"><a id="id664972"></a>Class Hierarchy</h5></div></div></div><p> | |
11045 | A <code class="classname">shared_ptr<T></code> contains a pointer of | |
11046 | type <span class="type">T*</span> and an object of type | |
11047 | <code class="classname">__shared_count</code>. The shared_count contains a | |
11048 | @@ -491,9 +491,9 @@ | |
11049 | aliasing constructor, make_shared & allocate_shared. Additionally, | |
11050 | the constructors taking <code class="classname">auto_ptr</code> parameters are | |
11051 | deprecated in C++11 mode. | |
11052 | - </p></div><div class="section" title="Thread Safety"><div class="titlepage"><div><div><h5 class="title"><a id="id486672"/>Thread Safety</h5></div></div></div><p> | |
11053 | + </p></div><div class="section" title="Thread Safety"><div class="titlepage"><div><div><h5 class="title"><a id="id665160"></a>Thread Safety</h5></div></div></div><p> | |
11054 | The | |
11055 | -<a class="link" href="http://boost.org/libs/smart_ptr/shared_ptr.htm#ThreadSafety">Thread | |
11056 | +<a class="link" href="http://boost.org/libs/smart_ptr/shared_ptr.htm#ThreadSafety" target="_top">Thread | |
11057 | Safety</a> section of the Boost shared_ptr documentation says "shared_ptr | |
11058 | objects offer the same level of thread safety as built-in types." | |
11059 | The implementation must ensure that concurrent updates to separate shared_ptr | |
11060 | @@ -536,7 +536,7 @@ | |
11061 | shared_ptr in libstdc++ the compiler and library are fixed, which | |
11062 | makes things much simpler: we have an atomic CAS or we don't, see Lock | |
11063 | Policy below for details. | |
11064 | -</p></div><div class="section" title="Selecting Lock Policy"><div class="titlepage"><div><div><h5 class="title"><a id="id486733"/>Selecting Lock Policy</h5></div></div></div><p> | |
11065 | +</p></div><div class="section" title="Selecting Lock Policy"><div class="titlepage"><div><div><h5 class="title"><a id="id665221"></a>Selecting Lock Policy</h5></div></div></div><p> | |
11066 | </p><p> | |
11067 | There is a single <code class="classname">_Sp_counted_base</code> class, | |
11068 | which is a template parameterized on the enum | |
11069 | @@ -552,11 +552,11 @@ | |
11070 | not be conforming for <code class="classname">shared_ptr</code> to have an | |
11071 | extra template parameter, even if it had a default value. The | |
11072 | available policies are: | |
11073 | - </p><div class="orderedlist"><ol class="orderedlist"><li class="listitem"><p> | |
11074 | + </p><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><p> | |
11075 | <code class="constant">_S_Atomic</code> | |
11076 | </p><p> | |
11077 | Selected when GCC supports a builtin atomic compare-and-swap operation | |
11078 | -on the target processor (see <a class="link" href="http://gcc.gnu.org/onlinedocs/gcc/Atomic-Builtins.html">Atomic | |
11079 | +on the target processor (see <a class="link" href="http://gcc.gnu.org/onlinedocs/gcc/Atomic-Builtins.html" target="_top">Atomic | |
11080 | Builtins</a>.) The reference counts are maintained using a lock-free | |
11081 | algorithm and GCC's atomic builtins, which provide the required memory | |
11082 | synchronisation. | |
11083 | @@ -577,7 +577,7 @@ | |
11084 | <code class="filename">ext/atomicity.h</code>, which detect if the program | |
11085 | is multi-threaded. If only one thread of execution exists in | |
11086 | the program then less expensive non-atomic operations are used. | |
11087 | - </p></div><div class="section" title="Related functions and classes"><div class="titlepage"><div><div><h5 class="title"><a id="id486854"/>Related functions and classes</h5></div></div></div><div class="variablelist"><dl><dt><span class="term"><code class="code">dynamic_pointer_cast</code>, <code class="code">static_pointer_cast</code>, | |
11088 | + </p></div><div class="section" title="Related functions and classes"><div class="titlepage"><div><div><h5 class="title"><a id="id665342"></a>Related functions and classes</h5></div></div></div><div class="variablelist"><dl><dt><span class="term"><code class="code">dynamic_pointer_cast</code>, <code class="code">static_pointer_cast</code>, | |
11089 | <code class="code">const_pointer_cast</code></span></dt><dd><p> | |
11090 | As noted in N2351, these functions can be implemented non-intrusively using | |
11091 | the alias constructor. However the aliasing constructor is only available | |
11092 | @@ -610,13 +610,13 @@ | |
11093 | As well as the extra constructors, this implementation also needs some | |
11094 | members of _Sp_counted_deleter to be protected where they could otherwise | |
11095 | be private. | |
11096 | - </p></dd></dl></div></div></div><div class="section" title="Use"><div class="titlepage"><div><div><h4 class="title"><a id="shared_ptr.using"/>Use</h4></div></div></div><div class="section" title="Examples"><div class="titlepage"><div><div><h5 class="title"><a id="id499306"/>Examples</h5></div></div></div><p> | |
11097 | + </p></dd></dl></div></div></div><div class="section" title="Use"><div class="titlepage"><div><div><h4 class="title"><a id="shared_ptr.using"></a>Use</h4></div></div></div><div class="section" title="Examples"><div class="titlepage"><div><div><h5 class="title"><a id="id677792"></a>Examples</h5></div></div></div><p> | |
11098 | Examples of use can be found in the testsuite, under | |
11099 | <code class="filename">testsuite/tr1/2_general_utilities/shared_ptr</code>, | |
11100 | <code class="filename">testsuite/20_util/shared_ptr</code> | |
11101 | and | |
11102 | <code class="filename">testsuite/20_util/weak_ptr</code>. | |
11103 | - </p></div><div class="section" title="Unresolved Issues"><div class="titlepage"><div><div><h5 class="title"><a id="id499336"/>Unresolved Issues</h5></div></div></div><p> | |
11104 | + </p></div><div class="section" title="Unresolved Issues"><div class="titlepage"><div><div><h5 class="title"><a id="id677822"></a>Unresolved Issues</h5></div></div></div><p> | |
11105 | The <span class="emphasis"><em><code class="classname">shared_ptr</code> atomic access</em></span> | |
11106 | clause in the C++11 standard is not implemented in GCC. | |
11107 | </p><p> | |
11108 | @@ -652,33 +652,33 @@ | |
11109 | </p><p> | |
11110 | tr1::_Sp_deleter could be a private member of tr1::__shared_count but it | |
11111 | would alter the ABI. | |
11112 | - </p></div></div><div class="section" title="Acknowledgments"><div class="titlepage"><div><div><h4 class="title"><a id="shared_ptr.ack"/>Acknowledgments</h4></div></div></div><p> | |
11113 | + </p></div></div><div class="section" title="Acknowledgments"><div class="titlepage"><div><div><h4 class="title"><a id="shared_ptr.ack"></a>Acknowledgments</h4></div></div></div><p> | |
11114 | The original authors of the Boost shared_ptr, which is really nice | |
11115 | code to work with, Peter Dimov in particular for his help and | |
11116 | invaluable advice on thread safety. Phillip Jordan and Paolo | |
11117 | Carlini for the lock policy implementation. | |
11118 | - </p></div><div class="bibliography" title="Bibliography"><div class="titlepage"><div><div><h4 class="title"><a id="shared_ptr.biblio"/>Bibliography</h4></div></div></div><div class="biblioentry" title="Improving shared_ptr for C++0x, Revision 2"><a id="id499429"/><p><span class="title"><em> | |
11119 | - <a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2351.htm"> | |
11120 | + </p></div><div class="bibliography" title="Bibliography"><div class="titlepage"><div><div><h4 class="title"><a id="shared_ptr.biblio"></a>Bibliography</h4></div></div></div><div class="biblioentry" title="Improving shared_ptr for C++0x, Revision 2"><a id="id677915"></a><p><span class="title"><em> | |
11121 | + <a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2351.htm" target="_top"> | |
11122 | Improving shared_ptr for C++0x, Revision 2 | |
11123 | </a> | |
11124 | </em>. </span><span class="subtitle"> | |
11125 | N2351 | |
11126 | - . </span></p></div><div class="biblioentry" title="C++ Standard Library Active Issues List"><a id="id499448"/><p><span class="title"><em> | |
11127 | - <a class="link" href="http://open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2456.html"> | |
11128 | + . </span></p></div><div class="biblioentry" title="C++ Standard Library Active Issues List"><a id="id677934"></a><p><span class="title"><em> | |
11129 | + <a class="link" href="http://open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2456.html" target="_top"> | |
11130 | C++ Standard Library Active Issues List | |
11131 | </a> | |
11132 | </em>. </span><span class="subtitle"> | |
11133 | N2456 | |
11134 | - . </span></p></div><div class="biblioentry" title="Working Draft, Standard for Programming Language C++"><a id="id499467"/><p><span class="title"><em> | |
11135 | - <a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2461.pdf"> | |
11136 | + . </span></p></div><div class="biblioentry" title="Working Draft, Standard for Programming Language C++"><a id="id677953"></a><p><span class="title"><em> | |
11137 | + <a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2461.pdf" target="_top"> | |
11138 | Working Draft, Standard for Programming Language C++ | |
11139 | </a> | |
11140 | </em>. </span><span class="subtitle"> | |
11141 | N2461 | |
11142 | - . </span></p></div><div class="biblioentry" title="Boost C++ Libraries documentation, shared_ptr"><a id="id499486"/><p><span class="title"><em> | |
11143 | - <a class="link" href="http://boost.org/libs/smart_ptr/shared_ptr.htm"> | |
11144 | + . </span></p></div><div class="biblioentry" title="Boost C++ Libraries documentation, shared_ptr"><a id="id677973"></a><p><span class="title"><em> | |
11145 | + <a class="link" href="http://boost.org/libs/smart_ptr/shared_ptr.htm" target="_top"> | |
11146 | Boost C++ Libraries documentation, shared_ptr | |
11147 | </a> | |
11148 | </em>. </span><span class="subtitle"> | |
11149 | N2461 | |
11150 | - . </span></p></div></div></div></div><div class="navfooter"><hr/><table width="100%" summary="Navigation footer"><tr><td align="left"><a accesskey="p" href="pairs.html">Prev</a> </td><td align="center"><a accesskey="u" href="utilities.html">Up</a></td><td align="right"> <a accesskey="n" href="traits.html">Next</a></td></tr><tr><td align="left" valign="top">Pairs </td><td align="center"><a accesskey="h" href="../index.html">Home</a></td><td align="right" valign="top"> Traits</td></tr></table></div></body></html> | |
11151 | + . </span></p></div></div></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="pairs.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="utilities.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="traits.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Pairs </td><td width="20%" align="center"><a accesskey="h" href="../index.html">Home</a></td><td width="40%" align="right" valign="top"> Traits</td></tr></table></div></body></html> | |
11152 | Index: libstdc++-v3/doc/html/manual/api.html | |
11153 | =================================================================== | |
9f95000d AM |
11154 | --- libstdc++-v3/doc/html/manual/api.html (.../tags/gcc_4_7_2_release) (wersja 192468) |
11155 | +++ libstdc++-v3/doc/html/manual/api.html (.../branches/gcc-4_7-branch) (wersja 192468) | |
5a87b929 AM |
11156 | @@ -1,11 +1,11 @@ |
11157 | <?xml version="1.0" encoding="UTF-8" standalone="no"?> | |
11158 | -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> | |
11159 | -<html xmlns="http://www.w3.org/1999/xhtml"><head><title>API Evolution and Deprecation History</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1"/><meta name="keywords" content="ISO C++, api, evolution, deprecation, history"/><meta name="keywords" content=" ISO C++ , library "/><meta name="keywords" content=" ISO C++ , runtime , library "/><link rel="home" href="../index.html" title="The GNU C++ Library"/><link rel="up" href="appendix_porting.html" title="Appendix B. Porting and Maintenance"/><link rel="prev" href="abi.html" title="ABI Policy and Guidelines"/><link rel="next" href="backwards.html" title="Backwards Compatibility"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">API Evolution and Deprecation History</th></tr><tr><td align="left"><a accesskey="p" href="abi.html">Prev</a> </td><th width="60%" align="center">Appendix B. | |
11160 | +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> | |
11161 | +<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>API Evolution and Deprecation History</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1" /><meta name="keywords" content="ISO C++, api, evolution, deprecation, history" /><meta name="keywords" content=" ISO C++ , library " /><meta name="keywords" content=" ISO C++ , runtime , library " /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="appendix_porting.html" title="Appendix B. Porting and Maintenance" /><link rel="prev" href="abi.html" title="ABI Policy and Guidelines" /><link rel="next" href="backwards.html" title="Backwards Compatibility" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">API Evolution and Deprecation History</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="abi.html">Prev</a> </td><th width="60%" align="center">Appendix B. | |
11162 | Porting and Maintenance | |
11163 | ||
11164 | -</th><td align="right"> <a accesskey="n" href="backwards.html">Next</a></td></tr></table><hr/></div><div class="section" title="API Evolution and Deprecation History"><div class="titlepage"><div><div><h2 class="title"><a id="appendix.porting.api"/>API Evolution and Deprecation History</h2></div></div></div><p> | |
11165 | +</th><td width="20%" align="right"> <a accesskey="n" href="backwards.html">Next</a></td></tr></table><hr /></div><div class="section" title="API Evolution and Deprecation History"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="appendix.porting.api"></a>API Evolution and Deprecation History</h2></div></div></div><p> | |
11166 | A list of user-visible changes, in chronological order | |
11167 | -</p><div class="section" title="3.0"><div class="titlepage"><div><div><h3 class="title"><a id="api.rel_300"/><code class="constant">3.0</code></h3></div></div></div><p> | |
11168 | +</p><div class="section" title="3.0"><div class="titlepage"><div><div><h3 class="title"><a id="api.rel_300"></a><code class="constant">3.0</code></h3></div></div></div><p> | |
11169 | Extensions moved to <code class="filename">include/ext</code>. | |
11170 | </p><p> | |
11171 | Include files from the SGI/HP sources that pre-date the ISO standard | |
11172 | @@ -14,7 +14,7 @@ | |
11173 | is added that notifies on inclusion (<code class="literal">-Wno-deprecated</code> | |
11174 | deactivates the warning.) | |
11175 | </p><p>Deprecated include <code class="filename">backward/strstream</code> added.</p><p>Removal of include <code class="filename">builtinbuf.h</code>, <code class="filename">indstream.h</code>, <code class="filename">parsestream.h</code>, <code class="filename">PlotFile.h</code>, <code class="filename">SFile.h</code>, <code class="filename">stdiostream.h</code>, and <code class="filename">stream.h</code>. | |
11176 | -</p></div><div class="section" title="3.1"><div class="titlepage"><div><div><h3 class="title"><a id="api.rel_310"/><code class="constant">3.1</code></h3></div></div></div><p> | |
11177 | +</p></div><div class="section" title="3.1"><div class="titlepage"><div><div><h3 class="title"><a id="api.rel_310"></a><code class="constant">3.1</code></h3></div></div></div><p> | |
11178 | </p><p> | |
11179 | Extensions from SGI/HP moved from <code class="code">namespace std</code> | |
11180 | to <code class="code">namespace __gnu_cxx</code>. As part of this, the following | |
11181 | @@ -26,15 +26,15 @@ | |
11182 | Extensions to tree data structures added in <code class="filename">ext/rb_tree</code>. | |
11183 | </p><p> | |
11184 | Removal of <code class="filename">ext/tree</code>, moved to <code class="filename">backward/tree.h</code>. | |
11185 | -</p></div><div class="section" title="3.2"><div class="titlepage"><div><div><h3 class="title"><a id="api.rel_320"/><code class="constant">3.2</code></h3></div></div></div><p> | |
11186 | +</p></div><div class="section" title="3.2"><div class="titlepage"><div><div><h3 class="title"><a id="api.rel_320"></a><code class="constant">3.2</code></h3></div></div></div><p> | |
11187 | </p><p>Symbol versioning introduced for shared library.</p><p>Removal of include <code class="filename">backward/strstream.h</code>.</p><p>Allocator changes. Change <code class="code">__malloc_alloc</code> to <code class="code">malloc_allocator</code> and <code class="code">__new_alloc</code> to <code class="code">new_allocator</code>. </p><p> For GCC releases from 2.95 through the 3.1 series, defining | |
11188 | <code class="literal">__USE_MALLOC</code> on the gcc command line would change the | |
11189 | default allocation strategy to instead use <code class="code"> malloc</code> and | |
11190 | <code class="function">free</code>. (This same functionality is now spelled <code class="literal">_GLIBCXX_FORCE_NEW</code>, see | |
11191 | <a class="link" href="using_macros.html" title="Macros">this page</a> | |
11192 | for details. | |
11193 | - </p><p>Error handling in iostreams cleaned up, made consistent. </p></div><div class="section" title="3.3"><div class="titlepage"><div><div><h3 class="title"><a id="api.rel_330"/><code class="constant">3.3</code></h3></div></div></div><p> | |
11194 | - </p></div><div class="section" title="3.4"><div class="titlepage"><div><div><h3 class="title"><a id="api.rel_340"/><code class="constant">3.4</code></h3></div></div></div><p> | |
11195 | + </p><p>Error handling in iostreams cleaned up, made consistent. </p></div><div class="section" title="3.3"><div class="titlepage"><div><div><h3 class="title"><a id="api.rel_330"></a><code class="constant">3.3</code></h3></div></div></div><p> | |
11196 | + </p></div><div class="section" title="3.4"><div class="titlepage"><div><div><h3 class="title"><a id="api.rel_340"></a><code class="constant">3.4</code></h3></div></div></div><p> | |
11197 | </p><p> | |
11198 | Large file support. | |
11199 | </p><p> Extensions for generic characters and <code class="code">char_traits</code> added in <code class="filename">ext/pod_char_traits.h</code>. | |
11200 | @@ -75,11 +75,11 @@ | |
11201 | <span class="type">__alloc</span> to select an underlying allocator that | |
11202 | satisfied memory allocation requests. The selection of this | |
11203 | underlying allocator was not user-configurable. | |
11204 | - </p><div class="table"><a id="id560820"/><p class="title"><strong>Table B.6. Extension Allocators</strong></p><div class="table-contents"><table summary="Extension Allocators" border="1"><colgroup><col style="text-align: left" class="c1"/><col style="text-align: left" class="c2"/><col style="text-align: left" class="c3"/><col style="text-align: left" class="c4"/></colgroup><thead><tr><th style="text-align: left">Allocator (3.4)</th><th style="text-align: left">Header (3.4)</th><th style="text-align: left">Allocator (3.[0-3])</th><th style="text-align: left">Header (3.[0-3])</th></tr></thead><tbody><tr><td style="text-align: left"><code class="classname">__gnu_cxx::new_allocator<T></code></td><td style="text-align: left"><code class="filename">ext/new_allocator.h</code></td><td style="text-align: left"><code class="classname">std::__new_alloc</code></td><td style="text-align: left"><code class="filename">memory</code></td></tr><tr><td style="text-align: left"><code class="classname">__gnu_cxx::malloc_allocator<T></code></td><td style="text-align: left"><code class="filename">ext/malloc_allocator.h</code></td><td style="text-align: left"><code class="classname">std::__malloc_alloc_template<int></code></td><td style="text-align: left"><code class="filename">memory</code></td></tr><tr><td style="text-align: left"><code class="classname">__gnu_cxx::debug_allocator<T></code></td><td style="text-align: left"><code class="filename">ext/debug_allocator.h</code></td><td style="text-align: left"><code class="classname">std::debug_alloc<T></code></td><td style="text-align: left"><code class="filename">memory</code></td></tr><tr><td style="text-align: left"><code class="classname">__gnu_cxx::__pool_alloc<T></code></td><td style="text-align: left"><code class="filename">ext/pool_allocator.h</code></td><td style="text-align: left"><code class="classname">std::__default_alloc_template<bool,int></code></td><td style="text-align: left"><code class="filename">memory</code></td></tr><tr><td style="text-align: left"><code class="classname">__gnu_cxx::__mt_alloc<T></code></td><td style="text-align: left"><code class="filename">ext/mt_allocator.h</code></td><td style="text-align: left"> </td><td style="text-align: left"> </td></tr><tr><td style="text-align: left"><code class="classname">__gnu_cxx::bitmap_allocator<T></code></td><td style="text-align: left"><code class="filename">ext/bitmap_allocator.h</code></td><td style="text-align: left"> </td><td style="text-align: left"> </td></tr></tbody></table></div></div><br class="table-break"/><p> Releases after gcc-3.4 have continued to add to the collection | |
11205 | + </p><div class="table"><a id="id739323"></a><p class="title"><strong>Table B.6. Extension Allocators</strong></p><div class="table-contents"><table summary="Extension Allocators" border="1"><colgroup><col align="left" class="c1" /><col align="left" class="c2" /><col align="left" class="c3" /><col align="left" class="c4" /></colgroup><thead><tr><th align="left">Allocator (3.4)</th><th align="left">Header (3.4)</th><th align="left">Allocator (3.[0-3])</th><th align="left">Header (3.[0-3])</th></tr></thead><tbody><tr><td align="left"><code class="classname">__gnu_cxx::new_allocator<T></code></td><td align="left"><code class="filename">ext/new_allocator.h</code></td><td align="left"><code class="classname">std::__new_alloc</code></td><td align="left"><code class="filename">memory</code></td></tr><tr><td align="left"><code class="classname">__gnu_cxx::malloc_allocator<T></code></td><td align="left"><code class="filename">ext/malloc_allocator.h</code></td><td align="left"><code class="classname">std::__malloc_alloc_template<int></code></td><td align="left"><code class="filename">memory</code></td></tr><tr><td align="left"><code class="classname">__gnu_cxx::debug_allocator<T></code></td><td align="left"><code class="filename">ext/debug_allocator.h</code></td><td align="left"><code class="classname">std::debug_alloc<T></code></td><td align="left"><code class="filename">memory</code></td></tr><tr><td align="left"><code class="classname">__gnu_cxx::__pool_alloc<T></code></td><td align="left"><code class="filename">ext/pool_allocator.h</code></td><td align="left"><code class="classname">std::__default_alloc_template<bool,int></code></td><td align="left"><code class="filename">memory</code></td></tr><tr><td align="left"><code class="classname">__gnu_cxx::__mt_alloc<T></code></td><td align="left"><code class="filename">ext/mt_allocator.h</code></td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left"><code class="classname">__gnu_cxx::bitmap_allocator<T></code></td><td align="left"><code class="filename">ext/bitmap_allocator.h</code></td><td align="left"> </td><td align="left"> </td></tr></tbody></table></div></div><br class="table-break" /><p> Releases after gcc-3.4 have continued to add to the collection | |
11206 | of available allocators. All of these new allocators are | |
11207 | standard-style. The following table includes details, along with | |
11208 | the first released version of GCC that included the extension allocator. | |
11209 | - </p><div class="table"><a id="id561050"/><p class="title"><strong>Table B.7. Extension Allocators Continued</strong></p><div class="table-contents"><table summary="Extension Allocators Continued" border="1"><colgroup><col style="text-align: left" class="c1"/><col style="text-align: left" class="c2"/><col style="text-align: left" class="c3"/></colgroup><thead><tr><th style="text-align: left">Allocator</th><th style="text-align: left">Include</th><th style="text-align: left">Version</th></tr></thead><tbody><tr><td style="text-align: left"><code class="classname">__gnu_cxx::array_allocator<T></code></td><td style="text-align: left"><code class="filename">ext/array_allocator.h</code></td><td style="text-align: left">4.0.0</td></tr><tr><td style="text-align: left"><code class="classname">__gnu_cxx::throw_allocator<T></code></td><td style="text-align: left"><code class="filename">ext/throw_allocator.h</code></td><td style="text-align: left">4.2.0</td></tr></tbody></table></div></div><br class="table-break"/><p> | |
11210 | + </p><div class="table"><a id="id739553"></a><p class="title"><strong>Table B.7. Extension Allocators Continued</strong></p><div class="table-contents"><table summary="Extension Allocators Continued" border="1"><colgroup><col align="left" class="c1" /><col align="left" class="c2" /><col align="left" class="c3" /></colgroup><thead><tr><th align="left">Allocator</th><th align="left">Include</th><th align="left">Version</th></tr></thead><tbody><tr><td align="left"><code class="classname">__gnu_cxx::array_allocator<T></code></td><td align="left"><code class="filename">ext/array_allocator.h</code></td><td align="left">4.0.0</td></tr><tr><td align="left"><code class="classname">__gnu_cxx::throw_allocator<T></code></td><td align="left"><code class="filename">ext/throw_allocator.h</code></td><td align="left">4.2.0</td></tr></tbody></table></div></div><br class="table-break" /><p> | |
11211 | Debug mode first appears. | |
11212 | </p><p> | |
11213 | Precompiled header support <acronym class="acronym">PCH</acronym> support. | |
11214 | @@ -89,7 +89,7 @@ | |
11215 | Extension <code class="filename">ext/stdio_sync_filebuf.h</code> added. | |
11216 | </p><p> | |
11217 | Extension <code class="filename">ext/demangle.h</code> added. | |
11218 | -</p></div><div class="section" title="4.0"><div class="titlepage"><div><div><h3 class="title"><a id="api.rel_400"/><code class="constant">4.0</code></h3></div></div></div><p> | |
11219 | +</p></div><div class="section" title="4.0"><div class="titlepage"><div><div><h3 class="title"><a id="api.rel_400"></a><code class="constant">4.0</code></h3></div></div></div><p> | |
11220 | </p><p> | |
11221 | TR1 features first appear. | |
11222 | </p><p> | |
11223 | @@ -98,14 +98,14 @@ | |
11224 | Extension <code class="code">codecvt</code> specializations moved to <code class="filename">ext/codecvt_specializations.h</code>. | |
11225 | </p><p> | |
11226 | Removal of <code class="filename">ext/demangle.h</code>. | |
11227 | -</p></div><div class="section" title="4.1"><div class="titlepage"><div><div><h3 class="title"><a id="api.rel_410"/><code class="constant">4.1</code></h3></div></div></div><p> | |
11228 | +</p></div><div class="section" title="4.1"><div class="titlepage"><div><div><h3 class="title"><a id="api.rel_410"></a><code class="constant">4.1</code></h3></div></div></div><p> | |
11229 | </p><p> | |
11230 | Removal of <code class="filename">cassert</code> from all standard headers: now has to be explicitly included for <code class="code">std::assert</code> calls. | |
11231 | </p><p> Extensions for policy-based data structures first added. New includes, | |
11232 | types, namespace <code class="code">pb_assoc</code>. | |
11233 | </p><p> Extensions for typelists added in <code class="filename">ext/typelist.h</code>. | |
11234 | </p><p> Extension for policy-based <code class="code">basic_string</code> first added: <code class="code">__gnu_cxx::__versa_string</code> in <code class="filename">ext/vstring.h</code>. | |
11235 | -</p></div><div class="section" title="4.2"><div class="titlepage"><div><div><h3 class="title"><a id="api.rel_420"/><code class="constant">4.2</code></h3></div></div></div><p> | |
11236 | +</p></div><div class="section" title="4.2"><div class="titlepage"><div><div><h3 class="title"><a id="api.rel_420"></a><code class="constant">4.2</code></h3></div></div></div><p> | |
11237 | </p><p> Default visibility attributes applied to <code class="code">namespace std</code>. Support for <code class="code">-fvisibility</code>. | |
11238 | </p><p>TR1 <code class="filename">random</code>, <code class="filename">complex</code>, and C compatibility headers added.</p><p> Extensions for concurrent programming consolidated | |
11239 | into <code class="filename">ext/concurrence.h</code> and <code class="filename">ext/atomicity.h</code>, | |
11240 | @@ -120,13 +120,13 @@ | |
11241 | std::__debug</code> and extensions in <code class="code">namespace | |
11242 | __gnu_cxx::__debug</code>.</p><p> Extensions added: <code class="filename">ext/typelist.h</code> | |
11243 | and <code class="filename">ext/throw_allocator.h</code>. | |
11244 | -</p></div><div class="section" title="4.3"><div class="titlepage"><div><div><h3 class="title"><a id="api.rel_430"/><code class="constant">4.3</code></h3></div></div></div><p> | |
11245 | +</p></div><div class="section" title="4.3"><div class="titlepage"><div><div><h3 class="title"><a id="api.rel_430"></a><code class="constant">4.3</code></h3></div></div></div><p> | |
11246 | </p><p> | |
11247 | C++0X features first appear. | |
11248 | </p><p>TR1 <code class="filename">regex</code> and <code class="filename">cmath</code>'s mathematical special function added. | |
11249 | </p><p> | |
11250 | Backward include edit. | |
11251 | -</p><div class="itemizedlist"><ul class="itemizedlist"><li class="listitem"><p>Removed</p><p> | |
11252 | +</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>Removed</p><p> | |
11253 | <code class="filename">algobase.h</code> <code class="filename">algo.h</code> <code class="filename">alloc.h</code> <code class="filename">bvector.h</code> <code class="filename">complex.h</code> | |
11254 | <code class="filename">defalloc.h</code> <code class="filename">deque.h</code> <code class="filename">fstream.h</code> <code class="filename">function.h</code> <code class="filename">hash_map.h</code> <code class="filename">hash_set.h</code> | |
11255 | <code class="filename">hashtable.h</code> <code class="filename">heap.h</code> <code class="filename">iomanip.h</code> <code class="filename">iostream.h</code> <code class="filename">istream.h</code> <code class="filename">iterator.h</code> | |
11256 | @@ -138,7 +138,7 @@ | |
11257 | <code class="filename">auto_ptr.h</code> and <code class="filename">binders.h</code> | |
11258 | </p></li></ul></div><p> | |
11259 | Header dependency streamlining. | |
11260 | -</p><div class="itemizedlist"><ul class="itemizedlist"><li class="listitem"><p><code class="filename">algorithm</code> no longer includes <code class="filename">climits</code>, <code class="filename">cstring</code>, or <code class="filename">iosfwd</code> </p></li><li class="listitem"><p><code class="filename">bitset</code> no longer includes <code class="filename">istream</code> or <code class="filename">ostream</code>, adds <code class="filename">iosfwd</code> </p></li><li class="listitem"><p><code class="filename">functional</code> no longer includes <code class="filename">cstddef</code></p></li><li class="listitem"><p><code class="filename">iomanip</code> no longer includes <code class="filename">istream</code>, <code class="filename">istream</code>, or <code class="filename">functional</code>, adds <code class="filename">ioswd</code> </p></li><li class="listitem"><p><code class="filename">numeric</code> no longer includes <code class="filename">iterator</code></p></li><li class="listitem"><p><code class="filename">string</code> no longer includes <code class="filename">algorithm</code> or <code class="filename">memory</code></p></li><li class="listitem"><p><code class="filename">valarray</code> no longer includes <code class="filename">numeric</code> or <code class="filename">cstdlib</code></p></li><li class="listitem"><p><code class="filename">tr1/hashtable</code> no longer includes <code class="filename">memory</code> or <code class="filename">functional</code></p></li><li class="listitem"><p><code class="filename">tr1/memory</code> no longer includes <code class="filename">algorithm</code></p></li><li class="listitem"><p><code class="filename">tr1/random</code> no longer includes <code class="filename">algorithm</code> or <code class="filename">fstream</code></p></li></ul></div><p> | |
11261 | +</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p><code class="filename">algorithm</code> no longer includes <code class="filename">climits</code>, <code class="filename">cstring</code>, or <code class="filename">iosfwd</code> </p></li><li class="listitem"><p><code class="filename">bitset</code> no longer includes <code class="filename">istream</code> or <code class="filename">ostream</code>, adds <code class="filename">iosfwd</code> </p></li><li class="listitem"><p><code class="filename">functional</code> no longer includes <code class="filename">cstddef</code></p></li><li class="listitem"><p><code class="filename">iomanip</code> no longer includes <code class="filename">istream</code>, <code class="filename">istream</code>, or <code class="filename">functional</code>, adds <code class="filename">ioswd</code> </p></li><li class="listitem"><p><code class="filename">numeric</code> no longer includes <code class="filename">iterator</code></p></li><li class="listitem"><p><code class="filename">string</code> no longer includes <code class="filename">algorithm</code> or <code class="filename">memory</code></p></li><li class="listitem"><p><code class="filename">valarray</code> no longer includes <code class="filename">numeric</code> or <code class="filename">cstdlib</code></p></li><li class="listitem"><p><code class="filename">tr1/hashtable</code> no longer includes <code class="filename">memory</code> or <code class="filename">functional</code></p></li><li class="listitem"><p><code class="filename">tr1/memory</code> no longer includes <code class="filename">algorithm</code></p></li><li class="listitem"><p><code class="filename">tr1/random</code> no longer includes <code class="filename">algorithm</code> or <code class="filename">fstream</code></p></li></ul></div><p> | |
11262 | Debug mode for <code class="filename">unordered_map</code> and <code class="filename">unordered_set</code>. | |
11263 | </p><p> | |
11264 | Parallel mode first appears. | |
11265 | @@ -152,10 +152,10 @@ | |
11266 | PCH binary files no longer installed. Instead, the source files are installed. | |
11267 | </p><p> | |
11268 | Namespace pb_ds moved to __gnu_pb_ds. | |
11269 | -</p></div><div class="section" title="4.4"><div class="titlepage"><div><div><h3 class="title"><a id="api.rel_440"/><code class="constant">4.4</code></h3></div></div></div><p> | |
11270 | +</p></div><div class="section" title="4.4"><div class="titlepage"><div><div><h3 class="title"><a id="api.rel_440"></a><code class="constant">4.4</code></h3></div></div></div><p> | |
11271 | </p><p> | |
11272 | C++0X features. | |
11273 | -</p><div class="itemizedlist"><ul class="itemizedlist"><li class="listitem"><p> | |
11274 | +</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p> | |
11275 | Added. | |
11276 | </p><p> | |
11277 | <code class="filename">atomic</code>, | |
11278 | @@ -207,10 +207,10 @@ | |
11279 | for non-standard pointer types has been added | |
11280 | to <code class="classname">vector</code> | |
11281 | and <code class="classname">forward_list</code>. | |
11282 | -</p></div><div class="section" title="4.5"><div class="titlepage"><div><div><h3 class="title"><a id="api.rel_450"/><code class="constant">4.5</code></h3></div></div></div><p> | |
11283 | +</p></div><div class="section" title="4.5"><div class="titlepage"><div><div><h3 class="title"><a id="api.rel_450"></a><code class="constant">4.5</code></h3></div></div></div><p> | |
11284 | </p><p> | |
11285 | C++0X features. | |
11286 | -</p><div class="itemizedlist"><ul class="itemizedlist"><li class="listitem"><p> | |
11287 | +</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p> | |
11288 | Added. | |
11289 | </p><p> | |
11290 | <code class="filename">functional</code>, | |
11291 | @@ -237,4 +237,4 @@ | |
11292 | in <code class="filename">typeinfo</code>, <code class="literal">__GXX_MERGED_TYPEINFO_NAMES</code> | |
11293 | now defaults to zero. | |
11294 | </p><p> Extensions modified: <code class="filename">ext/throw_allocator.h</code>. | |
11295 | -</p></div></div><div class="navfooter"><hr/><table width="100%" summary="Navigation footer"><tr><td align="left"><a accesskey="p" href="abi.html">Prev</a> </td><td align="center"><a accesskey="u" href="appendix_porting.html">Up</a></td><td align="right"> <a accesskey="n" href="backwards.html">Next</a></td></tr><tr><td align="left" valign="top">ABI Policy and Guidelines </td><td align="center"><a accesskey="h" href="../index.html">Home</a></td><td align="right" valign="top"> Backwards Compatibility</td></tr></table></div></body></html> | |
11296 | +</p></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="abi.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="appendix_porting.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="backwards.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">ABI Policy and Guidelines </td><td width="20%" align="center"><a accesskey="h" href="../index.html">Home</a></td><td width="40%" align="right" valign="top"> Backwards Compatibility</td></tr></table></div></body></html> | |
11297 | Index: libstdc++-v3/doc/html/manual/bk01pt03ch23s02.html | |
11298 | =================================================================== | |
9f95000d AM |
11299 | --- libstdc++-v3/doc/html/manual/bk01pt03ch23s02.html (.../tags/gcc_4_7_2_release) (wersja 192468) |
11300 | +++ libstdc++-v3/doc/html/manual/bk01pt03ch23s02.html (.../branches/gcc-4_7-branch) (wersja 192468) | |
5a87b929 AM |
11301 | @@ -1,6 +1,6 @@ |
11302 | <?xml version="1.0" encoding="UTF-8" standalone="no"?> | |
11303 | -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> | |
11304 | -<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Deprecated</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1"/><meta name="keywords" content=" ISO C++ , library "/><meta name="keywords" content=" ISO C++ , runtime , library "/><link rel="home" href="../index.html" title="The GNU C++ Library"/><link rel="up" href="ext_containers.html" title="Chapter 23. HP/SGI Extensions"/><link rel="prev" href="ext_containers.html" title="Chapter 23. HP/SGI Extensions"/><link rel="next" href="ext_utilities.html" title="Chapter 24. Utilities"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Deprecated</th></tr><tr><td align="left"><a accesskey="p" href="ext_containers.html">Prev</a> </td><th width="60%" align="center">Chapter 23. HP/SGI Extensions</th><td align="right"> <a accesskey="n" href="ext_utilities.html">Next</a></td></tr></table><hr/></div><div class="section" title="Deprecated"><div class="titlepage"><div><div><h2 class="title"><a id="manual.ext.containers.deprecated_sgi"/>Deprecated</h2></div></div></div><p> | |
11305 | +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> | |
11306 | +<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Deprecated</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1" /><meta name="keywords" content=" ISO C++ , library " /><meta name="keywords" content=" ISO C++ , runtime , library " /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="ext_containers.html" title="Chapter 23. HP/SGI Extensions" /><link rel="prev" href="ext_containers.html" title="Chapter 23. HP/SGI Extensions" /><link rel="next" href="ext_utilities.html" title="Chapter 24. Utilities" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Deprecated</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ext_containers.html">Prev</a> </td><th width="60%" align="center">Chapter 23. HP/SGI Extensions</th><td width="20%" align="right"> <a accesskey="n" href="ext_utilities.html">Next</a></td></tr></table><hr /></div><div class="section" title="Deprecated"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="manual.ext.containers.deprecated_sgi"></a>Deprecated</h2></div></div></div><p> | |
11307 | The SGI hashing classes <code class="classname">hash_set</code> and | |
11308 | <code class="classname">hash_set</code> have been deprecated by the | |
11309 | unordered_set, unordered_multiset, unordered_map, | |
11310 | @@ -29,12 +29,12 @@ | |
11311 | and sets. | |
11312 | </p><p>Each of the associative containers map, multimap, set, and multiset | |
11313 | have a counterpart which uses a | |
11314 | - <a class="link" href="http://www.sgi.com/tech/stl/HashFunction.html">hashing | |
11315 | + <a class="link" href="http://www.sgi.com/tech/stl/HashFunction.html" target="_top">hashing | |
11316 | function</a> to do the arranging, instead of a strict weak ordering | |
11317 | function. The classes take as one of their template parameters a | |
11318 | function object that will return the hash value; by default, an | |
11319 | instantiation of | |
11320 | - <a class="link" href="http://www.sgi.com/tech/stl/hash.html">hash</a>. | |
11321 | + <a class="link" href="http://www.sgi.com/tech/stl/hash.html" target="_top">hash</a>. | |
11322 | You should specialize this functor for your class, or define your own, | |
11323 | before trying to use one of the hashing classes. | |
11324 | </p><p>The hashing classes support all the usual associative container | |
11325 | @@ -56,4 +56,4 @@ | |
11326 | associative containers defined in the ISO C++ 2011 standard in the | |
11327 | headers <code class="filename"><unordered_map></code> | |
11328 | and <code class="filename"><unordered_set></code>. | |
11329 | - </p></div><div class="navfooter"><hr/><table width="100%" summary="Navigation footer"><tr><td align="left"><a accesskey="p" href="ext_containers.html">Prev</a> </td><td align="center"><a accesskey="u" href="ext_containers.html">Up</a></td><td align="right"> <a accesskey="n" href="ext_utilities.html">Next</a></td></tr><tr><td align="left" valign="top">Chapter 23. HP/SGI Extensions </td><td align="center"><a accesskey="h" href="../index.html">Home</a></td><td align="right" valign="top"> Chapter 24. Utilities</td></tr></table></div></body></html> | |
11330 | + </p></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="ext_containers.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="ext_containers.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="ext_utilities.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Chapter 23. HP/SGI Extensions </td><td width="20%" align="center"><a accesskey="h" href="../index.html">Home</a></td><td width="40%" align="right" valign="top"> Chapter 24. Utilities</td></tr></table></div></body></html> | |
11331 | Index: libstdc++-v3/doc/html/manual/policy_data_structures_biblio.html | |
11332 | =================================================================== | |
9f95000d AM |
11333 | --- libstdc++-v3/doc/html/manual/policy_data_structures_biblio.html (.../tags/gcc_4_7_2_release) (wersja 192468) |
11334 | +++ libstdc++-v3/doc/html/manual/policy_data_structures_biblio.html (.../branches/gcc-4_7-branch) (wersja 192468) | |
5a87b929 AM |
11335 | @@ -1,17 +1,17 @@ |
11336 | <?xml version="1.0" encoding="UTF-8" standalone="no"?> | |
11337 | -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> | |
11338 | -<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Acknowledgments</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1"/><meta name="keywords" content=" 	ISO C++ , 	policy , 	container , 	data , 	structure , 	associated , 	tree , 	trie , 	hash , 	metaprogramming "/><meta name="keywords" content=" ISO C++ , library "/><meta name="keywords" content=" ISO C++ , runtime , library "/><link rel="home" href="../index.html" title="The GNU C++ Library"/><link rel="up" href="policy_data_structures.html" title="Chapter 22. Policy-Based Data Structures"/><link rel="prev" href="policy_based_data_structures_test.html" title="Testing"/><link rel="next" href="ext_containers.html" title="Chapter 23. HP/SGI Extensions"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Acknowledgments</th></tr><tr><td align="left"><a accesskey="p" href="policy_based_data_structures_test.html">Prev</a> </td><th width="60%" align="center">Chapter 22. Policy-Based Data Structures</th><td align="right"> <a accesskey="n" href="ext_containers.html">Next</a></td></tr></table><hr/></div><div class="section" title="Acknowledgments"><div class="titlepage"><div><div><h2 class="title"><a id="pbds.ack"/>Acknowledgments</h2></div></div></div><p> | |
11339 | +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> | |
11340 | +<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Acknowledgments</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1" /><meta name="keywords" content=" 	ISO C++ , 	policy , 	container , 	data , 	structure , 	associated , 	tree , 	trie , 	hash , 	metaprogramming " /><meta name="keywords" content=" ISO C++ , library " /><meta name="keywords" content=" ISO C++ , runtime , library " /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="policy_data_structures.html" title="Chapter 22. Policy-Based Data Structures" /><link rel="prev" href="policy_based_data_structures_test.html" title="Testing" /><link rel="next" href="ext_containers.html" title="Chapter 23. HP/SGI Extensions" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Acknowledgments</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="policy_based_data_structures_test.html">Prev</a> </td><th width="60%" align="center">Chapter 22. Policy-Based Data Structures</th><td width="20%" align="right"> <a accesskey="n" href="ext_containers.html">Next</a></td></tr></table><hr /></div><div class="section" title="Acknowledgments"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="pbds.ack"></a>Acknowledgments</h2></div></div></div><p> | |
11341 | Written by Ami Tavory and Vladimir Dreizin (IBM Haifa Research | |
11342 | Laboratories), and Benjamin Kosnik (Red Hat). | |
11343 | </p><p> | |
11344 | This library was partially written at | |
11345 | - <a class="link" href="http://www.haifa.il.ibm.com/">IBM's Haifa Research Labs</a>. | |
11346 | + <a class="link" href="http://www.haifa.il.ibm.com/" target="_top">IBM's Haifa Research Labs</a>. | |
11347 | It is based heavily on policy-based design and uses many useful | |
11348 | techniques from Modern C++ Design: Generic Programming and Design | |
11349 | Patterns Applied by Andrei Alexandrescu. | |
11350 | </p><p> | |
11351 | Two ideas are borrowed from the SGI-STL implementation: | |
11352 | - </p><div class="orderedlist"><ol class="orderedlist"><li class="listitem"><p> | |
11353 | + </p><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><p> | |
11354 | The prime-based resize policies use a list of primes taken from | |
11355 | the SGI-STL implementation. | |
11356 | </p></li><li class="listitem"><p> | |
11357 | @@ -20,10 +20,10 @@ | |
11358 | reverse iteration can be performed efficiently. | |
11359 | </p></li></ol></div><p> | |
11360 | Some test utilities borrow ideas from | |
11361 | - <a class="link" href="http://www.boost.org/doc/libs/release/libs/timer/index.html">boost::timer</a>. | |
11362 | + <a class="link" href="http://www.boost.org/doc/libs/release/libs/timer/index.html" target="_top">boost::timer</a>. | |
11363 | </p><p> | |
11364 | We would like to thank Scott Meyers for useful comments (without | |
11365 | attributing to him any flaws in the design or implementation of the | |
11366 | library). | |
11367 | </p><p>We would like to thank Matt Austern for the suggestion to | |
11368 | - include tries.</p></div><div class="navfooter"><hr/><table width="100%" summary="Navigation footer"><tr><td align="left"><a accesskey="p" href="policy_based_data_structures_test.html">Prev</a> </td><td align="center"><a accesskey="u" href="policy_data_structures.html">Up</a></td><td align="right"> <a accesskey="n" href="ext_containers.html">Next</a></td></tr><tr><td align="left" valign="top">Testing </td><td align="center"><a accesskey="h" href="../index.html">Home</a></td><td align="right" valign="top"> Chapter 23. HP/SGI Extensions</td></tr></table></div></body></html> | |
11369 | + include tries.</p></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="policy_based_data_structures_test.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="policy_data_structures.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="ext_containers.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Testing </td><td width="20%" align="center"><a accesskey="h" href="../index.html">Home</a></td><td width="40%" align="right" valign="top"> Chapter 23. HP/SGI Extensions</td></tr></table></div></body></html> | |
11370 | Index: libstdc++-v3/doc/html/manual/bk01pt03ch17s03.html | |
11371 | =================================================================== | |
9f95000d AM |
11372 | --- libstdc++-v3/doc/html/manual/bk01pt03ch17s03.html (.../tags/gcc_4_7_2_release) (wersja 192468) |
11373 | +++ libstdc++-v3/doc/html/manual/bk01pt03ch17s03.html (.../branches/gcc-4_7-branch) (wersja 192468) | |
5a87b929 AM |
11374 | @@ -1,7 +1,7 @@ |
11375 | <?xml version="1.0" encoding="UTF-8" standalone="no"?> | |
11376 | -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> | |
11377 | -<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Using</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1"/><meta name="keywords" content=" C++ , library , debug "/><meta name="keywords" content=" ISO C++ , library "/><meta name="keywords" content=" ISO C++ , runtime , library "/><link rel="home" href="../index.html" title="The GNU C++ Library"/><link rel="up" href="debug_mode.html" title="Chapter 17. Debug Mode"/><link rel="prev" href="bk01pt03ch17s02.html" title="Semantics"/><link rel="next" href="bk01pt03ch17s04.html" title="Design"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Using</th></tr><tr><td align="left"><a accesskey="p" href="bk01pt03ch17s02.html">Prev</a> </td><th width="60%" align="center">Chapter 17. Debug Mode</th><td align="right"> <a accesskey="n" href="bk01pt03ch17s04.html">Next</a></td></tr></table><hr/></div><div class="section" title="Using"><div class="titlepage"><div><div><h2 class="title"><a id="manual.ext.debug_mode.using"/>Using</h2></div></div></div><p> | |
11378 | - </p><div class="section" title="Using the Debug Mode"><div class="titlepage"><div><div><h3 class="title"><a id="debug_mode.using.mode"/>Using the Debug Mode</h3></div></div></div><p>To use the libstdc++ debug mode, compile your application with the | |
11379 | +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> | |
11380 | +<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Using</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1" /><meta name="keywords" content=" C++ , library , debug " /><meta name="keywords" content=" ISO C++ , library " /><meta name="keywords" content=" ISO C++ , runtime , library " /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="debug_mode.html" title="Chapter 17. Debug Mode" /><link rel="prev" href="bk01pt03ch17s02.html" title="Semantics" /><link rel="next" href="bk01pt03ch17s04.html" title="Design" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Using</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="bk01pt03ch17s02.html">Prev</a> </td><th width="60%" align="center">Chapter 17. Debug Mode</th><td width="20%" align="right"> <a accesskey="n" href="bk01pt03ch17s04.html">Next</a></td></tr></table><hr /></div><div class="section" title="Using"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="manual.ext.debug_mode.using"></a>Using</h2></div></div></div><p> | |
11381 | + </p><div class="section" title="Using the Debug Mode"><div class="titlepage"><div><div><h3 class="title"><a id="debug_mode.using.mode"></a>Using the Debug Mode</h3></div></div></div><p>To use the libstdc++ debug mode, compile your application with the | |
11382 | compiler flag <code class="code">-D_GLIBCXX_DEBUG</code>. Note that this flag | |
11383 | changes the sizes and behavior of standard class templates such | |
11384 | as <code class="code">std::vector</code>, and therefore you can only link code | |
11385 | @@ -10,7 +10,7 @@ | |
11386 | units.</p><p>By default, error messages are formatted to fit on lines of about | |
11387 | 78 characters. The environment variable | |
11388 | <code class="code">GLIBCXX_DEBUG_MESSAGE_LENGTH</code> can be used to request a | |
11389 | - different length.</p></div><div class="section" title="Using a Specific Debug Container"><div class="titlepage"><div><div><h3 class="title"><a id="debug_mode.using.specific"/>Using a Specific Debug Container</h3></div></div></div><p>When it is not feasible to recompile your entire application, or | |
11390 | + different length.</p></div><div class="section" title="Using a Specific Debug Container"><div class="titlepage"><div><div><h3 class="title"><a id="debug_mode.using.specific"></a>Using a Specific Debug Container</h3></div></div></div><p>When it is not feasible to recompile your entire application, or | |
11391 | only specific containers need checking, debugging containers are | |
11392 | available as GNU extensions. These debugging containers are | |
11393 | functionally equivalent to the standard drop-in containers used in | |
11394 | @@ -19,6 +19,6 @@ | |
11395 | mode or with debug mode. The | |
11396 | following table provides the names and headers of the debugging | |
11397 | containers: | |
11398 | -</p><div class="table"><a id="id506882"/><p class="title"><strong>Table 17.1. Debugging Containers</strong></p><div class="table-contents"><table summary="Debugging Containers" border="1"><colgroup><col style="text-align: left" class="c1"/><col style="text-align: left" class="c2"/><col style="text-align: left" class="c3"/><col style="text-align: left" class="c4"/></colgroup><thead><tr><th style="text-align: left">Container</th><th style="text-align: left">Header</th><th style="text-align: left">Debug container</th><th style="text-align: left">Debug header</th></tr></thead><tbody><tr><td style="text-align: left"><code class="classname">std::bitset</code></td><td style="text-align: left"><code class="filename">bitset</code></td><td style="text-align: left"><code class="classname">__gnu_debug::bitset</code></td><td style="text-align: left"><code class="filename"><debug/bitset></code></td></tr><tr><td style="text-align: left"><code class="classname">std::deque</code></td><td style="text-align: left"><code class="filename">deque</code></td><td style="text-align: left"><code class="classname">__gnu_debug::deque</code></td><td style="text-align: left"><code class="filename"><debug/deque></code></td></tr><tr><td style="text-align: left"><code class="classname">std::list</code></td><td style="text-align: left"><code class="filename">list</code></td><td style="text-align: left"><code class="classname">__gnu_debug::list</code></td><td style="text-align: left"><code class="filename"><debug/list></code></td></tr><tr><td style="text-align: left"><code class="classname">std::map</code></td><td style="text-align: left"><code class="filename">map</code></td><td style="text-align: left"><code class="classname">__gnu_debug::map</code></td><td style="text-align: left"><code class="filename"><debug/map></code></td></tr><tr><td style="text-align: left"><code class="classname">std::multimap</code></td><td style="text-align: left"><code class="filename">map</code></td><td style="text-align: left"><code class="classname">__gnu_debug::multimap</code></td><td style="text-align: left"><code class="filename"><debug/map></code></td></tr><tr><td style="text-align: left"><code class="classname">std::multiset</code></td><td style="text-align: left"><code class="filename">set</code></td><td style="text-align: left"><code class="classname">__gnu_debug::multiset</code></td><td style="text-align: left"><code class="filename"><debug/set></code></td></tr><tr><td style="text-align: left"><code class="classname">std::set</code></td><td style="text-align: left"><code class="filename">set</code></td><td style="text-align: left"><code class="classname">__gnu_debug::set</code></td><td style="text-align: left"><code class="filename"><debug/set></code></td></tr><tr><td style="text-align: left"><code class="classname">std::string</code></td><td style="text-align: left"><code class="filename">string</code></td><td style="text-align: left"><code class="classname">__gnu_debug::string</code></td><td style="text-align: left"><code class="filename"><debug/string></code></td></tr><tr><td style="text-align: left"><code class="classname">std::wstring</code></td><td style="text-align: left"><code class="filename">string</code></td><td style="text-align: left"><code class="classname">__gnu_debug::wstring</code></td><td style="text-align: left"><code class="filename"><debug/string></code></td></tr><tr><td style="text-align: left"><code class="classname">std::basic_string</code></td><td style="text-align: left"><code class="filename">string</code></td><td style="text-align: left"><code class="classname">__gnu_debug::basic_string</code></td><td style="text-align: left"><code class="filename"><debug/string></code></td></tr><tr><td style="text-align: left"><code class="classname">std::vector</code></td><td style="text-align: left"><code class="filename">vector</code></td><td style="text-align: left"><code class="classname">__gnu_debug::vector</code></td><td style="text-align: left"><code class="filename"><debug/vector></code></td></tr></tbody></table></div></div><br class="table-break"/><p>In addition, when compiling in C++11 mode, these additional | |
11399 | +</p><div class="table"><a id="id685368"></a><p class="title"><strong>Table 17.1. Debugging Containers</strong></p><div class="table-contents"><table summary="Debugging Containers" border="1"><colgroup><col align="left" class="c1" /><col align="left" class="c2" /><col align="left" class="c3" /><col align="left" class="c4" /></colgroup><thead><tr><th align="left">Container</th><th align="left">Header</th><th align="left">Debug container</th><th align="left">Debug header</th></tr></thead><tbody><tr><td align="left"><code class="classname">std::bitset</code></td><td align="left"><code class="filename">bitset</code></td><td align="left"><code class="classname">__gnu_debug::bitset</code></td><td align="left"><code class="filename"><debug/bitset></code></td></tr><tr><td align="left"><code class="classname">std::deque</code></td><td align="left"><code class="filename">deque</code></td><td align="left"><code class="classname">__gnu_debug::deque</code></td><td align="left"><code class="filename"><debug/deque></code></td></tr><tr><td align="left"><code class="classname">std::list</code></td><td align="left"><code class="filename">list</code></td><td align="left"><code class="classname">__gnu_debug::list</code></td><td align="left"><code class="filename"><debug/list></code></td></tr><tr><td align="left"><code class="classname">std::map</code></td><td align="left"><code class="filename">map</code></td><td align="left"><code class="classname">__gnu_debug::map</code></td><td align="left"><code class="filename"><debug/map></code></td></tr><tr><td align="left"><code class="classname">std::multimap</code></td><td align="left"><code class="filename">map</code></td><td align="left"><code class="classname">__gnu_debug::multimap</code></td><td align="left"><code class="filename"><debug/map></code></td></tr><tr><td align="left"><code class="classname">std::multiset</code></td><td align="left"><code class="filename">set</code></td><td align="left"><code class="classname">__gnu_debug::multiset</code></td><td align="left"><code class="filename"><debug/set></code></td></tr><tr><td align="left"><code class="classname">std::set</code></td><td align="left"><code class="filename">set</code></td><td align="left"><code class="classname">__gnu_debug::set</code></td><td align="left"><code class="filename"><debug/set></code></td></tr><tr><td align="left"><code class="classname">std::string</code></td><td align="left"><code class="filename">string</code></td><td align="left"><code class="classname">__gnu_debug::string</code></td><td align="left"><code class="filename"><debug/string></code></td></tr><tr><td align="left"><code class="classname">std::wstring</code></td><td align="left"><code class="filename">string</code></td><td align="left"><code class="classname">__gnu_debug::wstring</code></td><td align="left"><code class="filename"><debug/string></code></td></tr><tr><td align="left"><code class="classname">std::basic_string</code></td><td align="left"><code class="filename">string</code></td><td align="left"><code class="classname">__gnu_debug::basic_string</code></td><td align="left"><code class="filename"><debug/string></code></td></tr><tr><td align="left"><code class="classname">std::vector</code></td><td align="left"><code class="filename">vector</code></td><td align="left"><code class="classname">__gnu_debug::vector</code></td><td align="left"><code class="filename"><debug/vector></code></td></tr></tbody></table></div></div><br class="table-break" /><p>In addition, when compiling in C++11 mode, these additional | |
11400 | containers have additional debug capability. | |
11401 | -</p><div class="table"><a id="id507256"/><p class="title"><strong>Table 17.2. Debugging Containers C++11</strong></p><div class="table-contents"><table summary="Debugging Containers C++11" border="1"><colgroup><col style="text-align: left" class="c1"/><col style="text-align: left" class="c2"/><col style="text-align: left" class="c3"/><col style="text-align: left" class="c4"/></colgroup><thead><tr><th style="text-align: left">Container</th><th style="text-align: left">Header</th><th style="text-align: left">Debug container</th><th style="text-align: left">Debug header</th></tr></thead><tbody><tr><td style="text-align: left"><code class="classname">std::unordered_map</code></td><td style="text-align: left"><code class="filename">unordered_map</code></td><td style="text-align: left"><code class="classname">__gnu_debug::unordered_map</code></td><td style="text-align: left"><code class="filename"><debug/unordered_map></code></td></tr><tr><td style="text-align: left"><code class="classname">std::unordered_multimap</code></td><td style="text-align: left"><code class="filename">unordered_map</code></td><td style="text-align: left"><code class="classname">__gnu_debug::unordered_multimap</code></td><td style="text-align: left"><code class="filename"><debug/unordered_map></code></td></tr><tr><td style="text-align: left"><code class="classname">std::unordered_set</code></td><td style="text-align: left"><code class="filename">unordered_set</code></td><td style="text-align: left"><code class="classname">__gnu_debug::unordered_set</code></td><td style="text-align: left"><code class="filename"><debug/unordered_set></code></td></tr><tr><td style="text-align: left"><code class="classname">std::unordered_multiset</code></td><td style="text-align: left"><code class="filename">unordered_set</code></td><td style="text-align: left"><code class="classname">__gnu_debug::unordered_multiset</code></td><td style="text-align: left"><code class="filename"><debug/unordered_set></code></td></tr></tbody></table></div></div><br class="table-break"/></div></div><div class="navfooter"><hr/><table width="100%" summary="Navigation footer"><tr><td align="left"><a accesskey="p" href="bk01pt03ch17s02.html">Prev</a> </td><td align="center"><a accesskey="u" href="debug_mode.html">Up</a></td><td align="right"> <a accesskey="n" href="bk01pt03ch17s04.html">Next</a></td></tr><tr><td align="left" valign="top">Semantics </td><td align="center"><a accesskey="h" href="../index.html">Home</a></td><td align="right" valign="top"> Design</td></tr></table></div></body></html> | |
11402 | +</p><div class="table"><a id="id685742"></a><p class="title"><strong>Table 17.2. Debugging Containers C++11</strong></p><div class="table-contents"><table summary="Debugging Containers C++11" border="1"><colgroup><col align="left" class="c1" /><col align="left" class="c2" /><col align="left" class="c3" /><col align="left" class="c4" /></colgroup><thead><tr><th align="left">Container</th><th align="left">Header</th><th align="left">Debug container</th><th align="left">Debug header</th></tr></thead><tbody><tr><td align="left"><code class="classname">std::unordered_map</code></td><td align="left"><code class="filename">unordered_map</code></td><td align="left"><code class="classname">__gnu_debug::unordered_map</code></td><td align="left"><code class="filename"><debug/unordered_map></code></td></tr><tr><td align="left"><code class="classname">std::unordered_multimap</code></td><td align="left"><code class="filename">unordered_map</code></td><td align="left"><code class="classname">__gnu_debug::unordered_multimap</code></td><td align="left"><code class="filename"><debug/unordered_map></code></td></tr><tr><td align="left"><code class="classname">std::unordered_set</code></td><td align="left"><code class="filename">unordered_set</code></td><td align="left"><code class="classname">__gnu_debug::unordered_set</code></td><td align="left"><code class="filename"><debug/unordered_set></code></td></tr><tr><td align="left"><code class="classname">std::unordered_multiset</code></td><td align="left"><code class="filename">unordered_set</code></td><td align="left"><code class="classname">__gnu_debug::unordered_multiset</code></td><td align="left"><code class="filename"><debug/unordered_set></code></td></tr></tbody></table></div></div><br class="table-break" /></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="bk01pt03ch17s02.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="debug_mode.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="bk01pt03ch17s04.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Semantics </td><td width="20%" align="center"><a accesskey="h" href="../index.html">Home</a></td><td width="40%" align="right" valign="top"> Design</td></tr></table></div></body></html> | |
11403 | Index: libstdc++-v3/doc/html/manual/bk01pt03ch18s03.html | |
11404 | =================================================================== | |
9f95000d AM |
11405 | --- libstdc++-v3/doc/html/manual/bk01pt03ch18s03.html (.../tags/gcc_4_7_2_release) (wersja 192468) |
11406 | +++ libstdc++-v3/doc/html/manual/bk01pt03ch18s03.html (.../branches/gcc-4_7-branch) (wersja 192468) | |
5a87b929 AM |
11407 | @@ -1,12 +1,12 @@ |
11408 | <?xml version="1.0" encoding="UTF-8" standalone="no"?> | |
11409 | -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> | |
11410 | -<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Using</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1"/><meta name="keywords" content=" C++ , library , parallel "/><meta name="keywords" content=" ISO C++ , library "/><meta name="keywords" content=" ISO C++ , runtime , library "/><link rel="home" href="../index.html" title="The GNU C++ Library"/><link rel="up" href="parallel_mode.html" title="Chapter 18. Parallel Mode"/><link rel="prev" href="bk01pt03ch18s02.html" title="Semantics"/><link rel="next" href="bk01pt03ch18s04.html" title="Design"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Using</th></tr><tr><td align="left"><a accesskey="p" href="bk01pt03ch18s02.html">Prev</a> </td><th width="60%" align="center">Chapter 18. Parallel Mode</th><td align="right"> <a accesskey="n" href="bk01pt03ch18s04.html">Next</a></td></tr></table><hr/></div><div class="section" title="Using"><div class="titlepage"><div><div><h2 class="title"><a id="manual.ext.parallel_mode.using"/>Using</h2></div></div></div><div class="section" title="Prerequisite Compiler Flags"><div class="titlepage"><div><div><h3 class="title"><a id="parallel_mode.using.prereq_flags"/>Prerequisite Compiler Flags</h3></div></div></div><p> | |
11411 | +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> | |
11412 | +<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Using</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1" /><meta name="keywords" content=" C++ , library , parallel " /><meta name="keywords" content=" ISO C++ , library " /><meta name="keywords" content=" ISO C++ , runtime , library " /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="parallel_mode.html" title="Chapter 18. Parallel Mode" /><link rel="prev" href="bk01pt03ch18s02.html" title="Semantics" /><link rel="next" href="bk01pt03ch18s04.html" title="Design" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Using</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="bk01pt03ch18s02.html">Prev</a> </td><th width="60%" align="center">Chapter 18. Parallel Mode</th><td width="20%" align="right"> <a accesskey="n" href="bk01pt03ch18s04.html">Next</a></td></tr></table><hr /></div><div class="section" title="Using"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="manual.ext.parallel_mode.using"></a>Using</h2></div></div></div><div class="section" title="Prerequisite Compiler Flags"><div class="titlepage"><div><div><h3 class="title"><a id="parallel_mode.using.prereq_flags"></a>Prerequisite Compiler Flags</h3></div></div></div><p> | |
11413 | Any use of parallel functionality requires additional compiler | |
11414 | and runtime support, in particular support for OpenMP. Adding this support is | |
11415 | not difficult: just compile your application with the compiler | |
11416 | flag <code class="literal">-fopenmp</code>. This will link | |
11417 | in <code class="code">libgomp</code>, the | |
11418 | - OpenMP <a class="link" href="http://gcc.gnu.org/onlinedocs/libgomp/">GNU implementation</a>, | |
11419 | + OpenMP <a class="link" href="http://gcc.gnu.org/onlinedocs/libgomp/" target="_top">GNU implementation</a>, | |
11420 | whose presence is mandatory. | |
11421 | </p><p> | |
11422 | In addition, hardware that supports atomic operations and a compiler | |
11423 | @@ -17,7 +17,7 @@ | |
11424 | as <code class="literal">-march=i686</code>, | |
11425 | <code class="literal">-march=native</code> or <code class="literal">-mcpu=v9</code>. See | |
11426 | the GCC manual for more information. | |
11427 | -</p></div><div class="section" title="Using Parallel Mode"><div class="titlepage"><div><div><h3 class="title"><a id="parallel_mode.using.parallel_mode"/>Using Parallel Mode</h3></div></div></div><p> | |
11428 | +</p></div><div class="section" title="Using Parallel Mode"><div class="titlepage"><div><div><h3 class="title"><a id="parallel_mode.using.parallel_mode"></a>Using Parallel Mode</h3></div></div></div><p> | |
11429 | To use the libstdc++ parallel mode, compile your application with | |
11430 | the prerequisite flags as detailed above, and in addition | |
11431 | add <code class="constant">-D_GLIBCXX_PARALLEL</code>. This will convert all | |
11432 | @@ -34,7 +34,7 @@ | |
11433 | if no instantiation of a container is passed between the two | |
11434 | translation units. Parallel mode functionality has distinct linkage, | |
11435 | and cannot be confused with normal mode symbols. | |
11436 | -</p></div><div class="section" title="Using Specific Parallel Components"><div class="titlepage"><div><div><h3 class="title"><a id="parallel_mode.using.specific"/>Using Specific Parallel Components</h3></div></div></div><p>When it is not feasible to recompile your entire application, or | |
11437 | +</p></div><div class="section" title="Using Specific Parallel Components"><div class="titlepage"><div><div><h3 class="title"><a id="parallel_mode.using.specific"></a>Using Specific Parallel Components</h3></div></div></div><p>When it is not feasible to recompile your entire application, or | |
11438 | only specific algorithms need to be parallel-aware, individual | |
11439 | parallel algorithms can be made available explicitly. These | |
11440 | parallel algorithms are functionally equivalent to the standard | |
11441 | @@ -63,4 +63,4 @@ | |
11442 | flags for atomic operations.) | |
11443 | </p><p> The following table provides the names and headers of all the | |
11444 | parallel algorithms that can be used in a similar manner: | |
11445 | -</p><div class="table"><a id="id508844"/><p class="title"><strong>Table 18.1. Parallel Algorithms</strong></p><div class="table-contents"><table summary="Parallel Algorithms" border="1"><colgroup><col style="text-align: left" class="c1"/><col style="text-align: left" class="c2"/><col style="text-align: left" class="c3"/><col style="text-align: left" class="c4"/></colgroup><thead><tr><th style="text-align: left">Algorithm</th><th style="text-align: left">Header</th><th style="text-align: left">Parallel algorithm</th><th style="text-align: left">Parallel header</th></tr></thead><tbody><tr><td style="text-align: left"><code class="function">std::accumulate</code></td><td style="text-align: left"><code class="filename">numeric</code></td><td style="text-align: left"><code class="function">__gnu_parallel::accumulate</code></td><td style="text-align: left"><code class="filename">parallel/numeric</code></td></tr><tr><td style="text-align: left"><code class="function">std::adjacent_difference</code></td><td style="text-align: left"><code class="filename">numeric</code></td><td style="text-align: left"><code class="function">__gnu_parallel::adjacent_difference</code></td><td style="text-align: left"><code class="filename">parallel/numeric</code></td></tr><tr><td style="text-align: left"><code class="function">std::inner_product</code></td><td style="text-align: left"><code class="filename">numeric</code></td><td style="text-align: left"><code class="function">__gnu_parallel::inner_product</code></td><td style="text-align: left"><code class="filename">parallel/numeric</code></td></tr><tr><td style="text-align: left"><code class="function">std::partial_sum</code></td><td style="text-align: left"><code class="filename">numeric</code></td><td style="text-align: left"><code class="function">__gnu_parallel::partial_sum</code></td><td style="text-align: left"><code class="filename">parallel/numeric</code></td></tr><tr><td style="text-align: left"><code class="function">std::adjacent_find</code></td><td style="text-align: left"><code class="filename">algorithm</code></td><td style="text-align: left"><code class="function">__gnu_parallel::adjacent_find</code></td><td style="text-align: left"><code class="filename">parallel/algorithm</code></td></tr><tr><td style="text-align: left"><code class="function">std::count</code></td><td style="text-align: left"><code class="filename">algorithm</code></td><td style="text-align: left"><code class="function">__gnu_parallel::count</code></td><td style="text-align: left"><code class="filename">parallel/algorithm</code></td></tr><tr><td style="text-align: left"><code class="function">std::count_if</code></td><td style="text-align: left"><code class="filename">algorithm</code></td><td style="text-align: left"><code class="function">__gnu_parallel::count_if</code></td><td style="text-align: left"><code class="filename">parallel/algorithm</code></td></tr><tr><td style="text-align: left"><code class="function">std::equal</code></td><td style="text-align: left"><code class="filename">algorithm</code></td><td style="text-align: left"><code class="function">__gnu_parallel::equal</code></td><td style="text-align: left"><code class="filename">parallel/algorithm</code></td></tr><tr><td style="text-align: left"><code class="function">std::find</code></td><td style="text-align: left"><code class="filename">algorithm</code></td><td style="text-align: left"><code class="function">__gnu_parallel::find</code></td><td style="text-align: left"><code class="filename">parallel/algorithm</code></td></tr><tr><td style="text-align: left"><code class="function">std::find_if</code></td><td style="text-align: left"><code class="filename">algorithm</code></td><td style="text-align: left"><code class="function">__gnu_parallel::find_if</code></td><td style="text-align: left"><code class="filename">parallel/algorithm</code></td></tr><tr><td style="text-align: left"><code class="function">std::find_first_of</code></td><td style="text-align: left"><code class="filename">algorithm</code></td><td style="text-align: left"><code class="function">__gnu_parallel::find_first_of</code></td><td style="text-align: left"><code class="filename">parallel/algorithm</code></td></tr><tr><td style="text-align: left"><code class="function">std::for_each</code></td><td style="text-align: left"><code class="filename">algorithm</code></td><td style="text-align: left"><code class="function">__gnu_parallel::for_each</code></td><td style="text-align: left"><code class="filename">parallel/algorithm</code></td></tr><tr><td style="text-align: left"><code class="function">std::generate</code></td><td style="text-align: left"><code class="filename">algorithm</code></td><td style="text-align: left"><code class="function">__gnu_parallel::generate</code></td><td style="text-align: left"><code class="filename">parallel/algorithm</code></td></tr><tr><td style="text-align: left"><code class="function">std::generate_n</code></td><td style="text-align: left"><code class="filename">algorithm</code></td><td style="text-align: left"><code class="function">__gnu_parallel::generate_n</code></td><td style="text-align: left"><code class="filename">parallel/algorithm</code></td></tr><tr><td style="text-align: left"><code class="function">std::lexicographical_compare</code></td><td style="text-align: left"><code class="filename">algorithm</code></td><td style="text-align: left"><code class="function">__gnu_parallel::lexicographical_compare</code></td><td style="text-align: left"><code class="filename">parallel/algorithm</code></td></tr><tr><td style="text-align: left"><code class="function">std::mismatch</code></td><td style="text-align: left"><code class="filename">algorithm</code></td><td style="text-align: left"><code class="function">__gnu_parallel::mismatch</code></td><td style="text-align: left"><code class="filename">parallel/algorithm</code></td></tr><tr><td style="text-align: left"><code class="function">std::search</code></td><td style="text-align: left"><code class="filename">algorithm</code></td><td style="text-align: left"><code class="function">__gnu_parallel::search</code></td><td style="text-align: left"><code class="filename">parallel/algorithm</code></td></tr><tr><td style="text-align: left"><code class="function">std::search_n</code></td><td style="text-align: left"><code class="filename">algorithm</code></td><td style="text-align: left"><code class="function">__gnu_parallel::search_n</code></td><td style="text-align: left"><code class="filename">parallel/algorithm</code></td></tr><tr><td style="text-align: left"><code class="function">std::transform</code></td><td style="text-align: left"><code class="filename">algorithm</code></td><td style="text-align: left"><code class="function">__gnu_parallel::transform</code></td><td style="text-align: left"><code class="filename">parallel/algorithm</code></td></tr><tr><td style="text-align: left"><code class="function">std::replace</code></td><td style="text-align: left"><code class="filename">algorithm</code></td><td style="text-align: left"><code class="function">__gnu_parallel::replace</code></td><td style="text-align: left"><code class="filename">parallel/algorithm</code></td></tr><tr><td style="text-align: left"><code class="function">std::replace_if</code></td><td style="text-align: left"><code class="filename">algorithm</code></td><td style="text-align: left"><code class="function">__gnu_parallel::replace_if</code></td><td style="text-align: left"><code class="filename">parallel/algorithm</code></td></tr><tr><td style="text-align: left"><code class="function">std::max_element</code></td><td style="text-align: left"><code class="filename">algorithm</code></td><td style="text-align: left"><code class="function">__gnu_parallel::max_element</code></td><td style="text-align: left"><code class="filename">parallel/algorithm</code></td></tr><tr><td style="text-align: left"><code class="function">std::merge</code></td><td style="text-align: left"><code class="filename">algorithm</code></td><td style="text-align: left"><code class="function">__gnu_parallel::merge</code></td><td style="text-align: left"><code class="filename">parallel/algorithm</code></td></tr><tr><td style="text-align: left"><code class="function">std::min_element</code></td><td style="text-align: left"><code class="filename">algorithm</code></td><td style="text-align: left"><code class="function">__gnu_parallel::min_element</code></td><td style="text-align: left"><code class="filename">parallel/algorithm</code></td></tr><tr><td style="text-align: left"><code class="function">std::nth_element</code></td><td style="text-align: left"><code class="filename">algorithm</code></td><td style="text-align: left"><code class="function">__gnu_parallel::nth_element</code></td><td style="text-align: left"><code class="filename">parallel/algorithm</code></td></tr><tr><td style="text-align: left"><code class="function">std::partial_sort</code></td><td style="text-align: left"><code class="filename">algorithm</code></td><td style="text-align: left"><code class="function">__gnu_parallel::partial_sort</code></td><td style="text-align: left"><code class="filename">parallel/algorithm</code></td></tr><tr><td style="text-align: left"><code class="function">std::partition</code></td><td style="text-align: left"><code class="filename">algorithm</code></td><td style="text-align: left"><code class="function">__gnu_parallel::partition</code></td><td style="text-align: left"><code class="filename">parallel/algorithm</code></td></tr><tr><td style="text-align: left"><code class="function">std::random_shuffle</code></td><td style="text-align: left"><code class="filename">algorithm</code></td><td style="text-align: left"><code class="function">__gnu_parallel::random_shuffle</code></td><td style="text-align: left"><code class="filename">parallel/algorithm</code></td></tr><tr><td style="text-align: left"><code class="function">std::set_union</code></td><td style="text-align: left"><code class="filename">algorithm</code></td><td style="text-align: left"><code class="function">__gnu_parallel::set_union</code></td><td style="text-align: left"><code class="filename">parallel/algorithm</code></td></tr><tr><td style="text-align: left"><code class="function">std::set_intersection</code></td><td style="text-align: left"><code class="filename">algorithm</code></td><td style="text-align: left"><code class="function">__gnu_parallel::set_intersection</code></td><td style="text-align: left"><code class="filename">parallel/algorithm</code></td></tr><tr><td style="text-align: left"><code class="function">std::set_symmetric_difference</code></td><td style="text-align: left"><code class="filename">algorithm</code></td><td style="text-align: left"><code class="function">__gnu_parallel::set_symmetric_difference</code></td><td style="text-align: left"><code class="filename">parallel/algorithm</code></td></tr><tr><td style="text-align: left"><code class="function">std::set_difference</code></td><td style="text-align: left"><code class="filename">algorithm</code></td><td style="text-align: left"><code class="function">__gnu_parallel::set_difference</code></td><td style="text-align: left"><code class="filename">parallel/algorithm</code></td></tr><tr><td style="text-align: left"><code class="function">std::sort</code></td><td style="text-align: left"><code class="filename">algorithm</code></td><td style="text-align: left"><code class="function">__gnu_parallel::sort</code></td><td style="text-align: left"><code class="filename">parallel/algorithm</code></td></tr><tr><td style="text-align: left"><code class="function">std::stable_sort</code></td><td style="text-align: left"><code class="filename">algorithm</code></td><td style="text-align: left"><code class="function">__gnu_parallel::stable_sort</code></td><td style="text-align: left"><code class="filename">parallel/algorithm</code></td></tr><tr><td style="text-align: left"><code class="function">std::unique_copy</code></td><td style="text-align: left"><code class="filename">algorithm</code></td><td style="text-align: left"><code class="function">__gnu_parallel::unique_copy</code></td><td style="text-align: left"><code class="filename">parallel/algorithm</code></td></tr></tbody></table></div></div><br class="table-break"/></div></div><div class="navfooter"><hr/><table width="100%" summary="Navigation footer"><tr><td align="left"><a accesskey="p" href="bk01pt03ch18s02.html">Prev</a> </td><td align="center"><a accesskey="u" href="parallel_mode.html">Up</a></td><td align="right"> <a accesskey="n" href="bk01pt03ch18s04.html">Next</a></td></tr><tr><td align="left" valign="top">Semantics </td><td align="center"><a accesskey="h" href="../index.html">Home</a></td><td align="right" valign="top"> Design</td></tr></table></div></body></html> | |
11446 | +</p><div class="table"><a id="id687330"></a><p class="title"><strong>Table 18.1. Parallel Algorithms</strong></p><div class="table-contents"><table summary="Parallel Algorithms" border="1"><colgroup><col align="left" class="c1" /><col align="left" class="c2" /><col align="left" class="c3" /><col align="left" class="c4" /></colgroup><thead><tr><th align="left">Algorithm</th><th align="left">Header</th><th align="left">Parallel algorithm</th><th align="left">Parallel header</th></tr></thead><tbody><tr><td align="left"><code class="function">std::accumulate</code></td><td align="left"><code class="filename">numeric</code></td><td align="left"><code class="function">__gnu_parallel::accumulate</code></td><td align="left"><code class="filename">parallel/numeric</code></td></tr><tr><td align="left"><code class="function">std::adjacent_difference</code></td><td align="left"><code class="filename">numeric</code></td><td align="left"><code class="function">__gnu_parallel::adjacent_difference</code></td><td align="left"><code class="filename">parallel/numeric</code></td></tr><tr><td align="left"><code class="function">std::inner_product</code></td><td align="left"><code class="filename">numeric</code></td><td align="left"><code class="function">__gnu_parallel::inner_product</code></td><td align="left"><code class="filename">parallel/numeric</code></td></tr><tr><td align="left"><code class="function">std::partial_sum</code></td><td align="left"><code class="filename">numeric</code></td><td align="left"><code class="function">__gnu_parallel::partial_sum</code></td><td align="left"><code class="filename">parallel/numeric</code></td></tr><tr><td align="left"><code class="function">std::adjacent_find</code></td><td align="left"><code class="filename">algorithm</code></td><td align="left"><code class="function">__gnu_parallel::adjacent_find</code></td><td align="left"><code class="filename">parallel/algorithm</code></td></tr><tr><td align="left"><code class="function">std::count</code></td><td align="left"><code class="filename">algorithm</code></td><td align="left"><code class="function">__gnu_parallel::count</code></td><td align="left"><code class="filename">parallel/algorithm</code></td></tr><tr><td align="left"><code class="function">std::count_if</code></td><td align="left"><code class="filename">algorithm</code></td><td align="left"><code class="function">__gnu_parallel::count_if</code></td><td align="left"><code class="filename">parallel/algorithm</code></td></tr><tr><td align="left"><code class="function">std::equal</code></td><td align="left"><code class="filename">algorithm</code></td><td align="left"><code class="function">__gnu_parallel::equal</code></td><td align="left"><code class="filename">parallel/algorithm</code></td></tr><tr><td align="left"><code class="function">std::find</code></td><td align="left"><code class="filename">algorithm</code></td><td align="left"><code class="function">__gnu_parallel::find</code></td><td align="left"><code class="filename">parallel/algorithm</code></td></tr><tr><td align="left"><code class="function">std::find_if</code></td><td align="left"><code class="filename">algorithm</code></td><td align="left"><code class="function">__gnu_parallel::find_if</code></td><td align="left"><code class="filename">parallel/algorithm</code></td></tr><tr><td align="left"><code class="function">std::find_first_of</code></td><td align="left"><code class="filename">algorithm</code></td><td align="left"><code class="function">__gnu_parallel::find_first_of</code></td><td align="left"><code class="filename">parallel/algorithm</code></td></tr><tr><td align="left"><code class="function">std::for_each</code></td><td align="left"><code class="filename">algorithm</code></td><td align="left"><code class="function">__gnu_parallel::for_each</code></td><td align="left"><code class="filename">parallel/algorithm</code></td></tr><tr><td align="left"><code class="function">std::generate</code></td><td align="left"><code class="filename">algorithm</code></td><td align="left"><code class="function">__gnu_parallel::generate</code></td><td align="left"><code class="filename">parallel/algorithm</code></td></tr><tr><td align="left"><code class="function">std::generate_n</code></td><td align="left"><code class="filename">algorithm</code></td><td align="left"><code class="function">__gnu_parallel::generate_n</code></td><td align="left"><code class="filename">parallel/algorithm</code></td></tr><tr><td align="left"><code class="function">std::lexicographical_compare</code></td><td align="left"><code class="filename">algorithm</code></td><td align="left"><code class="function">__gnu_parallel::lexicographical_compare</code></td><td align="left"><code class="filename">parallel/algorithm</code></td></tr><tr><td align="left"><code class="function">std::mismatch</code></td><td align="left"><code class="filename">algorithm</code></td><td align="left"><code class="function">__gnu_parallel::mismatch</code></td><td align="left"><code class="filename">parallel/algorithm</code></td></tr><tr><td align="left"><code class="function">std::search</code></td><td align="left"><code class="filename">algorithm</code></td><td align="left"><code class="function">__gnu_parallel::search</code></td><td align="left"><code class="filename">parallel/algorithm</code></td></tr><tr><td align="left"><code class="function">std::search_n</code></td><td align="left"><code class="filename">algorithm</code></td><td align="left"><code class="function">__gnu_parallel::search_n</code></td><td align="left"><code class="filename">parallel/algorithm</code></td></tr><tr><td align="left"><code class="function">std::transform</code></td><td align="left"><code class="filename">algorithm</code></td><td align="left"><code class="function">__gnu_parallel::transform</code></td><td align="left"><code class="filename">parallel/algorithm</code></td></tr><tr><td align="left"><code class="function">std::replace</code></td><td align="left"><code class="filename">algorithm</code></td><td align="left"><code class="function">__gnu_parallel::replace</code></td><td align="left"><code class="filename">parallel/algorithm</code></td></tr><tr><td align="left"><code class="function">std::replace_if</code></td><td align="left"><code class="filename">algorithm</code></td><td align="left"><code class="function">__gnu_parallel::replace_if</code></td><td align="left"><code class="filename">parallel/algorithm</code></td></tr><tr><td align="left"><code class="function">std::max_element</code></td><td align="left"><code class="filename">algorithm</code></td><td align="left"><code class="function">__gnu_parallel::max_element</code></td><td align="left"><code class="filename">parallel/algorithm</code></td></tr><tr><td align="left"><code class="function">std::merge</code></td><td align="left"><code class="filename">algorithm</code></td><td align="left"><code class="function">__gnu_parallel::merge</code></td><td align="left"><code class="filename">parallel/algorithm</code></td></tr><tr><td align="left"><code class="function">std::min_element</code></td><td align="left"><code class="filename">algorithm</code></td><td align="left"><code class="function">__gnu_parallel::min_element</code></td><td align="left"><code class="filename">parallel/algorithm</code></td></tr><tr><td align="left"><code class="function">std::nth_element</code></td><td align="left"><code class="filename">algorithm</code></td><td align="left"><code class="function">__gnu_parallel::nth_element</code></td><td align="left"><code class="filename">parallel/algorithm</code></td></tr><tr><td align="left"><code class="function">std::partial_sort</code></td><td align="left"><code class="filename">algorithm</code></td><td align="left"><code class="function">__gnu_parallel::partial_sort</code></td><td align="left"><code class="filename">parallel/algorithm</code></td></tr><tr><td align="left"><code class="function">std::partition</code></td><td align="left"><code class="filename">algorithm</code></td><td align="left"><code class="function">__gnu_parallel::partition</code></td><td align="left"><code class="filename">parallel/algorithm</code></td></tr><tr><td align="left"><code class="function">std::random_shuffle</code></td><td align="left"><code class="filename">algorithm</code></td><td align="left"><code class="function">__gnu_parallel::random_shuffle</code></td><td align="left"><code class="filename">parallel/algorithm</code></td></tr><tr><td align="left"><code class="function">std::set_union</code></td><td align="left"><code class="filename">algorithm</code></td><td align="left"><code class="function">__gnu_parallel::set_union</code></td><td align="left"><code class="filename">parallel/algorithm</code></td></tr><tr><td align="left"><code class="function">std::set_intersection</code></td><td align="left"><code class="filename">algorithm</code></td><td align="left"><code class="function">__gnu_parallel::set_intersection</code></td><td align="left"><code class="filename">parallel/algorithm</code></td></tr><tr><td align="left"><code class="function">std::set_symmetric_difference</code></td><td align="left"><code class="filename">algorithm</code></td><td align="left"><code class="function">__gnu_parallel::set_symmetric_difference</code></td><td align="left"><code class="filename">parallel/algorithm</code></td></tr><tr><td align="left"><code class="function">std::set_difference</code></td><td align="left"><code class="filename">algorithm</code></td><td align="left"><code class="function">__gnu_parallel::set_difference</code></td><td align="left"><code class="filename">parallel/algorithm</code></td></tr><tr><td align="left"><code class="function">std::sort</code></td><td align="left"><code class="filename">algorithm</code></td><td align="left"><code class="function">__gnu_parallel::sort</code></td><td align="left"><code class="filename">parallel/algorithm</code></td></tr><tr><td align="left"><code class="function">std::stable_sort</code></td><td align="left"><code class="filename">algorithm</code></td><td align="left"><code class="function">__gnu_parallel::stable_sort</code></td><td align="left"><code class="filename">parallel/algorithm</code></td></tr><tr><td align="left"><code class="function">std::unique_copy</code></td><td align="left"><code class="filename">algorithm</code></td><td align="left"><code class="function">__gnu_parallel::unique_copy</code></td><td align="left"><code class="filename">parallel/algorithm</code></td></tr></tbody></table></div></div><br class="table-break" /></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="bk01pt03ch18s02.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="parallel_mode.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="bk01pt03ch18s04.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Semantics </td><td width="20%" align="center"><a accesskey="h" href="../index.html">Home</a></td><td width="40%" align="right" valign="top"> Design</td></tr></table></div></body></html> | |
11447 | Index: libstdc++-v3/doc/html/manual/bk01pt03ch19s03.html | |
11448 | =================================================================== | |
9f95000d AM |
11449 | --- libstdc++-v3/doc/html/manual/bk01pt03ch19s03.html (.../tags/gcc_4_7_2_release) (wersja 192468) |
11450 | +++ libstdc++-v3/doc/html/manual/bk01pt03ch19s03.html (.../branches/gcc-4_7-branch) (wersja 192468) | |
5a87b929 AM |
11451 | @@ -1,10 +1,10 @@ |
11452 | <?xml version="1.0" encoding="UTF-8" standalone="no"?> | |
11453 | -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> | |
11454 | -<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Extensions for Custom Containers</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1"/><meta name="keywords" content=" C++ , library , profile "/><meta name="keywords" content=" ISO C++ , library "/><meta name="keywords" content=" ISO C++ , runtime , library "/><link rel="home" href="../index.html" title="The GNU C++ Library"/><link rel="up" href="profile_mode.html" title="Chapter 19. Profile Mode"/><link rel="prev" href="bk01pt03ch19s02.html" title="Design"/><link rel="next" href="bk01pt03ch19s04.html" title="Empirical Cost Model"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Extensions for Custom Containers</th></tr><tr><td align="left"><a accesskey="p" href="bk01pt03ch19s02.html">Prev</a> </td><th width="60%" align="center">Chapter 19. Profile Mode</th><td align="right"> <a accesskey="n" href="bk01pt03ch19s04.html">Next</a></td></tr></table><hr/></div><div class="section" title="Extensions for Custom Containers"><div class="titlepage"><div><div><h2 class="title"><a id="manual.ext.profile_mode.api"/>Extensions for Custom Containers</h2></div></div></div><p> | |
11455 | +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> | |
11456 | +<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Extensions for Custom Containers</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1" /><meta name="keywords" content=" C++ , library , profile " /><meta name="keywords" content=" ISO C++ , library " /><meta name="keywords" content=" ISO C++ , runtime , library " /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="profile_mode.html" title="Chapter 19. Profile Mode" /><link rel="prev" href="bk01pt03ch19s02.html" title="Design" /><link rel="next" href="bk01pt03ch19s04.html" title="Empirical Cost Model" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Extensions for Custom Containers</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="bk01pt03ch19s02.html">Prev</a> </td><th width="60%" align="center">Chapter 19. Profile Mode</th><td width="20%" align="right"> <a accesskey="n" href="bk01pt03ch19s04.html">Next</a></td></tr></table><hr /></div><div class="section" title="Extensions for Custom Containers"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="manual.ext.profile_mode.api"></a>Extensions for Custom Containers</h2></div></div></div><p> | |
11457 | Many large projects use their own data structures instead of the ones in the | |
11458 | standard library. If these data structures are similar in functionality | |
11459 | to the standard library, they can be instrumented with the same hooks | |
11460 | that are used to instrument the standard library. | |
11461 | The instrumentation API is exposed in file | |
11462 | <code class="code">profiler.h</code> (look for "Instrumentation hooks"). | |
11463 | - </p></div><div class="navfooter"><hr/><table width="100%" summary="Navigation footer"><tr><td align="left"><a accesskey="p" href="bk01pt03ch19s02.html">Prev</a> </td><td align="center"><a accesskey="u" href="profile_mode.html">Up</a></td><td align="right"> <a accesskey="n" href="bk01pt03ch19s04.html">Next</a></td></tr><tr><td align="left" valign="top">Design </td><td align="center"><a accesskey="h" href="../index.html">Home</a></td><td align="right" valign="top"> Empirical Cost Model</td></tr></table></div></body></html> | |
11464 | + </p></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="bk01pt03ch19s02.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="profile_mode.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="bk01pt03ch19s04.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Design </td><td width="20%" align="center"><a accesskey="h" href="../index.html">Home</a></td><td width="40%" align="right" valign="top"> Empirical Cost Model</td></tr></table></div></body></html> | |
11465 | Index: libstdc++-v3/doc/html/manual/bk01pt03ch19s07.html | |
11466 | =================================================================== | |
9f95000d AM |
11467 | --- libstdc++-v3/doc/html/manual/bk01pt03ch19s07.html (.../tags/gcc_4_7_2_release) (wersja 192468) |
11468 | +++ libstdc++-v3/doc/html/manual/bk01pt03ch19s07.html (.../branches/gcc-4_7-branch) (wersja 192468) | |
5a87b929 AM |
11469 | @@ -1,6 +1,6 @@ |
11470 | <?xml version="1.0" encoding="UTF-8" standalone="no"?> | |
11471 | -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> | |
11472 | -<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Diagnostics</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1"/><meta name="keywords" content=" C++ , library , profile "/><meta name="keywords" content=" ISO C++ , library "/><meta name="keywords" content=" ISO C++ , runtime , library "/><link rel="home" href="../index.html" title="The GNU C++ Library"/><link rel="up" href="profile_mode.html" title="Chapter 19. Profile Mode"/><link rel="prev" href="bk01pt03ch19s06.html" title="Developer Information"/><link rel="next" href="mt_allocator.html" title="Chapter 20. The mt_allocator"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Diagnostics</th></tr><tr><td align="left"><a accesskey="p" href="bk01pt03ch19s06.html">Prev</a> </td><th width="60%" align="center">Chapter 19. Profile Mode</th><td align="right"> <a accesskey="n" href="mt_allocator.html">Next</a></td></tr></table><hr/></div><div class="section" title="Diagnostics"><div class="titlepage"><div><div><h2 class="title"><a id="manual.ext.profile_mode.diagnostics"/>Diagnostics</h2></div></div></div><p> | |
11473 | +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> | |
11474 | +<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Diagnostics</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1" /><meta name="keywords" content=" C++ , library , profile " /><meta name="keywords" content=" ISO C++ , library " /><meta name="keywords" content=" ISO C++ , runtime , library " /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="profile_mode.html" title="Chapter 19. Profile Mode" /><link rel="prev" href="bk01pt03ch19s06.html" title="Developer Information" /><link rel="next" href="mt_allocator.html" title="Chapter 20. The mt_allocator" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Diagnostics</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="bk01pt03ch19s06.html">Prev</a> </td><th width="60%" align="center">Chapter 19. Profile Mode</th><td width="20%" align="right"> <a accesskey="n" href="mt_allocator.html">Next</a></td></tr></table><hr /></div><div class="section" title="Diagnostics"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="manual.ext.profile_mode.diagnostics"></a>Diagnostics</h2></div></div></div><p> | |
11475 | The table below presents all the diagnostics we intend to implement. | |
11476 | Each diagnostic has a corresponding compile time switch | |
11477 | <code class="code">-D_GLIBCXX_PROFILE_<diagnostic></code>. | |
11478 | @@ -18,24 +18,24 @@ | |
11479 | A high accuracy means that the diagnostic is unlikely to be wrong. | |
11480 | These grades are not perfect. They are just meant to guide users with | |
11481 | specific needs or time budgets. | |
11482 | - </p><div class="table"><a id="id511849"/><p class="title"><strong>Table 19.2. Profile Diagnostics</strong></p><div class="table-contents"><table summary="Profile Diagnostics" border="1"><colgroup><col style="text-align: left" class="c1"/><col style="text-align: left" class="c2"/><col style="text-align: left" class="c3"/><col style="text-align: left" class="c4"/><col style="text-align: left" class="c5"/><col style="text-align: left" class="c6"/><col style="text-align: left" class="c7"/></colgroup><thead><tr><th style="text-align: left">Group</th><th style="text-align: left">Flag</th><th style="text-align: left">Benefit</th><th style="text-align: left">Cost</th><th style="text-align: left">Freq.</th><th style="text-align: left">Implemented</th><td class="auto-generated"> </td></tr></thead><tbody><tr><td style="text-align: left"><a class="link" href="bk01pt03ch19s07.html#manual.ext.profile_mode.analysis.containers" title="Containers"> | |
11483 | - CONTAINERS</a></td><td style="text-align: left"><a class="link" href="bk01pt03ch19s07.html#manual.ext.profile_mode.analysis.hashtable_too_small" title="Hashtable Too Small"> | |
11484 | - HASHTABLE_TOO_SMALL</a></td><td style="text-align: left">10</td><td style="text-align: left">1</td><td style="text-align: left"> </td><td style="text-align: left">10</td><td style="text-align: left">yes</td></tr><tr><td style="text-align: left"> </td><td style="text-align: left"><a class="link" href="bk01pt03ch19s07.html#manual.ext.profile_mode.analysis.hashtable_too_large" title="Hashtable Too Large"> | |
11485 | - HASHTABLE_TOO_LARGE</a></td><td style="text-align: left">5</td><td style="text-align: left">1</td><td style="text-align: left"> </td><td style="text-align: left">10</td><td style="text-align: left">yes</td></tr><tr><td style="text-align: left"> </td><td style="text-align: left"><a class="link" href="bk01pt03ch19s07.html#manual.ext.profile_mode.analysis.inefficient_hash" title="Inefficient Hash"> | |
11486 | - INEFFICIENT_HASH</a></td><td style="text-align: left">7</td><td style="text-align: left">3</td><td style="text-align: left"> </td><td style="text-align: left">10</td><td style="text-align: left">yes</td></tr><tr><td style="text-align: left"> </td><td style="text-align: left"><a class="link" href="bk01pt03ch19s07.html#manual.ext.profile_mode.analysis.vector_too_small" title="Vector Too Small"> | |
11487 | - VECTOR_TOO_SMALL</a></td><td style="text-align: left">8</td><td style="text-align: left">1</td><td style="text-align: left"> </td><td style="text-align: left">10</td><td style="text-align: left">yes</td></tr><tr><td style="text-align: left"> </td><td style="text-align: left"><a class="link" href="bk01pt03ch19s07.html#manual.ext.profile_mode.analysis.vector_too_large" title="Vector Too Large"> | |
11488 | - VECTOR_TOO_LARGE</a></td><td style="text-align: left">5</td><td style="text-align: left">1</td><td style="text-align: left"> </td><td style="text-align: left">10</td><td style="text-align: left">yes</td></tr><tr><td style="text-align: left"> </td><td style="text-align: left"><a class="link" href="bk01pt03ch19s07.html#manual.ext.profile_mode.analysis.vector_to_hashtable" title="Vector to Hashtable"> | |
11489 | - VECTOR_TO_HASHTABLE</a></td><td style="text-align: left">7</td><td style="text-align: left">7</td><td style="text-align: left"> </td><td style="text-align: left">10</td><td style="text-align: left">no</td></tr><tr><td style="text-align: left"> </td><td style="text-align: left"><a class="link" href="bk01pt03ch19s07.html#manual.ext.profile_mode.analysis.hashtable_to_vector" title="Hashtable to Vector"> | |
11490 | - HASHTABLE_TO_VECTOR</a></td><td style="text-align: left">7</td><td style="text-align: left">7</td><td style="text-align: left"> </td><td style="text-align: left">10</td><td style="text-align: left">no</td></tr><tr><td style="text-align: left"> </td><td style="text-align: left"><a class="link" href="bk01pt03ch19s07.html#manual.ext.profile_mode.analysis.vector_to_list" title="Vector to List"> | |
11491 | - VECTOR_TO_LIST</a></td><td style="text-align: left">8</td><td style="text-align: left">5</td><td style="text-align: left"> </td><td style="text-align: left">10</td><td style="text-align: left">yes</td></tr><tr><td style="text-align: left"> </td><td style="text-align: left"><a class="link" href="bk01pt03ch19s07.html#manual.ext.profile_mode.analysis.list_to_vector" title="List to Vector"> | |
11492 | - LIST_TO_VECTOR</a></td><td style="text-align: left">10</td><td style="text-align: left">5</td><td style="text-align: left"> </td><td style="text-align: left">10</td><td style="text-align: left">no</td></tr><tr><td style="text-align: left"> </td><td style="text-align: left"><a class="link" href="bk01pt03ch19s07.html#manual.ext.profile_mode.analysis.assoc_ord_to_unord" title="Ordered to Unordered Associative Container"> | |
11493 | - ORDERED_TO_UNORDERED</a></td><td style="text-align: left">10</td><td style="text-align: left">5</td><td style="text-align: left"> </td><td style="text-align: left">10</td><td style="text-align: left">only map/unordered_map</td></tr><tr><td style="text-align: left"><a class="link" href="bk01pt03ch19s07.html#manual.ext.profile_mode.analysis.algorithms" title="Algorithms"> | |
11494 | - ALGORITHMS</a></td><td style="text-align: left"><a class="link" href="bk01pt03ch19s07.html#manual.ext.profile_mode.analysis.algorithms.sort" title="Sort Algorithm Performance"> | |
11495 | - SORT</a></td><td style="text-align: left">7</td><td style="text-align: left">8</td><td style="text-align: left"> </td><td style="text-align: left">7</td><td style="text-align: left">no</td></tr><tr><td style="text-align: left"><a class="link" href="bk01pt03ch19s07.html#manual.ext.profile_mode.analysis.locality" title="Data Locality"> | |
11496 | - LOCALITY</a></td><td style="text-align: left"><a class="link" href="bk01pt03ch19s07.html#manual.ext.profile_mode.analysis.locality.sw_prefetch" title="Need Software Prefetch"> | |
11497 | - SOFTWARE_PREFETCH</a></td><td style="text-align: left">8</td><td style="text-align: left">8</td><td style="text-align: left"> </td><td style="text-align: left">5</td><td style="text-align: left">no</td></tr><tr><td style="text-align: left"> </td><td style="text-align: left"><a class="link" href="bk01pt03ch19s07.html#manual.ext.profile_mode.analysis.locality.linked" title="Linked Structure Locality"> | |
11498 | - RBTREE_LOCALITY</a></td><td style="text-align: left">4</td><td style="text-align: left">8</td><td style="text-align: left"> </td><td style="text-align: left">5</td><td style="text-align: left">no</td></tr><tr><td style="text-align: left"> </td><td style="text-align: left"><a class="link" href="bk01pt03ch19s07.html#manual.ext.profile_mode.analysis.mthread.false_share" title="False Sharing"> | |
11499 | - FALSE_SHARING</a></td><td style="text-align: left">8</td><td style="text-align: left">10</td><td style="text-align: left"> </td><td style="text-align: left">10</td><td style="text-align: left">no</td></tr></tbody></table></div></div><br class="table-break"/><div class="section" title="Diagnostic Template"><div class="titlepage"><div><div><h3 class="title"><a id="manual.ext.profile_mode.analysis.template"/>Diagnostic Template</h3></div></div></div><div class="itemizedlist"><ul class="itemizedlist"><li class="listitem"><p><span class="emphasis"><em>Switch:</em></span> | |
11500 | + </p><div class="table"><a id="id690335"></a><p class="title"><strong>Table 19.2. Profile Diagnostics</strong></p><div class="table-contents"><table summary="Profile Diagnostics" border="1"><colgroup><col align="left" class="c1" /><col align="left" class="c2" /><col align="left" class="c3" /><col align="left" class="c4" /><col align="left" class="c5" /><col align="left" class="c6" /><col align="left" class="c7" /></colgroup><thead><tr><th align="left">Group</th><th align="left">Flag</th><th align="left">Benefit</th><th align="left">Cost</th><th align="left">Freq.</th><th align="left">Implemented</th><td class="auto-generated"> </td></tr></thead><tbody><tr><td align="left"><a class="link" href="bk01pt03ch19s07.html#manual.ext.profile_mode.analysis.containers" title="Containers"> | |
11501 | + CONTAINERS</a></td><td align="left"><a class="link" href="bk01pt03ch19s07.html#manual.ext.profile_mode.analysis.hashtable_too_small" title="Hashtable Too Small"> | |
11502 | + HASHTABLE_TOO_SMALL</a></td><td align="left">10</td><td align="left">1</td><td align="left"> </td><td align="left">10</td><td align="left">yes</td></tr><tr><td align="left"> </td><td align="left"><a class="link" href="bk01pt03ch19s07.html#manual.ext.profile_mode.analysis.hashtable_too_large" title="Hashtable Too Large"> | |
11503 | + HASHTABLE_TOO_LARGE</a></td><td align="left">5</td><td align="left">1</td><td align="left"> </td><td align="left">10</td><td align="left">yes</td></tr><tr><td align="left"> </td><td align="left"><a class="link" href="bk01pt03ch19s07.html#manual.ext.profile_mode.analysis.inefficient_hash" title="Inefficient Hash"> | |
11504 | + INEFFICIENT_HASH</a></td><td align="left">7</td><td align="left">3</td><td align="left"> </td><td align="left">10</td><td align="left">yes</td></tr><tr><td align="left"> </td><td align="left"><a class="link" href="bk01pt03ch19s07.html#manual.ext.profile_mode.analysis.vector_too_small" title="Vector Too Small"> | |
11505 | + VECTOR_TOO_SMALL</a></td><td align="left">8</td><td align="left">1</td><td align="left"> </td><td align="left">10</td><td align="left">yes</td></tr><tr><td align="left"> </td><td align="left"><a class="link" href="bk01pt03ch19s07.html#manual.ext.profile_mode.analysis.vector_too_large" title="Vector Too Large"> | |
11506 | + VECTOR_TOO_LARGE</a></td><td align="left">5</td><td align="left">1</td><td align="left"> </td><td align="left">10</td><td align="left">yes</td></tr><tr><td align="left"> </td><td align="left"><a class="link" href="bk01pt03ch19s07.html#manual.ext.profile_mode.analysis.vector_to_hashtable" title="Vector to Hashtable"> | |
11507 | + VECTOR_TO_HASHTABLE</a></td><td align="left">7</td><td align="left">7</td><td align="left"> </td><td align="left">10</td><td align="left">no</td></tr><tr><td align="left"> </td><td align="left"><a class="link" href="bk01pt03ch19s07.html#manual.ext.profile_mode.analysis.hashtable_to_vector" title="Hashtable to Vector"> | |
11508 | + HASHTABLE_TO_VECTOR</a></td><td align="left">7</td><td align="left">7</td><td align="left"> </td><td align="left">10</td><td align="left">no</td></tr><tr><td align="left"> </td><td align="left"><a class="link" href="bk01pt03ch19s07.html#manual.ext.profile_mode.analysis.vector_to_list" title="Vector to List"> | |
11509 | + VECTOR_TO_LIST</a></td><td align="left">8</td><td align="left">5</td><td align="left"> </td><td align="left">10</td><td align="left">yes</td></tr><tr><td align="left"> </td><td align="left"><a class="link" href="bk01pt03ch19s07.html#manual.ext.profile_mode.analysis.list_to_vector" title="List to Vector"> | |
11510 | + LIST_TO_VECTOR</a></td><td align="left">10</td><td align="left">5</td><td align="left"> </td><td align="left">10</td><td align="left">no</td></tr><tr><td align="left"> </td><td align="left"><a class="link" href="bk01pt03ch19s07.html#manual.ext.profile_mode.analysis.assoc_ord_to_unord" title="Ordered to Unordered Associative Container"> | |
11511 | + ORDERED_TO_UNORDERED</a></td><td align="left">10</td><td align="left">5</td><td align="left"> </td><td align="left">10</td><td align="left">only map/unordered_map</td></tr><tr><td align="left"><a class="link" href="bk01pt03ch19s07.html#manual.ext.profile_mode.analysis.algorithms" title="Algorithms"> | |
11512 | + ALGORITHMS</a></td><td align="left"><a class="link" href="bk01pt03ch19s07.html#manual.ext.profile_mode.analysis.algorithms.sort" title="Sort Algorithm Performance"> | |
11513 | + SORT</a></td><td align="left">7</td><td align="left">8</td><td align="left"> </td><td align="left">7</td><td align="left">no</td></tr><tr><td align="left"><a class="link" href="bk01pt03ch19s07.html#manual.ext.profile_mode.analysis.locality" title="Data Locality"> | |
11514 | + LOCALITY</a></td><td align="left"><a class="link" href="bk01pt03ch19s07.html#manual.ext.profile_mode.analysis.locality.sw_prefetch" title="Need Software Prefetch"> | |
11515 | + SOFTWARE_PREFETCH</a></td><td align="left">8</td><td align="left">8</td><td align="left"> </td><td align="left">5</td><td align="left">no</td></tr><tr><td align="left"> </td><td align="left"><a class="link" href="bk01pt03ch19s07.html#manual.ext.profile_mode.analysis.locality.linked" title="Linked Structure Locality"> | |
11516 | + RBTREE_LOCALITY</a></td><td align="left">4</td><td align="left">8</td><td align="left"> </td><td align="left">5</td><td align="left">no</td></tr><tr><td align="left"> </td><td align="left"><a class="link" href="bk01pt03ch19s07.html#manual.ext.profile_mode.analysis.mthread.false_share" title="False Sharing"> | |
11517 | + FALSE_SHARING</a></td><td align="left">8</td><td align="left">10</td><td align="left"> </td><td align="left">10</td><td align="left">no</td></tr></tbody></table></div></div><br class="table-break" /><div class="section" title="Diagnostic Template"><div class="titlepage"><div><div><h3 class="title"><a id="manual.ext.profile_mode.analysis.template"></a>Diagnostic Template</h3></div></div></div><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p><span class="emphasis"><em>Switch:</em></span> | |
11518 | <code class="code">_GLIBCXX_PROFILE_<diagnostic></code>. | |
11519 | </p></li><li class="listitem"><p><span class="emphasis"><em>Goal:</em></span> What problem will it diagnose? | |
11520 | </p></li><li class="listitem"><p><span class="emphasis"><em>Fundamentals:</em></span>. | |
11521 | @@ -52,10 +52,10 @@ | |
11522 | ... | |
11523 | advice sample | |
11524 | </pre><p> | |
11525 | -</p></li></ul></div></div><div class="section" title="Containers"><div class="titlepage"><div><div><h3 class="title"><a id="manual.ext.profile_mode.analysis.containers"/>Containers</h3></div></div></div><p> | |
11526 | +</p></li></ul></div></div><div class="section" title="Containers"><div class="titlepage"><div><div><h3 class="title"><a id="manual.ext.profile_mode.analysis.containers"></a>Containers</h3></div></div></div><p> | |
11527 | <span class="emphasis"><em>Switch:</em></span> | |
11528 | <code class="code">_GLIBCXX_PROFILE_CONTAINERS</code>. | |
11529 | -</p><div class="section" title="Hashtable Too Small"><div class="titlepage"><div><div><h4 class="title"><a id="manual.ext.profile_mode.analysis.hashtable_too_small"/>Hashtable Too Small</h4></div></div></div><div class="itemizedlist"><ul class="itemizedlist"><li class="listitem"><p><span class="emphasis"><em>Switch:</em></span> | |
11530 | +</p><div class="section" title="Hashtable Too Small"><div class="titlepage"><div><div><h4 class="title"><a id="manual.ext.profile_mode.analysis.hashtable_too_small"></a>Hashtable Too Small</h4></div></div></div><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p><span class="emphasis"><em>Switch:</em></span> | |
11531 | <code class="code">_GLIBCXX_PROFILE_HASHTABLE_TOO_SMALL</code>. | |
11532 | </p></li><li class="listitem"><p><span class="emphasis"><em>Goal:</em></span> Detect hashtables with many | |
11533 | rehash operations, small construction size and large destruction size. | |
11534 | @@ -81,7 +81,7 @@ | |
11535 | ||
11536 | foo.cc:1: advice: Changing initial unordered_set size from 10 to 1000000 saves 1025530 rehash operations. | |
11537 | </pre><p> | |
11538 | -</p></li></ul></div></div><div class="section" title="Hashtable Too Large"><div class="titlepage"><div><div><h4 class="title"><a id="manual.ext.profile_mode.analysis.hashtable_too_large"/>Hashtable Too Large</h4></div></div></div><div class="itemizedlist"><ul class="itemizedlist"><li class="listitem"><p><span class="emphasis"><em>Switch:</em></span> | |
11539 | +</p></li></ul></div></div><div class="section" title="Hashtable Too Large"><div class="titlepage"><div><div><h4 class="title"><a id="manual.ext.profile_mode.analysis.hashtable_too_large"></a>Hashtable Too Large</h4></div></div></div><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p><span class="emphasis"><em>Switch:</em></span> | |
11540 | <code class="code">_GLIBCXX_PROFILE_HASHTABLE_TOO_LARGE</code>. | |
11541 | </p></li><li class="listitem"><p><span class="emphasis"><em>Goal:</em></span> Detect hashtables which are | |
11542 | never filled up because fewer elements than reserved are ever | |
11543 | @@ -110,7 +110,7 @@ | |
11544 | foo.cc:1: advice: Changing initial unordered_set size from 100 to 10 saves N | |
11545 | bytes of memory and M iteration steps. | |
11546 | </pre><p> | |
11547 | -</p></li></ul></div></div><div class="section" title="Inefficient Hash"><div class="titlepage"><div><div><h4 class="title"><a id="manual.ext.profile_mode.analysis.inefficient_hash"/>Inefficient Hash</h4></div></div></div><div class="itemizedlist"><ul class="itemizedlist"><li class="listitem"><p><span class="emphasis"><em>Switch:</em></span> | |
11548 | +</p></li></ul></div></div><div class="section" title="Inefficient Hash"><div class="titlepage"><div><div><h4 class="title"><a id="manual.ext.profile_mode.analysis.inefficient_hash"></a>Inefficient Hash</h4></div></div></div><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p><span class="emphasis"><em>Switch:</em></span> | |
11549 | <code class="code">_GLIBCXX_PROFILE_INEFFICIENT_HASH</code>. | |
11550 | </p></li><li class="listitem"><p><span class="emphasis"><em>Goal:</em></span> Detect hashtables with polarized | |
11551 | distribution. | |
11552 | @@ -141,7 +141,7 @@ | |
11553 | hs.find(i); | |
11554 | } | |
11555 | </pre><p> | |
11556 | -</p></li></ul></div></div><div class="section" title="Vector Too Small"><div class="titlepage"><div><div><h4 class="title"><a id="manual.ext.profile_mode.analysis.vector_too_small"/>Vector Too Small</h4></div></div></div><div class="itemizedlist"><ul class="itemizedlist"><li class="listitem"><p><span class="emphasis"><em>Switch:</em></span> | |
11557 | +</p></li></ul></div></div><div class="section" title="Vector Too Small"><div class="titlepage"><div><div><h4 class="title"><a id="manual.ext.profile_mode.analysis.vector_too_small"></a>Vector Too Small</h4></div></div></div><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p><span class="emphasis"><em>Switch:</em></span> | |
11558 | <code class="code">_GLIBCXX_PROFILE_VECTOR_TOO_SMALL</code>. | |
11559 | </p></li><li class="listitem"><p><span class="emphasis"><em>Goal:</em></span>Detect vectors with many | |
11560 | resize operations, small construction size and large destruction size.. | |
11561 | @@ -166,7 +166,7 @@ | |
11562 | foo.cc:1: advice: Changing initial vector size from 10 to 1000000 saves | |
11563 | copying 4000000 bytes and 20 memory allocations and deallocations. | |
11564 | </pre><p> | |
11565 | -</p></li></ul></div></div><div class="section" title="Vector Too Large"><div class="titlepage"><div><div><h4 class="title"><a id="manual.ext.profile_mode.analysis.vector_too_large"/>Vector Too Large</h4></div></div></div><div class="itemizedlist"><ul class="itemizedlist"><li class="listitem"><p><span class="emphasis"><em>Switch:</em></span> | |
11566 | +</p></li></ul></div></div><div class="section" title="Vector Too Large"><div class="titlepage"><div><div><h4 class="title"><a id="manual.ext.profile_mode.analysis.vector_too_large"></a>Vector Too Large</h4></div></div></div><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p><span class="emphasis"><em>Switch:</em></span> | |
11567 | <code class="code">_GLIBCXX_PROFILE_VECTOR_TOO_LARGE</code> | |
11568 | </p></li><li class="listitem"><p><span class="emphasis"><em>Goal:</em></span>Detect vectors which are | |
11569 | never filled up because fewer elements than reserved are ever | |
11570 | @@ -192,7 +192,7 @@ | |
11571 | foo.cc:1: advice: Changing initial vector size from 100 to 10 saves N | |
11572 | bytes of memory and may reduce the number of cache and TLB misses. | |
11573 | </pre><p> | |
11574 | -</p></li></ul></div></div><div class="section" title="Vector to Hashtable"><div class="titlepage"><div><div><h4 class="title"><a id="manual.ext.profile_mode.analysis.vector_to_hashtable"/>Vector to Hashtable</h4></div></div></div><div class="itemizedlist"><ul class="itemizedlist"><li class="listitem"><p><span class="emphasis"><em>Switch:</em></span> | |
11575 | +</p></li></ul></div></div><div class="section" title="Vector to Hashtable"><div class="titlepage"><div><div><h4 class="title"><a id="manual.ext.profile_mode.analysis.vector_to_hashtable"></a>Vector to Hashtable</h4></div></div></div><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p><span class="emphasis"><em>Switch:</em></span> | |
11576 | <code class="code">_GLIBCXX_PROFILE_VECTOR_TO_HASHTABLE</code>. | |
11577 | </p></li><li class="listitem"><p><span class="emphasis"><em>Goal:</em></span> Detect uses of | |
11578 | <code class="code">vector</code> that can be substituted with <code class="code">unordered_set</code> | |
11579 | @@ -223,7 +223,7 @@ | |
11580 | foo.cc:1: advice: Changing "vector" to "unordered_set" will save about 500,000 | |
11581 | comparisons. | |
11582 | </pre><p> | |
11583 | -</p></li></ul></div></div><div class="section" title="Hashtable to Vector"><div class="titlepage"><div><div><h4 class="title"><a id="manual.ext.profile_mode.analysis.hashtable_to_vector"/>Hashtable to Vector</h4></div></div></div><div class="itemizedlist"><ul class="itemizedlist"><li class="listitem"><p><span class="emphasis"><em>Switch:</em></span> | |
11584 | +</p></li></ul></div></div><div class="section" title="Hashtable to Vector"><div class="titlepage"><div><div><h4 class="title"><a id="manual.ext.profile_mode.analysis.hashtable_to_vector"></a>Hashtable to Vector</h4></div></div></div><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p><span class="emphasis"><em>Switch:</em></span> | |
11585 | <code class="code">_GLIBCXX_PROFILE_HASHTABLE_TO_VECTOR</code>. | |
11586 | </p></li><li class="listitem"><p><span class="emphasis"><em>Goal:</em></span> Detect uses of | |
11587 | <code class="code">unordered_set</code> that can be substituted with <code class="code">vector</code> | |
11588 | @@ -252,7 +252,7 @@ | |
11589 | foo.cc:1: advice: Changing "unordered_set" to "vector" will save about N | |
11590 | indirections and may achieve better data locality. | |
11591 | </pre><p> | |
11592 | -</p></li></ul></div></div><div class="section" title="Vector to List"><div class="titlepage"><div><div><h4 class="title"><a id="manual.ext.profile_mode.analysis.vector_to_list"/>Vector to List</h4></div></div></div><div class="itemizedlist"><ul class="itemizedlist"><li class="listitem"><p><span class="emphasis"><em>Switch:</em></span> | |
11593 | +</p></li></ul></div></div><div class="section" title="Vector to List"><div class="titlepage"><div><div><h4 class="title"><a id="manual.ext.profile_mode.analysis.vector_to_list"></a>Vector to List</h4></div></div></div><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p><span class="emphasis"><em>Switch:</em></span> | |
11594 | <code class="code">_GLIBCXX_PROFILE_VECTOR_TO_LIST</code>. | |
11595 | </p></li><li class="listitem"><p><span class="emphasis"><em>Goal:</em></span> Detect cases where | |
11596 | <code class="code">vector</code> could be substituted with <code class="code">list</code> for | |
11597 | @@ -282,7 +282,7 @@ | |
11598 | foo.cc:1: advice: Changing "vector" to "list" will save about 5,000,000 | |
11599 | operations. | |
11600 | </pre><p> | |
11601 | -</p></li></ul></div></div><div class="section" title="List to Vector"><div class="titlepage"><div><div><h4 class="title"><a id="manual.ext.profile_mode.analysis.list_to_vector"/>List to Vector</h4></div></div></div><div class="itemizedlist"><ul class="itemizedlist"><li class="listitem"><p><span class="emphasis"><em>Switch:</em></span> | |
11602 | +</p></li></ul></div></div><div class="section" title="List to Vector"><div class="titlepage"><div><div><h4 class="title"><a id="manual.ext.profile_mode.analysis.list_to_vector"></a>List to Vector</h4></div></div></div><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p><span class="emphasis"><em>Switch:</em></span> | |
11603 | <code class="code">_GLIBCXX_PROFILE_LIST_TO_VECTOR</code>. | |
11604 | </p></li><li class="listitem"><p><span class="emphasis"><em>Goal:</em></span> Detect cases where | |
11605 | <code class="code">list</code> could be substituted with <code class="code">vector</code> for | |
11606 | @@ -309,7 +309,7 @@ | |
11607 | foo.cc:1: advice: Changing "list" to "vector" will save about 1000000 indirect | |
11608 | memory references. | |
11609 | </pre><p> | |
11610 | -</p></li></ul></div></div><div class="section" title="List to Forward List (Slist)"><div class="titlepage"><div><div><h4 class="title"><a id="manual.ext.profile_mode.analysis.list_to_slist"/>List to Forward List (Slist)</h4></div></div></div><div class="itemizedlist"><ul class="itemizedlist"><li class="listitem"><p><span class="emphasis"><em>Switch:</em></span> | |
11611 | +</p></li></ul></div></div><div class="section" title="List to Forward List (Slist)"><div class="titlepage"><div><div><h4 class="title"><a id="manual.ext.profile_mode.analysis.list_to_slist"></a>List to Forward List (Slist)</h4></div></div></div><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p><span class="emphasis"><em>Switch:</em></span> | |
11612 | <code class="code">_GLIBCXX_PROFILE_LIST_TO_SLIST</code>. | |
11613 | </p></li><li class="listitem"><p><span class="emphasis"><em>Goal:</em></span> Detect cases where | |
11614 | <code class="code">list</code> could be substituted with <code class="code">forward_list</code> for | |
11615 | @@ -339,7 +339,7 @@ | |
11616 | ||
11617 | foo.cc:1: advice: Change "list" to "forward_list". | |
11618 | </pre><p> | |
11619 | -</p></li></ul></div></div><div class="section" title="Ordered to Unordered Associative Container"><div class="titlepage"><div><div><h4 class="title"><a id="manual.ext.profile_mode.analysis.assoc_ord_to_unord"/>Ordered to Unordered Associative Container</h4></div></div></div><div class="itemizedlist"><ul class="itemizedlist"><li class="listitem"><p><span class="emphasis"><em>Switch:</em></span> | |
11620 | +</p></li></ul></div></div><div class="section" title="Ordered to Unordered Associative Container"><div class="titlepage"><div><div><h4 class="title"><a id="manual.ext.profile_mode.analysis.assoc_ord_to_unord"></a>Ordered to Unordered Associative Container</h4></div></div></div><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p><span class="emphasis"><em>Switch:</em></span> | |
11621 | <code class="code">_GLIBCXX_PROFILE_ORDERED_TO_UNORDERED</code>. | |
11622 | </p></li><li class="listitem"><p><span class="emphasis"><em>Goal:</em></span> Detect cases where ordered | |
11623 | associative containers can be replaced with unordered ones. | |
11624 | @@ -366,18 +366,18 @@ | |
11625 | 7 sum += *s.find(i); | |
11626 | 8 } | |
11627 | </pre><p> | |
11628 | -</p></li></ul></div></div></div><div class="section" title="Algorithms"><div class="titlepage"><div><div><h3 class="title"><a id="manual.ext.profile_mode.analysis.algorithms"/>Algorithms</h3></div></div></div><p><span class="emphasis"><em>Switch:</em></span> | |
11629 | +</p></li></ul></div></div></div><div class="section" title="Algorithms"><div class="titlepage"><div><div><h3 class="title"><a id="manual.ext.profile_mode.analysis.algorithms"></a>Algorithms</h3></div></div></div><p><span class="emphasis"><em>Switch:</em></span> | |
11630 | <code class="code">_GLIBCXX_PROFILE_ALGORITHMS</code>. | |
11631 | - </p><div class="section" title="Sort Algorithm Performance"><div class="titlepage"><div><div><h4 class="title"><a id="manual.ext.profile_mode.analysis.algorithms.sort"/>Sort Algorithm Performance</h4></div></div></div><div class="itemizedlist"><ul class="itemizedlist"><li class="listitem"><p><span class="emphasis"><em>Switch:</em></span> | |
11632 | + </p><div class="section" title="Sort Algorithm Performance"><div class="titlepage"><div><div><h4 class="title"><a id="manual.ext.profile_mode.analysis.algorithms.sort"></a>Sort Algorithm Performance</h4></div></div></div><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p><span class="emphasis"><em>Switch:</em></span> | |
11633 | <code class="code">_GLIBCXX_PROFILE_SORT</code>. | |
11634 | </p></li><li class="listitem"><p><span class="emphasis"><em>Goal:</em></span> Give measure of sort algorithm | |
11635 | performance based on actual input. For instance, advise Radix Sort over | |
11636 | Quick Sort for a particular call context. | |
11637 | </p></li><li class="listitem"><p><span class="emphasis"><em>Fundamentals:</em></span> | |
11638 | See papers: | |
11639 | - <a class="link" href="http://portal.acm.org/citation.cfm?doid=1065944.1065981"> | |
11640 | + <a class="link" href="http://portal.acm.org/citation.cfm?doid=1065944.1065981" target="_top"> | |
11641 | A framework for adaptive algorithm selection in STAPL</a> and | |
11642 | - <a class="link" href="http://ieeexplore.ieee.org/search/wrapper.jsp?arnumber=4228227"> | |
11643 | + <a class="link" href="http://ieeexplore.ieee.org/search/wrapper.jsp?arnumber=4228227" target="_top"> | |
11644 | Optimizing Sorting with Machine Learning Algorithms</a>. | |
11645 | </p></li><li class="listitem"><p><span class="emphasis"><em>Sample runtime reduction:</em></span>60%. | |
11646 | </p></li><li class="listitem"><p><span class="emphasis"><em>Recommendation:</em></span> Change sort algorithm | |
11647 | @@ -389,9 +389,9 @@ | |
11648 | Runtime(algo) for algo in [radix, quick, merge, ...]</p></li><li class="listitem"><p><span class="emphasis"><em>Example:</em></span> | |
11649 | </p><pre class="programlisting"> | |
11650 | </pre><p> | |
11651 | -</p></li></ul></div></div></div><div class="section" title="Data Locality"><div class="titlepage"><div><div><h3 class="title"><a id="manual.ext.profile_mode.analysis.locality"/>Data Locality</h3></div></div></div><p><span class="emphasis"><em>Switch:</em></span> | |
11652 | +</p></li></ul></div></div></div><div class="section" title="Data Locality"><div class="titlepage"><div><div><h3 class="title"><a id="manual.ext.profile_mode.analysis.locality"></a>Data Locality</h3></div></div></div><p><span class="emphasis"><em>Switch:</em></span> | |
11653 | <code class="code">_GLIBCXX_PROFILE_LOCALITY</code>. | |
11654 | - </p><div class="section" title="Need Software Prefetch"><div class="titlepage"><div><div><h4 class="title"><a id="manual.ext.profile_mode.analysis.locality.sw_prefetch"/>Need Software Prefetch</h4></div></div></div><div class="itemizedlist"><ul class="itemizedlist"><li class="listitem"><p><span class="emphasis"><em>Switch:</em></span> | |
11655 | + </p><div class="section" title="Need Software Prefetch"><div class="titlepage"><div><div><h4 class="title"><a id="manual.ext.profile_mode.analysis.locality.sw_prefetch"></a>Need Software Prefetch</h4></div></div></div><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p><span class="emphasis"><em>Switch:</em></span> | |
11656 | <code class="code">_GLIBCXX_PROFILE_SOFTWARE_PREFETCH</code>. | |
11657 | </p></li><li class="listitem"><p><span class="emphasis"><em>Goal:</em></span> Discover sequences of indirect | |
11658 | memory accesses that are not regular, thus cannot be predicted by | |
11659 | @@ -434,7 +434,7 @@ | |
11660 | ||
11661 | foo.cc:7: advice: Insert prefetch instruction. | |
11662 | </pre><p> | |
11663 | -</p></li></ul></div></div><div class="section" title="Linked Structure Locality"><div class="titlepage"><div><div><h4 class="title"><a id="manual.ext.profile_mode.analysis.locality.linked"/>Linked Structure Locality</h4></div></div></div><div class="itemizedlist"><ul class="itemizedlist"><li class="listitem"><p><span class="emphasis"><em>Switch:</em></span> | |
11664 | +</p></li></ul></div></div><div class="section" title="Linked Structure Locality"><div class="titlepage"><div><div><h4 class="title"><a id="manual.ext.profile_mode.analysis.locality.linked"></a>Linked Structure Locality</h4></div></div></div><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p><span class="emphasis"><em>Switch:</em></span> | |
11665 | <code class="code">_GLIBCXX_PROFILE_RBTREE_LOCALITY</code>. | |
11666 | </p></li><li class="listitem"><p><span class="emphasis"><em>Goal:</em></span> Give measure of locality of | |
11667 | objects stored in linked structures (lists, red-black trees and hashtables) | |
11668 | @@ -442,7 +442,7 @@ | |
11669 | </p></li><li class="listitem"><p><span class="emphasis"><em>Fundamentals:</em></span>Allocation can be tuned | |
11670 | to a specific traversal pattern, to result in better data locality. | |
11671 | See paper: | |
11672 | - <a class="link" href="http://www.springerlink.com/content/8085744l00x72662/"> | |
11673 | + <a class="link" href="http://www.springerlink.com/content/8085744l00x72662/" target="_top"> | |
11674 | Custom Memory Allocation for Free</a>. | |
11675 | </p></li><li class="listitem"><p><span class="emphasis"><em>Sample runtime reduction:</em></span>30%. | |
11676 | </p></li><li class="listitem"><p><span class="emphasis"><em>Recommendation:</em></span> | |
11677 | @@ -479,13 +479,13 @@ | |
11678 | foo.cc:5: advice: High scatter score NNN for set built here. Consider changing | |
11679 | the allocation sequence or switching to a structure conscious allocator. | |
11680 | </pre><p> | |
11681 | -</p></li></ul></div></div></div><div class="section" title="Multithreaded Data Access"><div class="titlepage"><div><div><h3 class="title"><a id="manual.ext.profile_mode.analysis.mthread"/>Multithreaded Data Access</h3></div></div></div><p> | |
11682 | +</p></li></ul></div></div></div><div class="section" title="Multithreaded Data Access"><div class="titlepage"><div><div><h3 class="title"><a id="manual.ext.profile_mode.analysis.mthread"></a>Multithreaded Data Access</h3></div></div></div><p> | |
11683 | The diagnostics in this group are not meant to be implemented short term. | |
11684 | They require compiler support to know when container elements are written | |
11685 | to. Instrumentation can only tell us when elements are referenced. | |
11686 | </p><p><span class="emphasis"><em>Switch:</em></span> | |
11687 | <code class="code">_GLIBCXX_PROFILE_MULTITHREADED</code>. | |
11688 | - </p><div class="section" title="Data Dependence Violations at Container Level"><div class="titlepage"><div><div><h4 class="title"><a id="manual.ext.profile_mode.analysis.mthread.ddtest"/>Data Dependence Violations at Container Level</h4></div></div></div><div class="itemizedlist"><ul class="itemizedlist"><li class="listitem"><p><span class="emphasis"><em>Switch:</em></span> | |
11689 | + </p><div class="section" title="Data Dependence Violations at Container Level"><div class="titlepage"><div><div><h4 class="title"><a id="manual.ext.profile_mode.analysis.mthread.ddtest"></a>Data Dependence Violations at Container Level</h4></div></div></div><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p><span class="emphasis"><em>Switch:</em></span> | |
11690 | <code class="code">_GLIBCXX_PROFILE_DDTEST</code>. | |
11691 | </p></li><li class="listitem"><p><span class="emphasis"><em>Goal:</em></span> Detect container elements | |
11692 | that are referenced from multiple threads in the parallel region or | |
11693 | @@ -501,7 +501,7 @@ | |
11694 | Keep a shadow for each container. Record iterator dereferences and | |
11695 | container member accesses. Issue advice for elements referenced by | |
11696 | multiple threads. | |
11697 | - See paper: <a class="link" href="http://portal.acm.org/citation.cfm?id=207110.207148"> | |
11698 | + See paper: <a class="link" href="http://portal.acm.org/citation.cfm?id=207110.207148" target="_top"> | |
11699 | The LRPD test: speculative run-time parallelization of loops with | |
11700 | privatization and reduction parallelization</a>. | |
11701 | </p></li><li class="listitem"><p><span class="emphasis"><em>Cost model:</em></span> | |
11702 | @@ -509,7 +509,7 @@ | |
11703 | </p></li><li class="listitem"><p><span class="emphasis"><em>Example:</em></span> | |
11704 | </p><pre class="programlisting"> | |
11705 | </pre><p> | |
11706 | -</p></li></ul></div></div><div class="section" title="False Sharing"><div class="titlepage"><div><div><h4 class="title"><a id="manual.ext.profile_mode.analysis.mthread.false_share"/>False Sharing</h4></div></div></div><div class="itemizedlist"><ul class="itemizedlist"><li class="listitem"><p><span class="emphasis"><em>Switch:</em></span> | |
11707 | +</p></li></ul></div></div><div class="section" title="False Sharing"><div class="titlepage"><div><div><h4 class="title"><a id="manual.ext.profile_mode.analysis.mthread.false_share"></a>False Sharing</h4></div></div></div><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p><span class="emphasis"><em>Switch:</em></span> | |
11708 | <code class="code">_GLIBCXX_PROFILE_FALSE_SHARING</code>. | |
11709 | </p></li><li class="listitem"><p><span class="emphasis"><em>Goal:</em></span> Detect elements in the | |
11710 | same container which share a cache line, are written by at least one | |
11711 | @@ -542,7 +542,7 @@ | |
11712 | foo.cc:1: advice: Change container structure or padding to avoid false | |
11713 | sharing in multithreaded access at foo.cc:4. Detected N shared cache lines. | |
11714 | </pre><p> | |
11715 | -</p></li></ul></div></div></div><div class="section" title="Statistics"><div class="titlepage"><div><div><h3 class="title"><a id="manual.ext.profile_mode.analysis.statistics"/>Statistics</h3></div></div></div><p> | |
11716 | +</p></li></ul></div></div></div><div class="section" title="Statistics"><div class="titlepage"><div><div><h3 class="title"><a id="manual.ext.profile_mode.analysis.statistics"></a>Statistics</h3></div></div></div><p> | |
11717 | <span class="emphasis"><em>Switch:</em></span> | |
11718 | <code class="code">_GLIBCXX_PROFILE_STATISTICS</code>. | |
11719 | </p><p> | |
11720 | @@ -555,4 +555,4 @@ | |
11721 | This diagnostic will not issue any advice, but it will print statistics for | |
11722 | each container construction site. The statistics will contain the cost | |
11723 | of each operation actually performed on the container. | |
11724 | -</p></div></div><div class="navfooter"><hr/><table width="100%" summary="Navigation footer"><tr><td align="left"><a accesskey="p" href="bk01pt03ch19s06.html">Prev</a> </td><td align="center"><a accesskey="u" href="profile_mode.html">Up</a></td><td align="right"> <a accesskey="n" href="mt_allocator.html">Next</a></td></tr><tr><td align="left" valign="top">Developer Information </td><td align="center"><a accesskey="h" href="../index.html">Home</a></td><td align="right" valign="top"> Chapter 20. The mt_allocator</td></tr></table></div></body></html> | |
11725 | +</p></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="bk01pt03ch19s06.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="profile_mode.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="mt_allocator.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Developer Information </td><td width="20%" align="center"><a accesskey="h" href="../index.html">Home</a></td><td width="40%" align="right" valign="top"> Chapter 20. The mt_allocator</td></tr></table></div></body></html> | |
11726 | Index: libstdc++-v3/doc/html/manual/source_organization.html | |
11727 | =================================================================== | |
9f95000d AM |
11728 | --- libstdc++-v3/doc/html/manual/source_organization.html (.../tags/gcc_4_7_2_release) (wersja 192468) |
11729 | +++ libstdc++-v3/doc/html/manual/source_organization.html (.../branches/gcc-4_7-branch) (wersja 192468) | |
5a87b929 AM |
11730 | @@ -1,97 +1,97 @@ |
11731 | <?xml version="1.0" encoding="UTF-8" standalone="no"?> | |
11732 | -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> | |
11733 | -<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Directory Layout and Source Conventions</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1"/><meta name="keywords" content=" ISO C++ , library "/><meta name="keywords" content=" ISO C++ , runtime , library "/><link rel="home" href="../index.html" title="The GNU C++ Library"/><link rel="up" href="appendix_contributing.html" title="Appendix A. Contributing"/><link rel="prev" href="appendix_contributing.html" title="Appendix A. Contributing"/><link rel="next" href="source_code_style.html" title="Coding Style"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Directory Layout and Source Conventions</th></tr><tr><td align="left"><a accesskey="p" href="appendix_contributing.html">Prev</a> </td><th width="60%" align="center">Appendix A. | |
11734 | +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> | |
11735 | +<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Directory Layout and Source Conventions</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1" /><meta name="keywords" content=" ISO C++ , library " /><meta name="keywords" content=" ISO C++ , runtime , library " /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="appendix_contributing.html" title="Appendix A. Contributing" /><link rel="prev" href="appendix_contributing.html" title="Appendix A. Contributing" /><link rel="next" href="source_code_style.html" title="Coding Style" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Directory Layout and Source Conventions</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="appendix_contributing.html">Prev</a> </td><th width="60%" align="center">Appendix A. | |
11736 | Contributing | |
11737 | ||
11738 | -</th><td align="right"> <a accesskey="n" href="source_code_style.html">Next</a></td></tr></table><hr/></div><div class="section" title="Directory Layout and Source Conventions"><div class="titlepage"><div><div><h2 class="title"><a id="contrib.organization"/>Directory Layout and Source Conventions</h2></div></div></div><p> | |
11739 | +</th><td width="20%" align="right"> <a accesskey="n" href="source_code_style.html">Next</a></td></tr></table><hr /></div><div class="section" title="Directory Layout and Source Conventions"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="contrib.organization"></a>Directory Layout and Source Conventions</h2></div></div></div><p> | |
11740 | The unpacked source directory of libstdc++ contains the files | |
11741 | needed to create the GNU C++ Library. | |
11742 | - </p><div class="literallayout"><p><br/> | |
11743 | -It has subdirectories:<br/> | |
11744 | -<br/> | |
11745 | - doc<br/> | |
11746 | - Files in HTML and text format that document usage, quirks of the<br/> | |
11747 | - implementation, and contributor checklists.<br/> | |
11748 | -<br/> | |
11749 | - include<br/> | |
11750 | - All header files for the C++ library are within this directory,<br/> | |
11751 | - modulo specific runtime-related files that are in the libsupc++<br/> | |
11752 | - directory.<br/> | |
11753 | -<br/> | |
11754 | - include/std<br/> | |
11755 | - Files meant to be found by #include <name> directives in<br/> | |
11756 | - standard-conforming user programs.<br/> | |
11757 | -<br/> | |
11758 | - include/c<br/> | |
11759 | - Headers intended to directly include standard C headers.<br/> | |
11760 | - [NB: this can be enabled via --enable-cheaders=c]<br/> | |
11761 | -<br/> | |
11762 | - include/c_global<br/> | |
11763 | - Headers intended to include standard C headers in<br/> | |
11764 | - the global namespace, and put select names into the std::<br/> | |
11765 | - namespace. [NB: this is the default, and is the same as<br/> | |
11766 | - --enable-cheaders=c_global]<br/> | |
11767 | -<br/> | |
11768 | - include/c_std<br/> | |
11769 | - Headers intended to include standard C headers<br/> | |
11770 | - already in namespace std, and put select names into the std::<br/> | |
11771 | - namespace. [NB: this is the same as --enable-cheaders=c_std]<br/> | |
11772 | -<br/> | |
11773 | - include/bits<br/> | |
11774 | - Files included by standard headers and by other files in<br/> | |
11775 | - the bits directory.<br/> | |
11776 | -<br/> | |
11777 | - include/backward<br/> | |
11778 | - Headers provided for backward compatibility, such as <iostream.h>.<br/> | |
11779 | - They are not used in this library.<br/> | |
11780 | -<br/> | |
11781 | - include/ext<br/> | |
11782 | - Headers that define extensions to the standard library. No<br/> | |
11783 | - standard header refers to any of them.<br/> | |
11784 | -<br/> | |
11785 | - scripts<br/> | |
11786 | - Scripts that are used during the configure, build, make, or test<br/> | |
11787 | - process.<br/> | |
11788 | -<br/> | |
11789 | - src<br/> | |
11790 | - Files that are used in constructing the library, but are not<br/> | |
11791 | - installed.<br/> | |
11792 | -<br/> | |
11793 | - testsuites/[backward, demangle, ext, performance, thread, 17_* to 30_*]<br/> | |
11794 | - Test programs are here, and may be used to begin to exercise the<br/> | |
11795 | - library. Support for "make check" and "make check-install" is<br/> | |
11796 | - complete, and runs through all the subdirectories here when this<br/> | |
11797 | - command is issued from the build directory. Please note that<br/> | |
11798 | - "make check" requires DejaGNU 1.4 or later to be installed. Please<br/> | |
11799 | - note that "make check-script" calls the script mkcheck, which<br/> | |
11800 | - requires bash, and which may need the paths to bash adjusted to<br/> | |
11801 | - work properly, as /bin/bash is assumed.<br/> | |
11802 | -<br/> | |
11803 | -Other subdirectories contain variant versions of certain files<br/> | |
11804 | -that are meant to be copied or linked by the configure script.<br/> | |
11805 | -Currently these are:<br/> | |
11806 | -<br/> | |
11807 | - config/abi<br/> | |
11808 | - config/cpu<br/> | |
11809 | - config/io<br/> | |
11810 | - config/locale<br/> | |
11811 | - config/os<br/> | |
11812 | -<br/> | |
11813 | -In addition, a subdirectory holds the convenience library libsupc++.<br/> | |
11814 | -<br/> | |
11815 | - libsupc++<br/> | |
11816 | - Contains the runtime library for C++, including exception<br/> | |
11817 | - handling and memory allocation and deallocation, RTTI, terminate<br/> | |
11818 | - handlers, etc.<br/> | |
11819 | -<br/> | |
11820 | -Note that glibc also has a bits/ subdirectory. We will either<br/> | |
11821 | -need to be careful not to collide with names in its bits/<br/> | |
11822 | -directory; or rename bits to (e.g.) cppbits/.<br/> | |
11823 | -<br/> | |
11824 | -In files throughout the system, lines marked with an "XXX" indicate<br/> | |
11825 | -a bug or incompletely-implemented feature. Lines marked "XXX MT"<br/> | |
11826 | -indicate a place that may require attention for multi-thread safety.<br/> | |
11827 | - </p></div></div><div class="navfooter"><hr/><table width="100%" summary="Navigation footer"><tr><td align="left"><a accesskey="p" href="appendix_contributing.html">Prev</a> </td><td align="center"><a accesskey="u" href="appendix_contributing.html">Up</a></td><td align="right"> <a accesskey="n" href="source_code_style.html">Next</a></td></tr><tr><td align="left" valign="top">Appendix A. | |
11828 | + </p><div class="literallayout"><p><br /> | |
11829 | +It has subdirectories:<br /> | |
11830 | +<br /> | |
11831 | + doc<br /> | |
11832 | + Files in HTML and text format that document usage, quirks of the<br /> | |
11833 | + implementation, and contributor checklists.<br /> | |
11834 | +<br /> | |
11835 | + include<br /> | |
11836 | + All header files for the C++ library are within this directory,<br /> | |
11837 | + modulo specific runtime-related files that are in the libsupc++<br /> | |
11838 | + directory.<br /> | |
11839 | +<br /> | |
11840 | + include/std<br /> | |
11841 | + Files meant to be found by #include <name> directives in<br /> | |
11842 | + standard-conforming user programs.<br /> | |
11843 | +<br /> | |
11844 | + include/c<br /> | |
11845 | + Headers intended to directly include standard C headers.<br /> | |
11846 | + [NB: this can be enabled via --enable-cheaders=c]<br /> | |
11847 | +<br /> | |
11848 | + include/c_global<br /> | |
11849 | + Headers intended to include standard C headers in<br /> | |
11850 | + the global namespace, and put select names into the std::<br /> | |
11851 | + namespace. [NB: this is the default, and is the same as<br /> | |
11852 | + --enable-cheaders=c_global]<br /> | |
11853 | +<br /> | |
11854 | + include/c_std<br /> | |
11855 | + Headers intended to include standard C headers<br /> | |
11856 | + already in namespace std, and put select names into the std::<br /> | |
11857 | + namespace. [NB: this is the same as --enable-cheaders=c_std]<br /> | |
11858 | +<br /> | |
11859 | + include/bits<br /> | |
11860 | + Files included by standard headers and by other files in<br /> | |
11861 | + the bits directory.<br /> | |
11862 | +<br /> | |
11863 | + include/backward<br /> | |
11864 | + Headers provided for backward compatibility, such as <iostream.h>.<br /> | |
11865 | + They are not used in this library.<br /> | |
11866 | +<br /> | |
11867 | + include/ext<br /> | |
11868 | + Headers that define extensions to the standard library. No<br /> | |
11869 | + standard header refers to any of them.<br /> | |
11870 | +<br /> | |
11871 | + scripts<br /> | |
11872 | + Scripts that are used during the configure, build, make, or test<br /> | |
11873 | + process.<br /> | |
11874 | +<br /> | |
11875 | + src<br /> | |
11876 | + Files that are used in constructing the library, but are not<br /> | |
11877 | + installed.<br /> | |
11878 | +<br /> | |
11879 | + testsuites/[backward, demangle, ext, performance, thread, 17_* to 30_*]<br /> | |
11880 | + Test programs are here, and may be used to begin to exercise the<br /> | |
11881 | + library. Support for "make check" and "make check-install" is<br /> | |
11882 | + complete, and runs through all the subdirectories here when this<br /> | |
11883 | + command is issued from the build directory. Please note that<br /> | |
11884 | + "make check" requires DejaGNU 1.4 or later to be installed. Please<br /> | |
11885 | + note that "make check-script" calls the script mkcheck, which<br /> | |
11886 | + requires bash, and which may need the paths to bash adjusted to<br /> | |
11887 | + work properly, as /bin/bash is assumed.<br /> | |
11888 | +<br /> | |
11889 | +Other subdirectories contain variant versions of certain files<br /> | |
11890 | +that are meant to be copied or linked by the configure script.<br /> | |
11891 | +Currently these are:<br /> | |
11892 | +<br /> | |
11893 | + config/abi<br /> | |
11894 | + config/cpu<br /> | |
11895 | + config/io<br /> | |
11896 | + config/locale<br /> | |
11897 | + config/os<br /> | |
11898 | +<br /> | |
11899 | +In addition, a subdirectory holds the convenience library libsupc++.<br /> | |
11900 | +<br /> | |
11901 | + libsupc++<br /> | |
11902 | + Contains the runtime library for C++, including exception<br /> | |
11903 | + handling and memory allocation and deallocation, RTTI, terminate<br /> | |
11904 | + handlers, etc.<br /> | |
11905 | +<br /> | |
11906 | +Note that glibc also has a bits/ subdirectory. We will either<br /> | |
11907 | +need to be careful not to collide with names in its bits/<br /> | |
11908 | +directory; or rename bits to (e.g.) cppbits/.<br /> | |
11909 | +<br /> | |
11910 | +In files throughout the system, lines marked with an "XXX" indicate<br /> | |
11911 | +a bug or incompletely-implemented feature. Lines marked "XXX MT"<br /> | |
11912 | +indicate a place that may require attention for multi-thread safety.<br /> | |
11913 | + </p></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="appendix_contributing.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="appendix_contributing.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="source_code_style.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Appendix A. | |
11914 | Contributing | |
11915 | ||
11916 | - </td><td align="center"><a accesskey="h" href="../index.html">Home</a></td><td align="right" valign="top"> Coding Style</td></tr></table></div></body></html> | |
11917 | + </td><td width="20%" align="center"><a accesskey="h" href="../index.html">Home</a></td><td width="40%" align="right" valign="top"> Coding Style</td></tr></table></div></body></html> | |
11918 | Index: libstdc++-v3/doc/html/manual/fstreams.html | |
11919 | =================================================================== | |
9f95000d AM |
11920 | --- libstdc++-v3/doc/html/manual/fstreams.html (.../tags/gcc_4_7_2_release) (wersja 192468) |
11921 | +++ libstdc++-v3/doc/html/manual/fstreams.html (.../branches/gcc-4_7-branch) (wersja 192468) | |
5a87b929 AM |
11922 | @@ -1,9 +1,9 @@ |
11923 | <?xml version="1.0" encoding="UTF-8" standalone="no"?> | |
11924 | -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> | |
11925 | -<html xmlns="http://www.w3.org/1999/xhtml"><head><title>File Based Streams</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1"/><meta name="keywords" content=" ISO C++ , library "/><meta name="keywords" content=" ISO C++ , runtime , library "/><link rel="home" href="../index.html" title="The GNU C++ Library"/><link rel="up" href="io.html" title="Chapter 13. Input and Output"/><link rel="prev" href="stringstreams.html" title="Memory Based Streams"/><link rel="next" href="io_and_c.html" title="Interacting with C"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">File Based Streams</th></tr><tr><td align="left"><a accesskey="p" href="stringstreams.html">Prev</a> </td><th width="60%" align="center">Chapter 13. | |
11926 | +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> | |
11927 | +<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>File Based Streams</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1" /><meta name="keywords" content=" ISO C++ , library " /><meta name="keywords" content=" ISO C++ , runtime , library " /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="io.html" title="Chapter 13. Input and Output" /><link rel="prev" href="stringstreams.html" title="Memory Based Streams" /><link rel="next" href="io_and_c.html" title="Interacting with C" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">File Based Streams</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="stringstreams.html">Prev</a> </td><th width="60%" align="center">Chapter 13. | |
11928 | Input and Output | |
11929 | ||
11930 | -</th><td align="right"> <a accesskey="n" href="io_and_c.html">Next</a></td></tr></table><hr/></div><div class="section" title="File Based Streams"><div class="titlepage"><div><div><h2 class="title"><a id="std.io.filestreams"/>File Based Streams</h2></div></div></div><div class="section" title="Copying a File"><div class="titlepage"><div><div><h3 class="title"><a id="std.io.filestreams.copying_a_file"/>Copying a File</h3></div></div></div><p> | |
11931 | +</th><td width="20%" align="right"> <a accesskey="n" href="io_and_c.html">Next</a></td></tr></table><hr /></div><div class="section" title="File Based Streams"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="std.io.filestreams"></a>File Based Streams</h2></div></div></div><div class="section" title="Copying a File"><div class="titlepage"><div><div><h3 class="title"><a id="std.io.filestreams.copying_a_file"></a>Copying a File</h3></div></div></div><p> | |
11932 | </p><p>So you want to copy a file quickly and easily, and most important, | |
11933 | completely portably. And since this is C++, you have an open | |
11934 | ifstream (call it IN) and an open ofstream (call it OUT): | |
11935 | @@ -49,7 +49,7 @@ | |
11936 | The operators shown above are all defined in the parent | |
11937 | basic_ostream class and are therefore available with all possible | |
11938 | descendants. | |
11939 | - </p></div><div class="section" title="Binary Input and Output"><div class="titlepage"><div><div><h3 class="title"><a id="std.io.filestreams.binary"/>Binary Input and Output</h3></div></div></div><p> | |
11940 | + </p></div><div class="section" title="Binary Input and Output"><div class="titlepage"><div><div><h3 class="title"><a id="std.io.filestreams.binary"></a>Binary Input and Output</h3></div></div></div><p> | |
11941 | </p><p>The first and most important thing to remember about binary I/O is | |
11942 | that opening a file with <code class="code">ios::binary</code> is not, repeat | |
11943 | <span class="emphasis"><em>not</em></span>, the only thing you have to do. It is not a silver | |
11944 | @@ -87,7 +87,7 @@ | |
11945 | of <span class="emphasis"><em>formatting</em></span> functions and classes to perform something | |
11946 | which <span class="emphasis"><em>requires</em></span> that formatting not be done? There are a | |
11947 | seemingly infinite number of solutions, and a few are listed here: | |
11948 | - </p><div class="itemizedlist"><ul class="itemizedlist"><li class="listitem"><p><span class="quote">“<span class="quote">Derive your own fstream-type classes and write your own | |
11949 | + </p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p><span class="quote">“<span class="quote">Derive your own fstream-type classes and write your own | |
11950 | <</>> operators to do binary I/O on whatever data | |
11951 | types you're using.</span>”</span> | |
11952 | </p><p> | |
11953 | @@ -138,7 +138,7 @@ | |
11954 | </p><p> | |
11955 | An instructive thread from comp.lang.c++.moderated delved off into | |
11956 | this topic starting more or less at | |
11957 | - <a class="link" href="http://groups.google.com/group/comp.std.c++/browse_thread/thread/f87b4abd7954a87/946a3eb9921e382d?q=comp.std.c%2B%2B+binary+iostream#946a3eb9921e382d">this</a> | |
11958 | + <a class="link" href="http://groups.google.com/group/comp.std.c++/browse_thread/thread/f87b4abd7954a87/946a3eb9921e382d?q=comp.std.c%2B%2B+binary+iostream#946a3eb9921e382d" target="_top">this</a> | |
11959 | post and continuing to the end of the thread. (The subject heading is "binary iostreams" on both comp.std.c++ | |
11960 | and comp.lang.c++.moderated.) Take special note of the replies by James Kanze and Dietmar Kühl. | |
11961 | </p><p>Briefly, the problems of byte ordering and type sizes mean that | |
11962 | @@ -147,4 +147,4 @@ | |
11963 | between arbitrary programs, or across a network, or from one | |
11964 | invocation of a program to another invocation of the same program | |
11965 | on a different platform, etc. | |
11966 | - </p></div></div><div class="navfooter"><hr/><table width="100%" summary="Navigation footer"><tr><td align="left"><a accesskey="p" href="stringstreams.html">Prev</a> </td><td align="center"><a accesskey="u" href="io.html">Up</a></td><td align="right"> <a accesskey="n" href="io_and_c.html">Next</a></td></tr><tr><td align="left" valign="top">Memory Based Streams </td><td align="center"><a accesskey="h" href="../index.html">Home</a></td><td align="right" valign="top"> Interacting with C</td></tr></table></div></body></html> | |
11967 | + </p></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="stringstreams.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="io.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="io_and_c.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Memory Based Streams </td><td width="20%" align="center"><a accesskey="h" href="../index.html">Home</a></td><td width="40%" align="right" valign="top"> Interacting with C</td></tr></table></div></body></html> | |
11968 | Index: libstdc++-v3/doc/html/manual/ext_demangling.html | |
11969 | =================================================================== | |
9f95000d AM |
11970 | --- libstdc++-v3/doc/html/manual/ext_demangling.html (.../tags/gcc_4_7_2_release) (wersja 192468) |
11971 | +++ libstdc++-v3/doc/html/manual/ext_demangling.html (.../branches/gcc-4_7-branch) (wersja 192468) | |
5a87b929 AM |
11972 | @@ -1,14 +1,14 @@ |
11973 | <?xml version="1.0" encoding="UTF-8" standalone="no"?> | |
11974 | -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> | |
11975 | -<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Chapter 29. Demangling</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1"/><meta name="keywords" content=" ISO C++ , library "/><meta name="keywords" content=" ISO C++ , runtime , library "/><link rel="home" href="../index.html" title="The GNU C++ Library"/><link rel="up" href="extensions.html" title="Part III. Extensions"/><link rel="prev" href="ext_io.html" title="Chapter 28. Input and Output"/><link rel="next" href="ext_concurrency.html" title="Chapter 30. Concurrency"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 29. Demangling</th></tr><tr><td align="left"><a accesskey="p" href="ext_io.html">Prev</a> </td><th width="60%" align="center">Part III. | |
11976 | +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> | |
11977 | +<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Chapter 29. Demangling</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1" /><meta name="keywords" content=" ISO C++ , library " /><meta name="keywords" content=" ISO C++ , runtime , library " /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="extensions.html" title="Part III. Extensions" /><link rel="prev" href="ext_io.html" title="Chapter 28. Input and Output" /><link rel="next" href="ext_concurrency.html" title="Chapter 30. Concurrency" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 29. Demangling</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ext_io.html">Prev</a> </td><th width="60%" align="center">Part III. | |
11978 | Extensions | |
11979 | ||
11980 | -</th><td align="right"> <a accesskey="n" href="ext_concurrency.html">Next</a></td></tr></table><hr/></div><div class="chapter" title="Chapter 29. Demangling"><div class="titlepage"><div><div><h2 class="title"><a id="manual.ext.demangle"/>Chapter 29. Demangling</h2></div></div></div><p> | |
11981 | +</th><td width="20%" align="right"> <a accesskey="n" href="ext_concurrency.html">Next</a></td></tr></table><hr /></div><div class="chapter" title="Chapter 29. Demangling"><div class="titlepage"><div><div><h2 class="title"><a id="manual.ext.demangle"></a>Chapter 29. Demangling</h2></div></div></div><p> | |
11982 | Transforming C++ ABI identifiers (like RTTI symbols) into the | |
11983 | original C++ source identifiers is called | |
11984 | <span class="quote">“<span class="quote">demangling.</span>”</span> | |
11985 | </p><p> | |
11986 | - If you have read the <a class="link" href="http://gcc.gnu.org/onlinedocs/libstdc++/latest-doxygen/a01115.html">source | |
11987 | + If you have read the <a class="link" href="http://gcc.gnu.org/onlinedocs/libstdc++/latest-doxygen/a01115.html" target="_top">source | |
11988 | documentation for <code class="code">namespace abi</code></a> then you are | |
11989 | aware of the cross-vendor C++ ABI in use by GCC. One of the | |
11990 | exposed functions is used for demangling, | |
11991 | @@ -71,4 +71,4 @@ | |
11992 | be writing C++ in order to demangle C++. (That also means we have to | |
11993 | use crummy memory management facilities, so don't forget to free() | |
11994 | the returned char array.) | |
11995 | - </p></div><div class="navfooter"><hr/><table width="100%" summary="Navigation footer"><tr><td align="left"><a accesskey="p" href="ext_io.html">Prev</a> </td><td align="center"><a accesskey="u" href="extensions.html">Up</a></td><td align="right"> <a accesskey="n" href="ext_concurrency.html">Next</a></td></tr><tr><td align="left" valign="top">Chapter 28. Input and Output </td><td align="center"><a accesskey="h" href="../index.html">Home</a></td><td align="right" valign="top"> Chapter 30. Concurrency</td></tr></table></div></body></html> | |
11996 | + </p></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="ext_io.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="extensions.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="ext_concurrency.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Chapter 28. Input and Output </td><td width="20%" align="center"><a accesskey="h" href="../index.html">Home</a></td><td width="40%" align="right" valign="top"> Chapter 30. Concurrency</td></tr></table></div></body></html> | |
11997 | Index: libstdc++-v3/doc/html/manual/ext_compile_checks.html | |
11998 | =================================================================== | |
9f95000d AM |
11999 | --- libstdc++-v3/doc/html/manual/ext_compile_checks.html (.../tags/gcc_4_7_2_release) (wersja 192468) |
12000 | +++ libstdc++-v3/doc/html/manual/ext_compile_checks.html (.../branches/gcc-4_7-branch) (wersja 192468) | |
5a87b929 AM |
12001 | @@ -1,9 +1,9 @@ |
12002 | <?xml version="1.0" encoding="UTF-8" standalone="no"?> | |
12003 | -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> | |
12004 | -<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Chapter 16. Compile Time Checks</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1"/><meta name="keywords" content=" ISO C++ , library "/><meta name="keywords" content=" ISO C++ , runtime , library "/><link rel="home" href="../index.html" title="The GNU C++ Library"/><link rel="up" href="extensions.html" title="Part III. Extensions"/><link rel="prev" href="bk01pt03pr01.html" title=""/><link rel="next" href="debug_mode.html" title="Chapter 17. Debug Mode"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 16. Compile Time Checks</th></tr><tr><td align="left"><a accesskey="p" href="bk01pt03pr01.html">Prev</a> </td><th width="60%" align="center">Part III. | |
12005 | +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> | |
12006 | +<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Chapter 16. Compile Time Checks</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1" /><meta name="keywords" content=" ISO C++ , library " /><meta name="keywords" content=" ISO C++ , runtime , library " /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="extensions.html" title="Part III. Extensions" /><link rel="prev" href="bk01pt03pr01.html" title="" /><link rel="next" href="debug_mode.html" title="Chapter 17. Debug Mode" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 16. Compile Time Checks</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="bk01pt03pr01.html">Prev</a> </td><th width="60%" align="center">Part III. | |
12007 | Extensions | |
12008 | ||
12009 | -</th><td align="right"> <a accesskey="n" href="debug_mode.html">Next</a></td></tr></table><hr/></div><div class="chapter" title="Chapter 16. Compile Time Checks"><div class="titlepage"><div><div><h2 class="title"><a id="manual.ext.compile_checks"/>Chapter 16. Compile Time Checks</h2></div></div></div><p> | |
12010 | +</th><td width="20%" align="right"> <a accesskey="n" href="debug_mode.html">Next</a></td></tr></table><hr /></div><div class="chapter" title="Chapter 16. Compile Time Checks"><div class="titlepage"><div><div><h2 class="title"><a id="manual.ext.compile_checks"></a>Chapter 16. Compile Time Checks</h2></div></div></div><p> | |
12011 | Also known as concept checking. | |
12012 | </p><p>In 1999, SGI added <span class="emphasis"><em>concept checkers</em></span> to their implementation | |
12013 | of the STL: code which checked the template parameters of | |
12014 | @@ -19,7 +19,7 @@ | |
12015 | </p><p>The primary author of the checking code, Jeremy Siek, had already | |
12016 | started work on a replacement implementation. The new code has been | |
12017 | formally reviewed and accepted into | |
12018 | - <a class="link" href="http://www.boost.org/libs/concept_check/concept_check.htm">the | |
12019 | + <a class="link" href="http://www.boost.org/libs/concept_check/concept_check.htm" target="_top">the | |
12020 | Boost libraries</a>, and we are pleased to incorporate it into the | |
12021 | GNU C++ library. | |
12022 | </p><p>The new version imposes a much smaller space overhead on the generated | |
12023 | @@ -37,4 +37,4 @@ | |
12024 | support for template parameter constraints based on concepts in the core | |
12025 | language. This will obviate the need for the library-simulated concept | |
12026 | checking described above. | |
12027 | - </p></div><div class="navfooter"><hr/><table width="100%" summary="Navigation footer"><tr><td align="left"><a accesskey="p" href="bk01pt03pr01.html">Prev</a> </td><td align="center"><a accesskey="u" href="extensions.html">Up</a></td><td align="right"> <a accesskey="n" href="debug_mode.html">Next</a></td></tr><tr><td align="left" valign="top"> </td><td align="center"><a accesskey="h" href="../index.html">Home</a></td><td align="right" valign="top"> Chapter 17. Debug Mode</td></tr></table></div></body></html> | |
12028 | + </p></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="bk01pt03pr01.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="extensions.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="debug_mode.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"> </td><td width="20%" align="center"><a accesskey="h" href="../index.html">Home</a></td><td width="40%" align="right" valign="top"> Chapter 17. Debug Mode</td></tr></table></div></body></html> | |
12029 | Index: libstdc++-v3/doc/html/manual/strings.html | |
12030 | =================================================================== | |
9f95000d AM |
12031 | --- libstdc++-v3/doc/html/manual/strings.html (.../tags/gcc_4_7_2_release) (wersja 192468) |
12032 | +++ libstdc++-v3/doc/html/manual/strings.html (.../branches/gcc-4_7-branch) (wersja 192468) | |
5a87b929 AM |
12033 | @@ -1,14 +1,14 @@ |
12034 | <?xml version="1.0" encoding="UTF-8" standalone="no"?> | |
12035 | -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> | |
12036 | -<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Chapter 7. Strings</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1"/><meta name="keywords" content=" ISO C++ , library "/><meta name="keywords" content=" ISO C++ , runtime , library "/><link rel="home" href="../index.html" title="The GNU C++ Library"/><link rel="up" href="bk01pt02.html" title="Part II. Standard Contents"/><link rel="prev" href="traits.html" title="Traits"/><link rel="next" href="localization.html" title="Chapter 8. Localization"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 7. | |
12037 | +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> | |
12038 | +<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Chapter 7. Strings</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1" /><meta name="keywords" content=" ISO C++ , library " /><meta name="keywords" content=" ISO C++ , runtime , library " /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="bk01pt02.html" title="Part II. Standard Contents" /><link rel="prev" href="traits.html" title="Traits" /><link rel="next" href="localization.html" title="Chapter 8. Localization" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 7. | |
12039 | Strings | |
12040 | ||
12041 | -</th></tr><tr><td align="left"><a accesskey="p" href="traits.html">Prev</a> </td><th width="60%" align="center">Part II. | |
12042 | +</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="traits.html">Prev</a> </td><th width="60%" align="center">Part II. | |
12043 | Standard Contents | |
12044 | - </th><td align="right"> <a accesskey="n" href="localization.html">Next</a></td></tr></table><hr/></div><div class="chapter" title="Chapter 7. Strings"><div class="titlepage"><div><div><h2 class="title"><a id="std.strings"/>Chapter 7. | |
12045 | + </th><td width="20%" align="right"> <a accesskey="n" href="localization.html">Next</a></td></tr></table><hr /></div><div class="chapter" title="Chapter 7. Strings"><div class="titlepage"><div><div><h2 class="title"><a id="std.strings"></a>Chapter 7. | |
12046 | Strings | |
12047 | - <a id="id499563" class="indexterm"/> | |
12048 | -</h2></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl><dt><span class="section"><a href="strings.html#std.strings.string">String Classes</a></span></dt><dd><dl><dt><span class="section"><a href="strings.html#strings.string.simple">Simple Transformations</a></span></dt><dt><span class="section"><a href="strings.html#strings.string.case">Case Sensitivity</a></span></dt><dt><span class="section"><a href="strings.html#strings.string.character_types">Arbitrary Character Types</a></span></dt><dt><span class="section"><a href="strings.html#strings.string.token">Tokenizing</a></span></dt><dt><span class="section"><a href="strings.html#strings.string.shrink">Shrink to Fit</a></span></dt><dt><span class="section"><a href="strings.html#strings.string.Cstring">CString (MFC)</a></span></dt></dl></dd></dl></div><div class="section" title="String Classes"><div class="titlepage"><div><div><h2 class="title"><a id="std.strings.string"/>String Classes</h2></div></div></div><div class="section" title="Simple Transformations"><div class="titlepage"><div><div><h3 class="title"><a id="strings.string.simple"/>Simple Transformations</h3></div></div></div><p> | |
12049 | + <a id="id678049" class="indexterm"></a> | |
12050 | +</h2></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl><dt><span class="section"><a href="strings.html#std.strings.string">String Classes</a></span></dt><dd><dl><dt><span class="section"><a href="strings.html#strings.string.simple">Simple Transformations</a></span></dt><dt><span class="section"><a href="strings.html#strings.string.case">Case Sensitivity</a></span></dt><dt><span class="section"><a href="strings.html#strings.string.character_types">Arbitrary Character Types</a></span></dt><dt><span class="section"><a href="strings.html#strings.string.token">Tokenizing</a></span></dt><dt><span class="section"><a href="strings.html#strings.string.shrink">Shrink to Fit</a></span></dt><dt><span class="section"><a href="strings.html#strings.string.Cstring">CString (MFC)</a></span></dt></dl></dd></dl></div><div class="section" title="String Classes"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="std.strings.string"></a>String Classes</h2></div></div></div><div class="section" title="Simple Transformations"><div class="titlepage"><div><div><h3 class="title"><a id="strings.string.simple"></a>Simple Transformations</h3></div></div></div><p> | |
12051 | Here are Standard, simple, and portable ways to perform common | |
12052 | transformations on a <code class="code">string</code> instance, such as | |
12053 | "convert to all upper case." The word transformations | |
12054 | @@ -64,7 +64,7 @@ | |
12055 | are overloaded names (declared in <code class="code"><cctype></code> and | |
12056 | <code class="code"><locale></code>) so the template-arguments for | |
12057 | <code class="code">transform<></code> cannot be deduced, as explained in | |
12058 | - <a class="link" href="http://gcc.gnu.org/ml/libstdc++/2002-11/msg00180.html">this | |
12059 | + <a class="link" href="http://gcc.gnu.org/ml/libstdc++/2002-11/msg00180.html" target="_top">this | |
12060 | message</a>. | |
12061 | ||
12062 | At minimum, you can write short wrappers like | |
12063 | @@ -89,9 +89,9 @@ | |
12064 | str.erase(notwhite+1); </pre><p>Obviously, the calls to <code class="code">find</code> could be inserted directly | |
12065 | into the calls to <code class="code">erase</code>, in case your compiler does not | |
12066 | optimize named temporaries out of existence. | |
12067 | - </p></div><div class="section" title="Case Sensitivity"><div class="titlepage"><div><div><h3 class="title"><a id="strings.string.case"/>Case Sensitivity</h3></div></div></div><p> | |
12068 | + </p></div><div class="section" title="Case Sensitivity"><div class="titlepage"><div><div><h3 class="title"><a id="strings.string.case"></a>Case Sensitivity</h3></div></div></div><p> | |
12069 | </p><p>The well-known-and-if-it-isn't-well-known-it-ought-to-be | |
12070 | - <a class="link" href="http://www.gotw.ca/gotw/">Guru of the Week</a> | |
12071 | + <a class="link" href="http://www.gotw.ca/gotw/" target="_top">Guru of the Week</a> | |
12072 | discussions held on Usenet covered this topic in January of 1998. | |
12073 | Briefly, the challenge was, <span class="quote">“<span class="quote">write a 'ci_string' class which | |
12074 | is identical to the standard 'string' class, but is | |
12075 | @@ -108,10 +108,10 @@ | |
12076 | assert( strcmp( s.c_str(), "AbCdE" ) == 0 ); | |
12077 | assert( strcmp( s.c_str(), "abcde" ) != 0 ); </pre><p>The solution is surprisingly easy. The original answer was | |
12078 | posted on Usenet, and a revised version appears in Herb Sutter's | |
12079 | - book <span class="emphasis"><em>Exceptional C++</em></span> and on his website as <a class="link" href="http://www.gotw.ca/gotw/029.htm">GotW 29</a>. | |
12080 | + book <span class="emphasis"><em>Exceptional C++</em></span> and on his website as <a class="link" href="http://www.gotw.ca/gotw/029.htm" target="_top">GotW 29</a>. | |
12081 | </p><p>See? Told you it was easy!</p><p> | |
12082 | <span class="emphasis"><em>Added June 2000:</em></span> The May 2000 issue of C++ | |
12083 | - Report contains a fascinating <a class="link" href="http://lafstern.org/matt/col2_new.pdf"> article</a> by | |
12084 | + Report contains a fascinating <a class="link" href="http://lafstern.org/matt/col2_new.pdf" target="_top"> article</a> by | |
12085 | Matt Austern (yes, <span class="emphasis"><em>the</em></span> Matt Austern) on why | |
12086 | case-insensitive comparisons are not as easy as they seem, and | |
12087 | why creating a class is the <span class="emphasis"><em>wrong</em></span> way to go | |
12088 | @@ -123,10 +123,10 @@ | |
12089 | that nobody ever called me on it...) The GotW question and answer | |
12090 | remain useful instructional tools, however. | |
12091 | </p><p><span class="emphasis"><em>Added September 2000:</em></span> James Kanze provided a link to a | |
12092 | - <a class="link" href="http://www.unicode.org/reports/tr21/tr21-5.html">Unicode | |
12093 | + <a class="link" href="http://www.unicode.org/reports/tr21/tr21-5.html" target="_top">Unicode | |
12094 | Technical Report discussing case handling</a>, which provides some | |
12095 | very good information. | |
12096 | - </p></div><div class="section" title="Arbitrary Character Types"><div class="titlepage"><div><div><h3 class="title"><a id="strings.string.character_types"/>Arbitrary Character Types</h3></div></div></div><p> | |
12097 | + </p></div><div class="section" title="Arbitrary Character Types"><div class="titlepage"><div><div><h3 class="title"><a id="strings.string.character_types"></a>Arbitrary Character Types</h3></div></div></div><p> | |
12098 | </p><p>The <code class="code">std::basic_string</code> is tantalizingly general, in that | |
12099 | it is parameterized on the type of the characters which it holds. | |
12100 | In theory, you could whip up a Unicode character class and instantiate | |
12101 | @@ -169,18 +169,18 @@ | |
12102 | works and can be specialized even for <code class="code">int</code> and other | |
12103 | built-in types. | |
12104 | </p><p>If you want to use your own special character class, then you have | |
12105 | - <a class="link" href="http://gcc.gnu.org/ml/libstdc++/2002-08/msg00163.html">a lot | |
12106 | + <a class="link" href="http://gcc.gnu.org/ml/libstdc++/2002-08/msg00163.html" target="_top">a lot | |
12107 | of work to do</a>, especially if you with to use i18n features | |
12108 | (facets require traits information but don't have a traits argument). | |
12109 | - </p><p>Another example of how to specialize char_traits was given <a class="link" href="http://gcc.gnu.org/ml/libstdc++/2002-08/msg00260.html">on the | |
12110 | + </p><p>Another example of how to specialize char_traits was given <a class="link" href="http://gcc.gnu.org/ml/libstdc++/2002-08/msg00260.html" target="_top">on the | |
12111 | mailing list</a> and at a later date was put into the file <code class="code"> | |
12112 | include/ext/pod_char_traits.h</code>. We agree | |
12113 | that the way it's used with basic_string (scroll down to main()) | |
12114 | - doesn't look nice, but that's because <a class="link" href="http://gcc.gnu.org/ml/libstdc++/2002-08/msg00236.html">the | |
12115 | - nice-looking first attempt</a> turned out to <a class="link" href="http://gcc.gnu.org/ml/libstdc++/2002-08/msg00242.html">not | |
12116 | + doesn't look nice, but that's because <a class="link" href="http://gcc.gnu.org/ml/libstdc++/2002-08/msg00236.html" target="_top">the | |
12117 | + nice-looking first attempt</a> turned out to <a class="link" href="http://gcc.gnu.org/ml/libstdc++/2002-08/msg00242.html" target="_top">not | |
12118 | be conforming C++</a>, due to the rule that CharT must be a POD. | |
12119 | (See how tricky this is?) | |
12120 | - </p></div><div class="section" title="Tokenizing"><div class="titlepage"><div><div><h3 class="title"><a id="strings.string.token"/>Tokenizing</h3></div></div></div><p> | |
12121 | + </p></div><div class="section" title="Tokenizing"><div class="titlepage"><div><div><h3 class="title"><a id="strings.string.token"></a>Tokenizing</h3></div></div></div><p> | |
12122 | </p><p>The Standard C (and C++) function <code class="code">strtok()</code> leaves a lot to | |
12123 | be desired in terms of user-friendliness. It's unintuitive, it | |
12124 | destroys the character string on which it operates, and it requires | |
12125 | @@ -256,7 +256,7 @@ | |
12126 | tokenizing as well. Build an istringstream from the input text, | |
12127 | and then use std::getline with varying delimiters (the three-argument | |
12128 | signature) to extract tokens into a string. | |
12129 | - </p></div><div class="section" title="Shrink to Fit"><div class="titlepage"><div><div><h3 class="title"><a id="strings.string.shrink"/>Shrink to Fit</h3></div></div></div><p> | |
12130 | + </p></div><div class="section" title="Shrink to Fit"><div class="titlepage"><div><div><h3 class="title"><a id="strings.string.shrink"></a>Shrink to Fit</h3></div></div></div><p> | |
12131 | </p><p>From GCC 3.4 calling <code class="code">s.reserve(res)</code> on a | |
12132 | <code class="code">string s</code> with <code class="code">res < s.capacity()</code> will | |
12133 | reduce the string's capacity to <code class="code">std::max(s.size(), res)</code>. | |
12134 | @@ -272,7 +272,7 @@ | |
12135 | </p><p>In <a class="link" href="status.html#status.iso.2011" title="C++ 2011">C++11</a> mode you can call | |
12136 | <code class="code">s.shrink_to_fit()</code> to achieve the same effect as | |
12137 | <code class="code">s.reserve(s.size())</code>. | |
12138 | - </p></div><div class="section" title="CString (MFC)"><div class="titlepage"><div><div><h3 class="title"><a id="strings.string.Cstring"/>CString (MFC)</h3></div></div></div><p> | |
12139 | + </p></div><div class="section" title="CString (MFC)"><div class="titlepage"><div><div><h3 class="title"><a id="strings.string.Cstring"></a>CString (MFC)</h3></div></div></div><p> | |
12140 | </p><p>A common lament seen in various newsgroups deals with the Standard | |
12141 | string class as opposed to the Microsoft Foundation Class called | |
12142 | CString. Often programmers realize that a standard portable | |
12143 | @@ -280,9 +280,9 @@ | |
12144 | their application from a Win32 platform, they discover that they | |
12145 | are relying on special functions offered by the CString class. | |
12146 | </p><p>Things are not as bad as they seem. In | |
12147 | - <a class="link" href="http://gcc.gnu.org/ml/gcc/1999-04n/msg00236.html">this | |
12148 | + <a class="link" href="http://gcc.gnu.org/ml/gcc/1999-04n/msg00236.html" target="_top">this | |
12149 | message</a>, Joe Buck points out a few very important things: | |
12150 | - </p><div class="itemizedlist"><ul class="itemizedlist"><li class="listitem"><p>The Standard <code class="code">string</code> supports all the operations | |
12151 | + </p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>The Standard <code class="code">string</code> supports all the operations | |
12152 | that CString does, with three exceptions. | |
12153 | </p></li><li class="listitem"><p>Two of those exceptions (whitespace trimming and case | |
12154 | conversion) are trivial to implement. In fact, we do so | |
12155 | @@ -340,7 +340,7 @@ | |
12156 | performance is O(n). | |
12157 | </pre><p>Joe Buck also pointed out some other things to keep in mind when | |
12158 | comparing CString and the Standard string class: | |
12159 | - </p><div class="itemizedlist"><ul class="itemizedlist"><li class="listitem"><p>CString permits access to its internal representation; coders | |
12160 | + </p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>CString permits access to its internal representation; coders | |
12161 | who exploited that may have problems moving to <code class="code">string</code>. | |
12162 | </p></li><li class="listitem"><p>Microsoft ships the source to CString (in the files | |
12163 | MFC\SRC\Str{core,ex}.cpp), so you could fix the allocation | |
12164 | @@ -360,7 +360,7 @@ | |
12165 | libstdc++ string, the SGI string, and the SGI rope, and this | |
12166 | is all before any allocator or traits customizations! (More | |
12167 | choices than you can shake a stick at -- want fries with that?) | |
12168 | - </p></li></ul></div></div></div></div><div class="navfooter"><hr/><table width="100%" summary="Navigation footer"><tr><td align="left"><a accesskey="p" href="traits.html">Prev</a> </td><td align="center"><a accesskey="u" href="bk01pt02.html">Up</a></td><td align="right"> <a accesskey="n" href="localization.html">Next</a></td></tr><tr><td align="left" valign="top">Traits </td><td align="center"><a accesskey="h" href="../index.html">Home</a></td><td align="right" valign="top"> Chapter 8. | |
12169 | + </p></li></ul></div></div></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="traits.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="bk01pt02.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="localization.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Traits </td><td width="20%" align="center"><a accesskey="h" href="../index.html">Home</a></td><td width="40%" align="right" valign="top"> Chapter 8. | |
12170 | Localization | |
12171 | ||
12172 | </td></tr></table></div></body></html> | |
12173 | Index: libstdc++-v3/doc/html/manual/containers_and_c.html | |
12174 | =================================================================== | |
9f95000d AM |
12175 | --- libstdc++-v3/doc/html/manual/containers_and_c.html (.../tags/gcc_4_7_2_release) (wersja 192468) |
12176 | +++ libstdc++-v3/doc/html/manual/containers_and_c.html (.../branches/gcc-4_7-branch) (wersja 192468) | |
5a87b929 AM |
12177 | @@ -1,9 +1,9 @@ |
12178 | <?xml version="1.0" encoding="UTF-8" standalone="no"?> | |
12179 | -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> | |
12180 | -<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Interacting with C</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1"/><meta name="keywords" content=" ISO C++ , library "/><meta name="keywords" content=" ISO C++ , runtime , library "/><link rel="home" href="../index.html" title="The GNU C++ Library"/><link rel="up" href="containers.html" title="Chapter 9. Containers"/><link rel="prev" href="associative.html" title="Associative"/><link rel="next" href="iterators.html" title="Chapter 10. Iterators"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Interacting with C</th></tr><tr><td align="left"><a accesskey="p" href="associative.html">Prev</a> </td><th width="60%" align="center">Chapter 9. | |
12181 | +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> | |
12182 | +<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Interacting with C</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1" /><meta name="keywords" content=" ISO C++ , library " /><meta name="keywords" content=" ISO C++ , runtime , library " /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="containers.html" title="Chapter 9. Containers" /><link rel="prev" href="associative.html" title="Associative" /><link rel="next" href="iterators.html" title="Chapter 10. Iterators" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Interacting with C</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="associative.html">Prev</a> </td><th width="60%" align="center">Chapter 9. | |
12183 | Containers | |
12184 | ||
12185 | -</th><td align="right"> <a accesskey="n" href="iterators.html">Next</a></td></tr></table><hr/></div><div class="section" title="Interacting with C"><div class="titlepage"><div><div><h2 class="title"><a id="std.containers.c"/>Interacting with C</h2></div></div></div><div class="section" title="Containers vs. Arrays"><div class="titlepage"><div><div><h3 class="title"><a id="containers.c.vs_array"/>Containers vs. Arrays</h3></div></div></div><p> | |
12186 | +</th><td width="20%" align="right"> <a accesskey="n" href="iterators.html">Next</a></td></tr></table><hr /></div><div class="section" title="Interacting with C"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="std.containers.c"></a>Interacting with C</h2></div></div></div><div class="section" title="Containers vs. Arrays"><div class="titlepage"><div><div><h3 class="title"><a id="containers.c.vs_array"></a>Containers vs. Arrays</h3></div></div></div><p> | |
12187 | You're writing some code and can't decide whether to use builtin | |
12188 | arrays or some kind of container. There are compelling reasons | |
12189 | to use one of the container classes, but you're afraid that | |
12190 | @@ -84,7 +84,7 @@ | |
12191 | inline unsigned int lengthof (T (&)[sz]) { return sz; } | |
12192 | </pre><p> | |
12193 | looks just weird! Hint: unused parameters can be left nameless. | |
12194 | - </p></div></div><div class="navfooter"><hr/><table width="100%" summary="Navigation footer"><tr><td align="left"><a accesskey="p" href="associative.html">Prev</a> </td><td align="center"><a accesskey="u" href="containers.html">Up</a></td><td align="right"> <a accesskey="n" href="iterators.html">Next</a></td></tr><tr><td align="left" valign="top">Associative </td><td align="center"><a accesskey="h" href="../index.html">Home</a></td><td align="right" valign="top"> Chapter 10. | |
12195 | + </p></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="associative.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="containers.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="iterators.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Associative </td><td width="20%" align="center"><a accesskey="h" href="../index.html">Home</a></td><td width="40%" align="right" valign="top"> Chapter 10. | |
12196 | Iterators | |
12197 | ||
12198 | </td></tr></table></div></body></html> | |
12199 | Index: libstdc++-v3/doc/html/manual/io_and_c.html | |
12200 | =================================================================== | |
9f95000d AM |
12201 | --- libstdc++-v3/doc/html/manual/io_and_c.html (.../tags/gcc_4_7_2_release) (wersja 192468) |
12202 | +++ libstdc++-v3/doc/html/manual/io_and_c.html (.../branches/gcc-4_7-branch) (wersja 192468) | |
5a87b929 AM |
12203 | @@ -1,14 +1,14 @@ |
12204 | <?xml version="1.0" encoding="UTF-8" standalone="no"?> | |
12205 | -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> | |
12206 | -<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Interacting with C</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1"/><meta name="keywords" content=" ISO C++ , library "/><meta name="keywords" content=" ISO C++ , runtime , library "/><link rel="home" href="../index.html" title="The GNU C++ Library"/><link rel="up" href="io.html" title="Chapter 13. Input and Output"/><link rel="prev" href="fstreams.html" title="File Based Streams"/><link rel="next" href="atomics.html" title="Chapter 14. Atomics"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Interacting with C</th></tr><tr><td align="left"><a accesskey="p" href="fstreams.html">Prev</a> </td><th width="60%" align="center">Chapter 13. | |
12207 | +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> | |
12208 | +<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Interacting with C</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1" /><meta name="keywords" content=" ISO C++ , library " /><meta name="keywords" content=" ISO C++ , runtime , library " /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="io.html" title="Chapter 13. Input and Output" /><link rel="prev" href="fstreams.html" title="File Based Streams" /><link rel="next" href="atomics.html" title="Chapter 14. Atomics" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Interacting with C</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="fstreams.html">Prev</a> </td><th width="60%" align="center">Chapter 13. | |
12209 | Input and Output | |
12210 | ||
12211 | -</th><td align="right"> <a accesskey="n" href="atomics.html">Next</a></td></tr></table><hr/></div><div class="section" title="Interacting with C"><div class="titlepage"><div><div><h2 class="title"><a id="std.io.c"/>Interacting with C</h2></div></div></div><div class="section" title="Using FILE* and file descriptors"><div class="titlepage"><div><div><h3 class="title"><a id="std.io.c.FILE"/>Using FILE* and file descriptors</h3></div></div></div><p> | |
12212 | +</th><td width="20%" align="right"> <a accesskey="n" href="atomics.html">Next</a></td></tr></table><hr /></div><div class="section" title="Interacting with C"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="std.io.c"></a>Interacting with C</h2></div></div></div><div class="section" title="Using FILE* and file descriptors"><div class="titlepage"><div><div><h3 class="title"><a id="std.io.c.FILE"></a>Using FILE* and file descriptors</h3></div></div></div><p> | |
12213 | See the <a class="link" href="ext_io.html" title="Chapter 28. Input and Output">extensions</a> for using | |
12214 | <span class="type">FILE</span> and <span class="type">file descriptors</span> with | |
12215 | <code class="classname">ofstream</code> and | |
12216 | <code class="classname">ifstream</code>. | |
12217 | - </p></div><div class="section" title="Performance"><div class="titlepage"><div><div><h3 class="title"><a id="std.io.c.sync"/>Performance</h3></div></div></div><p> | |
12218 | + </p></div><div class="section" title="Performance"><div class="titlepage"><div><div><h3 class="title"><a id="std.io.c.sync"></a>Performance</h3></div></div></div><p> | |
12219 | Pathetic Performance? Ditch C. | |
12220 | </p><p>It sounds like a flame on C, but it isn't. Really. Calm down. | |
12221 | I'm just saying it to get your attention. | |
12222 | @@ -51,7 +51,7 @@ | |
12223 | <code class="code">clog</code>, and their wide-character counterchapters). File stream | |
12224 | objects that you declare yourself have no such requirement and are fully | |
12225 | buffered. | |
12226 | - </p></div></div><div class="navfooter"><hr/><table width="100%" summary="Navigation footer"><tr><td align="left"><a accesskey="p" href="fstreams.html">Prev</a> </td><td align="center"><a accesskey="u" href="io.html">Up</a></td><td align="right"> <a accesskey="n" href="atomics.html">Next</a></td></tr><tr><td align="left" valign="top">File Based Streams </td><td align="center"><a accesskey="h" href="../index.html">Home</a></td><td align="right" valign="top"> Chapter 14. | |
12227 | + </p></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="fstreams.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="io.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="atomics.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">File Based Streams </td><td width="20%" align="center"><a accesskey="h" href="../index.html">Home</a></td><td width="40%" align="right" valign="top"> Chapter 14. | |
12228 | Atomics | |
12229 | ||
12230 | </td></tr></table></div></body></html> | |
12231 | Index: libstdc++-v3/doc/html/manual/documentation_hacking.html | |
12232 | =================================================================== | |
9f95000d AM |
12233 | --- libstdc++-v3/doc/html/manual/documentation_hacking.html (.../tags/gcc_4_7_2_release) (wersja 192468) |
12234 | +++ libstdc++-v3/doc/html/manual/documentation_hacking.html (.../branches/gcc-4_7-branch) (wersja 192468) | |
5a87b929 AM |
12235 | @@ -1,9 +1,9 @@ |
12236 | <?xml version="1.0" encoding="UTF-8" standalone="no"?> | |
12237 | -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> | |
12238 | -<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Writing and Generating Documentation</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1"/><meta name="keywords" content="ISO C++, documentation, style, docbook, doxygen"/><meta name="keywords" content=" ISO C++ , library "/><meta name="keywords" content=" ISO C++ , runtime , library "/><link rel="home" href="../index.html" title="The GNU C++ Library"/><link rel="up" href="appendix_porting.html" title="Appendix B. Porting and Maintenance"/><link rel="prev" href="appendix_porting.html" title="Appendix B. Porting and Maintenance"/><link rel="next" href="internals.html" title="Porting to New Hardware or Operating Systems"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Writing and Generating Documentation</th></tr><tr><td align="left"><a accesskey="p" href="appendix_porting.html">Prev</a> </td><th width="60%" align="center">Appendix B. | |
12239 | +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> | |
12240 | +<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Writing and Generating Documentation</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1" /><meta name="keywords" content="ISO C++, documentation, style, docbook, doxygen" /><meta name="keywords" content=" ISO C++ , library " /><meta name="keywords" content=" ISO C++ , runtime , library " /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="appendix_porting.html" title="Appendix B. Porting and Maintenance" /><link rel="prev" href="appendix_porting.html" title="Appendix B. Porting and Maintenance" /><link rel="next" href="internals.html" title="Porting to New Hardware or Operating Systems" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Writing and Generating Documentation</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="appendix_porting.html">Prev</a> </td><th width="60%" align="center">Appendix B. | |
12241 | Porting and Maintenance | |
12242 | ||
12243 | -</th><td align="right"> <a accesskey="n" href="internals.html">Next</a></td></tr></table><hr/></div><div class="section" title="Writing and Generating Documentation"><div class="titlepage"><div><div><h2 class="title"><a id="appendix.porting.doc"/>Writing and Generating Documentation</h2></div></div></div><div class="section" title="Introduction"><div class="titlepage"><div><div><h3 class="title"><a id="doc.intro"/>Introduction</h3></div></div></div><p> | |
12244 | +</th><td width="20%" align="right"> <a accesskey="n" href="internals.html">Next</a></td></tr></table><hr /></div><div class="section" title="Writing and Generating Documentation"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="appendix.porting.doc"></a>Writing and Generating Documentation</h2></div></div></div><div class="section" title="Introduction"><div class="titlepage"><div><div><h3 class="title"><a id="doc.intro"></a>Introduction</h3></div></div></div><p> | |
12245 | Documentation for the GNU C++ Library is created from three | |
12246 | independent sources: a manual, a FAQ, and an API reference. | |
12247 | </p><p> | |
12248 | @@ -25,9 +25,9 @@ | |
12249 | reference. Although divergent, this conforms to the GNU Project | |
12250 | recommendations as long as the output is of sufficient quality, | |
12251 | as per | |
12252 | - <a class="link" href="http://www.gnu.org/prep/standards/standards.html#Documentation"> | |
12253 | + <a class="link" href="http://www.gnu.org/prep/standards/standards.html#Documentation" target="_top"> | |
12254 | GNU Manuals</a>. | |
12255 | - </p></div><div class="section" title="Generating Documentation"><div class="titlepage"><div><div><h3 class="title"><a id="doc.generation"/>Generating Documentation</h3></div></div></div><p> | |
12256 | + </p></div><div class="section" title="Generating Documentation"><div class="titlepage"><div><div><h3 class="title"><a id="doc.generation"></a>Generating Documentation</h3></div></div></div><p> | |
12257 | Certain Makefile rules are required by the GNU Coding | |
12258 | Standards. These standard rules generate HTML, PDF, XML, or man | |
12259 | files. For each of the generative rules, there is an additional | |
12260 | @@ -117,21 +117,29 @@ | |
12261 | supported, and are always aliased to dummy rules. These | |
12262 | unsupported formats are: <span class="emphasis"><em>info</em></span>, | |
12263 | <span class="emphasis"><em>ps</em></span>, and <span class="emphasis"><em>dvi</em></span>. | |
12264 | - </p></div><div class="section" title="Doxygen"><div class="titlepage"><div><div><h3 class="title"><a id="doc.doxygen"/>Doxygen</h3></div></div></div><div class="section" title="Prerequisites"><div class="titlepage"><div><div><h4 class="title"><a id="doxygen.prereq"/>Prerequisites</h4></div></div></div><div class="table"><a id="id553885"/><p class="title"><strong>Table B.1. Doxygen Prerequisites</strong></p><div class="table-contents"><table summary="Doxygen Prerequisites" border="1"><colgroup><col style="text-align: center" class="c1"/><col style="text-align: center" class="c2"/><col style="text-align: center" class="c3"/></colgroup><thead><tr><th style="text-align: center">Tool</th><th style="text-align: center">Version</th><th style="text-align: center">Required By</th></tr></thead><tbody><tr><td style="text-align: center">coreutils</td><td style="text-align: center">8.5</td><td style="text-align: center">all</td></tr><tr><td style="text-align: center">bash</td><td style="text-align: center">4.1</td><td style="text-align: center">all</td></tr><tr><td style="text-align: center">doxygen</td><td style="text-align: center">1.7.0</td><td style="text-align: center">all</td></tr><tr><td style="text-align: center">graphviz</td><td style="text-align: center">2.26</td><td style="text-align: center">graphical hierarchies</td></tr><tr><td style="text-align: center">pdflatex</td><td style="text-align: center">2007-59</td><td style="text-align: center">pdf output</td></tr></tbody></table></div></div><br class="table-break"/><p> | |
12265 | + </p></div><div class="section" title="Doxygen"><div class="titlepage"><div><div><h3 class="title"><a id="doc.doxygen"></a>Doxygen</h3></div></div></div><div class="section" title="Prerequisites"><div class="titlepage"><div><div><h4 class="title"><a id="doxygen.prereq"></a>Prerequisites</h4></div></div></div><div class="table"><a id="id732372"></a><p class="title"><strong>Table B.1. Doxygen Prerequisites</strong></p><div class="table-contents"><table summary="Doxygen Prerequisites" border="1"><colgroup><col align="center" class="c1" /><col align="center" class="c2" /><col align="center" class="c3" /></colgroup><thead><tr><th align="center">Tool</th><th align="center">Version</th><th align="center">Required By</th></tr></thead><tbody><tr><td align="center">coreutils</td><td align="center">8.5</td><td align="center">all</td></tr><tr><td align="center">bash</td><td align="center">4.1</td><td align="center">all</td></tr><tr><td align="center">doxygen</td><td align="center">1.7.6.1</td><td align="center">all</td></tr><tr><td align="center">graphviz</td><td align="center">2.26</td><td align="center">graphical hierarchies</td></tr><tr><td align="center">pdflatex</td><td align="center">2007-59</td><td align="center">pdf output</td></tr></tbody></table></div></div><br class="table-break" /><p> | |
12266 | Prerequisite tools are Bash 2.0 or later, | |
12267 | - <a class="link" href="http://www.doxygen.org/">Doxygen</a>, and | |
12268 | - the <a class="link" href="http://www.gnu.org/software/coreutils/">GNU | |
12269 | + <a class="link" href="http://www.doxygen.org/" target="_top">Doxygen</a>, and | |
12270 | + the <a class="link" href="http://www.gnu.org/software/coreutils/" target="_top">GNU | |
12271 | coreutils</a>. (GNU versions of find, xargs, and possibly | |
12272 | sed and grep are used, just because the GNU versions make | |
12273 | things very easy.) | |
12274 | </p><p> | |
12275 | To generate the pretty pictures and hierarchy | |
12276 | graphs, the | |
12277 | - <a class="link" href="http://www.graphviz.org">Graphviz</a> package | |
12278 | + <a class="link" href="http://www.graphviz.org" target="_top">Graphviz</a> package | |
12279 | will need to be installed. For PDF | |
12280 | - output, <a class="link" href="http://www.tug.org/applications/pdftex/"> | |
12281 | + output, <a class="link" href="http://www.tug.org/applications/pdftex/" target="_top"> | |
12282 | pdflatex</a> is required. | |
12283 | - </p></div><div class="section" title="Generating the Doxygen Files"><div class="titlepage"><div><div><h4 class="title"><a id="doxygen.rules"/>Generating the Doxygen Files</h4></div></div></div><p> | |
12284 | + </p><p> | |
12285 | + Be warned the PDF file generated via doxygen is extremely | |
12286 | + large. At last count, the PDF file is over three thousand | |
12287 | + pages. Generating this document taxes the underlying TeX | |
12288 | + formatting system, and will require the expansion of TeX's memory | |
12289 | + capacity. Specifically, the <code class="literal">pool_size</code> | |
12290 | + variable in the configuration file <code class="filename">texmf.cnf</code> may | |
12291 | + need to be increased by a minimum factor of two. | |
12292 | + </p></div><div class="section" title="Generating the Doxygen Files"><div class="titlepage"><div><div><h4 class="title"><a id="doxygen.rules"></a>Generating the Doxygen Files</h4></div></div></div><p> | |
12293 | The following Makefile rules run Doxygen to generate HTML | |
12294 | docs, XML docs, XML docs as a single file, PDF docs, and the | |
12295 | man pages. These rules are not conditional! If the required | |
12296 | @@ -163,7 +171,7 @@ | |
12297 | If you wish to tweak the Doxygen settings, do so by editing | |
12298 | <code class="filename">doc/doxygen/user.cfg.in</code>. Notes to fellow | |
12299 | library hackers are written in triple-# comments. | |
12300 | - </p></div><div class="section" title="Markup"><div class="titlepage"><div><div><h4 class="title"><a id="doxygen.markup"/>Markup</h4></div></div></div><p> | |
12301 | + </p></div><div class="section" title="Markup"><div class="titlepage"><div><div><h4 class="title"><a id="doxygen.markup"></a>Markup</h4></div></div></div><p> | |
12302 | In general, libstdc++ files should be formatted according to | |
12303 | the rules found in the | |
12304 | <a class="link" href="source_code_style.html" title="Coding Style">Coding Standard</a>. Before | |
12305 | @@ -173,7 +181,7 @@ | |
12306 | Adding Doxygen markup to a file (informally called | |
12307 | <span class="quote">“<span class="quote">doxygenating</span>”</span>) is very simple. The Doxygen manual can be | |
12308 | found | |
12309 | - <a class="link" href="http://www.stack.nl/~dimitri/doxygen/download.html#latestman">here</a>. | |
12310 | + <a class="link" href="http://www.stack.nl/~dimitri/doxygen/download.html#latestman" target="_top">here</a>. | |
12311 | We try to use a very-recent version of Doxygen. | |
12312 | </p><p> | |
12313 | For classes, use | |
12314 | @@ -185,10 +193,10 @@ | |
12315 | member functions. | |
12316 | </p><p> | |
12317 | Some commentary to accompany | |
12318 | - the first list in the <a class="link" href="http://www.stack.nl/~dimitri/doxygen/docblocks.html">Special | |
12319 | + the first list in the <a class="link" href="http://www.stack.nl/~dimitri/doxygen/docblocks.html" target="_top">Special | |
12320 | Documentation Blocks</a> section of | |
12321 | the Doxygen manual: | |
12322 | - </p><div class="orderedlist"><ol class="orderedlist"><li class="listitem"><p>For longer comments, use the Javadoc style...</p></li><li class="listitem"><p> | |
12323 | + </p><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><p>For longer comments, use the Javadoc style...</p></li><li class="listitem"><p> | |
12324 | ...not the Qt style. The intermediate *'s are preferred. | |
12325 | </p></li><li class="listitem"><p> | |
12326 | Use the triple-slash style only for one-line comments (the | |
12327 | @@ -218,14 +226,14 @@ | |
12328 | Complicated math functions should use the multi-line | |
12329 | format. An example from <code class="filename">random.h</code>: | |
12330 | </p><p> | |
12331 | -</p><div class="literallayout"><p><br/> | |
12332 | -/**<br/> | |
12333 | - * @brief A model of a linear congruential random number generator.<br/> | |
12334 | - *<br/> | |
12335 | - * @f[<br/> | |
12336 | - * x_{i+1}\leftarrow(ax_{i} + c) \bmod m<br/> | |
12337 | - * @f]<br/> | |
12338 | - */<br/> | |
12339 | +</p><div class="literallayout"><p><br /> | |
12340 | +/**<br /> | |
12341 | + * @brief A model of a linear congruential random number generator.<br /> | |
12342 | + *<br /> | |
12343 | + * @f[<br /> | |
12344 | + * x_{i+1}\leftarrow(ax_{i} + c) \bmod m<br /> | |
12345 | + * @f]<br /> | |
12346 | + */<br /> | |
12347 | </p></div><p> | |
12348 | </p><p> | |
12349 | One area of note is the markup required for | |
12350 | @@ -234,10 +242,10 @@ | |
12351 | multiple directories, include part of the installed path to | |
12352 | disambiguate. For example: | |
12353 | </p><p> | |
12354 | -</p><div class="literallayout"><p><br/> | |
12355 | -/** @file debug/vector<br/> | |
12356 | - * This file is a GNU debug extension to the Standard C++ Library.<br/> | |
12357 | - */<br/> | |
12358 | +</p><div class="literallayout"><p><br /> | |
12359 | +/** @file debug/vector<br /> | |
12360 | + * This file is a GNU debug extension to the Standard C++ Library.<br /> | |
12361 | + */<br /> | |
12362 | </p></div><p> | |
12363 | </p><p> | |
12364 | The other relevant detail for header files is the use of a | |
12365 | @@ -252,18 +260,18 @@ | |
12366 | <code class="literal">headername</code> in the <code class="literal">file</code> | |
12367 | block. An example: | |
12368 | </p><p> | |
12369 | -</p><div class="literallayout"><p><br/> | |
12370 | -/** @file bits/basic_string.h<br/> | |
12371 | - * This is an internal header file, included by other library headers.<br/> | |
12372 | - * Do not attempt to use it directly. @headername{string}<br/> | |
12373 | - */<br/> | |
12374 | +</p><div class="literallayout"><p><br /> | |
12375 | +/** @file bits/basic_string.h<br /> | |
12376 | + * This is an internal header file, included by other library headers.<br /> | |
12377 | + * Do not attempt to use it directly. @headername{string}<br /> | |
12378 | + */<br /> | |
12379 | </p></div><p> | |
12380 | </p><p> | |
12381 | Be careful about using certain, special characters when | |
12382 | writing Doxygen comments. Single and double quotes, and | |
12383 | separators in filenames are two common trouble spots. When in | |
12384 | doubt, consult the following table. | |
12385 | - </p><div class="table"><a id="id554388"/><p class="title"><strong>Table B.2. HTML to Doxygen Markup Comparison</strong></p><div class="table-contents"><table summary="HTML to Doxygen Markup Comparison" border="1"><colgroup><col style="text-align: left" class="c1"/><col style="text-align: left" class="c2"/></colgroup><thead><tr><th style="text-align: left">HTML</th><th style="text-align: left">Doxygen</th></tr></thead><tbody><tr><td style="text-align: left">\</td><td style="text-align: left">\\</td></tr><tr><td style="text-align: left">"</td><td style="text-align: left">\"</td></tr><tr><td style="text-align: left">'</td><td style="text-align: left">\'</td></tr><tr><td style="text-align: left"><i></td><td style="text-align: left">@a word</td></tr><tr><td style="text-align: left"><b></td><td style="text-align: left">@b word</td></tr><tr><td style="text-align: left"><code></td><td style="text-align: left">@c word</td></tr><tr><td style="text-align: left"><em></td><td style="text-align: left">@a word</td></tr><tr><td style="text-align: left"><em></td><td style="text-align: left"><em>two words or more</em></td></tr></tbody></table></div></div><br class="table-break"/></div></div><div class="section" title="Docbook"><div class="titlepage"><div><div><h3 class="title"><a id="doc.docbook"/>Docbook</h3></div></div></div><div class="section" title="Prerequisites"><div class="titlepage"><div><div><h4 class="title"><a id="docbook.prereq"/>Prerequisites</h4></div></div></div><div class="table"><a id="id554550"/><p class="title"><strong>Table B.3. Docbook Prerequisites</strong></p><div class="table-contents"><table summary="Docbook Prerequisites" border="1"><colgroup><col style="text-align: center" class="c1"/><col style="text-align: center" class="c2"/><col style="text-align: center" class="c3"/></colgroup><thead><tr><th style="text-align: center">Tool</th><th style="text-align: center">Version</th><th style="text-align: center">Required By</th></tr></thead><tbody><tr><td style="text-align: center">docbook5-style-xsl</td><td style="text-align: center">1.76.1</td><td style="text-align: center">all</td></tr><tr><td style="text-align: center">xsltproc</td><td style="text-align: center">1.1.26</td><td style="text-align: center">all</td></tr><tr><td style="text-align: center">xmllint</td><td style="text-align: center">2.7.7</td><td style="text-align: center">validation</td></tr><tr><td style="text-align: center">dblatex</td><td style="text-align: center">0.3</td><td style="text-align: center">pdf output</td></tr><tr><td style="text-align: center">pdflatex</td><td style="text-align: center">2007-59</td><td style="text-align: center">pdf output</td></tr><tr><td style="text-align: center">docbook2X</td><td style="text-align: center">0.8.8</td><td style="text-align: center">info output</td></tr><tr><td style="text-align: center">epub3 stylesheets</td><td style="text-align: center">b3</td><td style="text-align: center">epub output</td></tr></tbody></table></div></div><br class="table-break"/><p> | |
12386 | + </p><div class="table"><a id="id732889"></a><p class="title"><strong>Table B.2. HTML to Doxygen Markup Comparison</strong></p><div class="table-contents"><table summary="HTML to Doxygen Markup Comparison" border="1"><colgroup><col align="left" class="c1" /><col align="left" class="c2" /></colgroup><thead><tr><th align="left">HTML</th><th align="left">Doxygen</th></tr></thead><tbody><tr><td align="left">\</td><td align="left">\\</td></tr><tr><td align="left">"</td><td align="left">\"</td></tr><tr><td align="left">'</td><td align="left">\'</td></tr><tr><td align="left"><i></td><td align="left">@a word</td></tr><tr><td align="left"><b></td><td align="left">@b word</td></tr><tr><td align="left"><code></td><td align="left">@c word</td></tr><tr><td align="left"><em></td><td align="left">@a word</td></tr><tr><td align="left"><em></td><td align="left"><em>two words or more</em></td></tr></tbody></table></div></div><br class="table-break" /></div></div><div class="section" title="Docbook"><div class="titlepage"><div><div><h3 class="title"><a id="doc.docbook"></a>Docbook</h3></div></div></div><div class="section" title="Prerequisites"><div class="titlepage"><div><div><h4 class="title"><a id="docbook.prereq"></a>Prerequisites</h4></div></div></div><div class="table"><a id="id733051"></a><p class="title"><strong>Table B.3. Docbook Prerequisites</strong></p><div class="table-contents"><table summary="Docbook Prerequisites" border="1"><colgroup><col align="center" class="c1" /><col align="center" class="c2" /><col align="center" class="c3" /></colgroup><thead><tr><th align="center">Tool</th><th align="center">Version</th><th align="center">Required By</th></tr></thead><tbody><tr><td align="center">docbook5-style-xsl</td><td align="center">1.76.1</td><td align="center">all</td></tr><tr><td align="center">xsltproc</td><td align="center">1.1.26</td><td align="center">all</td></tr><tr><td align="center">xmllint</td><td align="center">2.7.7</td><td align="center">validation</td></tr><tr><td align="center">dblatex</td><td align="center">0.3</td><td align="center">pdf output</td></tr><tr><td align="center">pdflatex</td><td align="center">2007-59</td><td align="center">pdf output</td></tr><tr><td align="center">docbook2X</td><td align="center">0.8.8</td><td align="center">info output</td></tr><tr><td align="center">epub3 stylesheets</td><td align="center">b3</td><td align="center">epub output</td></tr></tbody></table></div></div><br class="table-break" /><p> | |
12387 | Editing the DocBook sources requires an XML editor. Many | |
12388 | exist: some notable options | |
12389 | include <span class="command"><strong>emacs</strong></span>, <span class="application">Kate</span>, | |
12390 | @@ -298,19 +306,19 @@ | |
12391 | by a vendor package like <code class="filename">libxml2</code> and <code class="filename">docbook5-schemas-5.0-4</code> | |
12392 | </p><p> | |
12393 | For PDF output, something that transforms valid Docbook XML to PDF is | |
12394 | - required. Possible solutions include <a class="link" href="http://dblatex.sourceforge.net">dblatex</a>, | |
12395 | + required. Possible solutions include <a class="link" href="http://dblatex.sourceforge.net" target="_top">dblatex</a>, | |
12396 | <span class="command"><strong>xmlto</strong></span>, or <span class="command"><strong>prince</strong></span>. Of | |
12397 | these, <span class="command"><strong>dblatex</strong></span> is the default. Other | |
12398 | - options are listed on the DocBook web <a class="link" href="http://wiki.docbook.org/topic/DocBookPublishingTools">pages</a>. Please | |
12399 | + options are listed on the DocBook web <a class="link" href="http://wiki.docbook.org/topic/DocBookPublishingTools" target="_top">pages</a>. Please | |
12400 | consult the <code class="email"><<a class="email" href="mailto:libstdc++@gcc.gnu.org">libstdc++@gcc.gnu.org</a>></code> list when | |
12401 | preparing printed manuals for current best practice and | |
12402 | suggestions. | |
12403 | </p><p> | |
12404 | For Texinfo output, something that transforms valid Docbook | |
12405 | - XML to Texinfo is required. The default choice is <a class="link" href="http://docbook2x.sourceforge.net/">docbook2X</a>. | |
12406 | + XML to Texinfo is required. The default choice is <a class="link" href="http://docbook2x.sourceforge.net/" target="_top">docbook2X</a>. | |
12407 | </p><p> | |
12408 | - For epub output, the stylesheets for EPUB3 are required. These stylesheets are still in development. To validate the created file, epubcheck is necessary. | |
12409 | - </p></div><div class="section" title="Generating the DocBook Files"><div class="titlepage"><div><div><h4 class="title"><a id="docbook.rules"/>Generating the DocBook Files</h4></div></div></div><p> | |
12410 | + For epub output, the <a class="link" href="http://sourceforge.net/projects/docbook/files/epub3/" target="_top">stylesheets</a> for EPUB3 are required. These stylesheets are still in development. To validate the created file, <a class="link" href="https://code.google.com/p/epubcheck/" target="_top">epubcheck</a> is necessary. | |
12411 | + </p></div><div class="section" title="Generating the DocBook Files"><div class="titlepage"><div><div><h4 class="title"><a id="docbook.rules"></a>Generating the DocBook Files</h4></div></div></div><p> | |
12412 | The following Makefile rules generate (in order): an HTML | |
12413 | version of all the DocBook documentation, a PDF version of the | |
12414 | same, and a single XML document. These rules are not | |
12415 | @@ -335,7 +343,7 @@ | |
12416 | <strong class="userinput"><code> | |
12417 | make <code class="literal">XSL_STYLE_DIR="/usr/share/xml/docbook/stylesheet/nwalsh"</code> doc-html-docbook | |
12418 | </code></strong> | |
12419 | - </pre></div><div class="section" title="Editing and Validation"><div class="titlepage"><div><div><h4 class="title"><a id="docbook.validation"/>Editing and Validation</h4></div></div></div><p> | |
12420 | + </pre></div><div class="section" title="Editing and Validation"><div class="titlepage"><div><div><h4 class="title"><a id="docbook.validation"></a>Editing and Validation</h4></div></div></div><p> | |
12421 | After editing the xml sources, please make sure that the XML | |
12422 | documentation and markup is still valid. This can be | |
12423 | done easily, with the following validation rule: | |
12424 | @@ -355,90 +363,90 @@ | |
12425 | validation on the entire manual fails. | |
12426 | </p><p> | |
12427 | All Docbook xml sources should always validate. No excuses! | |
12428 | - </p></div><div class="section" title="File Organization and Basics"><div class="titlepage"><div><div><h4 class="title"><a id="docbook.examples"/>File Organization and Basics</h4></div></div></div><div class="literallayout"><p><br/> | |
12429 | - <span class="emphasis"><em>Which files are important</em></span><br/> | |
12430 | -<br/> | |
12431 | - All Docbook files are in the directory<br/> | |
12432 | - libstdc++-v3/doc/xml<br/> | |
12433 | -<br/> | |
12434 | - Inside this directory, the files of importance:<br/> | |
12435 | - spine.xml - index to documentation set<br/> | |
12436 | - manual/spine.xml - index to manual<br/> | |
12437 | - manual/*.xml - individual chapters and sections of the manual<br/> | |
12438 | - faq.xml - index to FAQ<br/> | |
12439 | - api.xml - index to source level / API<br/> | |
12440 | -<br/> | |
12441 | - All *.txml files are template xml files, i.e., otherwise empty files with<br/> | |
12442 | - the correct structure, suitable for filling in with new information.<br/> | |
12443 | -<br/> | |
12444 | - <span class="emphasis"><em>Canonical Writing Style</em></span><br/> | |
12445 | -<br/> | |
12446 | - class template<br/> | |
12447 | - function template<br/> | |
12448 | - member function template<br/> | |
12449 | - (via C++ Templates, Vandevoorde)<br/> | |
12450 | -<br/> | |
12451 | - class in namespace std: allocator, not std::allocator<br/> | |
12452 | -<br/> | |
12453 | - header file: iostream, not <iostream><br/> | |
12454 | -<br/> | |
12455 | -<br/> | |
12456 | - <span class="emphasis"><em>General structure</em></span><br/> | |
12457 | -<br/> | |
12458 | - <set><br/> | |
12459 | - <book><br/> | |
12460 | - </book><br/> | |
12461 | -<br/> | |
12462 | - <book><br/> | |
12463 | - <chapter><br/> | |
12464 | - </chapter><br/> | |
12465 | - </book><br/> | |
12466 | -<br/> | |
12467 | - <book><br/> | |
12468 | - <part><br/> | |
12469 | - <chapter><br/> | |
12470 | - <section><br/> | |
12471 | - </section><br/> | |
12472 | -<br/> | |
12473 | - <sect1><br/> | |
12474 | - </sect1><br/> | |
12475 | -<br/> | |
12476 | - <sect1><br/> | |
12477 | - <sect2><br/> | |
12478 | - </sect2><br/> | |
12479 | - </sect1><br/> | |
12480 | - </chapter><br/> | |
12481 | -<br/> | |
12482 | - <chapter><br/> | |
12483 | - </chapter><br/> | |
12484 | - </part><br/> | |
12485 | - </book><br/> | |
12486 | -<br/> | |
12487 | - </set><br/> | |
12488 | - </p></div></div><div class="section" title="Markup By Example"><div class="titlepage"><div><div><h4 class="title"><a id="docbook.markup"/>Markup By Example</h4></div></div></div><p> | |
12489 | + </p></div><div class="section" title="File Organization and Basics"><div class="titlepage"><div><div><h4 class="title"><a id="docbook.examples"></a>File Organization and Basics</h4></div></div></div><div class="literallayout"><p><br /> | |
12490 | + <span class="emphasis"><em>Which files are important</em></span><br /> | |
12491 | +<br /> | |
12492 | + All Docbook files are in the directory<br /> | |
12493 | + libstdc++-v3/doc/xml<br /> | |
12494 | +<br /> | |
12495 | + Inside this directory, the files of importance:<br /> | |
12496 | + spine.xml - index to documentation set<br /> | |
12497 | + manual/spine.xml - index to manual<br /> | |
12498 | + manual/*.xml - individual chapters and sections of the manual<br /> | |
12499 | + faq.xml - index to FAQ<br /> | |
12500 | + api.xml - index to source level / API<br /> | |
12501 | +<br /> | |
12502 | + All *.txml files are template xml files, i.e., otherwise empty files with<br /> | |
12503 | + the correct structure, suitable for filling in with new information.<br /> | |
12504 | +<br /> | |
12505 | + <span class="emphasis"><em>Canonical Writing Style</em></span><br /> | |
12506 | +<br /> | |
12507 | + class template<br /> | |
12508 | + function template<br /> | |
12509 | + member function template<br /> | |
12510 | + (via C++ Templates, Vandevoorde)<br /> | |
12511 | +<br /> | |
12512 | + class in namespace std: allocator, not std::allocator<br /> | |
12513 | +<br /> | |
12514 | + header file: iostream, not <iostream><br /> | |
12515 | +<br /> | |
12516 | +<br /> | |
12517 | + <span class="emphasis"><em>General structure</em></span><br /> | |
12518 | +<br /> | |
12519 | + <set><br /> | |
12520 | + <book><br /> | |
12521 | + </book><br /> | |
12522 | +<br /> | |
12523 | + <book><br /> | |
12524 | + <chapter><br /> | |
12525 | + </chapter><br /> | |
12526 | + </book><br /> | |
12527 | +<br /> | |
12528 | + <book><br /> | |
12529 | + <part><br /> | |
12530 | + <chapter><br /> | |
12531 | + <section><br /> | |
12532 | + </section><br /> | |
12533 | +<br /> | |
12534 | + <sect1><br /> | |
12535 | + </sect1><br /> | |
12536 | +<br /> | |
12537 | + <sect1><br /> | |
12538 | + <sect2><br /> | |
12539 | + </sect2><br /> | |
12540 | + </sect1><br /> | |
12541 | + </chapter><br /> | |
12542 | +<br /> | |
12543 | + <chapter><br /> | |
12544 | + </chapter><br /> | |
12545 | + </part><br /> | |
12546 | + </book><br /> | |
12547 | +<br /> | |
12548 | + </set><br /> | |
12549 | + </p></div></div><div class="section" title="Markup By Example"><div class="titlepage"><div><div><h4 class="title"><a id="docbook.markup"></a>Markup By Example</h4></div></div></div><p> | |
12550 | Complete details on Docbook markup can be found in the DocBook | |
12551 | Element Reference, | |
12552 | - <a class="link" href="http://www.docbook.org/tdg/en/html/part2.html">online</a>. | |
12553 | + <a class="link" href="http://www.docbook.org/tdg/en/html/part2.html" target="_top">online</a>. | |
12554 | An incomplete reference for HTML to Docbook conversion is | |
12555 | detailed in the table below. | |
12556 | - </p><div class="table"><a id="id555059"/><p class="title"><strong>Table B.4. HTML to Docbook XML Markup Comparison</strong></p><div class="table-contents"><table summary="HTML to Docbook XML Markup Comparison" border="1"><colgroup><col style="text-align: left" class="c1"/><col style="text-align: left" class="c2"/></colgroup><thead><tr><th style="text-align: left">HTML</th><th style="text-align: left">Docbook</th></tr></thead><tbody><tr><td style="text-align: left"><p></td><td style="text-align: left"><para></td></tr><tr><td style="text-align: left"><pre></td><td style="text-align: left"><computeroutput>, <programlisting>, | |
12557 | - <literallayout></td></tr><tr><td style="text-align: left"><ul></td><td style="text-align: left"><itemizedlist></td></tr><tr><td style="text-align: left"><ol></td><td style="text-align: left"><orderedlist></td></tr><tr><td style="text-align: left"><il></td><td style="text-align: left"><listitem></td></tr><tr><td style="text-align: left"><dl></td><td style="text-align: left"><variablelist></td></tr><tr><td style="text-align: left"><dt></td><td style="text-align: left"><term></td></tr><tr><td style="text-align: left"><dd></td><td style="text-align: left"><listitem></td></tr><tr><td style="text-align: left"><a href=""></td><td style="text-align: left"><ulink url=""></td></tr><tr><td style="text-align: left"><code></td><td style="text-align: left"><literal>, <programlisting></td></tr><tr><td style="text-align: left"><strong></td><td style="text-align: left"><emphasis></td></tr><tr><td style="text-align: left"><em></td><td style="text-align: left"><emphasis></td></tr><tr><td style="text-align: left">"</td><td style="text-align: left"><quote></td></tr></tbody></table></div></div><br class="table-break"/><p> | |
12558 | + </p><div class="table"><a id="id733562"></a><p class="title"><strong>Table B.4. HTML to Docbook XML Markup Comparison</strong></p><div class="table-contents"><table summary="HTML to Docbook XML Markup Comparison" border="1"><colgroup><col align="left" class="c1" /><col align="left" class="c2" /></colgroup><thead><tr><th align="left">HTML</th><th align="left">Docbook</th></tr></thead><tbody><tr><td align="left"><p></td><td align="left"><para></td></tr><tr><td align="left"><pre></td><td align="left"><computeroutput>, <programlisting>, | |
12559 | + <literallayout></td></tr><tr><td align="left"><ul></td><td align="left"><itemizedlist></td></tr><tr><td align="left"><ol></td><td align="left"><orderedlist></td></tr><tr><td align="left"><il></td><td align="left"><listitem></td></tr><tr><td align="left"><dl></td><td align="left"><variablelist></td></tr><tr><td align="left"><dt></td><td align="left"><term></td></tr><tr><td align="left"><dd></td><td align="left"><listitem></td></tr><tr><td align="left"><a href=""></td><td align="left"><ulink url=""></td></tr><tr><td align="left"><code></td><td align="left"><literal>, <programlisting></td></tr><tr><td align="left"><strong></td><td align="left"><emphasis></td></tr><tr><td align="left"><em></td><td align="left"><emphasis></td></tr><tr><td align="left">"</td><td align="left"><quote></td></tr></tbody></table></div></div><br class="table-break" /><p> | |
12560 | And examples of detailed markup for which there are no real HTML | |
12561 | equivalents are listed in the table below. | |
12562 | -</p><div class="table"><a id="id555261"/><p class="title"><strong>Table B.5. Docbook XML Element Use</strong></p><div class="table-contents"><table summary="Docbook XML Element Use" border="1"><colgroup><col style="text-align: left" class="c1"/><col style="text-align: left" class="c2"/></colgroup><thead><tr><th style="text-align: left">Element</th><th style="text-align: left">Use</th></tr></thead><tbody><tr><td style="text-align: left"><structname></td><td style="text-align: left"><structname>char_traits</structname></td></tr><tr><td style="text-align: left"><classname></td><td style="text-align: left"><classname>string</classname></td></tr><tr><td style="text-align: left"><function></td><td style="text-align: left"> | |
12563 | +</p><div class="table"><a id="id733764"></a><p class="title"><strong>Table B.5. Docbook XML Element Use</strong></p><div class="table-contents"><table summary="Docbook XML Element Use" border="1"><colgroup><col align="left" class="c1" /><col align="left" class="c2" /></colgroup><thead><tr><th align="left">Element</th><th align="left">Use</th></tr></thead><tbody><tr><td align="left"><structname></td><td align="left"><structname>char_traits</structname></td></tr><tr><td align="left"><classname></td><td align="left"><classname>string</classname></td></tr><tr><td align="left"><function></td><td align="left"> | |
12564 | <p><function>clear()</function></p> | |
12565 | <p><function>fs.clear()</function></p> | |
12566 | - </td></tr><tr><td style="text-align: left"><type></td><td style="text-align: left"><type>long long</type></td></tr><tr><td style="text-align: left"><varname></td><td style="text-align: left"><varname>fs</varname></td></tr><tr><td style="text-align: left"><literal></td><td style="text-align: left"> | |
12567 | + </td></tr><tr><td align="left"><type></td><td align="left"><type>long long</type></td></tr><tr><td align="left"><varname></td><td align="left"><varname>fs</varname></td></tr><tr><td align="left"><literal></td><td align="left"> | |
12568 | <p><literal>-Weffc++</literal></p> | |
12569 | <p><literal>rel_ops</literal></p> | |
12570 | - </td></tr><tr><td style="text-align: left"><constant></td><td style="text-align: left"> | |
12571 | + </td></tr><tr><td align="left"><constant></td><td align="left"> | |
12572 | <p><constant>_GNU_SOURCE</constant></p> | |
12573 | <p><constant>3.0</constant></p> | |
12574 | - </td></tr><tr><td style="text-align: left"><command></td><td style="text-align: left"><command>g++</command></td></tr><tr><td style="text-align: left"><errortext></td><td style="text-align: left"><errortext>In instantiation of</errortext></td></tr><tr><td style="text-align: left"><filename></td><td style="text-align: left"> | |
12575 | + </td></tr><tr><td align="left"><command></td><td align="left"><command>g++</command></td></tr><tr><td align="left"><errortext></td><td align="left"><errortext>In instantiation of</errortext></td></tr><tr><td align="left"><filename></td><td align="left"> | |
12576 | <p><filename class="headerfile">ctype.h</filename></p> | |
12577 | <p><filename class="directory">/home/gcc/build</filename></p> | |
12578 | <p><filename class="libraryfile">libstdc++.so</filename></p> | |
12579 | - </td></tr></tbody></table></div></div><br class="table-break"/></div></div></div><div class="navfooter"><hr/><table width="100%" summary="Navigation footer"><tr><td align="left"><a accesskey="p" href="appendix_porting.html">Prev</a> </td><td align="center"><a accesskey="u" href="appendix_porting.html">Up</a></td><td align="right"> <a accesskey="n" href="internals.html">Next</a></td></tr><tr><td align="left" valign="top">Appendix B. | |
12580 | + </td></tr></tbody></table></div></div><br class="table-break" /></div></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="appendix_porting.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="appendix_porting.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="internals.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Appendix B. | |
12581 | Porting and Maintenance | |
12582 | ||
12583 | - </td><td align="center"><a accesskey="h" href="../index.html">Home</a></td><td align="right" valign="top"> Porting to New Hardware or Operating Systems</td></tr></table></div></body></html> | |
12584 | + </td><td width="20%" align="center"><a accesskey="h" href="../index.html">Home</a></td><td width="40%" align="right" valign="top"> Porting to New Hardware or Operating Systems</td></tr></table></div></body></html> | |
12585 | Index: libstdc++-v3/doc/html/manual/extensions.html | |
12586 | =================================================================== | |
9f95000d AM |
12587 | --- libstdc++-v3/doc/html/manual/extensions.html (.../tags/gcc_4_7_2_release) (wersja 192468) |
12588 | +++ libstdc++-v3/doc/html/manual/extensions.html (.../branches/gcc-4_7-branch) (wersja 192468) | |
5a87b929 AM |
12589 | @@ -1,12 +1,12 @@ |
12590 | <?xml version="1.0" encoding="UTF-8" standalone="no"?> | |
12591 | -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> | |
12592 | -<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Part III. Extensions</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1"/><meta name="keywords" content=" ISO C++ , library "/><meta name="keywords" content=" ISO C++ , runtime , library "/><link rel="home" href="../index.html" title="The GNU C++ Library"/><link rel="up" href="index.html" title="The GNU C++ Library Manual"/><link rel="prev" href="io_and_c.html" title="Interacting with C"/><link rel="next" href="bk01pt03pr01.html" title=""/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Part III. | |
12593 | +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> | |
12594 | +<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Part III. Extensions</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1" /><meta name="keywords" content=" ISO C++ , library " /><meta name="keywords" content=" ISO C++ , runtime , library " /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="index.html" title="The GNU C++ Library Manual" /><link rel="prev" href="io_and_c.html" title="Interacting with C" /><link rel="next" href="bk01pt03pr01.html" title="" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Part III. | |
12595 | Extensions | |
12596 | ||
12597 | -</th></tr><tr><td align="left"><a accesskey="p" href="io_and_c.html">Prev</a> </td><th width="60%" align="center">The GNU C++ Library Manual</th><td align="right"> <a accesskey="n" href="bk01pt03pr01.html">Next</a></td></tr></table><hr/></div><div class="part" title="Part III. Extensions"><div class="titlepage"><div><div><h1 class="title"><a id="manual.ext"/>Part III. | |
12598 | +</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="io_and_c.html">Prev</a> </td><th width="60%" align="center">The GNU C++ Library Manual</th><td width="20%" align="right"> <a accesskey="n" href="bk01pt03pr01.html">Next</a></td></tr></table><hr /></div><div class="part" title="Part III. Extensions"><div class="titlepage"><div><div><h1 class="title"><a id="manual.ext"></a>Part III. | |
12599 | Extensions | |
12600 | - <a id="id506330" class="indexterm"/> | |
12601 | -</h1></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl><dt><span class="preface"><a href="bk01pt03pr01.html"/></span></dt><dt><span class="chapter"><a href="ext_compile_checks.html">16. Compile Time Checks</a></span></dt><dt><span class="chapter"><a href="debug_mode.html">17. Debug Mode</a></span></dt><dd><dl><dt><span class="section"><a href="debug_mode.html#manual.ext.debug_mode.intro">Intro</a></span></dt><dt><span class="section"><a href="bk01pt03ch17s02.html">Semantics</a></span></dt><dt><span class="section"><a href="bk01pt03ch17s03.html">Using</a></span></dt><dd><dl><dt><span class="section"><a href="bk01pt03ch17s03.html#debug_mode.using.mode">Using the Debug Mode</a></span></dt><dt><span class="section"><a href="bk01pt03ch17s03.html#debug_mode.using.specific">Using a Specific Debug Container</a></span></dt></dl></dd><dt><span class="section"><a href="bk01pt03ch17s04.html">Design</a></span></dt><dd><dl><dt><span class="section"><a href="bk01pt03ch17s04.html#debug_mode.design.goals">Goals</a></span></dt><dt><span class="section"><a href="bk01pt03ch17s04.html#debug_mode.design.methods">Methods</a></span></dt><dd><dl><dt><span class="section"><a href="bk01pt03ch17s04.html#debug_mode.design.methods.wrappers">The Wrapper Model</a></span></dt><dd><dl><dt><span class="section"><a href="bk01pt03ch17s04.html#debug_mode.design.methods.safe_iter">Safe Iterators</a></span></dt><dt><span class="section"><a href="bk01pt03ch17s04.html#debug_mode.design.methods.safe_seq">Safe Sequences (Containers)</a></span></dt></dl></dd><dt><span class="section"><a href="bk01pt03ch17s04.html#debug_mode.design.methods.precond">Precondition Checking</a></span></dt><dt><span class="section"><a href="bk01pt03ch17s04.html#debug_mode.design.methods.coexistence">Release- and debug-mode coexistence</a></span></dt><dd><dl><dt><span class="section"><a href="bk01pt03ch17s04.html#methods.coexistence.compile">Compile-time coexistence of release- and debug-mode components</a></span></dt><dt><span class="section"><a href="bk01pt03ch17s04.html#methods.coexistence.link">Link- and run-time coexistence of release- and | |
12602 | + <a id="id684816" class="indexterm"></a> | |
12603 | +</h1></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl><dt><span class="preface"><a href="bk01pt03pr01.html"></a></span></dt><dt><span class="chapter"><a href="ext_compile_checks.html">16. Compile Time Checks</a></span></dt><dt><span class="chapter"><a href="debug_mode.html">17. Debug Mode</a></span></dt><dd><dl><dt><span class="section"><a href="debug_mode.html#manual.ext.debug_mode.intro">Intro</a></span></dt><dt><span class="section"><a href="bk01pt03ch17s02.html">Semantics</a></span></dt><dt><span class="section"><a href="bk01pt03ch17s03.html">Using</a></span></dt><dd><dl><dt><span class="section"><a href="bk01pt03ch17s03.html#debug_mode.using.mode">Using the Debug Mode</a></span></dt><dt><span class="section"><a href="bk01pt03ch17s03.html#debug_mode.using.specific">Using a Specific Debug Container</a></span></dt></dl></dd><dt><span class="section"><a href="bk01pt03ch17s04.html">Design</a></span></dt><dd><dl><dt><span class="section"><a href="bk01pt03ch17s04.html#debug_mode.design.goals">Goals</a></span></dt><dt><span class="section"><a href="bk01pt03ch17s04.html#debug_mode.design.methods">Methods</a></span></dt><dd><dl><dt><span class="section"><a href="bk01pt03ch17s04.html#debug_mode.design.methods.wrappers">The Wrapper Model</a></span></dt><dd><dl><dt><span class="section"><a href="bk01pt03ch17s04.html#debug_mode.design.methods.safe_iter">Safe Iterators</a></span></dt><dt><span class="section"><a href="bk01pt03ch17s04.html#debug_mode.design.methods.safe_seq">Safe Sequences (Containers)</a></span></dt></dl></dd><dt><span class="section"><a href="bk01pt03ch17s04.html#debug_mode.design.methods.precond">Precondition Checking</a></span></dt><dt><span class="section"><a href="bk01pt03ch17s04.html#debug_mode.design.methods.coexistence">Release- and debug-mode coexistence</a></span></dt><dd><dl><dt><span class="section"><a href="bk01pt03ch17s04.html#methods.coexistence.compile">Compile-time coexistence of release- and debug-mode components</a></span></dt><dt><span class="section"><a href="bk01pt03ch17s04.html#methods.coexistence.link">Link- and run-time coexistence of release- and | |
12604 | debug-mode components</a></span></dt><dt><span class="section"><a href="bk01pt03ch17s04.html#methods.coexistence.alt">Alternatives for Coexistence</a></span></dt></dl></dd></dl></dd><dt><span class="section"><a href="bk01pt03ch17s04.html#debug_mode.design.other">Other Implementations</a></span></dt></dl></dd></dl></dd><dt><span class="chapter"><a href="parallel_mode.html">18. Parallel Mode</a></span></dt><dd><dl><dt><span class="section"><a href="parallel_mode.html#manual.ext.parallel_mode.intro">Intro</a></span></dt><dt><span class="section"><a href="bk01pt03ch18s02.html">Semantics</a></span></dt><dt><span class="section"><a href="bk01pt03ch18s03.html">Using</a></span></dt><dd><dl><dt><span class="section"><a href="bk01pt03ch18s03.html#parallel_mode.using.prereq_flags">Prerequisite Compiler Flags</a></span></dt><dt><span class="section"><a href="bk01pt03ch18s03.html#parallel_mode.using.parallel_mode">Using Parallel Mode</a></span></dt><dt><span class="section"><a href="bk01pt03ch18s03.html#parallel_mode.using.specific">Using Specific Parallel Components</a></span></dt></dl></dd><dt><span class="section"><a href="bk01pt03ch18s04.html">Design</a></span></dt><dd><dl><dt><span class="section"><a href="bk01pt03ch18s04.html#parallel_mode.design.intro">Interface Basics</a></span></dt><dt><span class="section"><a href="bk01pt03ch18s04.html#parallel_mode.design.tuning">Configuration and Tuning</a></span></dt><dd><dl><dt><span class="section"><a href="bk01pt03ch18s04.html#parallel_mode.design.tuning.omp">Setting up the OpenMP Environment</a></span></dt><dt><span class="section"><a href="bk01pt03ch18s04.html#parallel_mode.design.tuning.compile">Compile Time Switches</a></span></dt><dt><span class="section"><a href="bk01pt03ch18s04.html#parallel_mode.design.tuning.settings">Run Time Settings and Defaults</a></span></dt></dl></dd><dt><span class="section"><a href="bk01pt03ch18s04.html#parallel_mode.design.impl">Implementation Namespaces</a></span></dt></dl></dd><dt><span class="section"><a href="bk01pt03ch18s05.html">Testing</a></span></dt><dt><span class="bibliography"><a href="parallel_mode.html#parallel_mode.biblio">Bibliography</a></span></dt></dl></dd><dt><span class="chapter"><a href="profile_mode.html">19. Profile Mode</a></span></dt><dd><dl><dt><span class="section"><a href="profile_mode.html#manual.ext.profile_mode.intro">Intro</a></span></dt><dd><dl><dt><span class="section"><a href="profile_mode.html#manual.ext.profile_mode.using">Using the Profile Mode</a></span></dt><dt><span class="section"><a href="profile_mode.html#manual.ext.profile_mode.tuning">Tuning the Profile Mode</a></span></dt></dl></dd><dt><span class="section"><a href="bk01pt03ch19s02.html">Design</a></span></dt><dd><dl><dt><span class="section"><a href="bk01pt03ch19s02.html#manual.ext.profile_mode.design.wrapper">Wrapper Model</a></span></dt><dt><span class="section"><a href="bk01pt03ch19s02.html#manual.ext.profile_mode.design.instrumentation">Instrumentation</a></span></dt><dt><span class="section"><a href="bk01pt03ch19s02.html#manual.ext.profile_mode.design.rtlib">Run Time Behavior</a></span></dt><dt><span class="section"><a href="bk01pt03ch19s02.html#manual.ext.profile_mode.design.analysis">Analysis and Diagnostics</a></span></dt><dt><span class="section"><a href="bk01pt03ch19s02.html#manual.ext.profile_mode.design.cost-model">Cost Model</a></span></dt><dt><span class="section"><a href="bk01pt03ch19s02.html#manual.ext.profile_mode.design.reports">Reports</a></span></dt><dt><span class="section"><a href="bk01pt03ch19s02.html#manual.ext.profile_mode.design.testing">Testing</a></span></dt></dl></dd><dt><span class="section"><a href="bk01pt03ch19s03.html">Extensions for Custom Containers</a></span></dt><dt><span class="section"><a href="bk01pt03ch19s04.html">Empirical Cost Model</a></span></dt><dt><span class="section"><a href="bk01pt03ch19s05.html">Implementation Issues</a></span></dt><dd><dl><dt><span class="section"><a href="bk01pt03ch19s05.html#manual.ext.profile_mode.implementation.stack">Stack Traces</a></span></dt><dt><span class="section"><a href="bk01pt03ch19s05.html#manual.ext.profile_mode.implementation.symbols">Symbolization of Instruction Addresses</a></span></dt><dt><span class="section"><a href="bk01pt03ch19s05.html#manual.ext.profile_mode.implementation.concurrency">Concurrency</a></span></dt><dt><span class="section"><a href="bk01pt03ch19s05.html#manual.ext.profile_mode.implementation.stdlib-in-proflib">Using the Standard Library in the Instrumentation Implementation</a></span></dt><dt><span class="section"><a href="bk01pt03ch19s05.html#manual.ext.profile_mode.implementation.malloc-hooks">Malloc Hooks</a></span></dt><dt><span class="section"><a href="bk01pt03ch19s05.html#manual.ext.profile_mode.implementation.construction-destruction">Construction and Destruction of Global Objects</a></span></dt></dl></dd><dt><span class="section"><a href="bk01pt03ch19s06.html">Developer Information</a></span></dt><dd><dl><dt><span class="section"><a href="bk01pt03ch19s06.html#manual.ext.profile_mode.developer.bigpic">Big Picture</a></span></dt><dt><span class="section"><a href="bk01pt03ch19s06.html#manual.ext.profile_mode.developer.howto">How To Add A Diagnostic</a></span></dt></dl></dd><dt><span class="section"><a href="bk01pt03ch19s07.html">Diagnostics</a></span></dt><dd><dl><dt><span class="section"><a href="bk01pt03ch19s07.html#manual.ext.profile_mode.analysis.template">Diagnostic Template</a></span></dt><dt><span class="section"><a href="bk01pt03ch19s07.html#manual.ext.profile_mode.analysis.containers">Containers</a></span></dt><dd><dl><dt><span class="section"><a href="bk01pt03ch19s07.html#manual.ext.profile_mode.analysis.hashtable_too_small">Hashtable Too Small</a></span></dt><dt><span class="section"><a href="bk01pt03ch19s07.html#manual.ext.profile_mode.analysis.hashtable_too_large">Hashtable Too Large</a></span></dt><dt><span class="section"><a href="bk01pt03ch19s07.html#manual.ext.profile_mode.analysis.inefficient_hash">Inefficient Hash</a></span></dt><dt><span class="section"><a href="bk01pt03ch19s07.html#manual.ext.profile_mode.analysis.vector_too_small">Vector Too Small</a></span></dt><dt><span class="section"><a href="bk01pt03ch19s07.html#manual.ext.profile_mode.analysis.vector_too_large">Vector Too Large</a></span></dt><dt><span class="section"><a href="bk01pt03ch19s07.html#manual.ext.profile_mode.analysis.vector_to_hashtable">Vector to Hashtable</a></span></dt><dt><span class="section"><a href="bk01pt03ch19s07.html#manual.ext.profile_mode.analysis.hashtable_to_vector">Hashtable to Vector</a></span></dt><dt><span class="section"><a href="bk01pt03ch19s07.html#manual.ext.profile_mode.analysis.vector_to_list">Vector to List</a></span></dt><dt><span class="section"><a href="bk01pt03ch19s07.html#manual.ext.profile_mode.analysis.list_to_vector">List to Vector</a></span></dt><dt><span class="section"><a href="bk01pt03ch19s07.html#manual.ext.profile_mode.analysis.list_to_slist">List to Forward List (Slist)</a></span></dt><dt><span class="section"><a href="bk01pt03ch19s07.html#manual.ext.profile_mode.analysis.assoc_ord_to_unord">Ordered to Unordered Associative Container</a></span></dt></dl></dd><dt><span class="section"><a href="bk01pt03ch19s07.html#manual.ext.profile_mode.analysis.algorithms">Algorithms</a></span></dt><dd><dl><dt><span class="section"><a href="bk01pt03ch19s07.html#manual.ext.profile_mode.analysis.algorithms.sort">Sort Algorithm Performance</a></span></dt></dl></dd><dt><span class="section"><a href="bk01pt03ch19s07.html#manual.ext.profile_mode.analysis.locality">Data Locality</a></span></dt><dd><dl><dt><span class="section"><a href="bk01pt03ch19s07.html#manual.ext.profile_mode.analysis.locality.sw_prefetch">Need Software Prefetch</a></span></dt><dt><span class="section"><a href="bk01pt03ch19s07.html#manual.ext.profile_mode.analysis.locality.linked">Linked Structure Locality</a></span></dt></dl></dd><dt><span class="section"><a href="bk01pt03ch19s07.html#manual.ext.profile_mode.analysis.mthread">Multithreaded Data Access</a></span></dt><dd><dl><dt><span class="section"><a href="bk01pt03ch19s07.html#manual.ext.profile_mode.analysis.mthread.ddtest">Data Dependence Violations at Container Level</a></span></dt><dt><span class="section"><a href="bk01pt03ch19s07.html#manual.ext.profile_mode.analysis.mthread.false_share">False Sharing</a></span></dt></dl></dd><dt><span class="section"><a href="bk01pt03ch19s07.html#manual.ext.profile_mode.analysis.statistics">Statistics</a></span></dt></dl></dd><dt><span class="bibliography"><a href="profile_mode.html#profile_mode.biblio">Bibliography</a></span></dt></dl></dd><dt><span class="chapter"><a href="mt_allocator.html">20. The mt_allocator</a></span></dt><dd><dl><dt><span class="section"><a href="mt_allocator.html#allocator.mt.intro">Intro</a></span></dt><dt><span class="section"><a href="bk01pt03ch20s02.html">Design Issues</a></span></dt><dd><dl><dt><span class="section"><a href="bk01pt03ch20s02.html#allocator.mt.overview">Overview</a></span></dt></dl></dd><dt><span class="section"><a href="bk01pt03ch20s03.html">Implementation</a></span></dt><dd><dl><dt><span class="section"><a href="bk01pt03ch20s03.html#allocator.mt.tune">Tunable Parameters</a></span></dt><dt><span class="section"><a href="bk01pt03ch20s03.html#allocator.mt.init">Initialization</a></span></dt><dt><span class="section"><a href="bk01pt03ch20s03.html#allocator.mt.deallocation">Deallocation Notes</a></span></dt></dl></dd><dt><span class="section"><a href="bk01pt03ch20s04.html">Single Thread Example</a></span></dt><dt><span class="section"><a href="bk01pt03ch20s05.html">Multiple Thread Example</a></span></dt></dl></dd><dt><span class="chapter"><a href="bitmap_allocator.html">21. The bitmap_allocator</a></span></dt><dd><dl><dt><span class="section"><a href="bitmap_allocator.html#allocator.bitmap.design">Design</a></span></dt><dt><span class="section"><a href="bk01pt03ch21s02.html">Implementation</a></span></dt><dd><dl><dt><span class="section"><a href="bk01pt03ch21s02.html#bitmap.impl.free_list_store">Free List Store</a></span></dt><dt><span class="section"><a href="bk01pt03ch21s02.html#bitmap.impl.super_block">Super Block</a></span></dt><dt><span class="section"><a href="bk01pt03ch21s02.html#bitmap.impl.super_block_data">Super Block Data Layout</a></span></dt><dt><span class="section"><a href="bk01pt03ch21s02.html#bitmap.impl.max_wasted">Maximum Wasted Percentage</a></span></dt><dt><span class="section"><a href="bk01pt03ch21s02.html#bitmap.impl.allocate"><code class="function">allocate</code></a></span></dt><dt><span class="section"><a href="bk01pt03ch21s02.html#bitmap.impl.deallocate"><code class="function">deallocate</code></a></span></dt><dt><span class="section"><a href="bk01pt03ch21s02.html#bitmap.impl.questions">Questions</a></span></dt><dd><dl><dt><span class="section"><a href="bk01pt03ch21s02.html#bitmap.impl.question.1">1</a></span></dt><dt><span class="section"><a href="bk01pt03ch21s02.html#bitmap.impl.question.2">2</a></span></dt><dt><span class="section"><a href="bk01pt03ch21s02.html#bitmap.impl.question.3">3</a></span></dt></dl></dd><dt><span class="section"><a href="bk01pt03ch21s02.html#bitmap.impl.locality">Locality</a></span></dt><dt><span class="section"><a href="bk01pt03ch21s02.html#bitmap.impl.grow_policy">Overhead and Grow Policy</a></span></dt></dl></dd></dl></dd><dt><span class="chapter"><a href="policy_data_structures.html">22. Policy-Based Data Structures</a></span></dt><dd><dl><dt><span class="section"><a href="policy_data_structures.html#pbds.intro">Intro</a></span></dt><dd><dl><dt><span class="section"><a href="policy_data_structures.html#pbds.intro.issues">Performance Issues</a></span></dt><dd><dl><dt><span class="section"><a href="policy_data_structures.html#pbds.intro.issues.associative">Associative</a></span></dt><dt><span class="section"><a href="policy_data_structures.html#pbds.intro.issues.priority_queue">Priority Que</a></span></dt></dl></dd><dt><span class="section"><a href="policy_data_structures.html#pbds.intro.motivation">Goals</a></span></dt><dd><dl><dt><span class="section"><a href="policy_data_structures.html#pbds.intro.motivation.associative">Associative</a></span></dt><dd><dl><dt><span class="section"><a href="policy_data_structures.html#motivation.associative.policy">Policy Choices</a></span></dt><dt><span class="section"><a href="policy_data_structures.html#motivation.associative.underlying">Underlying Data Structures</a></span></dt><dt><span class="section"><a href="policy_data_structures.html#motivation.associative.iterators">Iterators</a></span></dt><dt><span class="section"><a href="policy_data_structures.html#motivation.associative.functions">Functional</a></span></dt></dl></dd><dt><span class="section"><a href="policy_data_structures.html#pbds.intro.motivation.priority_queue">Priority Queues</a></span></dt><dd><dl><dt><span class="section"><a href="policy_data_structures.html#motivation.priority_queue.policy">Policy Choices</a></span></dt><dt><span class="section"><a href="policy_data_structures.html#motivation.priority_queue.underlying">Underlying Data Structures</a></span></dt><dt><span class="section"><a href="policy_data_structures.html#motivation.priority_queue.binary_heap">Binary Heaps</a></span></dt></dl></dd></dl></dd></dl></dd><dt><span class="section"><a href="policy_data_structures_using.html">Using</a></span></dt><dd><dl><dt><span class="section"><a href="policy_data_structures_using.html#pbds.using.prereq">Prerequisites</a></span></dt><dt><span class="section"><a href="policy_data_structures_using.html#pbds.using.organization">Organization</a></span></dt><dt><span class="section"><a href="policy_data_structures_using.html#pbds.using.tutorial">Tutorial</a></span></dt><dd><dl><dt><span class="section"><a href="policy_data_structures_using.html#pbds.using.tutorial.basic">Basic Use</a></span></dt><dt><span class="section"><a href="policy_data_structures_using.html#pbds.using.tutorial.configuring"> | |
12605 | Configuring via Template Parameters | |
12606 | </a></span></dt><dt><span class="section"><a href="policy_data_structures_using.html#pbds.using.tutorial.traits"> | |
12607 | @@ -71,4 +71,4 @@ | |
12608 | Text <code class="function">modify</code> Down | |
12609 | </a></span></dt></dl></dd><dt><span class="section"><a href="policy_based_data_structures_test.html#pbds.test.performance.observations">Observations</a></span></dt><dd><dl><dt><span class="section"><a href="policy_based_data_structures_test.html#observations.associative">Associative</a></span></dt><dt><span class="section"><a href="policy_based_data_structures_test.html#observations.priority_queue">Priority_Queue</a></span></dt></dl></dd></dl></dd></dl></dd><dt><span class="section"><a href="policy_data_structures_biblio.html">Acknowledgments</a></span></dt><dt><span class="bibliography"><a href="policy_data_structures.html#pbds.biblio"> | |
12610 | Bibliography | |
12611 | - </a></span></dt></dl></dd><dt><span class="chapter"><a href="ext_containers.html">23. HP/SGI Extensions</a></span></dt><dd><dl><dt><span class="section"><a href="ext_containers.html#manual.ext.containers.sgi">Backwards Compatibility</a></span></dt><dt><span class="section"><a href="bk01pt03ch23s02.html">Deprecated</a></span></dt></dl></dd><dt><span class="chapter"><a href="ext_utilities.html">24. Utilities</a></span></dt><dt><span class="chapter"><a href="ext_algorithms.html">25. Algorithms</a></span></dt><dt><span class="chapter"><a href="ext_numerics.html">26. Numerics</a></span></dt><dt><span class="chapter"><a href="ext_iterators.html">27. Iterators</a></span></dt><dt><span class="chapter"><a href="ext_io.html">28. Input and Output</a></span></dt><dd><dl><dt><span class="section"><a href="ext_io.html#manual.ext.io.filebuf_derived">Derived filebufs</a></span></dt></dl></dd><dt><span class="chapter"><a href="ext_demangling.html">29. Demangling</a></span></dt><dt><span class="chapter"><a href="ext_concurrency.html">30. Concurrency</a></span></dt><dd><dl><dt><span class="section"><a href="ext_concurrency.html#manual.ext.concurrency.design">Design</a></span></dt><dd><dl><dt><span class="section"><a href="ext_concurrency.html#manual.ext.concurrency.design.threads">Interface to Locks and Mutexes</a></span></dt><dt><span class="section"><a href="ext_concurrency.html#manual.ext.concurrency.design.atomics">Interface to Atomic Functions</a></span></dt></dl></dd><dt><span class="section"><a href="bk01pt03ch30s02.html">Implementation</a></span></dt><dd><dl><dt><span class="section"><a href="bk01pt03ch30s02.html#manual.ext.concurrency.impl.atomic_fallbacks">Using Builtin Atomic Functions</a></span></dt><dt><span class="section"><a href="bk01pt03ch30s02.html#manual.ext.concurrency.impl.thread">Thread Abstraction</a></span></dt></dl></dd><dt><span class="section"><a href="bk01pt03ch30s03.html">Use</a></span></dt></dl></dd></dl></div></div><div class="navfooter"><hr/><table width="100%" summary="Navigation footer"><tr><td align="left"><a accesskey="p" href="io_and_c.html">Prev</a> </td><td align="center"><a accesskey="u" href="index.html">Up</a></td><td align="right"> <a accesskey="n" href="bk01pt03pr01.html">Next</a></td></tr><tr><td align="left" valign="top">Interacting with C </td><td align="center"><a accesskey="h" href="../index.html">Home</a></td><td align="right" valign="top"> </td></tr></table></div></body></html> | |
12612 | + </a></span></dt></dl></dd><dt><span class="chapter"><a href="ext_containers.html">23. HP/SGI Extensions</a></span></dt><dd><dl><dt><span class="section"><a href="ext_containers.html#manual.ext.containers.sgi">Backwards Compatibility</a></span></dt><dt><span class="section"><a href="bk01pt03ch23s02.html">Deprecated</a></span></dt></dl></dd><dt><span class="chapter"><a href="ext_utilities.html">24. Utilities</a></span></dt><dt><span class="chapter"><a href="ext_algorithms.html">25. Algorithms</a></span></dt><dt><span class="chapter"><a href="ext_numerics.html">26. Numerics</a></span></dt><dt><span class="chapter"><a href="ext_iterators.html">27. Iterators</a></span></dt><dt><span class="chapter"><a href="ext_io.html">28. Input and Output</a></span></dt><dd><dl><dt><span class="section"><a href="ext_io.html#manual.ext.io.filebuf_derived">Derived filebufs</a></span></dt></dl></dd><dt><span class="chapter"><a href="ext_demangling.html">29. Demangling</a></span></dt><dt><span class="chapter"><a href="ext_concurrency.html">30. Concurrency</a></span></dt><dd><dl><dt><span class="section"><a href="ext_concurrency.html#manual.ext.concurrency.design">Design</a></span></dt><dd><dl><dt><span class="section"><a href="ext_concurrency.html#manual.ext.concurrency.design.threads">Interface to Locks and Mutexes</a></span></dt><dt><span class="section"><a href="ext_concurrency.html#manual.ext.concurrency.design.atomics">Interface to Atomic Functions</a></span></dt></dl></dd><dt><span class="section"><a href="bk01pt03ch30s02.html">Implementation</a></span></dt><dd><dl><dt><span class="section"><a href="bk01pt03ch30s02.html#manual.ext.concurrency.impl.atomic_fallbacks">Using Builtin Atomic Functions</a></span></dt><dt><span class="section"><a href="bk01pt03ch30s02.html#manual.ext.concurrency.impl.thread">Thread Abstraction</a></span></dt></dl></dd><dt><span class="section"><a href="bk01pt03ch30s03.html">Use</a></span></dt></dl></dd></dl></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="io_and_c.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="index.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="bk01pt03pr01.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Interacting with C </td><td width="20%" align="center"><a accesskey="h" href="../index.html">Home</a></td><td width="40%" align="right" valign="top"> </td></tr></table></div></body></html> | |
12613 | Index: libstdc++-v3/doc/html/manual/parallel_mode.html | |
12614 | =================================================================== | |
9f95000d AM |
12615 | --- libstdc++-v3/doc/html/manual/parallel_mode.html (.../tags/gcc_4_7_2_release) (wersja 192468) |
12616 | +++ libstdc++-v3/doc/html/manual/parallel_mode.html (.../branches/gcc-4_7-branch) (wersja 192468) | |
5a87b929 AM |
12617 | @@ -1,9 +1,9 @@ |
12618 | <?xml version="1.0" encoding="UTF-8" standalone="no"?> | |
12619 | -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> | |
12620 | -<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Chapter 18. Parallel Mode</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1"/><meta name="keywords" content=" C++ , library , parallel "/><meta name="keywords" content=" ISO C++ , library "/><meta name="keywords" content=" ISO C++ , runtime , library "/><link rel="home" href="../index.html" title="The GNU C++ Library"/><link rel="up" href="extensions.html" title="Part III. Extensions"/><link rel="prev" href="bk01pt03ch17s04.html" title="Design"/><link rel="next" href="bk01pt03ch18s02.html" title="Semantics"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 18. Parallel Mode</th></tr><tr><td align="left"><a accesskey="p" href="bk01pt03ch17s04.html">Prev</a> </td><th width="60%" align="center">Part III. | |
12621 | +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> | |
12622 | +<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Chapter 18. Parallel Mode</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1" /><meta name="keywords" content=" C++ , library , parallel " /><meta name="keywords" content=" ISO C++ , library " /><meta name="keywords" content=" ISO C++ , runtime , library " /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="extensions.html" title="Part III. Extensions" /><link rel="prev" href="bk01pt03ch17s04.html" title="Design" /><link rel="next" href="bk01pt03ch18s02.html" title="Semantics" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 18. Parallel Mode</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="bk01pt03ch17s04.html">Prev</a> </td><th width="60%" align="center">Part III. | |
12623 | Extensions | |
12624 | ||
12625 | -</th><td align="right"> <a accesskey="n" href="bk01pt03ch18s02.html">Next</a></td></tr></table><hr/></div><div class="chapter" title="Chapter 18. Parallel Mode"><div class="titlepage"><div><div><h2 class="title"><a id="manual.ext.parallel_mode"/>Chapter 18. Parallel Mode</h2></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl><dt><span class="section"><a href="parallel_mode.html#manual.ext.parallel_mode.intro">Intro</a></span></dt><dt><span class="section"><a href="bk01pt03ch18s02.html">Semantics</a></span></dt><dt><span class="section"><a href="bk01pt03ch18s03.html">Using</a></span></dt><dd><dl><dt><span class="section"><a href="bk01pt03ch18s03.html#parallel_mode.using.prereq_flags">Prerequisite Compiler Flags</a></span></dt><dt><span class="section"><a href="bk01pt03ch18s03.html#parallel_mode.using.parallel_mode">Using Parallel Mode</a></span></dt><dt><span class="section"><a href="bk01pt03ch18s03.html#parallel_mode.using.specific">Using Specific Parallel Components</a></span></dt></dl></dd><dt><span class="section"><a href="bk01pt03ch18s04.html">Design</a></span></dt><dd><dl><dt><span class="section"><a href="bk01pt03ch18s04.html#parallel_mode.design.intro">Interface Basics</a></span></dt><dt><span class="section"><a href="bk01pt03ch18s04.html#parallel_mode.design.tuning">Configuration and Tuning</a></span></dt><dd><dl><dt><span class="section"><a href="bk01pt03ch18s04.html#parallel_mode.design.tuning.omp">Setting up the OpenMP Environment</a></span></dt><dt><span class="section"><a href="bk01pt03ch18s04.html#parallel_mode.design.tuning.compile">Compile Time Switches</a></span></dt><dt><span class="section"><a href="bk01pt03ch18s04.html#parallel_mode.design.tuning.settings">Run Time Settings and Defaults</a></span></dt></dl></dd><dt><span class="section"><a href="bk01pt03ch18s04.html#parallel_mode.design.impl">Implementation Namespaces</a></span></dt></dl></dd><dt><span class="section"><a href="bk01pt03ch18s05.html">Testing</a></span></dt><dt><span class="bibliography"><a href="parallel_mode.html#parallel_mode.biblio">Bibliography</a></span></dt></dl></div><p> The libstdc++ parallel mode is an experimental parallel | |
12626 | +</th><td width="20%" align="right"> <a accesskey="n" href="bk01pt03ch18s02.html">Next</a></td></tr></table><hr /></div><div class="chapter" title="Chapter 18. Parallel Mode"><div class="titlepage"><div><div><h2 class="title"><a id="manual.ext.parallel_mode"></a>Chapter 18. Parallel Mode</h2></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl><dt><span class="section"><a href="parallel_mode.html#manual.ext.parallel_mode.intro">Intro</a></span></dt><dt><span class="section"><a href="bk01pt03ch18s02.html">Semantics</a></span></dt><dt><span class="section"><a href="bk01pt03ch18s03.html">Using</a></span></dt><dd><dl><dt><span class="section"><a href="bk01pt03ch18s03.html#parallel_mode.using.prereq_flags">Prerequisite Compiler Flags</a></span></dt><dt><span class="section"><a href="bk01pt03ch18s03.html#parallel_mode.using.parallel_mode">Using Parallel Mode</a></span></dt><dt><span class="section"><a href="bk01pt03ch18s03.html#parallel_mode.using.specific">Using Specific Parallel Components</a></span></dt></dl></dd><dt><span class="section"><a href="bk01pt03ch18s04.html">Design</a></span></dt><dd><dl><dt><span class="section"><a href="bk01pt03ch18s04.html#parallel_mode.design.intro">Interface Basics</a></span></dt><dt><span class="section"><a href="bk01pt03ch18s04.html#parallel_mode.design.tuning">Configuration and Tuning</a></span></dt><dd><dl><dt><span class="section"><a href="bk01pt03ch18s04.html#parallel_mode.design.tuning.omp">Setting up the OpenMP Environment</a></span></dt><dt><span class="section"><a href="bk01pt03ch18s04.html#parallel_mode.design.tuning.compile">Compile Time Switches</a></span></dt><dt><span class="section"><a href="bk01pt03ch18s04.html#parallel_mode.design.tuning.settings">Run Time Settings and Defaults</a></span></dt></dl></dd><dt><span class="section"><a href="bk01pt03ch18s04.html#parallel_mode.design.impl">Implementation Namespaces</a></span></dt></dl></dd><dt><span class="section"><a href="bk01pt03ch18s05.html">Testing</a></span></dt><dt><span class="bibliography"><a href="parallel_mode.html#parallel_mode.biblio">Bibliography</a></span></dt></dl></div><p> The libstdc++ parallel mode is an experimental parallel | |
12627 | implementation of many algorithms the C++ Standard Library. | |
12628 | </p><p> | |
12629 | Several of the standard algorithms, for instance | |
12630 | @@ -11,14 +11,14 @@ | |
12631 | annotations. These parallel mode constructs and can be invoked by | |
12632 | explicit source declaration or by compiling existing sources with a | |
12633 | specific compiler flag. | |
12634 | -</p><div class="section" title="Intro"><div class="titlepage"><div><div><h2 class="title"><a id="manual.ext.parallel_mode.intro"/>Intro</h2></div></div></div><p>The following library components in the include | |
12635 | -<code class="filename">numeric</code> are included in the parallel mode:</p><div class="itemizedlist"><ul class="itemizedlist"><li class="listitem"><p><code class="function">std::accumulate</code></p></li><li class="listitem"><p><code class="function">std::adjacent_difference</code></p></li><li class="listitem"><p><code class="function">std::inner_product</code></p></li><li class="listitem"><p><code class="function">std::partial_sum</code></p></li></ul></div><p>The following library components in the include | |
12636 | -<code class="filename">algorithm</code> are included in the parallel mode:</p><div class="itemizedlist"><ul class="itemizedlist"><li class="listitem"><p><code class="function">std::adjacent_find</code></p></li><li class="listitem"><p><code class="function">std::count</code></p></li><li class="listitem"><p><code class="function">std::count_if</code></p></li><li class="listitem"><p><code class="function">std::equal</code></p></li><li class="listitem"><p><code class="function">std::find</code></p></li><li class="listitem"><p><code class="function">std::find_if</code></p></li><li class="listitem"><p><code class="function">std::find_first_of</code></p></li><li class="listitem"><p><code class="function">std::for_each</code></p></li><li class="listitem"><p><code class="function">std::generate</code></p></li><li class="listitem"><p><code class="function">std::generate_n</code></p></li><li class="listitem"><p><code class="function">std::lexicographical_compare</code></p></li><li class="listitem"><p><code class="function">std::mismatch</code></p></li><li class="listitem"><p><code class="function">std::search</code></p></li><li class="listitem"><p><code class="function">std::search_n</code></p></li><li class="listitem"><p><code class="function">std::transform</code></p></li><li class="listitem"><p><code class="function">std::replace</code></p></li><li class="listitem"><p><code class="function">std::replace_if</code></p></li><li class="listitem"><p><code class="function">std::max_element</code></p></li><li class="listitem"><p><code class="function">std::merge</code></p></li><li class="listitem"><p><code class="function">std::min_element</code></p></li><li class="listitem"><p><code class="function">std::nth_element</code></p></li><li class="listitem"><p><code class="function">std::partial_sort</code></p></li><li class="listitem"><p><code class="function">std::partition</code></p></li><li class="listitem"><p><code class="function">std::random_shuffle</code></p></li><li class="listitem"><p><code class="function">std::set_union</code></p></li><li class="listitem"><p><code class="function">std::set_intersection</code></p></li><li class="listitem"><p><code class="function">std::set_symmetric_difference</code></p></li><li class="listitem"><p><code class="function">std::set_difference</code></p></li><li class="listitem"><p><code class="function">std::sort</code></p></li><li class="listitem"><p><code class="function">std::stable_sort</code></p></li><li class="listitem"><p><code class="function">std::unique_copy</code></p></li></ul></div></div><div class="bibliography" title="Bibliography"><div class="titlepage"><div><div><h2 class="title"><a id="parallel_mode.biblio"/>Bibliography</h2></div></div></div><div class="biblioentry"><a id="id510512"/><p><span class="citetitle"><em class="citetitle"> | |
12637 | +</p><div class="section" title="Intro"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="manual.ext.parallel_mode.intro"></a>Intro</h2></div></div></div><p>The following library components in the include | |
12638 | +<code class="filename">numeric</code> are included in the parallel mode:</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p><code class="function">std::accumulate</code></p></li><li class="listitem"><p><code class="function">std::adjacent_difference</code></p></li><li class="listitem"><p><code class="function">std::inner_product</code></p></li><li class="listitem"><p><code class="function">std::partial_sum</code></p></li></ul></div><p>The following library components in the include | |
12639 | +<code class="filename">algorithm</code> are included in the parallel mode:</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p><code class="function">std::adjacent_find</code></p></li><li class="listitem"><p><code class="function">std::count</code></p></li><li class="listitem"><p><code class="function">std::count_if</code></p></li><li class="listitem"><p><code class="function">std::equal</code></p></li><li class="listitem"><p><code class="function">std::find</code></p></li><li class="listitem"><p><code class="function">std::find_if</code></p></li><li class="listitem"><p><code class="function">std::find_first_of</code></p></li><li class="listitem"><p><code class="function">std::for_each</code></p></li><li class="listitem"><p><code class="function">std::generate</code></p></li><li class="listitem"><p><code class="function">std::generate_n</code></p></li><li class="listitem"><p><code class="function">std::lexicographical_compare</code></p></li><li class="listitem"><p><code class="function">std::mismatch</code></p></li><li class="listitem"><p><code class="function">std::search</code></p></li><li class="listitem"><p><code class="function">std::search_n</code></p></li><li class="listitem"><p><code class="function">std::transform</code></p></li><li class="listitem"><p><code class="function">std::replace</code></p></li><li class="listitem"><p><code class="function">std::replace_if</code></p></li><li class="listitem"><p><code class="function">std::max_element</code></p></li><li class="listitem"><p><code class="function">std::merge</code></p></li><li class="listitem"><p><code class="function">std::min_element</code></p></li><li class="listitem"><p><code class="function">std::nth_element</code></p></li><li class="listitem"><p><code class="function">std::partial_sort</code></p></li><li class="listitem"><p><code class="function">std::partition</code></p></li><li class="listitem"><p><code class="function">std::random_shuffle</code></p></li><li class="listitem"><p><code class="function">std::set_union</code></p></li><li class="listitem"><p><code class="function">std::set_intersection</code></p></li><li class="listitem"><p><code class="function">std::set_symmetric_difference</code></p></li><li class="listitem"><p><code class="function">std::set_difference</code></p></li><li class="listitem"><p><code class="function">std::sort</code></p></li><li class="listitem"><p><code class="function">std::stable_sort</code></p></li><li class="listitem"><p><code class="function">std::unique_copy</code></p></li></ul></div></div><div class="bibliography" title="Bibliography"><div class="titlepage"><div><div><h2 class="title"><a id="parallel_mode.biblio"></a>Bibliography</h2></div></div></div><div class="biblioentry"><a id="id688998"></a><p><span class="citetitle"><em class="citetitle"> | |
12640 | Parallelization of Bulk Operations for STL Dictionaries | |
12641 | </em>. </span><span class="author"><span class="firstname">Johannes</span> <span class="surname">Singler</span>. </span><span class="author"><span class="firstname">Leonor</span> <span class="surname">Frias</span>. </span><span class="copyright">Copyright © 2007 . </span><span class="publisher"><span class="publishername"> | |
12642 | Workshop on Highly Parallel Processing on a Chip (HPPC) 2007. (LNCS) | |
12643 | - . </span></span></p></div><div class="biblioentry"><a id="id510554"/><p><span class="citetitle"><em class="citetitle"> | |
12644 | + . </span></span></p></div><div class="biblioentry"><a id="id689041"></a><p><span class="citetitle"><em class="citetitle"> | |
12645 | The Multi-Core Standard Template Library | |
12646 | </em>. </span><span class="author"><span class="firstname">Johannes</span> <span class="surname">Singler</span>. </span><span class="author"><span class="firstname">Peter</span> <span class="surname">Sanders</span>. </span><span class="author"><span class="firstname">Felix</span> <span class="surname">Putze</span>. </span><span class="copyright">Copyright © 2007 . </span><span class="publisher"><span class="publishername"> | |
12647 | Euro-Par 2007: Parallel Processing. (LNCS 4641) | |
12648 | - . </span></span></p></div></div></div><div class="navfooter"><hr/><table width="100%" summary="Navigation footer"><tr><td align="left"><a accesskey="p" href="bk01pt03ch17s04.html">Prev</a> </td><td align="center"><a accesskey="u" href="extensions.html">Up</a></td><td align="right"> <a accesskey="n" href="bk01pt03ch18s02.html">Next</a></td></tr><tr><td align="left" valign="top">Design </td><td align="center"><a accesskey="h" href="../index.html">Home</a></td><td align="right" valign="top"> Semantics</td></tr></table></div></body></html> | |
12649 | + . </span></span></p></div></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="bk01pt03ch17s04.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="extensions.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="bk01pt03ch18s02.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Design </td><td width="20%" align="center"><a accesskey="h" href="../index.html">Home</a></td><td width="40%" align="right" valign="top"> Semantics</td></tr></table></div></body></html> | |
12650 | Index: libstdc++-v3/doc/html/manual/setup.html | |
12651 | =================================================================== | |
9f95000d AM |
12652 | --- libstdc++-v3/doc/html/manual/setup.html (.../tags/gcc_4_7_2_release) (wersja 192468) |
12653 | +++ libstdc++-v3/doc/html/manual/setup.html (.../branches/gcc-4_7-branch) (wersja 192468) | |
5a87b929 AM |
12654 | @@ -1,9 +1,9 @@ |
12655 | <?xml version="1.0" encoding="UTF-8" standalone="no"?> | |
12656 | -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> | |
12657 | -<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Chapter 2. Setup</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1"/><meta name="keywords" content=" ISO C++ , library "/><meta name="keywords" content=" ISO C++ , runtime , library "/><link rel="home" href="../index.html" title="The GNU C++ Library"/><link rel="up" href="intro.html" title="Part I. Introduction"/><link rel="prev" href="bugs.html" title="Bugs"/><link rel="next" href="configure.html" title="Configure"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 2. Setup</th></tr><tr><td align="left"><a accesskey="p" href="bugs.html">Prev</a> </td><th width="60%" align="center">Part I. | |
12658 | +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> | |
12659 | +<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Chapter 2. Setup</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1" /><meta name="keywords" content=" ISO C++ , library " /><meta name="keywords" content=" ISO C++ , runtime , library " /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="intro.html" title="Part I. Introduction" /><link rel="prev" href="bugs.html" title="Bugs" /><link rel="next" href="configure.html" title="Configure" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 2. Setup</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="bugs.html">Prev</a> </td><th width="60%" align="center">Part I. | |
12660 | Introduction | |
12661 | ||
12662 | -</th><td align="right"> <a accesskey="n" href="configure.html">Next</a></td></tr></table><hr/></div><div class="chapter" title="Chapter 2. Setup"><div class="titlepage"><div><div><h2 class="title"><a id="manual.intro.setup"/>Chapter 2. Setup</h2></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl><dt><span class="section"><a href="setup.html#manual.intro.setup.prereq">Prerequisites</a></span></dt><dt><span class="section"><a href="configure.html">Configure</a></span></dt><dt><span class="section"><a href="make.html">Make</a></span></dt></dl></div><p>To transform libstdc++ sources into installed include files | |
12663 | +</th><td width="20%" align="right"> <a accesskey="n" href="configure.html">Next</a></td></tr></table><hr /></div><div class="chapter" title="Chapter 2. Setup"><div class="titlepage"><div><div><h2 class="title"><a id="manual.intro.setup"></a>Chapter 2. Setup</h2></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl><dt><span class="section"><a href="setup.html#manual.intro.setup.prereq">Prerequisites</a></span></dt><dt><span class="section"><a href="configure.html">Configure</a></span></dt><dt><span class="section"><a href="make.html">Make</a></span></dt></dl></div><p>To transform libstdc++ sources into installed include files | |
12664 | and properly built binaries useful for linking to other software is | |
12665 | a multi-step process. Steps include getting the sources, | |
12666 | configuring and building the sources, testing, and installation. | |
12667 | @@ -19,12 +19,12 @@ | |
12668 | make install | |
12669 | </pre><p> | |
12670 | Each step is described in more detail in the following sections. | |
12671 | - </p><div class="section" title="Prerequisites"><div class="titlepage"><div><div><h2 class="title"><a id="manual.intro.setup.prereq"/>Prerequisites</h2></div></div></div><p> | |
12672 | + </p><div class="section" title="Prerequisites"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="manual.intro.setup.prereq"></a>Prerequisites</h2></div></div></div><p> | |
12673 | Because libstdc++ is part of GCC, the primary source for | |
12674 | installation instructions is | |
12675 | - <a class="link" href="http://gcc.gnu.org/install/">the GCC install page</a>. | |
12676 | + <a class="link" href="http://gcc.gnu.org/install/" target="_top">the GCC install page</a>. | |
12677 | In particular, list of prerequisite software needed to build the library | |
12678 | - <a class="link" href="http://gcc.gnu.org/install/prerequisites.html"> | |
12679 | + <a class="link" href="http://gcc.gnu.org/install/prerequisites.html" target="_top"> | |
12680 | starts with those requirements.</a> The same pages also list | |
12681 | the tools you will need if you wish to modify the source. | |
12682 | </p><p> | |
12683 | @@ -32,7 +32,7 @@ | |
12684 | </p><p>As of GCC 4.0.1 the minimum version of binutils required to build | |
12685 | libstdc++ is <code class="code">2.15.90.0.1.1</code>. You can get snapshots | |
12686 | (as well as releases) of binutils from | |
12687 | - <a class="link" href="ftp://sources.redhat.com/pub/binutils/"> | |
12688 | + <a class="link" href="ftp://sources.redhat.com/pub/binutils/" target="_top"> | |
12689 | ftp://sources.redhat.com/pub/binutils</a>. | |
12690 | Older releases of libstdc++ do not require such a recent version, | |
12691 | but to take full advantage of useful space-saving features and | |
12692 | @@ -87,7 +87,7 @@ | |
12693 | libstdc++ after "C" locales are installed is not necessary. | |
12694 | </p><p> | |
12695 | To install support for locales, do only one of the following: | |
12696 | - </p><div class="itemizedlist"><ul class="itemizedlist"><li class="listitem"><p>install all locales</p></li><li class="listitem"><p>install just the necessary locales</p><div class="itemizedlist"><ul class="itemizedlist"><li class="listitem"><p>with Debian GNU/Linux:</p><p> Add the above list, as shown, to the file | |
12697 | + </p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>install all locales</p></li><li class="listitem"><p>install just the necessary locales</p><div class="itemizedlist"><ul class="itemizedlist" type="circle"><li class="listitem"><p>with Debian GNU/Linux:</p><p> Add the above list, as shown, to the file | |
12698 | <code class="code">/etc/locale.gen</code> </p><p> run <code class="code">/usr/sbin/locale-gen</code> </p></li><li class="listitem"><p>on most Unix-like operating systems:</p><p><code class="code"> localedef -i de_DE -f ISO-8859-1 de_DE </code></p><p>(repeat for each entry in the above list) </p></li><li class="listitem"><p> | |
12699 | Instructions for other operating systems solicited. | |
12700 | - </p></li></ul></div></li></ul></div></dd></dl></div></div></div><div class="navfooter"><hr/><table width="100%" summary="Navigation footer"><tr><td align="left"><a accesskey="p" href="bugs.html">Prev</a> </td><td align="center"><a accesskey="u" href="intro.html">Up</a></td><td align="right"> <a accesskey="n" href="configure.html">Next</a></td></tr><tr><td align="left" valign="top">Bugs </td><td align="center"><a accesskey="h" href="../index.html">Home</a></td><td align="right" valign="top"> Configure</td></tr></table></div></body></html> | |
12701 | + </p></li></ul></div></li></ul></div></dd></dl></div></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="bugs.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="intro.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="configure.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Bugs </td><td width="20%" align="center"><a accesskey="h" href="../index.html">Home</a></td><td width="40%" align="right" valign="top"> Configure</td></tr></table></div></body></html> | |
12702 | Index: libstdc++-v3/doc/html/manual/backwards.html | |
12703 | =================================================================== | |
9f95000d AM |
12704 | --- libstdc++-v3/doc/html/manual/backwards.html (.../tags/gcc_4_7_2_release) (wersja 192468) |
12705 | +++ libstdc++-v3/doc/html/manual/backwards.html (.../branches/gcc-4_7-branch) (wersja 192468) | |
5a87b929 AM |
12706 | @@ -1,9 +1,9 @@ |
12707 | <?xml version="1.0" encoding="UTF-8" standalone="no"?> | |
12708 | -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> | |
12709 | -<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Backwards Compatibility</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1"/><meta name="keywords" content=" ISO C++ , backwards "/><meta name="keywords" content=" ISO C++ , library "/><meta name="keywords" content=" ISO C++ , runtime , library "/><link rel="home" href="../index.html" title="The GNU C++ Library"/><link rel="up" href="appendix_porting.html" title="Appendix B. Porting and Maintenance"/><link rel="prev" href="api.html" title="API Evolution and Deprecation History"/><link rel="next" href="appendix_free.html" title="Appendix C. Free Software Needs Free Documentation"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Backwards Compatibility</th></tr><tr><td align="left"><a accesskey="p" href="api.html">Prev</a> </td><th width="60%" align="center">Appendix B. | |
12710 | +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> | |
12711 | +<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Backwards Compatibility</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1" /><meta name="keywords" content=" ISO C++ , backwards " /><meta name="keywords" content=" ISO C++ , library " /><meta name="keywords" content=" ISO C++ , runtime , library " /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="appendix_porting.html" title="Appendix B. Porting and Maintenance" /><link rel="prev" href="api.html" title="API Evolution and Deprecation History" /><link rel="next" href="appendix_free.html" title="Appendix C. Free Software Needs Free Documentation" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Backwards Compatibility</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="api.html">Prev</a> </td><th width="60%" align="center">Appendix B. | |
12712 | Porting and Maintenance | |
12713 | ||
12714 | -</th><td align="right"> <a accesskey="n" href="appendix_free.html">Next</a></td></tr></table><hr/></div><div class="section" title="Backwards Compatibility"><div class="titlepage"><div><div><h2 class="title"><a id="manual.appendix.porting.backwards"/>Backwards Compatibility</h2></div></div></div><div class="section" title="First"><div class="titlepage"><div><div><h3 class="title"><a id="backwards.first"/>First</h3></div></div></div><p>The first generation GNU C++ library was called libg++. It was a | |
12715 | +</th><td width="20%" align="right"> <a accesskey="n" href="appendix_free.html">Next</a></td></tr></table><hr /></div><div class="section" title="Backwards Compatibility"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="manual.appendix.porting.backwards"></a>Backwards Compatibility</h2></div></div></div><div class="section" title="First"><div class="titlepage"><div><div><h3 class="title"><a id="backwards.first"></a>First</h3></div></div></div><p>The first generation GNU C++ library was called libg++. It was a | |
12716 | separate GNU project, although reliably paired with GCC. Rumors imply | |
12717 | that it had a working relationship with at least two kinds of | |
12718 | dinosaur. | |
12719 | @@ -17,8 +17,8 @@ | |
12720 | really useful things that are used by a lot of people, the Standards | |
12721 | Committee couldn't include everything, and so a lot of those | |
12722 | <span class="quote">“<span class="quote">obvious</span>”</span> classes didn't get included. | |
12723 | -</p><p>Known Issues include many of the limitations of its immediate ancestor.</p><p>Portability notes and known implementation limitations are as follows.</p><div class="section" title="No ios_base"><div class="titlepage"><div><div><h4 class="title"><a id="backwards.first.ios_base"/>No <code class="code">ios_base</code></h4></div></div></div><p> At least some older implementations don't have <code class="code">std::ios_base</code>, so you should use <code class="code">std::ios::badbit</code>, <code class="code">std::ios::failbit</code> and <code class="code">std::ios::eofbit</code> and <code class="code">std::ios::goodbit</code>. | |
12724 | -</p></div><div class="section" title="No cout in <ostream.h>, no cin in <istream.h>"><div class="titlepage"><div><div><h4 class="title"><a id="backwards.first.cout_cin"/>No <code class="code">cout</code> in <code class="filename"><ostream.h></code>, no <code class="code">cin</code> in <code class="filename"><istream.h></code></h4></div></div></div><p> | |
12725 | +</p><p>Known Issues include many of the limitations of its immediate ancestor.</p><p>Portability notes and known implementation limitations are as follows.</p><div class="section" title="No ios_base"><div class="titlepage"><div><div><h4 class="title"><a id="backwards.first.ios_base"></a>No <code class="code">ios_base</code></h4></div></div></div><p> At least some older implementations don't have <code class="code">std::ios_base</code>, so you should use <code class="code">std::ios::badbit</code>, <code class="code">std::ios::failbit</code> and <code class="code">std::ios::eofbit</code> and <code class="code">std::ios::goodbit</code>. | |
12726 | +</p></div><div class="section" title="No cout in <ostream.h>, no cin in <istream.h>"><div class="titlepage"><div><div><h4 class="title"><a id="backwards.first.cout_cin"></a>No <code class="code">cout</code> in <code class="filename"><ostream.h></code>, no <code class="code">cin</code> in <code class="filename"><istream.h></code></h4></div></div></div><p> | |
12727 | In earlier versions of the standard, | |
12728 | <code class="filename"><fstream.h></code>, | |
12729 | <code class="filename"><ostream.h></code> | |
12730 | @@ -29,10 +29,10 @@ | |
12731 | explicitly to get the required definitions. | |
12732 | </p><p> Some include adjustment may be required.</p><p>This project is no longer maintained or supported, and the sources | |
12733 | archived. For the desperate, | |
12734 | -the <a class="link" href="http://gcc.gnu.org/extensions.html">GCC extensions | |
12735 | +the <a class="link" href="http://gcc.gnu.org/extensions.html" target="_top">GCC extensions | |
12736 | page</a> describes where to find the last libg++ source. The code is | |
12737 | considered replaced and rewritten. | |
12738 | -</p></div></div><div class="section" title="Second"><div class="titlepage"><div><div><h3 class="title"><a id="backwards.second"/>Second</h3></div></div></div><p> | |
12739 | +</p></div></div><div class="section" title="Second"><div class="titlepage"><div><div><h3 class="title"><a id="backwards.second"></a>Second</h3></div></div></div><p> | |
12740 | The second generation GNU C++ library was called libstdc++, or | |
12741 | libstdc++-v2. It spans the time between libg++ and pre-ISO C++ | |
12742 | standardization and is usually associated with the following GCC | |
12743 | @@ -44,7 +44,7 @@ | |
12744 | archived. The code is considered replaced and rewritten. | |
12745 | </p><p> | |
12746 | Portability notes and known implementation limitations are as follows. | |
12747 | -</p><div class="section" title="Namespace std:: not supported"><div class="titlepage"><div><div><h4 class="title"><a id="backwards.second.std"/>Namespace <code class="code">std::</code> not supported</h4></div></div></div><p> | |
12748 | +</p><div class="section" title="Namespace std:: not supported"><div class="titlepage"><div><div><h4 class="title"><a id="backwards.second.std"></a>Namespace <code class="code">std::</code> not supported</h4></div></div></div><p> | |
12749 | Some care is required to support C++ compiler and or library | |
12750 | implementation that do not have the standard library in | |
12751 | <code class="code">namespace std</code>. | |
12752 | @@ -108,10 +108,10 @@ | |
12753 | AC_DEFINE(HAVE_NAMESPACE_STD,,[Define if g++ supports namespace std. ]) | |
12754 | fi | |
12755 | ]) | |
12756 | -</pre></div><div class="section" title="Illegal iterator usage"><div class="titlepage"><div><div><h4 class="title"><a id="backwards.second.iterators"/>Illegal iterator usage</h4></div></div></div><p> | |
12757 | +</pre></div><div class="section" title="Illegal iterator usage"><div class="titlepage"><div><div><h4 class="title"><a id="backwards.second.iterators"></a>Illegal iterator usage</h4></div></div></div><p> | |
12758 | The following illustrate implementation-allowed illegal iterator | |
12759 | use, and then correct use. | |
12760 | -</p><div class="itemizedlist"><ul class="itemizedlist"><li class="listitem"><p> | |
12761 | +</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p> | |
12762 | you cannot do <code class="code">ostream::operator<<(iterator)</code> | |
12763 | to print the address of the iterator => use | |
12764 | <code class="code">operator<< &*iterator</code> instead | |
12765 | @@ -121,7 +121,7 @@ | |
12766 | </p></li><li class="listitem"><p> | |
12767 | <code class="code">if (iterator)</code> won't work any more => use | |
12768 | <code class="code">if (iterator != iterator_type())</code> | |
12769 | - </p></li></ul></div></div><div class="section" title="isspace from <cctype> is a macro"><div class="titlepage"><div><div><h4 class="title"><a id="backwards.second.isspace"/><code class="code">isspace</code> from <code class="filename"><cctype></code> is a macro | |
12770 | + </p></li></ul></div></div><div class="section" title="isspace from <cctype> is a macro"><div class="titlepage"><div><div><h4 class="title"><a id="backwards.second.isspace"></a><code class="code">isspace</code> from <code class="filename"><cctype></code> is a macro | |
12771 | </h4></div></div></div><p> | |
12772 | Glibc 2.0.x and 2.1.x define <code class="filename"><ctype.h></code> functionality as macros | |
12773 | (isspace, isalpha etc.). | |
12774 | @@ -155,7 +155,7 @@ | |
12775 | (<code class="filename"><ctype.h></code>) and the | |
12776 | definitions in namespace <code class="code">std::</code> | |
12777 | (<code class="code"><cctype></code>). | |
12778 | -</p></div><div class="section" title="No vector::at, deque::at, string::at"><div class="titlepage"><div><div><h4 class="title"><a id="backwards.second.at"/>No <code class="code">vector::at</code>, <code class="code">deque::at</code>, <code class="code">string::at</code></h4></div></div></div><p> | |
12779 | +</p></div><div class="section" title="No vector::at, deque::at, string::at"><div class="titlepage"><div><div><h4 class="title"><a id="backwards.second.at"></a>No <code class="code">vector::at</code>, <code class="code">deque::at</code>, <code class="code">string::at</code></h4></div></div></div><p> | |
12780 | One solution is to add an autoconf-test for this: | |
12781 | </p><pre class="programlisting"> | |
12782 | AC_MSG_CHECKING(for container::at) | |
12783 | @@ -181,7 +181,7 @@ | |
12784 | </pre><p> | |
12785 | If you are using other (non-GNU) compilers it might be a good idea | |
12786 | to check for <code class="code">string::at</code> separately. | |
12787 | -</p></div><div class="section" title="No std::char_traits<char>::eof"><div class="titlepage"><div><div><h4 class="title"><a id="backwards.second.eof"/>No <code class="code">std::char_traits<char>::eof</code></h4></div></div></div><p> | |
12788 | +</p></div><div class="section" title="No std::char_traits<char>::eof"><div class="titlepage"><div><div><h4 class="title"><a id="backwards.second.eof"></a>No <code class="code">std::char_traits<char>::eof</code></h4></div></div></div><p> | |
12789 | Use some kind of autoconf test, plus this: | |
12790 | </p><pre class="programlisting"> | |
12791 | #ifdef HAVE_CHAR_TRAITS | |
12792 | @@ -189,7 +189,7 @@ | |
12793 | #else | |
12794 | #define CPP_EOF EOF | |
12795 | #endif | |
12796 | -</pre></div><div class="section" title="No string::clear"><div class="titlepage"><div><div><h4 class="title"><a id="backwards.second.stringclear"/>No <code class="code">string::clear</code></h4></div></div></div><p> | |
12797 | +</pre></div><div class="section" title="No string::clear"><div class="titlepage"><div><div><h4 class="title"><a id="backwards.second.stringclear"></a>No <code class="code">string::clear</code></h4></div></div></div><p> | |
12798 | There are two functions for deleting the contents of a string: | |
12799 | <code class="code">clear</code> and <code class="code">erase</code> (the latter returns the | |
12800 | string). | |
12801 | @@ -207,18 +207,18 @@ | |
12802 | Unfortunately, <code class="code">clear</code> is not implemented in this | |
12803 | version, so you should use <code class="code">erase</code> (which is probably | |
12804 | faster than <code class="code">operator=(charT*)</code>). | |
12805 | -</p></div><div class="section" title="Removal of ostream::form and istream::scan extensions"><div class="titlepage"><div><div><h4 class="title"><a id="backwards.second.ostreamform_istreamscan"/> | |
12806 | +</p></div><div class="section" title="Removal of ostream::form and istream::scan extensions"><div class="titlepage"><div><div><h4 class="title"><a id="backwards.second.ostreamform_istreamscan"></a> | |
12807 | Removal of <code class="code">ostream::form</code> and <code class="code">istream::scan</code> | |
12808 | extensions | |
12809 | </h4></div></div></div><p> | |
12810 | These are no longer supported. Please use stringstreams instead. | |
12811 | -</p></div><div class="section" title="No basic_stringbuf, basic_stringstream"><div class="titlepage"><div><div><h4 class="title"><a id="backwards.second.stringstreams"/>No <code class="code">basic_stringbuf</code>, <code class="code">basic_stringstream</code></h4></div></div></div><p> | |
12812 | +</p></div><div class="section" title="No basic_stringbuf, basic_stringstream"><div class="titlepage"><div><div><h4 class="title"><a id="backwards.second.stringstreams"></a>No <code class="code">basic_stringbuf</code>, <code class="code">basic_stringstream</code></h4></div></div></div><p> | |
12813 | Although the ISO standard <code class="code">i/ostringstream</code>-classes are | |
12814 | provided, (<code class="filename"><sstream></code>), for | |
12815 | compatibility with older implementations the pre-ISO | |
12816 | <code class="code">i/ostrstream</code> (<code class="filename"><strstream></code>) interface is also provided, | |
12817 | with these caveats: | |
12818 | -</p><div class="itemizedlist"><ul class="itemizedlist"><li class="listitem"><p> | |
12819 | +</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p> | |
12820 | <code class="code">strstream</code> is considered to be deprecated | |
12821 | </p></li><li class="listitem"><p> | |
12822 | <code class="code">strstream</code> is limited to <code class="code">char</code> | |
12823 | @@ -300,14 +300,14 @@ | |
12824 | Another example of using stringstreams is in <a class="link" href="strings.html#strings.string.shrink" title="Shrink to Fit">this howto</a>. | |
12825 | </p><p> There is additional information in the libstdc++-v2 info files, in | |
12826 | particular <span class="quote">“<span class="quote">info iostream</span>”</span>. | |
12827 | -</p></div><div class="section" title="Little or no wide character support"><div class="titlepage"><div><div><h4 class="title"><a id="backwards.second.wchar"/>Little or no wide character support</h4></div></div></div><p> | |
12828 | +</p></div><div class="section" title="Little or no wide character support"><div class="titlepage"><div><div><h4 class="title"><a id="backwards.second.wchar"></a>Little or no wide character support</h4></div></div></div><p> | |
12829 | Classes <code class="classname">wstring</code> and | |
12830 | <code class="classname">char_traits<wchar_t></code> are | |
12831 | not supported. | |
12832 | - </p></div><div class="section" title="No templatized iostreams"><div class="titlepage"><div><div><h4 class="title"><a id="backwards.second.iostream_templates"/>No templatized iostreams</h4></div></div></div><p> | |
12833 | + </p></div><div class="section" title="No templatized iostreams"><div class="titlepage"><div><div><h4 class="title"><a id="backwards.second.iostream_templates"></a>No templatized iostreams</h4></div></div></div><p> | |
12834 | Classes <code class="classname">wfilebuf</code> and | |
12835 | <code class="classname">wstringstream</code> are not supported. | |
12836 | - </p></div><div class="section" title="Thread safety issues"><div class="titlepage"><div><div><h4 class="title"><a id="backwards.second.thread_safety"/>Thread safety issues</h4></div></div></div><p> | |
12837 | + </p></div><div class="section" title="Thread safety issues"><div class="titlepage"><div><div><h4 class="title"><a id="backwards.second.thread_safety"></a>Thread safety issues</h4></div></div></div><p> | |
12838 | Earlier GCC releases had a somewhat different approach to | |
12839 | threading configuration and proper compilation. Before GCC 3.0, | |
12840 | configuration of the threading model was dictated by compiler | |
12841 | @@ -332,7 +332,7 @@ | |
12842 | against the gthr.h abstraction layer which is provided by gcc. A | |
12843 | minor problem that pops up every so often is different | |
12844 | interpretations of what "thread-safe" means for a | |
12845 | - library (not a general program). We currently use the <a class="link" href="http://www.sgi.com/tech/stl/thread_safety.html">same | |
12846 | + library (not a general program). We currently use the <a class="link" href="http://www.sgi.com/tech/stl/thread_safety.html" target="_top">same | |
12847 | definition that SGI</a> uses for their STL subset. However, | |
12848 | the exception for read-only containers only applies to the STL | |
12849 | components. This definition is widely-used and something similar | |
12850 | @@ -343,12 +343,12 @@ | |
12851 | first relevant message in the thread; from there you can use | |
12852 | "Thread Next" to move down the thread. This farm is in | |
12853 | latest-to-oldest order. | |
12854 | - </p><div class="itemizedlist"><ul class="itemizedlist"><li class="listitem"><p> | |
12855 | - Our threading expert Loren gives a breakdown of <a class="link" href="http://gcc.gnu.org/ml/libstdc++/2001-10/msg00024.html">the | |
12856 | + </p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p> | |
12857 | + Our threading expert Loren gives a breakdown of <a class="link" href="http://gcc.gnu.org/ml/libstdc++/2001-10/msg00024.html" target="_top">the | |
12858 | six situations involving threads</a> for the 3.0 | |
12859 | release series. | |
12860 | </p></li><li class="listitem"><p> | |
12861 | - <a class="link" href="http://gcc.gnu.org/ml/libstdc++/2001-05/msg00384.html"> | |
12862 | + <a class="link" href="http://gcc.gnu.org/ml/libstdc++/2001-05/msg00384.html" target="_top"> | |
12863 | This message</a> inspired a recent updating of issues with | |
12864 | threading and the SGI STL library. It also contains some | |
12865 | example POSIX-multithreaded STL code. | |
12866 | @@ -358,14 +358,14 @@ | |
12867 | few people with access to the backup tapes have been too swamped | |
12868 | with work to restore them. Many of the points have been | |
12869 | superseded anyhow.) | |
12870 | - </p></div></div><div class="section" title="Third"><div class="titlepage"><div><div><h3 class="title"><a id="backwards.third"/>Third</h3></div></div></div><p> The third generation GNU C++ library is called libstdc++, or | |
12871 | + </p></div></div><div class="section" title="Third"><div class="titlepage"><div><div><h3 class="title"><a id="backwards.third"></a>Third</h3></div></div></div><p> The third generation GNU C++ library is called libstdc++, or | |
12872 | libstdc++-v3. | |
12873 | </p><p>The subset commonly known as the Standard Template Library | |
12874 | (chapters 23 through 25, mostly) is adapted from the final release | |
12875 | of the SGI STL (version 3.3), with extensive changes. | |
12876 | </p><p>A more formal description of the V3 goals can be found in the | |
12877 | official <a class="link" href="source_design_notes.html" title="Design Notes">design document</a>. | |
12878 | - </p><p>Portability notes and known implementation limitations are as follows.</p><div class="section" title="Pre-ISO headers moved to backwards or removed"><div class="titlepage"><div><div><h4 class="title"><a id="backwards.third.headers"/>Pre-ISO headers moved to backwards or removed</h4></div></div></div><p> The pre-ISO C++ headers | |
12879 | + </p><p>Portability notes and known implementation limitations are as follows.</p><div class="section" title="Pre-ISO headers moved to backwards or removed"><div class="titlepage"><div><div><h4 class="title"><a id="backwards.third.headers"></a>Pre-ISO headers moved to backwards or removed</h4></div></div></div><p> The pre-ISO C++ headers | |
12880 | (<code class="filename"><iostream.h></code>, | |
12881 | <code class="filename"><defalloc.h></code> etc.) are | |
12882 | available, unlike previous libstdc++ versions, but inclusion | |
12883 | @@ -375,7 +375,7 @@ | |
12884 | <code class="code">std::</code> into the global namespace. | |
12885 | </p><p>For those of you new to ISO C++ (welcome, time travelers!), no, | |
12886 | that isn't a typo. Yes, the headers really have new names. | |
12887 | - Marshall Cline's C++ FAQ Lite has a good explanation in <a class="link" href="http://www.parashift.com/c++-faq-lite/coding-standards.html#faq-27.4">item | |
12888 | + Marshall Cline's C++ FAQ Lite has a good explanation in <a class="link" href="http://www.parashift.com/c++-faq-lite/coding-standards.html#faq-27.4" target="_top">item | |
12889 | [27.4]</a>. | |
12890 | </p><p> Some include adjustment may be required. What follows is an | |
12891 | autoconf test that defines <code class="code">PRE_STDCXX_HEADERS</code> when they | |
12892 | @@ -438,7 +438,7 @@ | |
12893 | directive <code class="code">using namespace std;</code> can be put at the global | |
12894 | scope. This should be enough to get this code compiling, assuming the | |
12895 | other usage is correct. | |
12896 | -</p></div><div class="section" title="Extension headers hash_map, hash_set moved to ext or backwards"><div class="titlepage"><div><div><h4 class="title"><a id="backwards.third.hash"/>Extension headers hash_map, hash_set moved to ext or backwards</h4></div></div></div><p>At this time most of the features of the SGI STL extension have been | |
12897 | +</p></div><div class="section" title="Extension headers hash_map, hash_set moved to ext or backwards"><div class="titlepage"><div><div><h4 class="title"><a id="backwards.third.hash"></a>Extension headers hash_map, hash_set moved to ext or backwards</h4></div></div></div><p>At this time most of the features of the SGI STL extension have been | |
12898 | replaced by standardized libraries. | |
12899 | In particular, the <code class="classname">unordered_map</code> and | |
12900 | <code class="classname">unordered_set</code> containers of TR1 and C++ 2011 | |
12901 | @@ -512,7 +512,7 @@ | |
12902 | AC_DEFINE(HAVE_EXT_HASH_SET,,[Define if ext/hash_set is present. ]) | |
12903 | fi | |
12904 | ]) | |
12905 | -</pre></div><div class="section" title="No ios::nocreate/ios::noreplace."><div class="titlepage"><div><div><h4 class="title"><a id="backwards.third.nocreate_noreplace"/>No <code class="code">ios::nocreate/ios::noreplace</code>. | |
12906 | +</pre></div><div class="section" title="No ios::nocreate/ios::noreplace."><div class="titlepage"><div><div><h4 class="title"><a id="backwards.third.nocreate_noreplace"></a>No <code class="code">ios::nocreate/ios::noreplace</code>. | |
12907 | </h4></div></div></div><p> The existence of <code class="code">ios::nocreate</code> being used for | |
12908 | input-streams has been confirmed, most probably because the author | |
12909 | thought it would be more correct to specify nocreate explicitly. So | |
12910 | @@ -523,7 +523,7 @@ | |
12911 | decide whether you want to create/replace or not. To my knowledge, | |
12912 | even older implementations support <code class="code">app</code>, <code class="code">ate</code> | |
12913 | and <code class="code">trunc</code> (except for <code class="code">app</code> ?). | |
12914 | -</p></div><div class="section" title="No stream::attach(int fd)"><div class="titlepage"><div><div><h4 class="title"><a id="backwards.third.streamattach"/> | |
12915 | +</p></div><div class="section" title="No stream::attach(int fd)"><div class="titlepage"><div><div><h4 class="title"><a id="backwards.third.streamattach"></a> | |
12916 | No <code class="code">stream::attach(int fd)</code> | |
12917 | </h4></div></div></div><p> | |
12918 | Phil Edwards writes: It was considered and rejected for the ISO | |
12919 | @@ -539,14 +539,14 @@ | |
12920 | </p><p> | |
12921 | An extension is available that implements this. | |
12922 | <code class="filename"><ext/stdio_filebuf.h></code> contains a derived class called | |
12923 | - <a class="link" href="http://gcc.gnu.org/onlinedocs/libstdc++/latest-doxygen/a00074.html"><code class="code">__gnu_cxx::stdio_filebuf</code></a>. | |
12924 | + <a class="link" href="http://gcc.gnu.org/onlinedocs/libstdc++/latest-doxygen/a00074.html" target="_top"><code class="code">__gnu_cxx::stdio_filebuf</code></a>. | |
12925 | This class can be constructed from a C <code class="code">FILE*</code> or a file | |
12926 | descriptor, and provides the <code class="code">fd()</code> function. | |
12927 | </p><p> | |
12928 | For another example of this, refer to | |
12929 | - <a class="link" href="http://www.josuttis.com/cppcode/fdstream.html">fdstream example</a> | |
12930 | + <a class="link" href="http://www.josuttis.com/cppcode/fdstream.html" target="_top">fdstream example</a> | |
12931 | by Nicolai Josuttis. | |
12932 | -</p></div><div class="section" title="Support for C++98 dialect."><div class="titlepage"><div><div><h4 class="title"><a id="backwards.third.support_cxx98"/> | |
12933 | +</p></div><div class="section" title="Support for C++98 dialect."><div class="titlepage"><div><div><h4 class="title"><a id="backwards.third.support_cxx98"></a> | |
12934 | Support for C++98 dialect. | |
12935 | </h4></div></div></div><p>Check for complete library coverage of the C++1998/2003 standard. | |
12936 | </p><pre class="programlisting"> | |
12937 | @@ -614,7 +614,7 @@ | |
12938 | AC_DEFINE(STDCXX_98_HEADERS,,[Define if ISO C++ 1998 header files are present. ]) | |
12939 | fi | |
12940 | ]) | |
12941 | -</pre></div><div class="section" title="Support for C++TR1 dialect."><div class="titlepage"><div><div><h4 class="title"><a id="backwards.third.support_tr1"/> | |
12942 | +</pre></div><div class="section" title="Support for C++TR1 dialect."><div class="titlepage"><div><div><h4 class="title"><a id="backwards.third.support_tr1"></a> | |
12943 | Support for C++TR1 dialect. | |
12944 | </h4></div></div></div><p>Check for library coverage of the TR1 standard. | |
12945 | </p><pre class="programlisting"> | |
12946 | @@ -691,7 +691,7 @@ | |
12947 | AC_DEFINE(HAVE_TR1_UNORDERED_SET,,[Define if tr1/unordered_set is present. ]) | |
12948 | fi | |
12949 | ]) | |
12950 | -</pre></div><div class="section" title="Support for C++11 dialect."><div class="titlepage"><div><div><h4 class="title"><a id="backwards.third.support_cxx11"/> | |
12951 | +</pre></div><div class="section" title="Support for C++11 dialect."><div class="titlepage"><div><div><h4 class="title"><a id="backwards.third.support_cxx11"></a> | |
12952 | Support for C++11 dialect. | |
12953 | </h4></div></div></div><p>Check for baseline language coverage in the compiler for the C++11 standard. | |
12954 | </p><pre class="programlisting"> | |
12955 | @@ -935,25 +935,25 @@ | |
12956 | but the autoconf checks above could be extended to test for incomplete | |
12957 | C++11 support with <code class="option">-std=c++0x</code> and | |
12958 | <code class="option">-std=gnu++0x</code>. | |
12959 | -</p></div><div class="section" title="Container::iterator_type is not necessarily Container::value_type*"><div class="titlepage"><div><div><h4 class="title"><a id="backwards.third.iterator_type"/> | |
12960 | +</p></div><div class="section" title="Container::iterator_type is not necessarily Container::value_type*"><div class="titlepage"><div><div><h4 class="title"><a id="backwards.third.iterator_type"></a> | |
12961 | <code class="code">Container::iterator_type</code> is not necessarily <code class="code">Container::value_type*</code> | |
12962 | </h4></div></div></div><p> | |
12963 | This is a change in behavior from older versions. Now, most | |
12964 | <span class="type">iterator_type</span> typedefs in container classes are POD | |
12965 | objects, not <span class="type">value_type</span> pointers. | |
12966 | -</p></div></div><div class="bibliography" title="Bibliography"><div class="titlepage"><div><div><h3 class="title"><a id="backwards.biblio"/>Bibliography</h3></div></div></div><div class="biblioentry" title="Migrating to GCC 4.1"><a id="id564028"/><p><span class="title"><em> | |
12967 | - <a class="link" href="http://www.kegel.com/gcc/gcc4.html"> | |
12968 | +</p></div></div><div class="bibliography" title="Bibliography"><div class="titlepage"><div><div><h3 class="title"><a id="backwards.biblio"></a>Bibliography</h3></div></div></div><div class="biblioentry" title="Migrating to GCC 4.1"><a id="id742531"></a><p><span class="title"><em> | |
12969 | + <a class="link" href="http://www.kegel.com/gcc/gcc4.html" target="_top"> | |
12970 | Migrating to GCC 4.1 | |
12971 | </a> | |
12972 | - </em>. </span><span class="author"><span class="firstname">Dan</span> <span class="surname">Kegel</span>. </span></p></div><div class="biblioentry" title="Building the Whole Debian Archive with GCC 4.1: A Summary"><a id="id564051"/><p><span class="title"><em> | |
12973 | - <a class="link" href="http://lists.debian.org/debian-gcc/2006/03/msg00405.html"> | |
12974 | + </em>. </span><span class="author"><span class="firstname">Dan</span> <span class="surname">Kegel</span>. </span></p></div><div class="biblioentry" title="Building the Whole Debian Archive with GCC 4.1: A Summary"><a id="id742554"></a><p><span class="title"><em> | |
12975 | + <a class="link" href="http://lists.debian.org/debian-gcc/2006/03/msg00405.html" target="_top"> | |
12976 | Building the Whole Debian Archive with GCC 4.1: A Summary | |
12977 | </a> | |
12978 | - </em>. </span><span class="author"><span class="firstname">Martin</span> <span class="surname">Michlmayr</span>. </span></p></div><div class="biblioentry" title="Migration guide for GCC-3.2"><a id="id564075"/><p><span class="title"><em> | |
12979 | - <a class="link" href="http://annwm.lbl.gov/~leggett/Atlas/gcc-3.2.html"> | |
12980 | + </em>. </span><span class="author"><span class="firstname">Martin</span> <span class="surname">Michlmayr</span>. </span></p></div><div class="biblioentry" title="Migration guide for GCC-3.2"><a id="id742578"></a><p><span class="title"><em> | |
12981 | + <a class="link" href="http://annwm.lbl.gov/~leggett/Atlas/gcc-3.2.html" target="_top"> | |
12982 | Migration guide for GCC-3.2 | |
12983 | </a> | |
12984 | - </em>. </span></p></div></div></div><div class="navfooter"><hr/><table width="100%" summary="Navigation footer"><tr><td align="left"><a accesskey="p" href="api.html">Prev</a> </td><td align="center"><a accesskey="u" href="appendix_porting.html">Up</a></td><td align="right"> <a accesskey="n" href="appendix_free.html">Next</a></td></tr><tr><td align="left" valign="top">API Evolution and Deprecation History </td><td align="center"><a accesskey="h" href="../index.html">Home</a></td><td align="right" valign="top"> Appendix C. | |
12985 | + </em>. </span></p></div></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="api.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="appendix_porting.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="appendix_free.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">API Evolution and Deprecation History </td><td width="20%" align="center"><a accesskey="h" href="../index.html">Home</a></td><td width="40%" align="right" valign="top"> Appendix C. | |
12986 | Free Software Needs Free Documentation | |
12987 | ||
12988 | </td></tr></table></div></body></html> | |
12989 | Index: libstdc++-v3/doc/html/manual/source_design_notes.html | |
12990 | =================================================================== | |
9f95000d AM |
12991 | --- libstdc++-v3/doc/html/manual/source_design_notes.html (.../tags/gcc_4_7_2_release) (wersja 192468) |
12992 | +++ libstdc++-v3/doc/html/manual/source_design_notes.html (.../branches/gcc-4_7-branch) (wersja 192468) | |
5a87b929 AM |
12993 | @@ -1,863 +1,863 @@ |
12994 | <?xml version="1.0" encoding="UTF-8" standalone="no"?> | |
12995 | -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> | |
12996 | -<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Design Notes</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1"/><meta name="keywords" content=" ISO C++ , library "/><meta name="keywords" content=" ISO C++ , runtime , library "/><link rel="home" href="../index.html" title="The GNU C++ Library"/><link rel="up" href="appendix_contributing.html" title="Appendix A. Contributing"/><link rel="prev" href="source_code_style.html" title="Coding Style"/><link rel="next" href="appendix_porting.html" title="Appendix B. Porting and Maintenance"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Design Notes</th></tr><tr><td align="left"><a accesskey="p" href="source_code_style.html">Prev</a> </td><th width="60%" align="center">Appendix A. | |
12997 | +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> | |
12998 | +<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Design Notes</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1" /><meta name="keywords" content=" ISO C++ , library " /><meta name="keywords" content=" ISO C++ , runtime , library " /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="appendix_contributing.html" title="Appendix A. Contributing" /><link rel="prev" href="source_code_style.html" title="Coding Style" /><link rel="next" href="appendix_porting.html" title="Appendix B. Porting and Maintenance" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Design Notes</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="source_code_style.html">Prev</a> </td><th width="60%" align="center">Appendix A. | |
12999 | Contributing | |
13000 | ||
13001 | -</th><td align="right"> <a accesskey="n" href="appendix_porting.html">Next</a></td></tr></table><hr/></div><div class="section" title="Design Notes"><div class="titlepage"><div><div><h2 class="title"><a id="contrib.design_notes"/>Design Notes</h2></div></div></div><p> | |
13002 | - </p><div class="literallayout"><p><br/> | |
13003 | -<br/> | |
13004 | - The Library<br/> | |
13005 | - -----------<br/> | |
13006 | -<br/> | |
13007 | - This paper is covers two major areas:<br/> | |
13008 | -<br/> | |
13009 | - - Features and policies not mentioned in the standard that<br/> | |
13010 | - the quality of the library implementation depends on, including<br/> | |
13011 | - extensions and "implementation-defined" features;<br/> | |
13012 | -<br/> | |
13013 | - - Plans for required but unimplemented library features and<br/> | |
13014 | - optimizations to them.<br/> | |
13015 | -<br/> | |
13016 | - Overhead<br/> | |
13017 | - --------<br/> | |
13018 | -<br/> | |
13019 | - The standard defines a large library, much larger than the standard<br/> | |
13020 | - C library. A naive implementation would suffer substantial overhead<br/> | |
13021 | - in compile time, executable size, and speed, rendering it unusable<br/> | |
13022 | - in many (particularly embedded) applications. The alternative demands<br/> | |
13023 | - care in construction, and some compiler support, but there is no<br/> | |
13024 | - need for library subsets.<br/> | |
13025 | -<br/> | |
13026 | - What are the sources of this overhead? There are four main causes:<br/> | |
13027 | -<br/> | |
13028 | - - The library is specified almost entirely as templates, which<br/> | |
13029 | - with current compilers must be included in-line, resulting in<br/> | |
13030 | - very slow builds as tens or hundreds of thousands of lines<br/> | |
13031 | - of function definitions are read for each user source file.<br/> | |
13032 | - Indeed, the entire SGI STL, as well as the dos Reis valarray,<br/> | |
13033 | - are provided purely as header files, largely for simplicity in<br/> | |
13034 | - porting. Iostream/locale is (or will be) as large again.<br/> | |
13035 | -<br/> | |
13036 | - - The library is very flexible, specifying a multitude of hooks<br/> | |
13037 | - where users can insert their own code in place of defaults.<br/> | |
13038 | - When these hooks are not used, any time and code expended to<br/> | |
13039 | - support that flexibility is wasted.<br/> | |
13040 | -<br/> | |
13041 | - - Templates are often described as causing to "code bloat". In<br/> | |
13042 | - practice, this refers (when it refers to anything real) to several<br/> | |
13043 | - independent processes. First, when a class template is manually<br/> | |
13044 | - instantiated in its entirely, current compilers place the definitions<br/> | |
13045 | - for all members in a single object file, so that a program linking<br/> | |
13046 | - to one member gets definitions of all. Second, template functions<br/> | |
13047 | - which do not actually depend on the template argument are, under<br/> | |
13048 | - current compilers, generated anew for each instantiation, rather<br/> | |
13049 | - than being shared with other instantiations. Third, some of the<br/> | |
13050 | - flexibility mentioned above comes from virtual functions (both in<br/> | |
13051 | - regular classes and template classes) which current linkers add<br/> | |
13052 | - to the executable file even when they manifestly cannot be called.<br/> | |
13053 | -<br/> | |
13054 | - - The library is specified to use a language feature, exceptions,<br/> | |
13055 | - which in the current gcc compiler ABI imposes a run time and<br/> | |
13056 | - code space cost to handle the possibility of exceptions even when<br/> | |
13057 | - they are not used. Under the new ABI (accessed with -fnew-abi),<br/> | |
13058 | - there is a space overhead and a small reduction in code efficiency<br/> | |
13059 | - resulting from lost optimization opportunities associated with<br/> | |
13060 | - non-local branches associated with exceptions.<br/> | |
13061 | -<br/> | |
13062 | - What can be done to eliminate this overhead? A variety of coding<br/> | |
13063 | - techniques, and compiler, linker and library improvements and<br/> | |
13064 | - extensions may be used, as covered below. Most are not difficult,<br/> | |
13065 | - and some are already implemented in varying degrees.<br/> | |
13066 | -<br/> | |
13067 | - Overhead: Compilation Time<br/> | |
13068 | - --------------------------<br/> | |
13069 | -<br/> | |
13070 | - Providing "ready-instantiated" template code in object code archives<br/> | |
13071 | - allows us to avoid generating and optimizing template instantiations<br/> | |
13072 | - in each compilation unit which uses them. However, the number of such<br/> | |
13073 | - instantiations that are useful to provide is limited, and anyway this<br/> | |
13074 | - is not enough, by itself, to minimize compilation time. In particular,<br/> | |
13075 | - it does not reduce time spent parsing conforming headers.<br/> | |
13076 | -<br/> | |
13077 | - Quicker header parsing will depend on library extensions and compiler<br/> | |
13078 | - improvements. One approach is some variation on the techniques<br/> | |
13079 | - previously marketed as "pre-compiled headers", now standardized as<br/> | |
13080 | - support for the "export" keyword. "Exported" template definitions<br/> | |
13081 | - can be placed (once) in a "repository" -- really just a library, but<br/> | |
13082 | - of template definitions rather than object code -- to be drawn upon<br/> | |
13083 | - at link time when an instantiation is needed, rather than placed in<br/> | |
13084 | - header files to be parsed along with every compilation unit.<br/> | |
13085 | -<br/> | |
13086 | - Until "export" is implemented we can put some of the lengthy template<br/> | |
13087 | - definitions in #if guards or alternative headers so that users can skip<br/> | |
13088 | - over the full definitions when they need only the ready-instantiated<br/> | |
13089 | - specializations.<br/> | |
13090 | -<br/> | |
13091 | - To be precise, this means that certain headers which define<br/> | |
13092 | - templates which users normally use only for certain arguments<br/> | |
13093 | - can be instrumented to avoid exposing the template definitions<br/> | |
13094 | - to the compiler unless a macro is defined. For example, in<br/> | |
13095 | - <string>, we might have:<br/> | |
13096 | -<br/> | |
13097 | - template <class _CharT, ... > class basic_string {<br/> | |
13098 | - ... // member declarations<br/> | |
13099 | - };<br/> | |
13100 | - ... // operator declarations<br/> | |
13101 | -<br/> | |
13102 | - #ifdef _STRICT_ISO_<br/> | |
13103 | - # if _G_NO_TEMPLATE_EXPORT<br/> | |
13104 | - # include <bits/std_locale.h> // headers needed by definitions<br/> | |
13105 | - # ...<br/> | |
13106 | - # include <bits/string.tcc> // member and global template definitions.<br/> | |
13107 | - # endif<br/> | |
13108 | - #endif<br/> | |
13109 | -<br/> | |
13110 | - Users who compile without specifying a strict-ISO-conforming flag<br/> | |
13111 | - would not see many of the template definitions they now see, and rely<br/> | |
13112 | - instead on ready-instantiated specializations in the library. This<br/> | |
13113 | - technique would be useful for the following substantial components:<br/> | |
13114 | - string, locale/iostreams, valarray. It would *not* be useful or<br/> | |
13115 | - usable with the following: containers, algorithms, iterators,<br/> | |
13116 | - allocator. Since these constitute a large (though decreasing)<br/> | |
13117 | - fraction of the library, the benefit the technique offers is<br/> | |
13118 | - limited.<br/> | |
13119 | -<br/> | |
13120 | - The language specifies the semantics of the "export" keyword, but<br/> | |
13121 | - the gcc compiler does not yet support it. When it does, problems<br/> | |
13122 | - with large template inclusions can largely disappear, given some<br/> | |
13123 | - minor library reorganization, along with the need for the apparatus<br/> | |
13124 | - described above.<br/> | |
13125 | -<br/> | |
13126 | - Overhead: Flexibility Cost<br/> | |
13127 | - --------------------------<br/> | |
13128 | -<br/> | |
13129 | - The library offers many places where users can specify operations<br/> | |
13130 | - to be performed by the library in place of defaults. Sometimes<br/> | |
13131 | - this seems to require that the library use a more-roundabout, and<br/> | |
13132 | - possibly slower, way to accomplish the default requirements than<br/> | |
13133 | - would be used otherwise.<br/> | |
13134 | -<br/> | |
13135 | - The primary protection against this overhead is thorough compiler<br/> | |
13136 | - optimization, to crush out layers of inline function interfaces.<br/> | |
13137 | - Kuck & Associates has demonstrated the practicality of this kind<br/> | |
13138 | - of optimization.<br/> | |
13139 | -<br/> | |
13140 | - The second line of defense against this overhead is explicit<br/> | |
13141 | - specialization. By defining helper function templates, and writing<br/> | |
13142 | - specialized code for the default case, overhead can be eliminated<br/> | |
13143 | - for that case without sacrificing flexibility. This takes full<br/> | |
13144 | - advantage of any ability of the optimizer to crush out degenerate<br/> | |
13145 | - code.<br/> | |
13146 | -<br/> | |
13147 | - The library specifies many virtual functions which current linkers<br/> | |
13148 | - load even when they cannot be called. Some minor improvements to the<br/> | |
13149 | - compiler and to ld would eliminate any such overhead by simply<br/> | |
13150 | - omitting virtual functions that the complete program does not call.<br/> | |
13151 | - A prototype of this work has already been done. For targets where<br/> | |
13152 | - GNU ld is not used, a "pre-linker" could do the same job.<br/> | |
13153 | -<br/> | |
13154 | - The main areas in the standard interface where user flexibility<br/> | |
13155 | - can result in overhead are:<br/> | |
13156 | -<br/> | |
13157 | - - Allocators: Containers are specified to use user-definable<br/> | |
13158 | - allocator types and objects, making tuning for the container<br/> | |
13159 | - characteristics tricky.<br/> | |
13160 | -<br/> | |
13161 | - - Locales: the standard specifies locale objects used to implement<br/> | |
13162 | - iostream operations, involving many virtual functions which use<br/> | |
13163 | - streambuf iterators.<br/> | |
13164 | -<br/> | |
13165 | - - Algorithms and containers: these may be instantiated on any type,<br/> | |
13166 | - frequently duplicating code for identical operations.<br/> | |
13167 | -<br/> | |
13168 | - - Iostreams and strings: users are permitted to use these on their<br/> | |
13169 | - own types, and specify the operations the stream must use on these<br/> | |
13170 | - types.<br/> | |
13171 | -<br/> | |
13172 | - Note that these sources of overhead are _avoidable_. The techniques<br/> | |
13173 | - to avoid them are covered below.<br/> | |
13174 | -<br/> | |
13175 | - Code Bloat<br/> | |
13176 | - ----------<br/> | |
13177 | -<br/> | |
13178 | - In the SGI STL, and in some other headers, many of the templates<br/> | |
13179 | - are defined "inline" -- either explicitly or by their placement<br/> | |
13180 | - in class definitions -- which should not be inline. This is a<br/> | |
13181 | - source of code bloat. Matt had remarked that he was relying on<br/> | |
13182 | - the compiler to recognize what was too big to benefit from inlining,<br/> | |
13183 | - and generate it out-of-line automatically. However, this also can<br/> | |
13184 | - result in code bloat except where the linker can eliminate the extra<br/> | |
13185 | - copies.<br/> | |
13186 | -<br/> | |
13187 | - Fixing these cases will require an audit of all inline functions<br/> | |
13188 | - defined in the library to determine which merit inlining, and moving<br/> | |
13189 | - the rest out of line. This is an issue mainly in chapters 23, 25, and<br/> | |
13190 | - 27. Of course it can be done incrementally, and we should generally<br/> | |
13191 | - accept patches that move large functions out of line and into ".tcc"<br/> | |
13192 | - files, which can later be pulled into a repository. Compiler/linker<br/> | |
13193 | - improvements to recognize very large inline functions and move them<br/> | |
13194 | - out-of-line, but shared among compilation units, could make this<br/> | |
13195 | - work unnecessary.<br/> | |
13196 | -<br/> | |
13197 | - Pre-instantiating template specializations currently produces large<br/> | |
13198 | - amounts of dead code which bloats statically linked programs. The<br/> | |
13199 | - current state of the static library, libstdc++.a, is intolerable on<br/> | |
13200 | - this account, and will fuel further confused speculation about a need<br/> | |
13201 | - for a library "subset". A compiler improvement that treats each<br/> | |
13202 | - instantiated function as a separate object file, for linking purposes,<br/> | |
13203 | - would be one solution to this problem. An alternative would be to<br/> | |
13204 | - split up the manual instantiation files into dozens upon dozens of<br/> | |
13205 | - little files, each compiled separately, but an abortive attempt at<br/> | |
13206 | - this was done for <string> and, though it is far from complete, it<br/> | |
13207 | - is already a nuisance. A better interim solution (just until we have<br/> | |
13208 | - "export") is badly needed.<br/> | |
13209 | -<br/> | |
13210 | - When building a shared library, the current compiler/linker cannot<br/> | |
13211 | - automatically generate the instantiations needed. This creates a<br/> | |
13212 | - miserable situation; it means any time something is changed in the<br/> | |
13213 | - library, before a shared library can be built someone must manually<br/> | |
13214 | - copy the declarations of all templates that are needed by other parts<br/> | |
13215 | - of the library to an "instantiation" file, and add it to the build<br/> | |
13216 | - system to be compiled and linked to the library. This process is<br/> | |
13217 | - readily automated, and should be automated as soon as possible.<br/> | |
13218 | - Users building their own shared libraries experience identical<br/> | |
13219 | - frustrations.<br/> | |
13220 | -<br/> | |
13221 | - Sharing common aspects of template definitions among instantiations<br/> | |
13222 | - can radically reduce code bloat. The compiler could help a great<br/> | |
13223 | - deal here by recognizing when a function depends on nothing about<br/> | |
13224 | - a template parameter, or only on its size, and giving the resulting<br/> | |
13225 | - function a link-name "equate" that allows it to be shared with other<br/> | |
13226 | - instantiations. Implementation code could take advantage of the<br/> | |
13227 | - capability by factoring out code that does not depend on the template<br/> | |
13228 | - argument into separate functions to be merged by the compiler.<br/> | |
13229 | -<br/> | |
13230 | - Until such a compiler optimization is implemented, much can be done<br/> | |
13231 | - manually (if tediously) in this direction. One such optimization is<br/> | |
13232 | - to derive class templates from non-template classes, and move as much<br/> | |
13233 | - implementation as possible into the base class. Another is to partial-<br/> | |
13234 | - specialize certain common instantiations, such as vector<T*>, to share<br/> | |
13235 | - code for instantiations on all types T. While these techniques work,<br/> | |
13236 | - they are far from the complete solution that a compiler improvement<br/> | |
13237 | - would afford.<br/> | |
13238 | -<br/> | |
13239 | - Overhead: Expensive Language Features<br/> | |
13240 | - -------------------------------------<br/> | |
13241 | -<br/> | |
13242 | - The main "expensive" language feature used in the standard library<br/> | |
13243 | - is exception support, which requires compiling in cleanup code with<br/> | |
13244 | - static table data to locate it, and linking in library code to use<br/> | |
13245 | - the table. For small embedded programs the amount of such library<br/> | |
13246 | - code and table data is assumed by some to be excessive. Under the<br/> | |
13247 | - "new" ABI this perception is generally exaggerated, although in some<br/> | |
13248 | - cases it may actually be excessive.<br/> | |
13249 | -<br/> | |
13250 | - To implement a library which does not use exceptions directly is<br/> | |
13251 | - not difficult given minor compiler support (to "turn off" exceptions<br/> | |
13252 | - and ignore exception constructs), and results in no great library<br/> | |
13253 | - maintenance difficulties. To be precise, given "-fno-exceptions",<br/> | |
13254 | - the compiler should treat "try" blocks as ordinary blocks, and<br/> | |
13255 | - "catch" blocks as dead code to ignore or eliminate. Compiler<br/> | |
13256 | - support is not strictly necessary, except in the case of "function<br/> | |
13257 | - try blocks"; otherwise the following macros almost suffice:<br/> | |
13258 | -<br/> | |
13259 | - #define throw(X)<br/> | |
13260 | - #define try if (true)<br/> | |
13261 | - #define catch(X) else if (false)<br/> | |
13262 | -<br/> | |
13263 | - However, there may be a need to use function try blocks in the<br/> | |
13264 | - library implementation, and use of macros in this way can make<br/> | |
13265 | - correct diagnostics impossible. Furthermore, use of this scheme<br/> | |
13266 | - would require the library to call a function to re-throw exceptions<br/> | |
13267 | - from a try block. Implementing the above semantics in the compiler<br/> | |
13268 | - is preferable.<br/> | |
13269 | -<br/> | |
13270 | - Given the support above (however implemented) it only remains to<br/> | |
13271 | - replace code that "throws" with a call to a well-documented "handler"<br/> | |
13272 | - function in a separate compilation unit which may be replaced by<br/> | |
13273 | - the user. The main source of exceptions that would be difficult<br/> | |
13274 | - for users to avoid is memory allocation failures, but users can<br/> | |
13275 | - define their own memory allocation primitives that never throw.<br/> | |
13276 | - Otherwise, the complete list of such handlers, and which library<br/> | |
13277 | - functions may call them, would be needed for users to be able to<br/> | |
13278 | - implement the necessary substitutes. (Fortunately, they have the<br/> | |
13279 | - source code.)<br/> | |
13280 | -<br/> | |
13281 | - Opportunities<br/> | |
13282 | - -------------<br/> | |
13283 | -<br/> | |
13284 | - The template capabilities of C++ offer enormous opportunities for<br/> | |
13285 | - optimizing common library operations, well beyond what would be<br/> | |
13286 | - considered "eliminating overhead". In particular, many operations<br/> | |
13287 | - done in Glibc with macros that depend on proprietary language<br/> | |
13288 | - extensions can be implemented in pristine Standard C++. For example,<br/> | |
13289 | - the chapter 25 algorithms, and even C library functions such as strchr,<br/> | |
13290 | - can be specialized for the case of static arrays of known (small) size.<br/> | |
13291 | -<br/> | |
13292 | - Detailed optimization opportunities are identified below where<br/> | |
13293 | - the component where they would appear is discussed. Of course new<br/> | |
13294 | - opportunities will be identified during implementation.<br/> | |
13295 | -<br/> | |
13296 | - Unimplemented Required Library Features<br/> | |
13297 | - ---------------------------------------<br/> | |
13298 | -<br/> | |
13299 | - The standard specifies hundreds of components, grouped broadly by<br/> | |
13300 | - chapter. These are listed in excruciating detail in the CHECKLIST<br/> | |
13301 | - file.<br/> | |
13302 | -<br/> | |
13303 | - 17 general<br/> | |
13304 | - 18 support<br/> | |
13305 | - 19 diagnostics<br/> | |
13306 | - 20 utilities<br/> | |
13307 | - 21 string<br/> | |
13308 | - 22 locale<br/> | |
13309 | - 23 containers<br/> | |
13310 | - 24 iterators<br/> | |
13311 | - 25 algorithms<br/> | |
13312 | - 26 numerics<br/> | |
13313 | - 27 iostreams<br/> | |
13314 | - Annex D backward compatibility<br/> | |
13315 | -<br/> | |
13316 | - Anyone participating in implementation of the library should obtain<br/> | |
13317 | - a copy of the standard, ISO 14882. People in the U.S. can obtain an<br/> | |
13318 | - electronic copy for US$18 from ANSI's web site. Those from other<br/> | |
13319 | - countries should visit http://www.iso.org/ to find out the location<br/> | |
13320 | - of their country's representation in ISO, in order to know who can<br/> | |
13321 | - sell them a copy.<br/> | |
13322 | -<br/> | |
13323 | - The emphasis in the following sections is on unimplemented features<br/> | |
13324 | - and optimization opportunities.<br/> | |
13325 | -<br/> | |
13326 | - Chapter 17 General<br/> | |
13327 | - -------------------<br/> | |
13328 | -<br/> | |
13329 | - Chapter 17 concerns overall library requirements.<br/> | |
13330 | -<br/> | |
13331 | - The standard doesn't mention threads. A multi-thread (MT) extension<br/> | |
13332 | - primarily affects operators new and delete (18), allocator (20),<br/> | |
13333 | - string (21), locale (22), and iostreams (27). The common underlying<br/> | |
13334 | - support needed for this is discussed under chapter 20.<br/> | |
13335 | -<br/> | |
13336 | - The standard requirements on names from the C headers create a<br/> | |
13337 | - lot of work, mostly done. Names in the C headers must be visible<br/> | |
13338 | - in the std:: and sometimes the global namespace; the names in the<br/> | |
13339 | - two scopes must refer to the same object. More stringent is that<br/> | |
13340 | - Koenig lookup implies that any types specified as defined in std::<br/> | |
13341 | - really are defined in std::. Names optionally implemented as<br/> | |
13342 | - macros in C cannot be macros in C++. (An overview may be read at<br/> | |
13343 | - <http://www.cantrip.org/cheaders.html>). The scripts "inclosure"<br/> | |
13344 | - and "mkcshadow", and the directories shadow/ and cshadow/, are the<br/> | |
13345 | - beginning of an effort to conform in this area.<br/> | |
13346 | -<br/> | |
13347 | - A correct conforming definition of C header names based on underlying<br/> | |
13348 | - C library headers, and practical linking of conforming namespaced<br/> | |
13349 | - customer code with third-party C libraries depends ultimately on<br/> | |
13350 | - an ABI change, allowing namespaced C type names to be mangled into<br/> | |
13351 | - type names as if they were global, somewhat as C function names in a<br/> | |
13352 | - namespace, or C++ global variable names, are left unmangled. Perhaps<br/> | |
13353 | - another "extern" mode, such as 'extern "C-global"' would be an<br/> | |
13354 | - appropriate place for such type definitions. Such a type would<br/> | |
13355 | - affect mangling as follows:<br/> | |
13356 | -<br/> | |
13357 | - namespace A {<br/> | |
13358 | - struct X {};<br/> | |
13359 | - extern "C-global" { // or maybe just 'extern "C"'<br/> | |
13360 | - struct Y {};<br/> | |
13361 | - };<br/> | |
13362 | - }<br/> | |
13363 | - void f(A::X*); // mangles to f__FPQ21A1X<br/> | |
13364 | - void f(A::Y*); // mangles to f__FP1Y<br/> | |
13365 | -<br/> | |
13366 | - (It may be that this is really the appropriate semantics for regular<br/> | |
13367 | - 'extern "C"', and 'extern "C-global"', as an extension, would not be<br/> | |
13368 | - necessary.) This would allow functions declared in non-standard C headers<br/> | |
13369 | - (and thus fixable by neither us nor users) to link properly with functions<br/> | |
13370 | - declared using C types defined in properly-namespaced headers. The<br/> | |
13371 | - problem this solves is that C headers (which C++ programmers do persist<br/> | |
13372 | - in using) frequently forward-declare C struct tags without including<br/> | |
13373 | - the header where the type is defined, as in<br/> | |
13374 | -<br/> | |
13375 | - struct tm;<br/> | |
13376 | - void munge(tm*);<br/> | |
13377 | -<br/> | |
13378 | - Without some compiler accommodation, munge cannot be called by correct<br/> | |
13379 | - C++ code using a pointer to a correctly-scoped tm* value.<br/> | |
13380 | -<br/> | |
13381 | - The current C headers use the preprocessor extension "#include_next",<br/> | |
13382 | - which the compiler complains about when run "-pedantic".<br/> | |
13383 | - (Incidentally, it appears that "-fpedantic" is currently ignored,<br/> | |
13384 | - probably a bug.) The solution in the C compiler is to use<br/> | |
13385 | - "-isystem" rather than "-I", but unfortunately in g++ this seems<br/> | |
13386 | - also to wrap the whole header in an 'extern "C"' block, so it's<br/> | |
13387 | - unusable for C++ headers. The correct solution appears to be to<br/> | |
13388 | - allow the various special include-directory options, if not given<br/> | |
13389 | - an argument, to affect subsequent include-directory options additively,<br/> | |
13390 | - so that if one said<br/> | |
13391 | -<br/> | |
13392 | - -pedantic -iprefix $(prefix) \<br/> | |
13393 | - -idirafter -ino-pedantic -ino-extern-c -iwithprefix -I g++-v3 \<br/> | |
13394 | - -iwithprefix -I g++-v3/ext<br/> | |
13395 | -<br/> | |
13396 | - the compiler would search $(prefix)/g++-v3 and not report<br/> | |
13397 | - pedantic warnings for files found there, but treat files in<br/> | |
13398 | - $(prefix)/g++-v3/ext pedantically. (The undocumented semantics<br/> | |
13399 | - of "-isystem" in g++ stink. Can they be rescinded? If not it<br/> | |
13400 | - must be replaced with something more rationally behaved.)<br/> | |
13401 | -<br/> | |
13402 | - All the C headers need the treatment above; in the standard these<br/> | |
13403 | - headers are mentioned in various chapters. Below, I have only<br/> | |
13404 | - mentioned those that present interesting implementation issues.<br/> | |
13405 | -<br/> | |
13406 | - The components identified as "mostly complete", below, have not been<br/> | |
13407 | - audited for conformance. In many cases where the library passes<br/> | |
13408 | - conformance tests we have non-conforming extensions that must be<br/> | |
13409 | - wrapped in #if guards for "pedantic" use, and in some cases renamed<br/> | |
13410 | - in a conforming way for continued use in the implementation regardless<br/> | |
13411 | - of conformance flags.<br/> | |
13412 | -<br/> | |
13413 | - The STL portion of the library still depends on a header<br/> | |
13414 | - stl/bits/stl_config.h full of #ifdef clauses. This apparatus<br/> | |
13415 | - should be replaced with autoconf/automake machinery.<br/> | |
13416 | -<br/> | |
13417 | - The SGI STL defines a type_traits<> template, specialized for<br/> | |
13418 | - many types in their code including the built-in numeric and<br/> | |
13419 | - pointer types and some library types, to direct optimizations of<br/> | |
13420 | - standard functions. The SGI compiler has been extended to generate<br/> | |
13421 | - specializations of this template automatically for user types,<br/> | |
13422 | - so that use of STL templates on user types can take advantage of<br/> | |
13423 | - these optimizations. Specializations for other, non-STL, types<br/> | |
13424 | - would make more optimizations possible, but extending the gcc<br/> | |
13425 | - compiler in the same way would be much better. Probably the next<br/> | |
13426 | - round of standardization will ratify this, but probably with<br/> | |
13427 | - changes, so it probably should be renamed to place it in the<br/> | |
13428 | - implementation namespace.<br/> | |
13429 | -<br/> | |
13430 | - The SGI STL also defines a large number of extensions visible in<br/> | |
13431 | - standard headers. (Other extensions that appear in separate headers<br/> | |
13432 | - have been sequestered in subdirectories ext/ and backward/.) All<br/> | |
13433 | - these extensions should be moved to other headers where possible,<br/> | |
13434 | - and in any case wrapped in a namespace (not std!), and (where kept<br/> | |
13435 | - in a standard header) girded about with macro guards. Some cannot be<br/> | |
13436 | - moved out of standard headers because they are used to implement<br/> | |
13437 | - standard features. The canonical method for accommodating these<br/> | |
13438 | - is to use a protected name, aliased in macro guards to a user-space<br/> | |
13439 | - name. Unfortunately C++ offers no satisfactory template typedef<br/> | |
13440 | - mechanism, so very ad-hoc and unsatisfactory aliasing must be used<br/> | |
13441 | - instead.<br/> | |
13442 | -<br/> | |
13443 | - Implementation of a template typedef mechanism should have the highest<br/> | |
13444 | - priority among possible extensions, on the same level as implementation<br/> | |
13445 | - of the template "export" feature.<br/> | |
13446 | -<br/> | |
13447 | - Chapter 18 Language support<br/> | |
13448 | - ----------------------------<br/> | |
13449 | -<br/> | |
13450 | - Headers: <limits> <new> <typeinfo> <exception><br/> | |
13451 | - C headers: <cstddef> <climits> <cfloat> <cstdarg> <csetjmp><br/> | |
13452 | - <ctime> <csignal> <cstdlib> (also 21, 25, 26)<br/> | |
13453 | -<br/> | |
13454 | - This defines the built-in exceptions, rtti, numeric_limits<>,<br/> | |
13455 | - operator new and delete. Much of this is provided by the<br/> | |
13456 | - compiler in its static runtime library.<br/> | |
13457 | -<br/> | |
13458 | - Work to do includes defining numeric_limits<> specializations in<br/> | |
13459 | - separate files for all target architectures. Values for integer types<br/> | |
13460 | - except for bool and wchar_t are readily obtained from the C header<br/> | |
13461 | - <limits.h>, but values for the remaining numeric types (bool, wchar_t,<br/> | |
13462 | - float, double, long double) must be entered manually. This is<br/> | |
13463 | - largely dog work except for those members whose values are not<br/> | |
13464 | - easily deduced from available documentation. Also, this involves<br/> | |
13465 | - some work in target configuration to identify the correct choice of<br/> | |
13466 | - file to build against and to install.<br/> | |
13467 | -<br/> | |
13468 | - The definitions of the various operators new and delete must be<br/> | |
13469 | - made thread-safe, which depends on a portable exclusion mechanism,<br/> | |
13470 | - discussed under chapter 20. Of course there is always plenty of<br/> | |
13471 | - room for improvements to the speed of operators new and delete.<br/> | |
13472 | -<br/> | |
13473 | - <cstdarg>, in Glibc, defines some macros that gcc does not allow to<br/> | |
13474 | - be wrapped into an inline function. Probably this header will demand<br/> | |
13475 | - attention whenever a new target is chosen. The functions atexit(),<br/> | |
13476 | - exit(), and abort() in cstdlib have different semantics in C++, so<br/> | |
13477 | - must be re-implemented for C++.<br/> | |
13478 | -<br/> | |
13479 | - Chapter 19 Diagnostics<br/> | |
13480 | - -----------------------<br/> | |
13481 | -<br/> | |
13482 | - Headers: <stdexcept><br/> | |
13483 | - C headers: <cassert> <cerrno><br/> | |
13484 | -<br/> | |
13485 | - This defines the standard exception objects, which are "mostly complete".<br/> | |
13486 | - Cygnus has a version, and now SGI provides a slightly different one.<br/> | |
13487 | - It makes little difference which we use.<br/> | |
13488 | -<br/> | |
13489 | - The C global name "errno", which C allows to be a variable or a macro,<br/> | |
13490 | - is required in C++ to be a macro. For MT it must typically result in<br/> | |
13491 | - a function call.<br/> | |
13492 | -<br/> | |
13493 | - Chapter 20 Utilities<br/> | |
13494 | - ---------------------<br/> | |
13495 | - Headers: <utility> <functional> <memory><br/> | |
13496 | - C header: <ctime> (also in 18)<br/> | |
13497 | -<br/> | |
13498 | - SGI STL provides "mostly complete" versions of all the components<br/> | |
13499 | - defined in this chapter. However, the auto_ptr<> implementation<br/> | |
13500 | - is known to be wrong. Furthermore, the standard definition of it<br/> | |
13501 | - is known to be unimplementable as written. A minor change to the<br/> | |
13502 | - standard would fix it, and auto_ptr<> should be adjusted to match.<br/> | |
13503 | -<br/> | |
13504 | - Multi-threading affects the allocator implementation, and there must<br/> | |
13505 | - be configuration/installation choices for different users' MT<br/> | |
13506 | - requirements. Anyway, users will want to tune allocator options<br/> | |
13507 | - to support different target conditions, MT or no.<br/> | |
13508 | -<br/> | |
13509 | - The primitives used for MT implementation should be exposed, as an<br/> | |
13510 | - extension, for users' own work. We need cross-CPU "mutex" support,<br/> | |
13511 | - multi-processor shared-memory atomic integer operations, and single-<br/> | |
13512 | - processor uninterruptible integer operations, and all three configurable<br/> | |
13513 | - to be stubbed out for non-MT use, or to use an appropriately-loaded<br/> | |
13514 | - dynamic library for the actual runtime environment, or statically<br/> | |
13515 | - compiled in for cases where the target architecture is known.<br/> | |
13516 | -<br/> | |
13517 | - Chapter 21 String<br/> | |
13518 | - ------------------<br/> | |
13519 | - Headers: <string><br/> | |
13520 | - C headers: <cctype> <cwctype> <cstring> <cwchar> (also in 27)<br/> | |
13521 | - <cstdlib> (also in 18, 25, 26)<br/> | |
13522 | -<br/> | |
13523 | - We have "mostly-complete" char_traits<> implementations. Many of the<br/> | |
13524 | - char_traits<char> operations might be optimized further using existing<br/> | |
13525 | - proprietary language extensions.<br/> | |
13526 | -<br/> | |
13527 | - We have a "mostly-complete" basic_string<> implementation. The work<br/> | |
13528 | - to manually instantiate char and wchar_t specializations in object<br/> | |
13529 | - files to improve link-time behavior is extremely unsatisfactory,<br/> | |
13530 | - literally tripling library-build time with no commensurate improvement<br/> | |
13531 | - in static program link sizes. It must be redone. (Similar work is<br/> | |
13532 | - needed for some components in chapters 22 and 27.)<br/> | |
13533 | -<br/> | |
13534 | - Other work needed for strings is MT-safety, as discussed under the<br/> | |
13535 | - chapter 20 heading.<br/> | |
13536 | -<br/> | |
13537 | - The standard C type mbstate_t from <cwchar> and used in char_traits<><br/> | |
13538 | - must be different in C++ than in C, because in C++ the default constructor<br/> | |
13539 | - value mbstate_t() must be the "base" or "ground" sequence state.<br/> | |
13540 | - (According to the likely resolution of a recently raised Core issue,<br/> | |
13541 | - this may become unnecessary. However, there are other reasons to<br/> | |
13542 | - use a state type not as limited as whatever the C library provides.)<br/> | |
13543 | - If we might want to provide conversions from (e.g.) internally-<br/> | |
13544 | - represented EUC-wide to externally-represented Unicode, or vice-<br/> | |
13545 | - versa, the mbstate_t we choose will need to be more accommodating<br/> | |
13546 | - than what might be provided by an underlying C library.<br/> | |
13547 | -<br/> | |
13548 | - There remain some basic_string template-member functions which do<br/> | |
13549 | - not overload properly with their non-template brethren. The infamous<br/> | |
13550 | - hack akin to what was done in vector<> is needed, to conform to<br/> | |
13551 | - 23.1.1 para 10. The CHECKLIST items for basic_string marked 'X',<br/> | |
13552 | - or incomplete, are so marked for this reason.<br/> | |
13553 | -<br/> | |
13554 | - Replacing the string iterators, which currently are simple character<br/> | |
13555 | - pointers, with class objects would greatly increase the safety of the<br/> | |
13556 | - client interface, and also permit a "debug" mode in which range,<br/> | |
13557 | - ownership, and validity are rigorously checked. The current use of<br/> | |
13558 | - raw pointers as string iterators is evil. vector<> iterators need the<br/> | |
13559 | - same treatment. Note that the current implementation freely mixes<br/> | |
13560 | - pointers and iterators, and that must be fixed before safer iterators<br/> | |
13561 | - can be introduced.<br/> | |
13562 | -<br/> | |
13563 | - Some of the functions in <cstring> are different from the C version.<br/> | |
13564 | - generally overloaded on const and non-const argument pointers. For<br/> | |
13565 | - example, in <cstring> strchr is overloaded. The functions isupper<br/> | |
13566 | - etc. in <cctype> typically implemented as macros in C are functions<br/> | |
13567 | - in C++, because they are overloaded with others of the same name<br/> | |
13568 | - defined in <locale>.<br/> | |
13569 | -<br/> | |
13570 | - Many of the functions required in <cwctype> and <cwchar> cannot be<br/> | |
13571 | - implemented using underlying C facilities on intended targets because<br/> | |
13572 | - such facilities only partly exist.<br/> | |
13573 | -<br/> | |
13574 | - Chapter 22 Locale<br/> | |
13575 | - ------------------<br/> | |
13576 | - Headers: <locale><br/> | |
13577 | - C headers: <clocale><br/> | |
13578 | -<br/> | |
13579 | - We have a "mostly complete" class locale, with the exception of<br/> | |
13580 | - code for constructing, and handling the names of, named locales.<br/> | |
13581 | - The ways that locales are named (particularly when categories<br/> | |
13582 | - (e.g. LC_TIME, LC_COLLATE) are different) varies among all target<br/> | |
13583 | - environments. This code must be written in various versions and<br/> | |
13584 | - chosen by configuration parameters.<br/> | |
13585 | -<br/> | |
13586 | - Members of many of the facets defined in <locale> are stubs. Generally,<br/> | |
13587 | - there are two sets of facets: the base class facets (which are supposed<br/> | |
13588 | - to implement the "C" locale) and the "byname" facets, which are supposed<br/> | |
13589 | - to read files to determine their behavior. The base ctype<>, collate<>,<br/> | |
13590 | - and numpunct<> facets are "mostly complete", except that the table of<br/> | |
13591 | - bitmask values used for "is" operations, and corresponding mask values,<br/> | |
13592 | - are still defined in libio and just included/linked. (We will need to<br/> | |
13593 | - implement these tables independently, soon, but should take advantage<br/> | |
13594 | - of libio where possible.) The num_put<>::put members for integer types<br/> | |
13595 | - are "mostly complete".<br/> | |
13596 | -<br/> | |
13597 | - A complete list of what has and has not been implemented may be<br/> | |
13598 | - found in CHECKLIST. However, note that the current definition of<br/> | |
13599 | - codecvt<wchar_t,char,mbstate_t> is wrong. It should simply write<br/> | |
13600 | - out the raw bytes representing the wide characters, rather than<br/> | |
13601 | - trying to convert each to a corresponding single "char" value.<br/> | |
13602 | -<br/> | |
13603 | - Some of the facets are more important than others. Specifically,<br/> | |
13604 | - the members of ctype<>, numpunct<>, num_put<>, and num_get<> facets<br/> | |
13605 | - are used by other library facilities defined in <string>, <istream>,<br/> | |
13606 | - and <ostream>, and the codecvt<> facet is used by basic_filebuf<><br/> | |
13607 | - in <fstream>, so a conforming iostream implementation depends on<br/> | |
13608 | - these.<br/> | |
13609 | -<br/> | |
13610 | - The "long long" type eventually must be supported, but code mentioning<br/> | |
13611 | - it should be wrapped in #if guards to allow pedantic-mode compiling.<br/> | |
13612 | -<br/> | |
13613 | - Performance of num_put<> and num_get<> depend critically on<br/> | |
13614 | - caching computed values in ios_base objects, and on extensions<br/> | |
13615 | - to the interface with streambufs.<br/> | |
13616 | -<br/> | |
13617 | - Specifically: retrieving a copy of the locale object, extracting<br/> | |
13618 | - the needed facets, and gathering data from them, for each call to<br/> | |
13619 | - (e.g.) operator<< would be prohibitively slow. To cache format<br/> | |
13620 | - data for use by num_put<> and num_get<> we have a _Format_cache<><br/> | |
13621 | - object stored in the ios_base::pword() array. This is constructed<br/> | |
13622 | - and initialized lazily, and is organized purely for utility. It<br/> | |
13623 | - is discarded when a new locale with different facets is imbued.<br/> | |
13624 | -<br/> | |
13625 | - Using only the public interfaces of the iterator arguments to the<br/> | |
13626 | - facet functions would limit performance by forbidding "vector-style"<br/> | |
13627 | - character operations. The streambuf iterator optimizations are<br/> | |
13628 | - described under chapter 24, but facets can also bypass the streambuf<br/> | |
13629 | - iterators via explicit specializations and operate directly on the<br/> | |
13630 | - streambufs, and use extended interfaces to get direct access to the<br/> | |
13631 | - streambuf internal buffer arrays. These extensions are mentioned<br/> | |
13632 | - under chapter 27. These optimizations are particularly important<br/> | |
13633 | - for input parsing.<br/> | |
13634 | -<br/> | |
13635 | - Unused virtual members of locale facets can be omitted, as mentioned<br/> | |
13636 | - above, by a smart linker.<br/> | |
13637 | -<br/> | |
13638 | - Chapter 23 Containers<br/> | |
13639 | - ----------------------<br/> | |
13640 | - Headers: <deque> <list> <queue> <stack> <vector> <map> <set> <bitset><br/> | |
13641 | -<br/> | |
13642 | - All the components in chapter 23 are implemented in the SGI STL.<br/> | |
13643 | - They are "mostly complete"; they include a large number of<br/> | |
13644 | - nonconforming extensions which must be wrapped. Some of these<br/> | |
13645 | - are used internally and must be renamed or duplicated.<br/> | |
13646 | -<br/> | |
13647 | - The SGI components are optimized for large-memory environments. For<br/> | |
13648 | - embedded targets, different criteria might be more appropriate. Users<br/> | |
13649 | - will want to be able to tune this behavior. We should provide<br/> | |
13650 | - ways for users to compile the library with different memory usage<br/> | |
13651 | - characteristics.<br/> | |
13652 | -<br/> | |
13653 | - A lot more work is needed on factoring out common code from different<br/> | |
13654 | - specializations to reduce code size here and in chapter 25. The<br/> | |
13655 | - easiest fix for this would be a compiler/ABI improvement that allows<br/> | |
13656 | - the compiler to recognize when a specialization depends only on the<br/> | |
13657 | - size (or other gross quality) of a template argument, and allow the<br/> | |
13658 | - linker to share the code with similar specializations. In its<br/> | |
13659 | - absence, many of the algorithms and containers can be partial-<br/> | |
13660 | - specialized, at least for the case of pointers, but this only solves<br/> | |
13661 | - a small part of the problem. Use of a type_traits-style template<br/> | |
13662 | - allows a few more optimization opportunities, more if the compiler<br/> | |
13663 | - can generate the specializations automatically.<br/> | |
13664 | -<br/> | |
13665 | - As an optimization, containers can specialize on the default allocator<br/> | |
13666 | - and bypass it, or take advantage of details of its implementation<br/> | |
13667 | - after it has been improved upon.<br/> | |
13668 | -<br/> | |
13669 | - Replacing the vector iterators, which currently are simple element<br/> | |
13670 | - pointers, with class objects would greatly increase the safety of the<br/> | |
13671 | - client interface, and also permit a "debug" mode in which range,<br/> | |
13672 | - ownership, and validity are rigorously checked. The current use of<br/> | |
13673 | - pointers for iterators is evil.<br/> | |
13674 | -<br/> | |
13675 | - As mentioned for chapter 24, the deque iterator is a good example of<br/> | |
13676 | - an opportunity to implement a "staged" iterator that would benefit<br/> | |
13677 | - from specializations of some algorithms.<br/> | |
13678 | -<br/> | |
13679 | - Chapter 24 Iterators<br/> | |
13680 | - ---------------------<br/> | |
13681 | - Headers: <iterator><br/> | |
13682 | -<br/> | |
13683 | - Standard iterators are "mostly complete", with the exception of<br/> | |
13684 | - the stream iterators, which are not yet templatized on the<br/> | |
13685 | - stream type. Also, the base class template iterator<> appears<br/> | |
13686 | - to be wrong, so everything derived from it must also be wrong,<br/> | |
13687 | - currently.<br/> | |
13688 | -<br/> | |
13689 | - The streambuf iterators (currently located in stl/bits/std_iterator.h,<br/> | |
13690 | - but should be under bits/) can be rewritten to take advantage of<br/> | |
13691 | - friendship with the streambuf implementation.<br/> | |
13692 | -<br/> | |
13693 | - Matt Austern has identified opportunities where certain iterator<br/> | |
13694 | - types, particularly including streambuf iterators and deque<br/> | |
13695 | - iterators, have a "two-stage" quality, such that an intermediate<br/> | |
13696 | - limit can be checked much more quickly than the true limit on<br/> | |
13697 | - range operations. If identified with a member of iterator_traits,<br/> | |
13698 | - algorithms may be specialized for this case. Of course the<br/> | |
13699 | - iterators that have this quality can be identified by specializing<br/> | |
13700 | - a traits class.<br/> | |
13701 | -<br/> | |
13702 | - Many of the algorithms must be specialized for the streambuf<br/> | |
13703 | - iterators, to take advantage of block-mode operations, in order<br/> | |
13704 | - to allow iostream/locale operations' performance not to suffer.<br/> | |
13705 | - It may be that they could be treated as staged iterators and<br/> | |
13706 | - take advantage of those optimizations.<br/> | |
13707 | -<br/> | |
13708 | - Chapter 25 Algorithms<br/> | |
13709 | - ----------------------<br/> | |
13710 | - Headers: <algorithm><br/> | |
13711 | - C headers: <cstdlib> (also in 18, 21, 26))<br/> | |
13712 | -<br/> | |
13713 | - The algorithms are "mostly complete". As mentioned above, they<br/> | |
13714 | - are optimized for speed at the expense of code and data size.<br/> | |
13715 | -<br/> | |
13716 | - Specializations of many of the algorithms for non-STL types would<br/> | |
13717 | - give performance improvements, but we must use great care not to<br/> | |
13718 | - interfere with fragile template overloading semantics for the<br/> | |
13719 | - standard interfaces. Conventionally the standard function template<br/> | |
13720 | - interface is an inline which delegates to a non-standard function<br/> | |
13721 | - which is then overloaded (this is already done in many places in<br/> | |
13722 | - the library). Particularly appealing opportunities for the sake of<br/> | |
13723 | - iostream performance are for copy and find applied to streambuf<br/> | |
13724 | - iterators or (as noted elsewhere) for staged iterators, of which<br/> | |
13725 | - the streambuf iterators are a good example.<br/> | |
13726 | -<br/> | |
13727 | - The bsearch and qsort functions cannot be overloaded properly as<br/> | |
13728 | - required by the standard because gcc does not yet allow overloading<br/> | |
13729 | - on the extern-"C"-ness of a function pointer.<br/> | |
13730 | -<br/> | |
13731 | - Chapter 26 Numerics<br/> | |
13732 | - --------------------<br/> | |
13733 | - Headers: <complex> <valarray> <numeric><br/> | |
13734 | - C headers: <cmath>, <cstdlib> (also 18, 21, 25)<br/> | |
13735 | -<br/> | |
13736 | - Numeric components: Gabriel dos Reis's valarray, Drepper's complex,<br/> | |
13737 | - and the few algorithms from the STL are "mostly done". Of course<br/> | |
13738 | - optimization opportunities abound for the numerically literate. It<br/> | |
13739 | - is not clear whether the valarray implementation really conforms<br/> | |
13740 | - fully, in the assumptions it makes about aliasing (and lack thereof)<br/> | |
13741 | - in its arguments.<br/> | |
13742 | -<br/> | |
13743 | - The C div() and ldiv() functions are interesting, because they are the<br/> | |
13744 | - only case where a C library function returns a class object by value.<br/> | |
13745 | - Since the C++ type div_t must be different from the underlying C type<br/> | |
13746 | - (which is in the wrong namespace) the underlying functions div() and<br/> | |
13747 | - ldiv() cannot be re-used efficiently. Fortunately they are trivial to<br/> | |
13748 | - re-implement.<br/> | |
13749 | -<br/> | |
13750 | - Chapter 27 Iostreams<br/> | |
13751 | - ---------------------<br/> | |
13752 | - Headers: <iosfwd> <streambuf> <ios> <ostream> <istream> <iostream><br/> | |
13753 | - <iomanip> <sstream> <fstream><br/> | |
13754 | - C headers: <cstdio> <cwchar> (also in 21)<br/> | |
13755 | -<br/> | |
13756 | - Iostream is currently in a very incomplete state. <iosfwd>, <iomanip>,<br/> | |
13757 | - ios_base, and basic_ios<> are "mostly complete". basic_streambuf<> and<br/> | |
13758 | - basic_ostream<> are well along, but basic_istream<> has had little work<br/> | |
13759 | - done. The standard stream objects, <sstream> and <fstream> have been<br/> | |
13760 | - started; basic_filebuf<> "write" functions have been implemented just<br/> | |
13761 | - enough to do "hello, world".<br/> | |
13762 | -<br/> | |
13763 | - Most of the istream and ostream operators << and >> (with the exception<br/> | |
13764 | - of the op<<(integer) ones) have not been changed to use locale primitives,<br/> | |
13765 | - sentry objects, or char_traits members.<br/> | |
13766 | -<br/> | |
13767 | - All these templates should be manually instantiated for char and<br/> | |
13768 | - wchar_t in a way that links only used members into user programs.<br/> | |
13769 | -<br/> | |
13770 | - Streambuf is fertile ground for optimization extensions. An extended<br/> | |
13771 | - interface giving iterator access to its internal buffer would be very<br/> | |
13772 | - useful for other library components.<br/> | |
13773 | -<br/> | |
13774 | - Iostream operations (primarily operators << and >>) can take advantage<br/> | |
13775 | - of the case where user code has not specified a locale, and bypass locale<br/> | |
13776 | - operations entirely. The current implementation of op<</num_put<>::put,<br/> | |
13777 | - for the integer types, demonstrates how they can cache encoding details<br/> | |
13778 | - from the locale on each operation. There is lots more room for<br/> | |
13779 | - optimization in this area.<br/> | |
13780 | -<br/> | |
13781 | - The definition of the relationship between the standard streams<br/> | |
13782 | - cout et al. and stdout et al. requires something like a "stdiobuf".<br/> | |
13783 | - The SGI solution of using double-indirection to actually use a<br/> | |
13784 | - stdio FILE object for buffering is unsatisfactory, because it<br/> | |
13785 | - interferes with peephole loop optimizations.<br/> | |
13786 | -<br/> | |
13787 | - The <sstream> header work has begun. stringbuf can benefit from<br/> | |
13788 | - friendship with basic_string<> and basic_string<>::_Rep to use<br/> | |
13789 | - those objects directly as buffers, and avoid allocating and making<br/> | |
13790 | - copies.<br/> | |
13791 | -<br/> | |
13792 | - The basic_filebuf<> template is a complex beast. It is specified to<br/> | |
13793 | - use the locale facet codecvt<> to translate characters between native<br/> | |
13794 | - files and the locale character encoding. In general this involves<br/> | |
13795 | - two buffers, one of "char" representing the file and another of<br/> | |
13796 | - "char_type", for the stream, with codecvt<> translating. The process<br/> | |
13797 | - is complicated by the variable-length nature of the translation, and<br/> | |
13798 | - the need to seek to corresponding places in the two representations.<br/> | |
13799 | - For the case of basic_filebuf<char>, when no translation is needed,<br/> | |
13800 | - a single buffer suffices. A specialized filebuf can be used to reduce<br/> | |
13801 | - code space overhead when no locale has been imbued. Matt Austern's<br/> | |
13802 | - work at SGI will be useful, perhaps directly as a source of code, or<br/> | |
13803 | - at least as an example to draw on.<br/> | |
13804 | -<br/> | |
13805 | - Filebuf, almost uniquely (cf. operator new), depends heavily on<br/> | |
13806 | - underlying environmental facilities. In current releases iostream<br/> | |
13807 | - depends fairly heavily on libio constant definitions, but it should<br/> | |
13808 | - be made independent. It also depends on operating system primitives<br/> | |
13809 | - for file operations. There is immense room for optimizations using<br/> | |
13810 | - (e.g.) mmap for reading. The shadow/ directory wraps, besides the<br/> | |
13811 | - standard C headers, the libio.h and unistd.h headers, for use mainly<br/> | |
13812 | - by filebuf. These wrappings have not been completed, though there<br/> | |
13813 | - is scaffolding in place.<br/> | |
13814 | -<br/> | |
13815 | - The encapsulation of certain C header <cstdio> names presents an<br/> | |
13816 | - interesting problem. It is possible to define an inline std::fprintf()<br/> | |
13817 | - implemented in terms of the 'extern "C"' vfprintf(), but there is no<br/> | |
13818 | - standard vfscanf() to use to implement std::fscanf(). It appears that<br/> | |
13819 | - vfscanf but be re-implemented in C++ for targets where no vfscanf<br/> | |
13820 | - extension has been defined. This is interesting in that it seems<br/> | |
13821 | - to be the only significant case in the C library where this kind of<br/> | |
13822 | - rewriting is necessary. (Of course Glibc provides the vfscanf()<br/> | |
13823 | - extension.) (The functions related to exit() must be rewritten<br/> | |
13824 | - for other reasons.)<br/> | |
13825 | -<br/> | |
13826 | -<br/> | |
13827 | - Annex D<br/> | |
13828 | - -------<br/> | |
13829 | - Headers: <strstream><br/> | |
13830 | -<br/> | |
13831 | - Annex D defines many non-library features, and many minor<br/> | |
13832 | - modifications to various headers, and a complete header.<br/> | |
13833 | - It is "mostly done", except that the libstdc++-2 <strstream><br/> | |
13834 | - header has not been adopted into the library, or checked to<br/> | |
13835 | - verify that it matches the draft in those details that were<br/> | |
13836 | - clarified by the committee. Certainly it must at least be<br/> | |
13837 | - moved into the std namespace.<br/> | |
13838 | -<br/> | |
13839 | - We still need to wrap all the deprecated features in #if guards<br/> | |
13840 | - so that pedantic compile modes can detect their use.<br/> | |
13841 | -<br/> | |
13842 | - Nonstandard Extensions<br/> | |
13843 | - ----------------------<br/> | |
13844 | - Headers: <iostream.h> <strstream.h> <hash> <rbtree><br/> | |
13845 | - <pthread_alloc> <stdiobuf> (etc.)<br/> | |
13846 | -<br/> | |
13847 | - User code has come to depend on a variety of nonstandard components<br/> | |
13848 | - that we must not omit. Much of this code can be adopted from<br/> | |
13849 | - libstdc++-v2 or from the SGI STL. This particularly includes<br/> | |
13850 | - <iostream.h>, <strstream.h>, and various SGI extensions such<br/> | |
13851 | - as <hash_map.h>. Many of these are already placed in the<br/> | |
13852 | - subdirectories ext/ and backward/. (Note that it is better to<br/> | |
13853 | - include them via "<backward/hash_map.h>" or "<ext/hash_map>" than<br/> | |
13854 | - to search the subdirectory itself via a "-I" directive.<br/> | |
13855 | - </p></div></div><div class="navfooter"><hr/><table width="100%" summary="Navigation footer"><tr><td align="left"><a accesskey="p" href="source_code_style.html">Prev</a> </td><td align="center"><a accesskey="u" href="appendix_contributing.html">Up</a></td><td align="right"> <a accesskey="n" href="appendix_porting.html">Next</a></td></tr><tr><td align="left" valign="top">Coding Style </td><td align="center"><a accesskey="h" href="../index.html">Home</a></td><td align="right" valign="top"> Appendix B. | |
13856 | +</th><td width="20%" align="right"> <a accesskey="n" href="appendix_porting.html">Next</a></td></tr></table><hr /></div><div class="section" title="Design Notes"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="contrib.design_notes"></a>Design Notes</h2></div></div></div><p> | |
13857 | + </p><div class="literallayout"><p><br /> | |
13858 | +<br /> | |
13859 | + The Library<br /> | |
13860 | + -----------<br /> | |
13861 | +<br /> | |
13862 | + This paper is covers two major areas:<br /> | |
13863 | +<br /> | |
13864 | + - Features and policies not mentioned in the standard that<br /> | |
13865 | + the quality of the library implementation depends on, including<br /> | |
13866 | + extensions and "implementation-defined" features;<br /> | |
13867 | +<br /> | |
13868 | + - Plans for required but unimplemented library features and<br /> | |
13869 | + optimizations to them.<br /> | |
13870 | +<br /> | |
13871 | + Overhead<br /> | |
13872 | + --------<br /> | |
13873 | +<br /> | |
13874 | + The standard defines a large library, much larger than the standard<br /> | |
13875 | + C library. A naive implementation would suffer substantial overhead<br /> | |
13876 | + in compile time, executable size, and speed, rendering it unusable<br /> | |
13877 | + in many (particularly embedded) applications. The alternative demands<br /> | |
13878 | + care in construction, and some compiler support, but there is no<br /> | |
13879 | + need for library subsets.<br /> | |
13880 | +<br /> | |
13881 | + What are the sources of this overhead? There are four main causes:<br /> | |
13882 | +<br /> | |
13883 | + - The library is specified almost entirely as templates, which<br /> | |
13884 | + with current compilers must be included in-line, resulting in<br /> | |
13885 | + very slow builds as tens or hundreds of thousands of lines<br /> | |
13886 | + of function definitions are read for each user source file.<br /> | |
13887 | + Indeed, the entire SGI STL, as well as the dos Reis valarray,<br /> | |
13888 | + are provided purely as header files, largely for simplicity in<br /> | |
13889 | + porting. Iostream/locale is (or will be) as large again.<br /> | |
13890 | +<br /> | |
13891 | + - The library is very flexible, specifying a multitude of hooks<br /> | |
13892 | + where users can insert their own code in place of defaults.<br /> | |
13893 | + When these hooks are not used, any time and code expended to<br /> | |
13894 | + support that flexibility is wasted.<br /> | |
13895 | +<br /> | |
13896 | + - Templates are often described as causing to "code bloat". In<br /> | |
13897 | + practice, this refers (when it refers to anything real) to several<br /> | |
13898 | + independent processes. First, when a class template is manually<br /> | |
13899 | + instantiated in its entirely, current compilers place the definitions<br /> | |
13900 | + for all members in a single object file, so that a program linking<br /> | |
13901 | + to one member gets definitions of all. Second, template functions<br /> | |
13902 | + which do not actually depend on the template argument are, under<br /> | |
13903 | + current compilers, generated anew for each instantiation, rather<br /> | |
13904 | + than being shared with other instantiations. Third, some of the<br /> | |
13905 | + flexibility mentioned above comes from virtual functions (both in<br /> | |
13906 | + regular classes and template classes) which current linkers add<br /> | |
13907 | + to the executable file even when they manifestly cannot be called.<br /> | |
13908 | +<br /> | |
13909 | + - The library is specified to use a language feature, exceptions,<br /> | |
13910 | + which in the current gcc compiler ABI imposes a run time and<br /> | |
13911 | + code space cost to handle the possibility of exceptions even when<br /> | |
13912 | + they are not used. Under the new ABI (accessed with -fnew-abi),<br /> | |
13913 | + there is a space overhead and a small reduction in code efficiency<br /> | |
13914 | + resulting from lost optimization opportunities associated with<br /> | |
13915 | + non-local branches associated with exceptions.<br /> | |
13916 | +<br /> | |
13917 | + What can be done to eliminate this overhead? A variety of coding<br /> | |
13918 | + techniques, and compiler, linker and library improvements and<br /> | |
13919 | + extensions may be used, as covered below. Most are not difficult,<br /> | |
13920 | + and some are already implemented in varying degrees.<br /> | |
13921 | +<br /> | |
13922 | + Overhead: Compilation Time<br /> | |
13923 | + --------------------------<br /> | |
13924 | +<br /> | |
13925 | + Providing "ready-instantiated" template code in object code archives<br /> | |
13926 | + allows us to avoid generating and optimizing template instantiations<br /> | |
13927 | + in each compilation unit which uses them. However, the number of such<br /> | |
13928 | + instantiations that are useful to provide is limited, and anyway this<br /> | |
13929 | + is not enough, by itself, to minimize compilation time. In particular,<br /> | |
13930 | + it does not reduce time spent parsing conforming headers.<br /> | |
13931 | +<br /> | |
13932 | + Quicker header parsing will depend on library extensions and compiler<br /> | |
13933 | + improvements. One approach is some variation on the techniques<br /> | |
13934 | + previously marketed as "pre-compiled headers", now standardized as<br /> | |
13935 | + support for the "export" keyword. "Exported" template definitions<br /> | |
13936 | + can be placed (once) in a "repository" -- really just a library, but<br /> | |
13937 | + of template definitions rather than object code -- to be drawn upon<br /> | |
13938 | + at link time when an instantiation is needed, rather than placed in<br /> | |
13939 | + header files to be parsed along with every compilation unit.<br /> | |
13940 | +<br /> | |
13941 | + Until "export" is implemented we can put some of the lengthy template<br /> | |
13942 | + definitions in #if guards or alternative headers so that users can skip<br /> | |
13943 | + over the full definitions when they need only the ready-instantiated<br /> | |
13944 | + specializations.<br /> | |
13945 | +<br /> | |
13946 | + To be precise, this means that certain headers which define<br /> | |
13947 | + templates which users normally use only for certain arguments<br /> | |
13948 | + can be instrumented to avoid exposing the template definitions<br /> | |
13949 | + to the compiler unless a macro is defined. For example, in<br /> | |
13950 | + <string>, we might have:<br /> | |
13951 | +<br /> | |
13952 | + template <class _CharT, ... > class basic_string {<br /> | |
13953 | + ... // member declarations<br /> | |
13954 | + };<br /> | |
13955 | + ... // operator declarations<br /> | |
13956 | +<br /> | |
13957 | + #ifdef _STRICT_ISO_<br /> | |
13958 | + # if _G_NO_TEMPLATE_EXPORT<br /> | |
13959 | + # include <bits/std_locale.h> // headers needed by definitions<br /> | |
13960 | + # ...<br /> | |
13961 | + # include <bits/string.tcc> // member and global template definitions.<br /> | |
13962 | + # endif<br /> | |
13963 | + #endif<br /> | |
13964 | +<br /> | |
13965 | + Users who compile without specifying a strict-ISO-conforming flag<br /> | |
13966 | + would not see many of the template definitions they now see, and rely<br /> | |
13967 | + instead on ready-instantiated specializations in the library. This<br /> | |
13968 | + technique would be useful for the following substantial components:<br /> | |
13969 | + string, locale/iostreams, valarray. It would *not* be useful or<br /> | |
13970 | + usable with the following: containers, algorithms, iterators,<br /> | |
13971 | + allocator. Since these constitute a large (though decreasing)<br /> | |
13972 | + fraction of the library, the benefit the technique offers is<br /> | |
13973 | + limited.<br /> | |
13974 | +<br /> | |
13975 | + The language specifies the semantics of the "export" keyword, but<br /> | |
13976 | + the gcc compiler does not yet support it. When it does, problems<br /> | |
13977 | + with large template inclusions can largely disappear, given some<br /> | |
13978 | + minor library reorganization, along with the need for the apparatus<br /> | |
13979 | + described above.<br /> | |
13980 | +<br /> | |
13981 | + Overhead: Flexibility Cost<br /> | |
13982 | + --------------------------<br /> | |
13983 | +<br /> | |
13984 | + The library offers many places where users can specify operations<br /> | |
13985 | + to be performed by the library in place of defaults. Sometimes<br /> | |
13986 | + this seems to require that the library use a more-roundabout, and<br /> | |
13987 | + possibly slower, way to accomplish the default requirements than<br /> | |
13988 | + would be used otherwise.<br /> | |
13989 | +<br /> | |
13990 | + The primary protection against this overhead is thorough compiler<br /> | |
13991 | + optimization, to crush out layers of inline function interfaces.<br /> | |
13992 | + Kuck & Associates has demonstrated the practicality of this kind<br /> | |
13993 | + of optimization.<br /> | |
13994 | +<br /> | |
13995 | + The second line of defense against this overhead is explicit<br /> | |
13996 | + specialization. By defining helper function templates, and writing<br /> | |
13997 | + specialized code for the default case, overhead can be eliminated<br /> | |
13998 | + for that case without sacrificing flexibility. This takes full<br /> | |
13999 | + advantage of any ability of the optimizer to crush out degenerate<br /> | |
14000 | + code.<br /> | |
14001 | +<br /> | |
14002 | + The library specifies many virtual functions which current linkers<br /> | |
14003 | + load even when they cannot be called. Some minor improvements to the<br /> | |
14004 | + compiler and to ld would eliminate any such overhead by simply<br /> | |
14005 | + omitting virtual functions that the complete program does not call.<br /> | |
14006 | + A prototype of this work has already been done. For targets where<br /> | |
14007 | + GNU ld is not used, a "pre-linker" could do the same job.<br /> | |
14008 | +<br /> | |
14009 | + The main areas in the standard interface where user flexibility<br /> | |
14010 | + can result in overhead are:<br /> | |
14011 | +<br /> | |
14012 | + - Allocators: Containers are specified to use user-definable<br /> | |
14013 | + allocator types and objects, making tuning for the container<br /> | |
14014 | + characteristics tricky.<br /> | |
14015 | +<br /> | |
14016 | + - Locales: the standard specifies locale objects used to implement<br /> | |
14017 | + iostream operations, involving many virtual functions which use<br /> | |
14018 | + streambuf iterators.<br /> | |
14019 | +<br /> | |
14020 | + - Algorithms and containers: these may be instantiated on any type,<br /> | |
14021 | + frequently duplicating code for identical operations.<br /> | |
14022 | +<br /> | |
14023 | + - Iostreams and strings: users are permitted to use these on their<br /> | |
14024 | + own types, and specify the operations the stream must use on these<br /> | |
14025 | + types.<br /> | |
14026 | +<br /> | |
14027 | + Note that these sources of overhead are _avoidable_. The techniques<br /> | |
14028 | + to avoid them are covered below.<br /> | |
14029 | +<br /> | |
14030 | + Code Bloat<br /> | |
14031 | + ----------<br /> | |
14032 | +<br /> | |
14033 | + In the SGI STL, and in some other headers, many of the templates<br /> | |
14034 | + are defined "inline" -- either explicitly or by their placement<br /> | |
14035 | + in class definitions -- which should not be inline. This is a<br /> | |
14036 | + source of code bloat. Matt had remarked that he was relying on<br /> | |
14037 | + the compiler to recognize what was too big to benefit from inlining,<br /> | |
14038 | + and generate it out-of-line automatically. However, this also can<br /> | |
14039 | + result in code bloat except where the linker can eliminate the extra<br /> | |
14040 | + copies.<br /> | |
14041 | +<br /> | |
14042 | + Fixing these cases will require an audit of all inline functions<br /> | |
14043 | + defined in the library to determine which merit inlining, and moving<br /> | |
14044 | + the rest out of line. This is an issue mainly in chapters 23, 25, and<br /> | |
14045 | + 27. Of course it can be done incrementally, and we should generally<br /> | |
14046 | + accept patches that move large functions out of line and into ".tcc"<br /> | |
14047 | + files, which can later be pulled into a repository. Compiler/linker<br /> | |
14048 | + improvements to recognize very large inline functions and move them<br /> | |
14049 | + out-of-line, but shared among compilation units, could make this<br /> | |
14050 | + work unnecessary.<br /> | |
14051 | +<br /> | |
14052 | + Pre-instantiating template specializations currently produces large<br /> | |
14053 | + amounts of dead code which bloats statically linked programs. The<br /> | |
14054 | + current state of the static library, libstdc++.a, is intolerable on<br /> | |
14055 | + this account, and will fuel further confused speculation about a need<br /> | |
14056 | + for a library "subset". A compiler improvement that treats each<br /> | |
14057 | + instantiated function as a separate object file, for linking purposes,<br /> | |
14058 | + would be one solution to this problem. An alternative would be to<br /> | |
14059 | + split up the manual instantiation files into dozens upon dozens of<br /> | |
14060 | + little files, each compiled separately, but an abortive attempt at<br /> | |
14061 | + this was done for <string> and, though it is far from complete, it<br /> | |
14062 | + is already a nuisance. A better interim solution (just until we have<br /> | |
14063 | + "export") is badly needed.<br /> | |
14064 | +<br /> | |
14065 | + When building a shared library, the current compiler/linker cannot<br /> | |
14066 | + automatically generate the instantiations needed. This creates a<br /> | |
14067 | + miserable situation; it means any time something is changed in the<br /> | |
14068 | + library, before a shared library can be built someone must manually<br /> | |
14069 | + copy the declarations of all templates that are needed by other parts<br /> | |
14070 | + of the library to an "instantiation" file, and add it to the build<br /> | |
14071 | + system to be compiled and linked to the library. This process is<br /> | |
14072 | + readily automated, and should be automated as soon as possible.<br /> | |
14073 | + Users building their own shared libraries experience identical<br /> | |
14074 | + frustrations.<br /> | |
14075 | +<br /> | |
14076 | + Sharing common aspects of template definitions among instantiations<br /> | |
14077 | + can radically reduce code bloat. The compiler could help a great<br /> | |
14078 | + deal here by recognizing when a function depends on nothing about<br /> | |
14079 | + a template parameter, or only on its size, and giving the resulting<br /> | |
14080 | + function a link-name "equate" that allows it to be shared with other<br /> | |
14081 | + instantiations. Implementation code could take advantage of the<br /> | |
14082 | + capability by factoring out code that does not depend on the template<br /> | |
14083 | + argument into separate functions to be merged by the compiler.<br /> | |
14084 | +<br /> | |
14085 | + Until such a compiler optimization is implemented, much can be done<br /> | |
14086 | + manually (if tediously) in this direction. One such optimization is<br /> | |
14087 | + to derive class templates from non-template classes, and move as much<br /> | |
14088 | + implementation as possible into the base class. Another is to partial-<br /> | |
14089 | + specialize certain common instantiations, such as vector<T*>, to share<br /> | |
14090 | + code for instantiations on all types T. While these techniques work,<br /> | |
14091 | + they are far from the complete solution that a compiler improvement<br /> | |
14092 | + would afford.<br /> | |
14093 | +<br /> | |
14094 | + Overhead: Expensive Language Features<br /> | |
14095 | + -------------------------------------<br /> | |
14096 | +<br /> | |
14097 | + The main "expensive" language feature used in the standard library<br /> | |
14098 | + is exception support, which requires compiling in cleanup code with<br /> | |
14099 | + static table data to locate it, and linking in library code to use<br /> | |
14100 | + the table. For small embedded programs the amount of such library<br /> | |
14101 | + code and table data is assumed by some to be excessive. Under the<br /> | |
14102 | + "new" ABI this perception is generally exaggerated, although in some<br /> | |
14103 | + cases it may actually be excessive.<br /> | |
14104 | +<br /> | |
14105 | + To implement a library which does not use exceptions directly is<br /> | |
14106 | + not difficult given minor compiler support (to "turn off" exceptions<br /> | |
14107 | + and ignore exception constructs), and results in no great library<br /> | |
14108 | + maintenance difficulties. To be precise, given "-fno-exceptions",<br /> | |
14109 | + the compiler should treat "try" blocks as ordinary blocks, and<br /> | |
14110 | + "catch" blocks as dead code to ignore or eliminate. Compiler<br /> | |
14111 | + support is not strictly necessary, except in the case of "function<br /> | |
14112 | + try blocks"; otherwise the following macros almost suffice:<br /> | |
14113 | +<br /> | |
14114 | + #define throw(X)<br /> | |
14115 | + #define try if (true)<br /> | |
14116 | + #define catch(X) else if (false)<br /> | |
14117 | +<br /> | |
14118 | + However, there may be a need to use function try blocks in the<br /> | |
14119 | + library implementation, and use of macros in this way can make<br /> | |
14120 | + correct diagnostics impossible. Furthermore, use of this scheme<br /> | |
14121 | + would require the library to call a function to re-throw exceptions<br /> | |
14122 | + from a try block. Implementing the above semantics in the compiler<br /> | |
14123 | + is preferable.<br /> | |
14124 | +<br /> | |
14125 | + Given the support above (however implemented) it only remains to<br /> | |
14126 | + replace code that "throws" with a call to a well-documented "handler"<br /> | |
14127 | + function in a separate compilation unit which may be replaced by<br /> | |
14128 | + the user. The main source of exceptions that would be difficult<br /> | |
14129 | + for users to avoid is memory allocation failures, but users can<br /> | |
14130 | + define their own memory allocation primitives that never throw.<br /> | |
14131 | + Otherwise, the complete list of such handlers, and which library<br /> | |
14132 | + functions may call them, would be needed for users to be able to<br /> | |
14133 | + implement the necessary substitutes. (Fortunately, they have the<br /> | |
14134 | + source code.)<br /> | |
14135 | +<br /> | |
14136 | + Opportunities<br /> | |
14137 | + -------------<br /> | |
14138 | +<br /> | |
14139 | + The template capabilities of C++ offer enormous opportunities for<br /> | |
14140 | + optimizing common library operations, well beyond what would be<br /> | |
14141 | + considered "eliminating overhead". In particular, many operations<br /> | |
14142 | + done in Glibc with macros that depend on proprietary language<br /> | |
14143 | + extensions can be implemented in pristine Standard C++. For example,<br /> | |
14144 | + the chapter 25 algorithms, and even C library functions such as strchr,<br /> | |
14145 | + can be specialized for the case of static arrays of known (small) size.<br /> | |
14146 | +<br /> | |
14147 | + Detailed optimization opportunities are identified below where<br /> | |
14148 | + the component where they would appear is discussed. Of course new<br /> | |
14149 | + opportunities will be identified during implementation.<br /> | |
14150 | +<br /> | |
14151 | + Unimplemented Required Library Features<br /> | |
14152 | + ---------------------------------------<br /> | |
14153 | +<br /> | |
14154 | + The standard specifies hundreds of components, grouped broadly by<br /> | |
14155 | + chapter. These are listed in excruciating detail in the CHECKLIST<br /> | |
14156 | + file.<br /> | |
14157 | +<br /> | |
14158 | + 17 general<br /> | |
14159 | + 18 support<br /> | |
14160 | + 19 diagnostics<br /> | |
14161 | + 20 utilities<br /> | |
14162 | + 21 string<br /> | |
14163 | + 22 locale<br /> | |
14164 | + 23 containers<br /> | |
14165 | + 24 iterators<br /> | |
14166 | + 25 algorithms<br /> | |
14167 | + 26 numerics<br /> | |
14168 | + 27 iostreams<br /> | |
14169 | + Annex D backward compatibility<br /> | |
14170 | +<br /> | |
14171 | + Anyone participating in implementation of the library should obtain<br /> | |
14172 | + a copy of the standard, ISO 14882. People in the U.S. can obtain an<br /> | |
14173 | + electronic copy for US$18 from ANSI's web site. Those from other<br /> | |
14174 | + countries should visit http://www.iso.org/ to find out the location<br /> | |
14175 | + of their country's representation in ISO, in order to know who can<br /> | |
14176 | + sell them a copy.<br /> | |
14177 | +<br /> | |
14178 | + The emphasis in the following sections is on unimplemented features<br /> | |
14179 | + and optimization opportunities.<br /> | |
14180 | +<br /> | |
14181 | + Chapter 17 General<br /> | |
14182 | + -------------------<br /> | |
14183 | +<br /> | |
14184 | + Chapter 17 concerns overall library requirements.<br /> | |
14185 | +<br /> | |
14186 | + The standard doesn't mention threads. A multi-thread (MT) extension<br /> | |
14187 | + primarily affects operators new and delete (18), allocator (20),<br /> | |
14188 | + string (21), locale (22), and iostreams (27). The common underlying<br /> | |
14189 | + support needed for this is discussed under chapter 20.<br /> | |
14190 | +<br /> | |
14191 | + The standard requirements on names from the C headers create a<br /> | |
14192 | + lot of work, mostly done. Names in the C headers must be visible<br /> | |
14193 | + in the std:: and sometimes the global namespace; the names in the<br /> | |
14194 | + two scopes must refer to the same object. More stringent is that<br /> | |
14195 | + Koenig lookup implies that any types specified as defined in std::<br /> | |
14196 | + really are defined in std::. Names optionally implemented as<br /> | |
14197 | + macros in C cannot be macros in C++. (An overview may be read at<br /> | |
14198 | + <http://www.cantrip.org/cheaders.html>). The scripts "inclosure"<br /> | |
14199 | + and "mkcshadow", and the directories shadow/ and cshadow/, are the<br /> | |
14200 | + beginning of an effort to conform in this area.<br /> | |
14201 | +<br /> | |
14202 | + A correct conforming definition of C header names based on underlying<br /> | |
14203 | + C library headers, and practical linking of conforming namespaced<br /> | |
14204 | + customer code with third-party C libraries depends ultimately on<br /> | |
14205 | + an ABI change, allowing namespaced C type names to be mangled into<br /> | |
14206 | + type names as if they were global, somewhat as C function names in a<br /> | |
14207 | + namespace, or C++ global variable names, are left unmangled. Perhaps<br /> | |
14208 | + another "extern" mode, such as 'extern "C-global"' would be an<br /> | |
14209 | + appropriate place for such type definitions. Such a type would<br /> | |
14210 | + affect mangling as follows:<br /> | |
14211 | +<br /> | |
14212 | + namespace A {<br /> | |
14213 | + struct X {};<br /> | |
14214 | + extern "C-global" { // or maybe just 'extern "C"'<br /> | |
14215 | + struct Y {};<br /> | |
14216 | + };<br /> | |
14217 | + }<br /> | |
14218 | + void f(A::X*); // mangles to f__FPQ21A1X<br /> | |
14219 | + void f(A::Y*); // mangles to f__FP1Y<br /> | |
14220 | +<br /> | |
14221 | + (It may be that this is really the appropriate semantics for regular<br /> | |
14222 | + 'extern "C"', and 'extern "C-global"', as an extension, would not be<br /> | |
14223 | + necessary.) This would allow functions declared in non-standard C headers<br /> | |
14224 | + (and thus fixable by neither us nor users) to link properly with functions<br /> | |
14225 | + declared using C types defined in properly-namespaced headers. The<br /> | |
14226 | + problem this solves is that C headers (which C++ programmers do persist<br /> | |
14227 | + in using) frequently forward-declare C struct tags without including<br /> | |
14228 | + the header where the type is defined, as in<br /> | |
14229 | +<br /> | |
14230 | + struct tm;<br /> | |
14231 | + void munge(tm*);<br /> | |
14232 | +<br /> | |
14233 | + Without some compiler accommodation, munge cannot be called by correct<br /> | |
14234 | + C++ code using a pointer to a correctly-scoped tm* value.<br /> | |
14235 | +<br /> | |
14236 | + The current C headers use the preprocessor extension "#include_next",<br /> | |
14237 | + which the compiler complains about when run "-pedantic".<br /> | |
14238 | + (Incidentally, it appears that "-fpedantic" is currently ignored,<br /> | |
14239 | + probably a bug.) The solution in the C compiler is to use<br /> | |
14240 | + "-isystem" rather than "-I", but unfortunately in g++ this seems<br /> | |
14241 | + also to wrap the whole header in an 'extern "C"' block, so it's<br /> | |
14242 | + unusable for C++ headers. The correct solution appears to be to<br /> | |
14243 | + allow the various special include-directory options, if not given<br /> | |
14244 | + an argument, to affect subsequent include-directory options additively,<br /> | |
14245 | + so that if one said<br /> | |
14246 | +<br /> | |
14247 | + -pedantic -iprefix $(prefix) \<br /> | |
14248 | + -idirafter -ino-pedantic -ino-extern-c -iwithprefix -I g++-v3 \<br /> | |
14249 | + -iwithprefix -I g++-v3/ext<br /> | |
14250 | +<br /> | |
14251 | + the compiler would search $(prefix)/g++-v3 and not report<br /> | |
14252 | + pedantic warnings for files found there, but treat files in<br /> | |
14253 | + $(prefix)/g++-v3/ext pedantically. (The undocumented semantics<br /> | |
14254 | + of "-isystem" in g++ stink. Can they be rescinded? If not it<br /> | |
14255 | + must be replaced with something more rationally behaved.)<br /> | |
14256 | +<br /> | |
14257 | + All the C headers need the treatment above; in the standard these<br /> | |
14258 | + headers are mentioned in various chapters. Below, I have only<br /> | |
14259 | + mentioned those that present interesting implementation issues.<br /> | |
14260 | +<br /> | |
14261 | + The components identified as "mostly complete", below, have not been<br /> | |
14262 | + audited for conformance. In many cases where the library passes<br /> | |
14263 | + conformance tests we have non-conforming extensions that must be<br /> | |
14264 | + wrapped in #if guards for "pedantic" use, and in some cases renamed<br /> | |
14265 | + in a conforming way for continued use in the implementation regardless<br /> | |
14266 | + of conformance flags.<br /> | |
14267 | +<br /> | |
14268 | + The STL portion of the library still depends on a header<br /> | |
14269 | + stl/bits/stl_config.h full of #ifdef clauses. This apparatus<br /> | |
14270 | + should be replaced with autoconf/automake machinery.<br /> | |
14271 | +<br /> | |
14272 | + The SGI STL defines a type_traits<> template, specialized for<br /> | |
14273 | + many types in their code including the built-in numeric and<br /> | |
14274 | + pointer types and some library types, to direct optimizations of<br /> | |
14275 | + standard functions. The SGI compiler has been extended to generate<br /> | |
14276 | + specializations of this template automatically for user types,<br /> | |
14277 | + so that use of STL templates on user types can take advantage of<br /> | |
14278 | + these optimizations. Specializations for other, non-STL, types<br /> | |
14279 | + would make more optimizations possible, but extending the gcc<br /> | |
14280 | + compiler in the same way would be much better. Probably the next<br /> | |
14281 | + round of standardization will ratify this, but probably with<br /> | |
14282 | + changes, so it probably should be renamed to place it in the<br /> | |
14283 | + implementation namespace.<br /> | |
14284 | +<br /> | |
14285 | + The SGI STL also defines a large number of extensions visible in<br /> | |
14286 | + standard headers. (Other extensions that appear in separate headers<br /> | |
14287 | + have been sequestered in subdirectories ext/ and backward/.) All<br /> | |
14288 | + these extensions should be moved to other headers where possible,<br /> | |
14289 | + and in any case wrapped in a namespace (not std!), and (where kept<br /> | |
14290 | + in a standard header) girded about with macro guards. Some cannot be<br /> | |
14291 | + moved out of standard headers because they are used to implement<br /> | |
14292 | + standard features. The canonical method for accommodating these<br /> | |
14293 | + is to use a protected name, aliased in macro guards to a user-space<br /> | |
14294 | + name. Unfortunately C++ offers no satisfactory template typedef<br /> | |
14295 | + mechanism, so very ad-hoc and unsatisfactory aliasing must be used<br /> | |
14296 | + instead.<br /> | |
14297 | +<br /> | |
14298 | + Implementation of a template typedef mechanism should have the highest<br /> | |
14299 | + priority among possible extensions, on the same level as implementation<br /> | |
14300 | + of the template "export" feature.<br /> | |
14301 | +<br /> | |
14302 | + Chapter 18 Language support<br /> | |
14303 | + ----------------------------<br /> | |
14304 | +<br /> | |
14305 | + Headers: <limits> <new> <typeinfo> <exception><br /> | |
14306 | + C headers: <cstddef> <climits> <cfloat> <cstdarg> <csetjmp><br /> | |
14307 | + <ctime> <csignal> <cstdlib> (also 21, 25, 26)<br /> | |
14308 | +<br /> | |
14309 | + This defines the built-in exceptions, rtti, numeric_limits<>,<br /> | |
14310 | + operator new and delete. Much of this is provided by the<br /> | |
14311 | + compiler in its static runtime library.<br /> | |
14312 | +<br /> | |
14313 | + Work to do includes defining numeric_limits<> specializations in<br /> | |
14314 | + separate files for all target architectures. Values for integer types<br /> | |
14315 | + except for bool and wchar_t are readily obtained from the C header<br /> | |
14316 | + <limits.h>, but values for the remaining numeric types (bool, wchar_t,<br /> | |
14317 | + float, double, long double) must be entered manually. This is<br /> | |
14318 | + largely dog work except for those members whose values are not<br /> | |
14319 | + easily deduced from available documentation. Also, this involves<br /> | |
14320 | + some work in target configuration to identify the correct choice of<br /> | |
14321 | + file to build against and to install.<br /> | |
14322 | +<br /> | |
14323 | + The definitions of the various operators new and delete must be<br /> | |
14324 | + made thread-safe, which depends on a portable exclusion mechanism,<br /> | |
14325 | + discussed under chapter 20. Of course there is always plenty of<br /> | |
14326 | + room for improvements to the speed of operators new and delete.<br /> | |
14327 | +<br /> | |
14328 | + <cstdarg>, in Glibc, defines some macros that gcc does not allow to<br /> | |
14329 | + be wrapped into an inline function. Probably this header will demand<br /> | |
14330 | + attention whenever a new target is chosen. The functions atexit(),<br /> | |
14331 | + exit(), and abort() in cstdlib have different semantics in C++, so<br /> | |
14332 | + must be re-implemented for C++.<br /> | |
14333 | +<br /> | |
14334 | + Chapter 19 Diagnostics<br /> | |
14335 | + -----------------------<br /> | |
14336 | +<br /> | |
14337 | + Headers: <stdexcept><br /> | |
14338 | + C headers: <cassert> <cerrno><br /> | |
14339 | +<br /> | |
14340 | + This defines the standard exception objects, which are "mostly complete".<br /> | |
14341 | + Cygnus has a version, and now SGI provides a slightly different one.<br /> | |
14342 | + It makes little difference which we use.<br /> | |
14343 | +<br /> | |
14344 | + The C global name "errno", which C allows to be a variable or a macro,<br /> | |
14345 | + is required in C++ to be a macro. For MT it must typically result in<br /> | |
14346 | + a function call.<br /> | |
14347 | +<br /> | |
14348 | + Chapter 20 Utilities<br /> | |
14349 | + ---------------------<br /> | |
14350 | + Headers: <utility> <functional> <memory><br /> | |
14351 | + C header: <ctime> (also in 18)<br /> | |
14352 | +<br /> | |
14353 | + SGI STL provides "mostly complete" versions of all the components<br /> | |
14354 | + defined in this chapter. However, the auto_ptr<> implementation<br /> | |
14355 | + is known to be wrong. Furthermore, the standard definition of it<br /> | |
14356 | + is known to be unimplementable as written. A minor change to the<br /> | |
14357 | + standard would fix it, and auto_ptr<> should be adjusted to match.<br /> | |
14358 | +<br /> | |
14359 | + Multi-threading affects the allocator implementation, and there must<br /> | |
14360 | + be configuration/installation choices for different users' MT<br /> | |
14361 | + requirements. Anyway, users will want to tune allocator options<br /> | |
14362 | + to support different target conditions, MT or no.<br /> | |
14363 | +<br /> | |
14364 | + The primitives used for MT implementation should be exposed, as an<br /> | |
14365 | + extension, for users' own work. We need cross-CPU "mutex" support,<br /> | |
14366 | + multi-processor shared-memory atomic integer operations, and single-<br /> | |
14367 | + processor uninterruptible integer operations, and all three configurable<br /> | |
14368 | + to be stubbed out for non-MT use, or to use an appropriately-loaded<br /> | |
14369 | + dynamic library for the actual runtime environment, or statically<br /> | |
14370 | + compiled in for cases where the target architecture is known.<br /> | |
14371 | +<br /> | |
14372 | + Chapter 21 String<br /> | |
14373 | + ------------------<br /> | |
14374 | + Headers: <string><br /> | |
14375 | + C headers: <cctype> <cwctype> <cstring> <cwchar> (also in 27)<br /> | |
14376 | + <cstdlib> (also in 18, 25, 26)<br /> | |
14377 | +<br /> | |
14378 | + We have "mostly-complete" char_traits<> implementations. Many of the<br /> | |
14379 | + char_traits<char> operations might be optimized further using existing<br /> | |
14380 | + proprietary language extensions.<br /> | |
14381 | +<br /> | |
14382 | + We have a "mostly-complete" basic_string<> implementation. The work<br /> | |
14383 | + to manually instantiate char and wchar_t specializations in object<br /> | |
14384 | + files to improve link-time behavior is extremely unsatisfactory,<br /> | |
14385 | + literally tripling library-build time with no commensurate improvement<br /> | |
14386 | + in static program link sizes. It must be redone. (Similar work is<br /> | |
14387 | + needed for some components in chapters 22 and 27.)<br /> | |
14388 | +<br /> | |
14389 | + Other work needed for strings is MT-safety, as discussed under the<br /> | |
14390 | + chapter 20 heading.<br /> | |
14391 | +<br /> | |
14392 | + The standard C type mbstate_t from <cwchar> and used in char_traits<><br /> | |
14393 | + must be different in C++ than in C, because in C++ the default constructor<br /> | |
14394 | + value mbstate_t() must be the "base" or "ground" sequence state.<br /> | |
14395 | + (According to the likely resolution of a recently raised Core issue,<br /> | |
14396 | + this may become unnecessary. However, there are other reasons to<br /> | |
14397 | + use a state type not as limited as whatever the C library provides.)<br /> | |
14398 | + If we might want to provide conversions from (e.g.) internally-<br /> | |
14399 | + represented EUC-wide to externally-represented Unicode, or vice-<br /> | |
14400 | + versa, the mbstate_t we choose will need to be more accommodating<br /> | |
14401 | + than what might be provided by an underlying C library.<br /> | |
14402 | +<br /> | |
14403 | + There remain some basic_string template-member functions which do<br /> | |
14404 | + not overload properly with their non-template brethren. The infamous<br /> | |
14405 | + hack akin to what was done in vector<> is needed, to conform to<br /> | |
14406 | + 23.1.1 para 10. The CHECKLIST items for basic_string marked 'X',<br /> | |
14407 | + or incomplete, are so marked for this reason.<br /> | |
14408 | +<br /> | |
14409 | + Replacing the string iterators, which currently are simple character<br /> | |
14410 | + pointers, with class objects would greatly increase the safety of the<br /> | |
14411 | + client interface, and also permit a "debug" mode in which range,<br /> | |
14412 | + ownership, and validity are rigorously checked. The current use of<br /> | |
14413 | + raw pointers as string iterators is evil. vector<> iterators need the<br /> | |
14414 | + same treatment. Note that the current implementation freely mixes<br /> | |
14415 | + pointers and iterators, and that must be fixed before safer iterators<br /> | |
14416 | + can be introduced.<br /> | |
14417 | +<br /> | |
14418 | + Some of the functions in <cstring> are different from the C version.<br /> | |
14419 | + generally overloaded on const and non-const argument pointers. For<br /> | |
14420 | + example, in <cstring> strchr is overloaded. The functions isupper<br /> | |
14421 | + etc. in <cctype> typically implemented as macros in C are functions<br /> | |
14422 | + in C++, because they are overloaded with others of the same name<br /> | |
14423 | + defined in <locale>.<br /> | |
14424 | +<br /> | |
14425 | + Many of the functions required in <cwctype> and <cwchar> cannot be<br /> | |
14426 | + implemented using underlying C facilities on intended targets because<br /> | |
14427 | + such facilities only partly exist.<br /> | |
14428 | +<br /> | |
14429 | + Chapter 22 Locale<br /> | |
14430 | + ------------------<br /> | |
14431 | + Headers: <locale><br /> | |
14432 | + C headers: <clocale><br /> | |
14433 | +<br /> | |
14434 | + We have a "mostly complete" class locale, with the exception of<br /> | |
14435 | + code for constructing, and handling the names of, named locales.<br /> | |
14436 | + The ways that locales are named (particularly when categories<br /> | |
14437 | + (e.g. LC_TIME, LC_COLLATE) are different) varies among all target<br /> | |
14438 | + environments. This code must be written in various versions and<br /> | |
14439 | + chosen by configuration parameters.<br /> | |
14440 | +<br /> | |
14441 | + Members of many of the facets defined in <locale> are stubs. Generally,<br /> | |
14442 | + there are two sets of facets: the base class facets (which are supposed<br /> | |
14443 | + to implement the "C" locale) and the "byname" facets, which are supposed<br /> | |
14444 | + to read files to determine their behavior. The base ctype<>, collate<>,<br /> | |
14445 | + and numpunct<> facets are "mostly complete", except that the table of<br /> | |
14446 | + bitmask values used for "is" operations, and corresponding mask values,<br /> | |
14447 | + are still defined in libio and just included/linked. (We will need to<br /> | |
14448 | + implement these tables independently, soon, but should take advantage<br /> | |
14449 | + of libio where possible.) The num_put<>::put members for integer types<br /> | |
14450 | + are "mostly complete".<br /> | |
14451 | +<br /> | |
14452 | + A complete list of what has and has not been implemented may be<br /> | |
14453 | + found in CHECKLIST. However, note that the current definition of<br /> | |
14454 | + codecvt<wchar_t,char,mbstate_t> is wrong. It should simply write<br /> | |
14455 | + out the raw bytes representing the wide characters, rather than<br /> | |
14456 | + trying to convert each to a corresponding single "char" value.<br /> | |
14457 | +<br /> | |
14458 | + Some of the facets are more important than others. Specifically,<br /> | |
14459 | + the members of ctype<>, numpunct<>, num_put<>, and num_get<> facets<br /> | |
14460 | + are used by other library facilities defined in <string>, <istream>,<br /> | |
14461 | + and <ostream>, and the codecvt<> facet is used by basic_filebuf<><br /> | |
14462 | + in <fstream>, so a conforming iostream implementation depends on<br /> | |
14463 | + these.<br /> | |
14464 | +<br /> | |
14465 | + The "long long" type eventually must be supported, but code mentioning<br /> | |
14466 | + it should be wrapped in #if guards to allow pedantic-mode compiling.<br /> | |
14467 | +<br /> | |
14468 | + Performance of num_put<> and num_get<> depend critically on<br /> | |
14469 | + caching computed values in ios_base objects, and on extensions<br /> | |
14470 | + to the interface with streambufs.<br /> | |
14471 | +<br /> | |
14472 | + Specifically: retrieving a copy of the locale object, extracting<br /> | |
14473 | + the needed facets, and gathering data from them, for each call to<br /> | |
14474 | + (e.g.) operator<< would be prohibitively slow. To cache format<br /> | |
14475 | + data for use by num_put<> and num_get<> we have a _Format_cache<><br /> | |
14476 | + object stored in the ios_base::pword() array. This is constructed<br /> | |
14477 | + and initialized lazily, and is organized purely for utility. It<br /> | |
14478 | + is discarded when a new locale with different facets is imbued.<br /> | |
14479 | +<br /> | |
14480 | + Using only the public interfaces of the iterator arguments to the<br /> | |
14481 | + facet functions would limit performance by forbidding "vector-style"<br /> | |
14482 | + character operations. The streambuf iterator optimizations are<br /> | |
14483 | + described under chapter 24, but facets can also bypass the streambuf<br /> | |
14484 | + iterators via explicit specializations and operate directly on the<br /> | |
14485 | + streambufs, and use extended interfaces to get direct access to the<br /> | |
14486 | + streambuf internal buffer arrays. These extensions are mentioned<br /> | |
14487 | + under chapter 27. These optimizations are particularly important<br /> | |
14488 | + for input parsing.<br /> | |
14489 | +<br /> | |
14490 | + Unused virtual members of locale facets can be omitted, as mentioned<br /> | |
14491 | + above, by a smart linker.<br /> | |
14492 | +<br /> | |
14493 | + Chapter 23 Containers<br /> | |
14494 | + ----------------------<br /> | |
14495 | + Headers: <deque> <list> <queue> <stack> <vector> <map> <set> <bitset><br /> | |
14496 | +<br /> | |
14497 | + All the components in chapter 23 are implemented in the SGI STL.<br /> | |
14498 | + They are "mostly complete"; they include a large number of<br /> | |
14499 | + nonconforming extensions which must be wrapped. Some of these<br /> | |
14500 | + are used internally and must be renamed or duplicated.<br /> | |
14501 | +<br /> | |
14502 | + The SGI components are optimized for large-memory environments. For<br /> | |
14503 | + embedded targets, different criteria might be more appropriate. Users<br /> | |
14504 | + will want to be able to tune this behavior. We should provide<br /> | |
14505 | + ways for users to compile the library with different memory usage<br /> | |
14506 | + characteristics.<br /> | |
14507 | +<br /> | |
14508 | + A lot more work is needed on factoring out common code from different<br /> | |
14509 | + specializations to reduce code size here and in chapter 25. The<br /> | |
14510 | + easiest fix for this would be a compiler/ABI improvement that allows<br /> | |
14511 | + the compiler to recognize when a specialization depends only on the<br /> | |
14512 | + size (or other gross quality) of a template argument, and allow the<br /> | |
14513 | + linker to share the code with similar specializations. In its<br /> | |
14514 | + absence, many of the algorithms and containers can be partial-<br /> | |
14515 | + specialized, at least for the case of pointers, but this only solves<br /> | |
14516 | + a small part of the problem. Use of a type_traits-style template<br /> | |
14517 | + allows a few more optimization opportunities, more if the compiler<br /> | |
14518 | + can generate the specializations automatically.<br /> | |
14519 | +<br /> | |
14520 | + As an optimization, containers can specialize on the default allocator<br /> | |
14521 | + and bypass it, or take advantage of details of its implementation<br /> | |
14522 | + after it has been improved upon.<br /> | |
14523 | +<br /> | |
14524 | + Replacing the vector iterators, which currently are simple element<br /> | |
14525 | + pointers, with class objects would greatly increase the safety of the<br /> | |
14526 | + client interface, and also permit a "debug" mode in which range,<br /> | |
14527 | + ownership, and validity are rigorously checked. The current use of<br /> | |
14528 | + pointers for iterators is evil.<br /> | |
14529 | +<br /> | |
14530 | + As mentioned for chapter 24, the deque iterator is a good example of<br /> | |
14531 | + an opportunity to implement a "staged" iterator that would benefit<br /> | |
14532 | + from specializations of some algorithms.<br /> | |
14533 | +<br /> | |
14534 | + Chapter 24 Iterators<br /> | |
14535 | + ---------------------<br /> | |
14536 | + Headers: <iterator><br /> | |
14537 | +<br /> | |
14538 | + Standard iterators are "mostly complete", with the exception of<br /> | |
14539 | + the stream iterators, which are not yet templatized on the<br /> | |
14540 | + stream type. Also, the base class template iterator<> appears<br /> | |
14541 | + to be wrong, so everything derived from it must also be wrong,<br /> | |
14542 | + currently.<br /> | |
14543 | +<br /> | |
14544 | + The streambuf iterators (currently located in stl/bits/std_iterator.h,<br /> | |
14545 | + but should be under bits/) can be rewritten to take advantage of<br /> | |
14546 | + friendship with the streambuf implementation.<br /> | |
14547 | +<br /> | |
14548 | + Matt Austern has identified opportunities where certain iterator<br /> | |
14549 | + types, particularly including streambuf iterators and deque<br /> | |
14550 | + iterators, have a "two-stage" quality, such that an intermediate<br /> | |
14551 | + limit can be checked much more quickly than the true limit on<br /> | |
14552 | + range operations. If identified with a member of iterator_traits,<br /> | |
14553 | + algorithms may be specialized for this case. Of course the<br /> | |
14554 | + iterators that have this quality can be identified by specializing<br /> | |
14555 | + a traits class.<br /> | |
14556 | +<br /> | |
14557 | + Many of the algorithms must be specialized for the streambuf<br /> | |
14558 | + iterators, to take advantage of block-mode operations, in order<br /> | |
14559 | + to allow iostream/locale operations' performance not to suffer.<br /> | |
14560 | + It may be that they could be treated as staged iterators and<br /> | |
14561 | + take advantage of those optimizations.<br /> | |
14562 | +<br /> | |
14563 | + Chapter 25 Algorithms<br /> | |
14564 | + ----------------------<br /> | |
14565 | + Headers: <algorithm><br /> | |
14566 | + C headers: <cstdlib> (also in 18, 21, 26))<br /> | |
14567 | +<br /> | |
14568 | + The algorithms are "mostly complete". As mentioned above, they<br /> | |
14569 | + are optimized for speed at the expense of code and data size.<br /> | |
14570 | +<br /> | |
14571 | + Specializations of many of the algorithms for non-STL types would<br /> | |
14572 | + give performance improvements, but we must use great care not to<br /> | |
14573 | + interfere with fragile template overloading semantics for the<br /> | |
14574 | + standard interfaces. Conventionally the standard function template<br /> | |
14575 | + interface is an inline which delegates to a non-standard function<br /> | |
14576 | + which is then overloaded (this is already done in many places in<br /> | |
14577 | + the library). Particularly appealing opportunities for the sake of<br /> | |
14578 | + iostream performance are for copy and find applied to streambuf<br /> | |
14579 | + iterators or (as noted elsewhere) for staged iterators, of which<br /> | |
14580 | + the streambuf iterators are a good example.<br /> | |
14581 | +<br /> | |
14582 | + The bsearch and qsort functions cannot be overloaded properly as<br /> | |
14583 | + required by the standard because gcc does not yet allow overloading<br /> | |
14584 | + on the extern-"C"-ness of a function pointer.<br /> | |
14585 | +<br /> | |
14586 | + Chapter 26 Numerics<br /> | |
14587 | + --------------------<br /> | |
14588 | + Headers: <complex> <valarray> <numeric><br /> | |
14589 | + C headers: <cmath>, <cstdlib> (also 18, 21, 25)<br /> | |
14590 | +<br /> | |
14591 | + Numeric components: Gabriel dos Reis's valarray, Drepper's complex,<br /> | |
14592 | + and the few algorithms from the STL are "mostly done". Of course<br /> | |
14593 | + optimization opportunities abound for the numerically literate. It<br /> | |
14594 | + is not clear whether the valarray implementation really conforms<br /> | |
14595 | + fully, in the assumptions it makes about aliasing (and lack thereof)<br /> | |
14596 | + in its arguments.<br /> | |
14597 | +<br /> | |
14598 | + The C div() and ldiv() functions are interesting, because they are the<br /> | |
14599 | + only case where a C library function returns a class object by value.<br /> | |
14600 | + Since the C++ type div_t must be different from the underlying C type<br /> | |
14601 | + (which is in the wrong namespace) the underlying functions div() and<br /> | |
14602 | + ldiv() cannot be re-used efficiently. Fortunately they are trivial to<br /> | |
14603 | + re-implement.<br /> | |
14604 | +<br /> | |
14605 | + Chapter 27 Iostreams<br /> | |
14606 | + ---------------------<br /> | |
14607 | + Headers: <iosfwd> <streambuf> <ios> <ostream> <istream> <iostream><br /> | |
14608 | + <iomanip> <sstream> <fstream><br /> | |
14609 | + C headers: <cstdio> <cwchar> (also in 21)<br /> | |
14610 | +<br /> | |
14611 | + Iostream is currently in a very incomplete state. <iosfwd>, <iomanip>,<br /> | |
14612 | + ios_base, and basic_ios<> are "mostly complete". basic_streambuf<> and<br /> | |
14613 | + basic_ostream<> are well along, but basic_istream<> has had little work<br /> | |
14614 | + done. The standard stream objects, <sstream> and <fstream> have been<br /> | |
14615 | + started; basic_filebuf<> "write" functions have been implemented just<br /> | |
14616 | + enough to do "hello, world".<br /> | |
14617 | +<br /> | |
14618 | + Most of the istream and ostream operators << and >> (with the exception<br /> | |
14619 | + of the op<<(integer) ones) have not been changed to use locale primitives,<br /> | |
14620 | + sentry objects, or char_traits members.<br /> | |
14621 | +<br /> | |
14622 | + All these templates should be manually instantiated for char and<br /> | |
14623 | + wchar_t in a way that links only used members into user programs.<br /> | |
14624 | +<br /> | |
14625 | + Streambuf is fertile ground for optimization extensions. An extended<br /> | |
14626 | + interface giving iterator access to its internal buffer would be very<br /> | |
14627 | + useful for other library components.<br /> | |
14628 | +<br /> | |
14629 | + Iostream operations (primarily operators << and >>) can take advantage<br /> | |
14630 | + of the case where user code has not specified a locale, and bypass locale<br /> | |
14631 | + operations entirely. The current implementation of op<</num_put<>::put,<br /> | |
14632 | + for the integer types, demonstrates how they can cache encoding details<br /> | |
14633 | + from the locale on each operation. There is lots more room for<br /> | |
14634 | + optimization in this area.<br /> | |
14635 | +<br /> | |
14636 | + The definition of the relationship between the standard streams<br /> | |
14637 | + cout et al. and stdout et al. requires something like a "stdiobuf".<br /> | |
14638 | + The SGI solution of using double-indirection to actually use a<br /> | |
14639 | + stdio FILE object for buffering is unsatisfactory, because it<br /> | |
14640 | + interferes with peephole loop optimizations.<br /> | |
14641 | +<br /> | |
14642 | + The <sstream> header work has begun. stringbuf can benefit from<br /> | |
14643 | + friendship with basic_string<> and basic_string<>::_Rep to use<br /> | |
14644 | + those objects directly as buffers, and avoid allocating and making<br /> | |
14645 | + copies.<br /> | |
14646 | +<br /> | |
14647 | + The basic_filebuf<> template is a complex beast. It is specified to<br /> | |
14648 | + use the locale facet codecvt<> to translate characters between native<br /> | |
14649 | + files and the locale character encoding. In general this involves<br /> | |
14650 | + two buffers, one of "char" representing the file and another of<br /> | |
14651 | + "char_type", for the stream, with codecvt<> translating. The process<br /> | |
14652 | + is complicated by the variable-length nature of the translation, and<br /> | |
14653 | + the need to seek to corresponding places in the two representations.<br /> | |
14654 | + For the case of basic_filebuf<char>, when no translation is needed,<br /> | |
14655 | + a single buffer suffices. A specialized filebuf can be used to reduce<br /> | |
14656 | + code space overhead when no locale has been imbued. Matt Austern's<br /> | |
14657 | + work at SGI will be useful, perhaps directly as a source of code, or<br /> | |
14658 | + at least as an example to draw on.<br /> | |
14659 | +<br /> | |
14660 | + Filebuf, almost uniquely (cf. operator new), depends heavily on<br /> | |
14661 | + underlying environmental facilities. In current releases iostream<br /> | |
14662 | + depends fairly heavily on libio constant definitions, but it should<br /> | |
14663 | + be made independent. It also depends on operating system primitives<br /> | |
14664 | + for file operations. There is immense room for optimizations using<br /> | |
14665 | + (e.g.) mmap for reading. The shadow/ directory wraps, besides the<br /> | |
14666 | + standard C headers, the libio.h and unistd.h headers, for use mainly<br /> | |
14667 | + by filebuf. These wrappings have not been completed, though there<br /> | |
14668 | + is scaffolding in place.<br /> | |
14669 | +<br /> | |
14670 | + The encapsulation of certain C header <cstdio> names presents an<br /> | |
14671 | + interesting problem. It is possible to define an inline std::fprintf()<br /> | |
14672 | + implemented in terms of the 'extern "C"' vfprintf(), but there is no<br /> | |
14673 | + standard vfscanf() to use to implement std::fscanf(). It appears that<br /> | |
14674 | + vfscanf but be re-implemented in C++ for targets where no vfscanf<br /> | |
14675 | + extension has been defined. This is interesting in that it seems<br /> | |
14676 | + to be the only significant case in the C library where this kind of<br /> | |
14677 | + rewriting is necessary. (Of course Glibc provides the vfscanf()<br /> | |
14678 | + extension.) (The functions related to exit() must be rewritten<br /> | |
14679 | + for other reasons.)<br /> | |
14680 | +<br /> | |
14681 | +<br /> | |
14682 | + Annex D<br /> | |
14683 | + -------<br /> | |
14684 | + Headers: <strstream><br /> | |
14685 | +<br /> | |
14686 | + Annex D defines many non-library features, and many minor<br /> | |
14687 | + modifications to various headers, and a complete header.<br /> | |
14688 | + It is "mostly done", except that the libstdc++-2 <strstream><br /> | |
14689 | + header has not been adopted into the library, or checked to<br /> | |
14690 | + verify that it matches the draft in those details that were<br /> | |
14691 | + clarified by the committee. Certainly it must at least be<br /> | |
14692 | + moved into the std namespace.<br /> | |
14693 | +<br /> | |
14694 | + We still need to wrap all the deprecated features in #if guards<br /> | |
14695 | + so that pedantic compile modes can detect their use.<br /> | |
14696 | +<br /> | |
14697 | + Nonstandard Extensions<br /> | |
14698 | + ----------------------<br /> | |
14699 | + Headers: <iostream.h> <strstream.h> <hash> <rbtree><br /> | |
14700 | + <pthread_alloc> <stdiobuf> (etc.)<br /> | |
14701 | +<br /> | |
14702 | + User code has come to depend on a variety of nonstandard components<br /> | |
14703 | + that we must not omit. Much of this code can be adopted from<br /> | |
14704 | + libstdc++-v2 or from the SGI STL. This particularly includes<br /> | |
14705 | + <iostream.h>, <strstream.h>, and various SGI extensions such<br /> | |
14706 | + as <hash_map.h>. Many of these are already placed in the<br /> | |
14707 | + subdirectories ext/ and backward/. (Note that it is better to<br /> | |
14708 | + include them via "<backward/hash_map.h>" or "<ext/hash_map>" than<br /> | |
14709 | + to search the subdirectory itself via a "-I" directive.<br /> | |
14710 | + </p></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="source_code_style.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="appendix_contributing.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="appendix_porting.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Coding Style </td><td width="20%" align="center"><a accesskey="h" href="../index.html">Home</a></td><td width="40%" align="right" valign="top"> Appendix B. | |
14711 | Porting and Maintenance | |
14712 | ||
14713 | </td></tr></table></div></body></html> | |
14714 | Index: libstdc++-v3/doc/html/manual/facets.html | |
14715 | =================================================================== | |
9f95000d AM |
14716 | --- libstdc++-v3/doc/html/manual/facets.html (.../tags/gcc_4_7_2_release) (wersja 192468) |
14717 | +++ libstdc++-v3/doc/html/manual/facets.html (.../branches/gcc-4_7-branch) (wersja 192468) | |
5a87b929 AM |
14718 | @@ -1,9 +1,9 @@ |
14719 | <?xml version="1.0" encoding="UTF-8" standalone="no"?> | |
14720 | -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> | |
14721 | -<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Facets</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1"/><meta name="keywords" content=" ISO C++ , library "/><meta name="keywords" content=" ISO C++ , runtime , library "/><link rel="home" href="../index.html" title="The GNU C++ Library"/><link rel="up" href="localization.html" title="Chapter 8. Localization"/><link rel="prev" href="localization.html" title="Chapter 8. Localization"/><link rel="next" href="containers.html" title="Chapter 9. Containers"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Facets</th></tr><tr><td align="left"><a accesskey="p" href="localization.html">Prev</a> </td><th width="60%" align="center">Chapter 8. | |
14722 | +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> | |
14723 | +<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Facets</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1" /><meta name="keywords" content=" ISO C++ , library " /><meta name="keywords" content=" ISO C++ , runtime , library " /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="localization.html" title="Chapter 8. Localization" /><link rel="prev" href="localization.html" title="Chapter 8. Localization" /><link rel="next" href="containers.html" title="Chapter 9. Containers" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Facets</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="localization.html">Prev</a> </td><th width="60%" align="center">Chapter 8. | |
14724 | Localization | |
14725 | ||
14726 | -</th><td align="right"> <a accesskey="n" href="containers.html">Next</a></td></tr></table><hr/></div><div class="section" title="Facets"><div class="titlepage"><div><div><h2 class="title"><a id="std.localization.facet"/>Facets</h2></div></div></div><div class="section" title="ctype"><div class="titlepage"><div><div><h3 class="title"><a id="std.localization.facet.ctype"/>ctype</h3></div></div></div><div class="section" title="Implementation"><div class="titlepage"><div><div><h4 class="title"><a id="facet.ctype.impl"/>Implementation</h4></div></div></div><div class="section" title="Specializations"><div class="titlepage"><div><div><h5 class="title"><a id="id501036"/>Specializations</h5></div></div></div><p> | |
14727 | +</th><td width="20%" align="right"> <a accesskey="n" href="containers.html">Next</a></td></tr></table><hr /></div><div class="section" title="Facets"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="std.localization.facet"></a>Facets</h2></div></div></div><div class="section" title="ctype"><div class="titlepage"><div><div><h3 class="title"><a id="std.localization.facet.ctype"></a>ctype</h3></div></div></div><div class="section" title="Implementation"><div class="titlepage"><div><div><h4 class="title"><a id="facet.ctype.impl"></a>Implementation</h4></div></div></div><div class="section" title="Specializations"><div class="titlepage"><div><div><h5 class="title"><a id="id679521"></a>Specializations</h5></div></div></div><p> | |
14728 | For the required specialization codecvt<wchar_t, char, mbstate_t> , | |
14729 | conversions are made between the internal character set (always UCS4 | |
14730 | on GNU/Linux) and whatever the currently selected locale for the | |
14731 | @@ -28,7 +28,7 @@ | |
14732 | </p><p> | |
14733 | Neither of these two required specializations deals with Unicode | |
14734 | characters. | |
14735 | -</p></div></div><div class="section" title="Future"><div class="titlepage"><div><div><h4 class="title"><a id="facet.ctype.future"/>Future</h4></div></div></div><div class="itemizedlist"><ul class="itemizedlist"><li class="listitem"><p> | |
14736 | +</p></div></div><div class="section" title="Future"><div class="titlepage"><div><div><h4 class="title"><a id="facet.ctype.future"></a>Future</h4></div></div></div><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p> | |
14737 | How to deal with the global locale issue? | |
14738 | </p></li><li class="listitem"><p> | |
14739 | How to deal with different types than char, wchar_t? </p></li><li class="listitem"><p> | |
14740 | @@ -50,30 +50,30 @@ | |
14741 | </p></li><li class="listitem"><p> | |
14742 | Rename abstract base class. See if just smash-overriding is a | |
14743 | better approach. Clarify, add sanity to naming. | |
14744 | - </p></li></ul></div></div><div class="bibliography" title="Bibliography"><div class="titlepage"><div><div><h4 class="title"><a id="facet.ctype.biblio"/>Bibliography</h4></div></div></div><div class="biblioentry"><a id="id501160"/><p><span class="citetitle"><em class="citetitle"> | |
14745 | + </p></li></ul></div></div><div class="bibliography" title="Bibliography"><div class="titlepage"><div><div><h4 class="title"><a id="facet.ctype.biblio"></a>Bibliography</h4></div></div></div><div class="biblioentry"><a id="id679647"></a><p><span class="citetitle"><em class="citetitle"> | |
14746 | The GNU C Library | |
14747 | - </em>. </span><span class="author"><span class="firstname">Roland</span> <span class="surname">McGrath</span>. </span><span class="author"><span class="firstname">Ulrich</span> <span class="surname">Drepper</span>. </span><span class="copyright">Copyright © 2007 FSF. </span><span class="pagenums">Chapters 6 Character Set Handling and 7 Locales and Internationalization. </span></p></div><div class="biblioentry"><a id="id501200"/><p><span class="citetitle"><em class="citetitle"> | |
14748 | + </em>. </span><span class="author"><span class="firstname">Roland</span> <span class="surname">McGrath</span>. </span><span class="author"><span class="firstname">Ulrich</span> <span class="surname">Drepper</span>. </span><span class="copyright">Copyright © 2007 FSF. </span><span class="pagenums">Chapters 6 Character Set Handling and 7 Locales and Internationalization. </span></p></div><div class="biblioentry"><a id="id679686"></a><p><span class="citetitle"><em class="citetitle"> | |
14749 | Correspondence | |
14750 | - </em>. </span><span class="author"><span class="firstname">Ulrich</span> <span class="surname">Drepper</span>. </span><span class="copyright">Copyright © 2002 . </span></p></div><div class="biblioentry"><a id="id501226"/><p><span class="citetitle"><em class="citetitle"> | |
14751 | + </em>. </span><span class="author"><span class="firstname">Ulrich</span> <span class="surname">Drepper</span>. </span><span class="copyright">Copyright © 2002 . </span></p></div><div class="biblioentry"><a id="id679712"></a><p><span class="citetitle"><em class="citetitle"> | |
14752 | ISO/IEC 14882:1998 Programming languages - C++ | |
14753 | - </em>. </span><span class="copyright">Copyright © 1998 ISO. </span></p></div><div class="biblioentry"><a id="id501245"/><p><span class="citetitle"><em class="citetitle"> | |
14754 | + </em>. </span><span class="copyright">Copyright © 1998 ISO. </span></p></div><div class="biblioentry"><a id="id679731"></a><p><span class="citetitle"><em class="citetitle"> | |
14755 | ISO/IEC 9899:1999 Programming languages - C | |
14756 | - </em>. </span><span class="copyright">Copyright © 1999 ISO. </span></p></div><div class="biblioentry" title="The Open Group Base Specifications, Issue 6 (IEEE Std. 1003.1-2004)"><a id="id501264"/><p><span class="title"><em> | |
14757 | - <a class="link" href="http://www.unix.org/version3/ieee_std.html"> | |
14758 | + </em>. </span><span class="copyright">Copyright © 1999 ISO. </span></p></div><div class="biblioentry" title="The Open Group Base Specifications, Issue 6 (IEEE Std. 1003.1-2004)"><a id="id679750"></a><p><span class="title"><em> | |
14759 | + <a class="link" href="http://www.unix.org/version3/ieee_std.html" target="_top"> | |
14760 | The Open Group Base Specifications, Issue 6 (IEEE Std. 1003.1-2004) | |
14761 | </a> | |
14762 | </em>. </span><span class="copyright">Copyright © 1999 | |
14763 | - The Open Group/The Institute of Electrical and Electronics Engineers, Inc.. </span></p></div><div class="biblioentry"><a id="id501291"/><p><span class="citetitle"><em class="citetitle"> | |
14764 | + The Open Group/The Institute of Electrical and Electronics Engineers, Inc.. </span></p></div><div class="biblioentry"><a id="id679777"></a><p><span class="citetitle"><em class="citetitle"> | |
14765 | The C++ Programming Language, Special Edition | |
14766 | </em>. </span><span class="author"><span class="firstname">Bjarne</span> <span class="surname">Stroustrup</span>. </span><span class="copyright">Copyright © 2000 Addison Wesley, Inc.. </span><span class="pagenums">Appendix D. </span><span class="publisher"><span class="publishername"> | |
14767 | Addison Wesley | |
14768 | - . </span></span></p></div><div class="biblioentry"><a id="id501329"/><p><span class="citetitle"><em class="citetitle"> | |
14769 | + . </span></span></p></div><div class="biblioentry"><a id="id679816"></a><p><span class="citetitle"><em class="citetitle"> | |
14770 | Standard C++ IOStreams and Locales | |
14771 | </em>. </span><span class="subtitle"> | |
14772 | Advanced Programmer's Guide and Reference | |
14773 | . </span><span class="author"><span class="firstname">Angelika</span> <span class="surname">Langer</span>. </span><span class="author"><span class="firstname">Klaus</span> <span class="surname">Kreft</span>. </span><span class="copyright">Copyright © 2000 Addison Wesley Longman, Inc.. </span><span class="publisher"><span class="publishername"> | |
14774 | Addison Wesley Longman | |
14775 | - . </span></span></p></div></div></div><div class="section" title="codecvt"><div class="titlepage"><div><div><h3 class="title"><a id="std.localization.facet.codecvt"/>codecvt</h3></div></div></div><p> | |
14776 | + . </span></span></p></div></div></div><div class="section" title="codecvt"><div class="titlepage"><div><div><h3 class="title"><a id="std.localization.facet.codecvt"></a>codecvt</h3></div></div></div><p> | |
14777 | The standard class codecvt attempts to address conversions between | |
14778 | different character encoding schemes. In particular, the standard | |
14779 | attempts to detail conversions between the implementation-defined wide | |
14780 | @@ -87,7 +87,7 @@ | |
14781 | addressed, and examples of correct usage for both the required | |
14782 | specializations for wide and narrow characters and the | |
14783 | implementation-provided extended functionality are given. | |
14784 | -</p><div class="section" title="Requirements"><div class="titlepage"><div><div><h4 class="title"><a id="facet.codecvt.req"/>Requirements</h4></div></div></div><p> | |
14785 | +</p><div class="section" title="Requirements"><div class="titlepage"><div><div><h4 class="title"><a id="facet.codecvt.req"></a>Requirements</h4></div></div></div><p> | |
14786 | Around page 425 of the C++ Standard, this charming heading comes into view: | |
14787 | </p><div class="blockquote"><blockquote class="blockquote"><p> | |
14788 | 22.2.1.5 - Template class codecvt | |
14789 | @@ -133,7 +133,7 @@ | |
14790 | Two: The required conversions, by specifying mbstate_t as the third | |
14791 | template parameter, imply an implementation strategy that is mostly | |
14792 | (or wholly) based on the underlying C library, and the functions | |
14793 | -mcsrtombs and wcsrtombs in particular.</p></div><div class="section" title="Design"><div class="titlepage"><div><div><h4 class="title"><a id="facet.codecvt.design"/>Design</h4></div></div></div><div class="section" title="wchar_t Size"><div class="titlepage"><div><div><h5 class="title"><a id="codecvt.design.wchar_t_size"/><span class="type">wchar_t</span> Size</h5></div></div></div><p> | |
14794 | +mcsrtombs and wcsrtombs in particular.</p></div><div class="section" title="Design"><div class="titlepage"><div><div><h4 class="title"><a id="facet.codecvt.design"></a>Design</h4></div></div></div><div class="section" title="wchar_t Size"><div class="titlepage"><div><div><h5 class="title"><a id="codecvt.design.wchar_t_size"></a><span class="type">wchar_t</span> Size</h5></div></div></div><p> | |
14795 | The simple implementation detail of wchar_t's size seems to | |
14796 | repeatedly confound people. Many systems use a two byte, | |
14797 | unsigned integral type to represent wide characters, and use an | |
14798 | @@ -145,7 +145,7 @@ | |
14799 | size for the type wchar_t. | |
14800 | </p><p> | |
14801 | Thus, portable C++ code cannot assume a byte size (or endianness) either. | |
14802 | - </p></div><div class="section" title="Support for Unicode"><div class="titlepage"><div><div><h5 class="title"><a id="codecvt.design.unicode"/>Support for Unicode</h5></div></div></div><p> | |
14803 | + </p></div><div class="section" title="Support for Unicode"><div class="titlepage"><div><div><h5 class="title"><a id="codecvt.design.unicode"></a>Support for Unicode</h5></div></div></div><p> | |
14804 | Probably the most frequently asked question about code conversion | |
14805 | is: "So dudes, what's the deal with Unicode strings?" | |
14806 | The dude part is optional, but apparently the usefulness of | |
14807 | @@ -162,7 +162,7 @@ | |
14808 | needed is some kind of generalized type that accounts for the | |
14809 | issues that abstract encodings will need. The minimum information | |
14810 | that is required includes: | |
14811 | - </p><div class="itemizedlist"><ul class="itemizedlist"><li class="listitem"><p> | |
14812 | + </p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p> | |
14813 | Identifiers for each of the codesets involved in the | |
14814 | conversion. For example, using the iconv family of functions | |
14815 | from the Single Unix Specification (what used to be called | |
14816 | @@ -213,7 +213,7 @@ | |
14817 | Some way to enforce strict type checking on the internal and | |
14818 | external types. As part of this, the size of the internal and | |
14819 | external types will need to be known. | |
14820 | -</p></li></ul></div></div><div class="section" title="Other Issues"><div class="titlepage"><div><div><h5 class="title"><a id="codecvt.design.issues"/>Other Issues</h5></div></div></div><p> | |
14821 | +</p></li></ul></div></div><div class="section" title="Other Issues"><div class="titlepage"><div><div><h5 class="title"><a id="codecvt.design.issues"></a>Other Issues</h5></div></div></div><p> | |
14822 | In addition, multi-threaded and multi-locale environments also impact | |
14823 | the design and requirements for code conversions. In particular, they | |
14824 | affect the required specialization codecvt<wchar_t, char, mbstate_t> | |
14825 | @@ -245,7 +245,7 @@ | |
14826 | conversions are made between the internal character set (always UCS4 | |
14827 | on GNU/Linux) and whatever the currently selected locale for the | |
14828 | LC_CTYPE category implements. | |
14829 | -</p></div></div><div class="section" title="Implementation"><div class="titlepage"><div><div><h4 class="title"><a id="facet.codecvt.impl"/>Implementation</h4></div></div></div><p> | |
14830 | +</p></div></div><div class="section" title="Implementation"><div class="titlepage"><div><div><h4 class="title"><a id="facet.codecvt.impl"></a>Implementation</h4></div></div></div><p> | |
14831 | The two required specializations are implemented as follows: | |
14832 | </p><p> | |
14833 | <code class="code"> | |
14834 | @@ -347,7 +347,7 @@ | |
14835 | for this specialization, and usage of codecvt<internal character type, | |
14836 | external character type, encoding_state> is consistent with other | |
14837 | codecvt usage. | |
14838 | -</p></div><div class="section" title="Use"><div class="titlepage"><div><div><h4 class="title"><a id="facet.codecvt.use"/>Use</h4></div></div></div><p>A conversions involving string literal.</p><pre class="programlisting"> | |
14839 | +</p></div><div class="section" title="Use"><div class="titlepage"><div><div><h4 class="title"><a id="facet.codecvt.use"></a>Use</h4></div></div></div><p>A conversions involving string literal.</p><pre class="programlisting"> | |
14840 | typedef codecvt_base::result result; | |
14841 | typedef unsigned short unicode_t; | |
14842 | typedef unicode_t int_type; | |
14843 | @@ -384,14 +384,14 @@ | |
14844 | VERIFY( !int_traits::compare(i_arr, i_lit, size) ); | |
14845 | VERIFY( efrom_next == e_lit + size ); | |
14846 | VERIFY( ito_next == i_arr + size ); | |
14847 | -</pre></div><div class="section" title="Future"><div class="titlepage"><div><div><h4 class="title"><a id="facet.codecvt.future"/>Future</h4></div></div></div><div class="itemizedlist"><ul class="itemizedlist"><li class="listitem"><p> | |
14848 | +</pre></div><div class="section" title="Future"><div class="titlepage"><div><div><h4 class="title"><a id="facet.codecvt.future"></a>Future</h4></div></div></div><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p> | |
14849 | a. things that are sketchy, or remain unimplemented: | |
14850 | do_encoding, max_length and length member functions | |
14851 | are only weakly implemented. I have no idea how to do | |
14852 | this correctly, and in a generic manner. Nathan? | |
14853 | </p></li><li class="listitem"><p> | |
14854 | b. conversions involving std::string | |
14855 | - </p><div class="itemizedlist"><ul class="itemizedlist"><li class="listitem"><p> | |
14856 | + </p><div class="itemizedlist"><ul class="itemizedlist" type="circle"><li class="listitem"><p> | |
14857 | how should operators != and == work for string of | |
14858 | different/same encoding? | |
14859 | </p></li><li class="listitem"><p> | |
14860 | @@ -401,7 +401,7 @@ | |
14861 | conversions between narrow, wide, and unicode strings | |
14862 | </p></li></ul></div></li><li class="listitem"><p> | |
14863 | c. conversions involving std::filebuf and std::ostream | |
14864 | -</p><div class="itemizedlist"><ul class="itemizedlist"><li class="listitem"><p> | |
14865 | +</p><div class="itemizedlist"><ul class="itemizedlist" type="circle"><li class="listitem"><p> | |
14866 | how to initialize the state object in a | |
14867 | standards-conformant manner? | |
14868 | </p></li><li class="listitem"><p> | |
14869 | @@ -410,50 +410,50 @@ | |
14870 | </p></li><li class="listitem"><p> | |
14871 | wchar_t/char internal buffers and conversions between | |
14872 | internal/external buffers? | |
14873 | - </p></li></ul></div></li></ul></div></div><div class="bibliography" title="Bibliography"><div class="titlepage"><div><div><h4 class="title"><a id="facet.codecvt.biblio"/>Bibliography</h4></div></div></div><div class="biblioentry"><a id="id501980"/><p><span class="citetitle"><em class="citetitle"> | |
14874 | + </p></li></ul></div></li></ul></div></div><div class="bibliography" title="Bibliography"><div class="titlepage"><div><div><h4 class="title"><a id="facet.codecvt.biblio"></a>Bibliography</h4></div></div></div><div class="biblioentry"><a id="id680466"></a><p><span class="citetitle"><em class="citetitle"> | |
14875 | The GNU C Library | |
14876 | </em>. </span><span class="author"><span class="firstname">Roland</span> <span class="surname">McGrath</span>. </span><span class="author"><span class="firstname">Ulrich</span> <span class="surname">Drepper</span>. </span><span class="copyright">Copyright © 2007 FSF. </span><span class="pagenums"> | |
14877 | Chapters 6 Character Set Handling and 7 Locales and Internationalization | |
14878 | - . </span></p></div><div class="biblioentry"><a id="id502019"/><p><span class="citetitle"><em class="citetitle"> | |
14879 | + . </span></p></div><div class="biblioentry"><a id="id680505"></a><p><span class="citetitle"><em class="citetitle"> | |
14880 | Correspondence | |
14881 | - </em>. </span><span class="author"><span class="firstname">Ulrich</span> <span class="surname">Drepper</span>. </span><span class="copyright">Copyright © 2002 . </span></p></div><div class="biblioentry"><a id="id502045"/><p><span class="citetitle"><em class="citetitle"> | |
14882 | + </em>. </span><span class="author"><span class="firstname">Ulrich</span> <span class="surname">Drepper</span>. </span><span class="copyright">Copyright © 2002 . </span></p></div><div class="biblioentry"><a id="id680531"></a><p><span class="citetitle"><em class="citetitle"> | |
14883 | ISO/IEC 14882:1998 Programming languages - C++ | |
14884 | - </em>. </span><span class="copyright">Copyright © 1998 ISO. </span></p></div><div class="biblioentry"><a id="id502064"/><p><span class="citetitle"><em class="citetitle"> | |
14885 | + </em>. </span><span class="copyright">Copyright © 1998 ISO. </span></p></div><div class="biblioentry"><a id="id680550"></a><p><span class="citetitle"><em class="citetitle"> | |
14886 | ISO/IEC 9899:1999 Programming languages - C | |
14887 | - </em>. </span><span class="copyright">Copyright © 1999 ISO. </span></p></div><div class="biblioentry" title="System Interface Definitions, Issue 7 (IEEE Std. 1003.1-2008)"><a id="id502083"/><p><span class="title"><em> | |
14888 | - <a class="link" href="http://www.opengroup.org/austin"> | |
14889 | + </em>. </span><span class="copyright">Copyright © 1999 ISO. </span></p></div><div class="biblioentry" title="System Interface Definitions, Issue 7 (IEEE Std. 1003.1-2008)"><a id="id680569"></a><p><span class="title"><em> | |
14890 | + <a class="link" href="http://www.opengroup.org/austin" target="_top"> | |
14891 | System Interface Definitions, Issue 7 (IEEE Std. 1003.1-2008) | |
14892 | </a> | |
14893 | </em>. </span><span class="copyright">Copyright © 2008 | |
14894 | The Open Group/The Institute of Electrical and Electronics | |
14895 | Engineers, Inc. | |
14896 | - . </span></p></div><div class="biblioentry"><a id="id502110"/><p><span class="citetitle"><em class="citetitle"> | |
14897 | + . </span></p></div><div class="biblioentry"><a id="id680596"></a><p><span class="citetitle"><em class="citetitle"> | |
14898 | The C++ Programming Language, Special Edition | |
14899 | </em>. </span><span class="author"><span class="firstname">Bjarne</span> <span class="surname">Stroustrup</span>. </span><span class="copyright">Copyright © 2000 Addison Wesley, Inc.. </span><span class="pagenums">Appendix D. </span><span class="publisher"><span class="publishername"> | |
14900 | Addison Wesley | |
14901 | - . </span></span></p></div><div class="biblioentry"><a id="id502148"/><p><span class="citetitle"><em class="citetitle"> | |
14902 | + . </span></span></p></div><div class="biblioentry"><a id="id680635"></a><p><span class="citetitle"><em class="citetitle"> | |
14903 | Standard C++ IOStreams and Locales | |
14904 | </em>. </span><span class="subtitle"> | |
14905 | Advanced Programmer's Guide and Reference | |
14906 | . </span><span class="author"><span class="firstname">Angelika</span> <span class="surname">Langer</span>. </span><span class="author"><span class="firstname">Klaus</span> <span class="surname">Kreft</span>. </span><span class="copyright">Copyright © 2000 Addison Wesley Longman, Inc.. </span><span class="publisher"><span class="publishername"> | |
14907 | Addison Wesley Longman | |
14908 | - . </span></span></p></div><div class="biblioentry" title="A brief description of Normative Addendum 1"><a id="id502196"/><p><span class="title"><em> | |
14909 | - <a class="link" href="http://www.lysator.liu.se/c/na1.html"> | |
14910 | + . </span></span></p></div><div class="biblioentry" title="A brief description of Normative Addendum 1"><a id="id680682"></a><p><span class="title"><em> | |
14911 | + <a class="link" href="http://www.lysator.liu.se/c/na1.html" target="_top"> | |
14912 | A brief description of Normative Addendum 1 | |
14913 | </a> | |
14914 | - </em>. </span><span class="author"><span class="firstname">Clive</span> <span class="surname">Feather</span>. </span><span class="pagenums">Extended Character Sets. </span></p></div><div class="biblioentry" title="The Unicode HOWTO"><a id="id502223"/><p><span class="title"><em> | |
14915 | - <a class="link" href="http://tldp.org/HOWTO/Unicode-HOWTO.html"> | |
14916 | + </em>. </span><span class="author"><span class="firstname">Clive</span> <span class="surname">Feather</span>. </span><span class="pagenums">Extended Character Sets. </span></p></div><div class="biblioentry" title="The Unicode HOWTO"><a id="id680709"></a><p><span class="title"><em> | |
14917 | + <a class="link" href="http://tldp.org/HOWTO/Unicode-HOWTO.html" target="_top"> | |
14918 | The Unicode HOWTO | |
14919 | </a> | |
14920 | - </em>. </span><span class="author"><span class="firstname">Bruno</span> <span class="surname">Haible</span>. </span></p></div><div class="biblioentry" title="UTF-8 and Unicode FAQ for Unix/Linux"><a id="id502246"/><p><span class="title"><em> | |
14921 | - <a class="link" href="http://www.cl.cam.ac.uk/~mgk25/unicode.html"> | |
14922 | + </em>. </span><span class="author"><span class="firstname">Bruno</span> <span class="surname">Haible</span>. </span></p></div><div class="biblioentry" title="UTF-8 and Unicode FAQ for Unix/Linux"><a id="id680732"></a><p><span class="title"><em> | |
14923 | + <a class="link" href="http://www.cl.cam.ac.uk/~mgk25/unicode.html" target="_top"> | |
14924 | UTF-8 and Unicode FAQ for Unix/Linux | |
14925 | </a> | |
14926 | - </em>. </span><span class="author"><span class="firstname">Markus</span> <span class="surname">Khun</span>. </span></p></div></div></div><div class="section" title="messages"><div class="titlepage"><div><div><h3 class="title"><a id="manual.localization.facet.messages"/>messages</h3></div></div></div><p> | |
14927 | + </em>. </span><span class="author"><span class="firstname">Markus</span> <span class="surname">Khun</span>. </span></p></div></div></div><div class="section" title="messages"><div class="titlepage"><div><div><h3 class="title"><a id="manual.localization.facet.messages"></a>messages</h3></div></div></div><p> | |
14928 | The std::messages facet implements message retrieval functionality | |
14929 | equivalent to Java's java.text.MessageFormat .using either GNU gettext | |
14930 | or IEEE 1003.1-200 functions. | |
14931 | -</p><div class="section" title="Requirements"><div class="titlepage"><div><div><h4 class="title"><a id="facet.messages.req"/>Requirements</h4></div></div></div><p> | |
14932 | +</p><div class="section" title="Requirements"><div class="titlepage"><div><div><h4 class="title"><a id="facet.messages.req"></a>Requirements</h4></div></div></div><p> | |
14933 | The std::messages facet is probably the most vaguely defined facet in | |
14934 | the standard library. It's assumed that this facility was built into | |
14935 | the standard library in order to convert string literals from one | |
14936 | @@ -502,7 +502,7 @@ | |
14937 | -6- Effects: Releases unspecified resources associated with cat. | |
14938 | -7- Notes: The limit on such resources, if any, is implementation-defined. | |
14939 | </em></span> | |
14940 | -</p></blockquote></div></div><div class="section" title="Design"><div class="titlepage"><div><div><h4 class="title"><a id="facet.messages.design"/>Design</h4></div></div></div><p> | |
14941 | +</p></blockquote></div></div><div class="section" title="Design"><div class="titlepage"><div><div><h4 class="title"><a id="facet.messages.design"></a>Design</h4></div></div></div><p> | |
14942 | A couple of notes on the standard. | |
14943 | </p><p> | |
14944 | First, why is <code class="code">messages_base::catalog</code> specified as a typedef | |
14945 | @@ -535,7 +535,7 @@ | |
14946 | string in 'get' is in the "C" locale. Thus, all source code is assumed | |
14947 | to be written in English, so translations are always from "en_US" to | |
14948 | other, explicitly named locales. | |
14949 | -</p></div><div class="section" title="Implementation"><div class="titlepage"><div><div><h4 class="title"><a id="facet.messages.impl"/>Implementation</h4></div></div></div><div class="section" title="Models"><div class="titlepage"><div><div><h5 class="title"><a id="messages.impl.models"/>Models</h5></div></div></div><p> | |
14950 | +</p></div><div class="section" title="Implementation"><div class="titlepage"><div><div><h4 class="title"><a id="facet.messages.impl"></a>Implementation</h4></div></div></div><div class="section" title="Models"><div class="titlepage"><div><div><h5 class="title"><a id="messages.impl.models"></a>Models</h5></div></div></div><p> | |
14951 | This is a relatively simple class, on the face of it. The standard | |
14952 | specifies very little in concrete terms, so generic | |
14953 | implementations that are conforming yet do very little are the | |
14954 | @@ -546,7 +546,7 @@ | |
14955 | </p><p> | |
14956 | Three different mechanisms have been provided, selectable via | |
14957 | configure flags: | |
14958 | - </p><div class="itemizedlist"><ul class="itemizedlist"><li class="listitem"><p> | |
14959 | + </p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p> | |
14960 | generic | |
14961 | </p><p> | |
14962 | This model does very little, and is what is used by default. | |
14963 | @@ -576,7 +576,7 @@ | |
14964 | added for 'open' so that a directory could be specified with a given | |
14965 | message catalog. This simplifies calling conventions for the gnu | |
14966 | model. | |
14967 | -</p></div><div class="section" title="The GNU Model"><div class="titlepage"><div><div><h5 class="title"><a id="messages.impl.gnu"/>The GNU Model</h5></div></div></div><p> | |
14968 | +</p></div><div class="section" title="The GNU Model"><div class="titlepage"><div><div><h5 class="title"><a id="messages.impl.gnu"></a>The GNU Model</h5></div></div></div><p> | |
14969 | The messages facet, because it is retrieving and converting | |
14970 | between characters sets, depends on the ctype and perhaps the | |
14971 | codecvt facet in a given locale. In addition, underlying "C" | |
14972 | @@ -588,7 +588,7 @@ | |
14973 | Making the message catalogs can be initially tricky, but become | |
14974 | quite simple with practice. For complete info, see the gettext | |
14975 | documentation. Here's an idea of what is required: | |
14976 | - </p><div class="itemizedlist"><ul class="itemizedlist"><li class="listitem"><p> | |
14977 | + </p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p> | |
14978 | Make a source file with the required string literals that need | |
14979 | to be translated. See <code class="code">intl/string_literals.cc</code> for | |
14980 | an example. | |
14981 | @@ -619,7 +619,7 @@ | |
14982 | <code class="code"> | |
14983 | use_facet<messages<char> >(loc_de).open("libstdc++", locale(), dir); | |
14984 | </code> | |
14985 | - </p></li></ul></div></div></div><div class="section" title="Use"><div class="titlepage"><div><div><h4 class="title"><a id="facet.messages.use"/>Use</h4></div></div></div><p> | |
14986 | + </p></li></ul></div></div></div><div class="section" title="Use"><div class="titlepage"><div><div><h4 class="title"><a id="facet.messages.use"></a>Use</h4></div></div></div><p> | |
14987 | A simple example using the GNU model of message conversion. | |
14988 | </p><pre class="programlisting"> | |
14989 | #include <iostream> | |
14990 | @@ -641,9 +641,9 @@ | |
14991 | cout << "thank you in german:" << s02 << '\n'; | |
14992 | mssg_de.close(cat_de); | |
14993 | } | |
14994 | -</pre></div><div class="section" title="Future"><div class="titlepage"><div><div><h4 class="title"><a id="facet.messages.future"/>Future</h4></div></div></div><div class="itemizedlist"><ul class="itemizedlist"><li class="listitem"><p> | |
14995 | +</pre></div><div class="section" title="Future"><div class="titlepage"><div><div><h4 class="title"><a id="facet.messages.future"></a>Future</h4></div></div></div><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p> | |
14996 | Things that are sketchy, or remain unimplemented: | |
14997 | - </p><div class="itemizedlist"><ul class="itemizedlist"><li class="listitem"><p> | |
14998 | + </p><div class="itemizedlist"><ul class="itemizedlist" type="circle"><li class="listitem"><p> | |
14999 | _M_convert_from_char, _M_convert_to_char are in flux, | |
15000 | depending on how the library ends up doing character set | |
15001 | conversions. It might not be possible to do a real character | |
15002 | @@ -691,47 +691,47 @@ | |
15003 | model. As of this writing, it is unknown how to query to see | |
15004 | if a specified message catalog exists using the gettext | |
15005 | package. | |
15006 | - </p></li></ul></div></div><div class="bibliography" title="Bibliography"><div class="titlepage"><div><div><h4 class="title"><a id="facet.messages.biblio"/>Bibliography</h4></div></div></div><div class="biblioentry"><a id="id502922"/><p><span class="citetitle"><em class="citetitle"> | |
15007 | + </p></li></ul></div></div><div class="bibliography" title="Bibliography"><div class="titlepage"><div><div><h4 class="title"><a id="facet.messages.biblio"></a>Bibliography</h4></div></div></div><div class="biblioentry"><a id="id681408"></a><p><span class="citetitle"><em class="citetitle"> | |
15008 | The GNU C Library | |
15009 | </em>. </span><span class="author"><span class="firstname">Roland</span> <span class="surname">McGrath</span>. </span><span class="author"><span class="firstname">Ulrich</span> <span class="surname">Drepper</span>. </span><span class="copyright">Copyright © 2007 FSF. </span><span class="pagenums">Chapters 6 Character Set Handling, and 7 Locales and Internationalization | |
15010 | - . </span></p></div><div class="biblioentry"><a id="id502962"/><p><span class="citetitle"><em class="citetitle"> | |
15011 | + . </span></p></div><div class="biblioentry"><a id="id681448"></a><p><span class="citetitle"><em class="citetitle"> | |
15012 | Correspondence | |
15013 | - </em>. </span><span class="author"><span class="firstname">Ulrich</span> <span class="surname">Drepper</span>. </span><span class="copyright">Copyright © 2002 . </span></p></div><div class="biblioentry"><a id="id502987"/><p><span class="citetitle"><em class="citetitle"> | |
15014 | + </em>. </span><span class="author"><span class="firstname">Ulrich</span> <span class="surname">Drepper</span>. </span><span class="copyright">Copyright © 2002 . </span></p></div><div class="biblioentry"><a id="id681474"></a><p><span class="citetitle"><em class="citetitle"> | |
15015 | ISO/IEC 14882:1998 Programming languages - C++ | |
15016 | - </em>. </span><span class="copyright">Copyright © 1998 ISO. </span></p></div><div class="biblioentry"><a id="id503006"/><p><span class="citetitle"><em class="citetitle"> | |
15017 | + </em>. </span><span class="copyright">Copyright © 1998 ISO. </span></p></div><div class="biblioentry"><a id="id681493"></a><p><span class="citetitle"><em class="citetitle"> | |
15018 | ISO/IEC 9899:1999 Programming languages - C | |
15019 | - </em>. </span><span class="copyright">Copyright © 1999 ISO. </span></p></div><div class="biblioentry" title="System Interface Definitions, Issue 7 (IEEE Std. 1003.1-2008)"><a id="id503025"/><p><span class="title"><em> | |
15020 | - <a class="link" href="http://www.opengroup.org/austin"> | |
15021 | + </em>. </span><span class="copyright">Copyright © 1999 ISO. </span></p></div><div class="biblioentry" title="System Interface Definitions, Issue 7 (IEEE Std. 1003.1-2008)"><a id="id681512"></a><p><span class="title"><em> | |
15022 | + <a class="link" href="http://www.opengroup.org/austin" target="_top"> | |
15023 | System Interface Definitions, Issue 7 (IEEE Std. 1003.1-2008) | |
15024 | </a> | |
15025 | </em>. </span><span class="copyright">Copyright © 2008 | |
15026 | The Open Group/The Institute of Electrical and Electronics | |
15027 | Engineers, Inc. | |
15028 | - . </span></p></div><div class="biblioentry"><a id="id503052"/><p><span class="citetitle"><em class="citetitle"> | |
15029 | + . </span></p></div><div class="biblioentry"><a id="id681539"></a><p><span class="citetitle"><em class="citetitle"> | |
15030 | The C++ Programming Language, Special Edition | |
15031 | </em>. </span><span class="author"><span class="firstname">Bjarne</span> <span class="surname">Stroustrup</span>. </span><span class="copyright">Copyright © 2000 Addison Wesley, Inc.. </span><span class="pagenums">Appendix D. </span><span class="publisher"><span class="publishername"> | |
15032 | Addison Wesley | |
15033 | - . </span></span></p></div><div class="biblioentry"><a id="id503091"/><p><span class="citetitle"><em class="citetitle"> | |
15034 | + . </span></span></p></div><div class="biblioentry"><a id="id681577"></a><p><span class="citetitle"><em class="citetitle"> | |
15035 | Standard C++ IOStreams and Locales | |
15036 | </em>. </span><span class="subtitle"> | |
15037 | Advanced Programmer's Guide and Reference | |
15038 | . </span><span class="author"><span class="firstname">Angelika</span> <span class="surname">Langer</span>. </span><span class="author"><span class="firstname">Klaus</span> <span class="surname">Kreft</span>. </span><span class="copyright">Copyright © 2000 Addison Wesley Longman, Inc.. </span><span class="publisher"><span class="publishername"> | |
15039 | Addison Wesley Longman | |
15040 | - . </span></span></p></div><div class="biblioentry" title="API Specifications, Java Platform"><a id="id503138"/><p><span class="title"><em> | |
15041 | - <a class="link" href="http://java.sun.com/reference/api/index.html"> | |
15042 | + . </span></span></p></div><div class="biblioentry" title="API Specifications, Java Platform"><a id="id681624"></a><p><span class="title"><em> | |
15043 | + <a class="link" href="http://java.sun.com/reference/api/index.html" target="_top"> | |
15044 | API Specifications, Java Platform | |
15045 | </a> | |
15046 | </em>. </span><span class="pagenums">java.util.Properties, java.text.MessageFormat, | |
15047 | java.util.Locale, java.util.ResourceBundle | |
15048 | - . </span></p></div><div class="biblioentry" title="GNU gettext tools, version 0.10.38, Native Language Support Library and Tools."><a id="id503158"/><p><span class="title"><em> | |
15049 | - <a class="link" href="http://www.gnu.org/software/gettext"> | |
15050 | + . </span></p></div><div class="biblioentry" title="GNU gettext tools, version 0.10.38, Native Language Support Library and Tools."><a id="id681644"></a><p><span class="title"><em> | |
15051 | + <a class="link" href="http://www.gnu.org/software/gettext" target="_top"> | |
15052 | GNU gettext tools, version 0.10.38, Native Language Support | |
15053 | Library and Tools. | |
15054 | </a> | |
15055 | - </em>. </span></p></div></div></div></div><div class="navfooter"><hr/><table width="100%" summary="Navigation footer"><tr><td align="left"><a accesskey="p" href="localization.html">Prev</a> </td><td align="center"><a accesskey="u" href="localization.html">Up</a></td><td align="right"> <a accesskey="n" href="containers.html">Next</a></td></tr><tr><td align="left" valign="top">Chapter 8. | |
15056 | + </em>. </span></p></div></div></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="localization.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="localization.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="containers.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Chapter 8. | |
15057 | Localization | |
15058 | ||
15059 | - </td><td align="center"><a accesskey="h" href="../index.html">Home</a></td><td align="right" valign="top"> Chapter 9. | |
15060 | + </td><td width="20%" align="center"><a accesskey="h" href="../index.html">Home</a></td><td width="40%" align="right" valign="top"> Chapter 9. | |
15061 | Containers | |
15062 | ||
15063 | </td></tr></table></div></body></html> | |
15064 | Index: libstdc++-v3/doc/html/manual/diagnostics.html | |
15065 | =================================================================== | |
9f95000d AM |
15066 | --- libstdc++-v3/doc/html/manual/diagnostics.html (.../tags/gcc_4_7_2_release) (wersja 192468) |
15067 | +++ libstdc++-v3/doc/html/manual/diagnostics.html (.../branches/gcc-4_7-branch) (wersja 192468) | |
5a87b929 AM |
15068 | @@ -1,14 +1,14 @@ |
15069 | <?xml version="1.0" encoding="UTF-8" standalone="no"?> | |
15070 | -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> | |
15071 | -<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Chapter 5. Diagnostics</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1"/><meta name="keywords" content=" ISO C++ , library "/><meta name="keywords" content=" ISO C++ , runtime , library "/><link rel="home" href="../index.html" title="The GNU C++ Library"/><link rel="up" href="bk01pt02.html" title="Part II. Standard Contents"/><link rel="prev" href="termination.html" title="Termination"/><link rel="next" href="bk01pt02ch05s02.html" title="Concept Checking"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 5. | |
15072 | +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> | |
15073 | +<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Chapter 5. Diagnostics</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1" /><meta name="keywords" content=" ISO C++ , library " /><meta name="keywords" content=" ISO C++ , runtime , library " /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="bk01pt02.html" title="Part II. Standard Contents" /><link rel="prev" href="termination.html" title="Termination" /><link rel="next" href="bk01pt02ch05s02.html" title="Concept Checking" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 5. | |
15074 | Diagnostics | |
15075 | ||
15076 | -</th></tr><tr><td align="left"><a accesskey="p" href="termination.html">Prev</a> </td><th width="60%" align="center">Part II. | |
15077 | +</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="termination.html">Prev</a> </td><th width="60%" align="center">Part II. | |
15078 | Standard Contents | |
15079 | - </th><td align="right"> <a accesskey="n" href="bk01pt02ch05s02.html">Next</a></td></tr></table><hr/></div><div class="chapter" title="Chapter 5. Diagnostics"><div class="titlepage"><div><div><h2 class="title"><a id="std.diagnostics"/>Chapter 5. | |
15080 | + </th><td width="20%" align="right"> <a accesskey="n" href="bk01pt02ch05s02.html">Next</a></td></tr></table><hr /></div><div class="chapter" title="Chapter 5. Diagnostics"><div class="titlepage"><div><div><h2 class="title"><a id="std.diagnostics"></a>Chapter 5. | |
15081 | Diagnostics | |
15082 | - <a id="id484626" class="indexterm"/> | |
15083 | -</h2></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl><dt><span class="section"><a href="diagnostics.html#std.diagnostics.exceptions">Exceptions</a></span></dt><dd><dl><dt><span class="section"><a href="diagnostics.html#std.diagnostics.exceptions.api">API Reference</a></span></dt><dt><span class="section"><a href="diagnostics.html#std.diagnostics.exceptions.data">Adding Data to <code class="classname">exception</code></a></span></dt></dl></dd><dt><span class="section"><a href="bk01pt02ch05s02.html">Concept Checking</a></span></dt></dl></div><div class="section" title="Exceptions"><div class="titlepage"><div><div><h2 class="title"><a id="std.diagnostics.exceptions"/>Exceptions</h2></div></div></div><div class="section" title="API Reference"><div class="titlepage"><div><div><h3 class="title"><a id="std.diagnostics.exceptions.api"/>API Reference</h3></div></div></div><p> | |
15084 | + <a id="id663114" class="indexterm"></a> | |
15085 | +</h2></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl><dt><span class="section"><a href="diagnostics.html#std.diagnostics.exceptions">Exceptions</a></span></dt><dd><dl><dt><span class="section"><a href="diagnostics.html#std.diagnostics.exceptions.api">API Reference</a></span></dt><dt><span class="section"><a href="diagnostics.html#std.diagnostics.exceptions.data">Adding Data to <code class="classname">exception</code></a></span></dt></dl></dd><dt><span class="section"><a href="bk01pt02ch05s02.html">Concept Checking</a></span></dt></dl></div><div class="section" title="Exceptions"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="std.diagnostics.exceptions"></a>Exceptions</h2></div></div></div><div class="section" title="API Reference"><div class="titlepage"><div><div><h3 class="title"><a id="std.diagnostics.exceptions.api"></a>API Reference</h3></div></div></div><p> | |
15086 | All exception objects are defined in one of the standard header | |
15087 | files: <code class="filename">exception</code>, | |
15088 | <code class="filename">stdexcept</code>, <code class="filename">new</code>, and | |
15089 | @@ -23,7 +23,7 @@ | |
15090 | found in the source documentation. | |
15091 | </p><p> | |
15092 | Full API details. | |
15093 | - </p></div><div class="section" title="Adding Data to exception"><div class="titlepage"><div><div><h3 class="title"><a id="std.diagnostics.exceptions.data"/>Adding Data to <code class="classname">exception</code></h3></div></div></div><p> | |
15094 | + </p></div><div class="section" title="Adding Data to exception"><div class="titlepage"><div><div><h3 class="title"><a id="std.diagnostics.exceptions.data"></a>Adding Data to <code class="classname">exception</code></h3></div></div></div><p> | |
15095 | The standard exception classes carry with them a single string as | |
15096 | data (usually describing what went wrong or where the 'throw' took | |
15097 | place). It's good to remember that you can add your own data to | |
15098 | @@ -40,4 +40,4 @@ | |
15099 | int e; | |
15100 | DBID id; // some user-defined type | |
15101 | }; | |
15102 | - </pre></div></div></div><div class="navfooter"><hr/><table width="100%" summary="Navigation footer"><tr><td align="left"><a accesskey="p" href="termination.html">Prev</a> </td><td align="center"><a accesskey="u" href="bk01pt02.html">Up</a></td><td align="right"> <a accesskey="n" href="bk01pt02ch05s02.html">Next</a></td></tr><tr><td align="left" valign="top">Termination </td><td align="center"><a accesskey="h" href="../index.html">Home</a></td><td align="right" valign="top"> Concept Checking</td></tr></table></div></body></html> | |
15103 | + </pre></div></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="termination.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="bk01pt02.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="bk01pt02ch05s02.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Termination </td><td width="20%" align="center"><a accesskey="h" href="../index.html">Home</a></td><td width="40%" align="right" valign="top"> Concept Checking</td></tr></table></div></body></html> | |
15104 | Index: libstdc++-v3/doc/html/manual/bk01pt03ch30s02.html | |
15105 | =================================================================== | |
9f95000d AM |
15106 | --- libstdc++-v3/doc/html/manual/bk01pt03ch30s02.html (.../tags/gcc_4_7_2_release) (wersja 192468) |
15107 | +++ libstdc++-v3/doc/html/manual/bk01pt03ch30s02.html (.../branches/gcc-4_7-branch) (wersja 192468) | |
5a87b929 AM |
15108 | @@ -1,6 +1,6 @@ |
15109 | <?xml version="1.0" encoding="UTF-8" standalone="no"?> | |
15110 | -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> | |
15111 | -<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Implementation</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1"/><meta name="keywords" content=" ISO C++ , library "/><meta name="keywords" content=" ISO C++ , library "/><meta name="keywords" content=" ISO C++ , runtime , library "/><link rel="home" href="../index.html" title="The GNU C++ Library"/><link rel="up" href="ext_concurrency.html" title="Chapter 30. Concurrency"/><link rel="prev" href="ext_concurrency.html" title="Chapter 30. Concurrency"/><link rel="next" href="bk01pt03ch30s03.html" title="Use"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Implementation</th></tr><tr><td align="left"><a accesskey="p" href="ext_concurrency.html">Prev</a> </td><th width="60%" align="center">Chapter 30. Concurrency</th><td align="right"> <a accesskey="n" href="bk01pt03ch30s03.html">Next</a></td></tr></table><hr/></div><div class="section" title="Implementation"><div class="titlepage"><div><div><h2 class="title"><a id="manual.ext.concurrency.impl"/>Implementation</h2></div></div></div><div class="section" title="Using Builtin Atomic Functions"><div class="titlepage"><div><div><h3 class="title"><a id="manual.ext.concurrency.impl.atomic_fallbacks"/>Using Builtin Atomic Functions</h3></div></div></div><p>The functions for atomic operations described above are either | |
15112 | +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> | |
15113 | +<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Implementation</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1" /><meta name="keywords" content=" ISO C++ , library " /><meta name="keywords" content=" ISO C++ , library " /><meta name="keywords" content=" ISO C++ , runtime , library " /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="ext_concurrency.html" title="Chapter 30. Concurrency" /><link rel="prev" href="ext_concurrency.html" title="Chapter 30. Concurrency" /><link rel="next" href="bk01pt03ch30s03.html" title="Use" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Implementation</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ext_concurrency.html">Prev</a> </td><th width="60%" align="center">Chapter 30. Concurrency</th><td width="20%" align="right"> <a accesskey="n" href="bk01pt03ch30s03.html">Next</a></td></tr></table><hr /></div><div class="section" title="Implementation"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="manual.ext.concurrency.impl"></a>Implementation</h2></div></div></div><div class="section" title="Using Builtin Atomic Functions"><div class="titlepage"><div><div><h3 class="title"><a id="manual.ext.concurrency.impl.atomic_fallbacks"></a>Using Builtin Atomic Functions</h3></div></div></div><p>The functions for atomic operations described above are either | |
15114 | implemented via compiler intrinsics (if the underlying host is | |
15115 | capable) or by library fallbacks.</p><p>Compiler intrinsics (builtins) are always preferred. However, as | |
15116 | the compiler builtins for atomics are not universally implemented, | |
15117 | @@ -22,14 +22,14 @@ | |
15118 | If builtins are possible for int-sized integral types, | |
15119 | <code class="code">ATOMIC_INT_LOCK_FREE</code> will be defined. | |
15120 | </p><p>For the following hosts, intrinsics are enabled by default. | |
15121 | -</p><div class="itemizedlist"><ul class="itemizedlist"><li class="listitem"><p>alpha</p></li><li class="listitem"><p>ia64</p></li><li class="listitem"><p>powerpc</p></li><li class="listitem"><p>s390</p></li></ul></div><p>For others, some form of <code class="code">-march</code> may work. On | |
15122 | +</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>alpha</p></li><li class="listitem"><p>ia64</p></li><li class="listitem"><p>powerpc</p></li><li class="listitem"><p>s390</p></li></ul></div><p>For others, some form of <code class="code">-march</code> may work. On | |
15123 | non-ancient x86 hardware, <code class="code">-march=native</code> usually does the | |
15124 | trick.</p><p> For hosts without compiler intrinsics, but with capable | |
15125 | hardware, hand-crafted assembly is selected. This is the case for the following hosts: | |
15126 | -</p><div class="itemizedlist"><ul class="itemizedlist"><li class="listitem"><p>cris</p></li><li class="listitem"><p>hppa</p></li><li class="listitem"><p>i386</p></li><li class="listitem"><p>i486</p></li><li class="listitem"><p>m48k</p></li><li class="listitem"><p>mips</p></li><li class="listitem"><p>sparc</p></li></ul></div><p>And for the rest, a simulated atomic lock via pthreads. | |
15127 | -</p><p> Detailed information about compiler intrinsics for atomic operations can be found in the GCC <a class="link" href="http://gcc.gnu.org/onlinedocs/gcc/Atomic-Builtins.html"> documentation</a>. | |
15128 | +</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>cris</p></li><li class="listitem"><p>hppa</p></li><li class="listitem"><p>i386</p></li><li class="listitem"><p>i486</p></li><li class="listitem"><p>m48k</p></li><li class="listitem"><p>mips</p></li><li class="listitem"><p>sparc</p></li></ul></div><p>And for the rest, a simulated atomic lock via pthreads. | |
15129 | +</p><p> Detailed information about compiler intrinsics for atomic operations can be found in the GCC <a class="link" href="http://gcc.gnu.org/onlinedocs/gcc/Atomic-Builtins.html" target="_top"> documentation</a>. | |
15130 | </p><p> More details on the library fallbacks from the porting <a class="link" href="internals.html#internals.thread_safety" title="Thread Safety">section</a>. | |
15131 | -</p></div><div class="section" title="Thread Abstraction"><div class="titlepage"><div><div><h3 class="title"><a id="manual.ext.concurrency.impl.thread"/>Thread Abstraction</h3></div></div></div><p>A thin layer above IEEE 1003.1 (i.e. pthreads) is used to abstract | |
15132 | +</p></div><div class="section" title="Thread Abstraction"><div class="titlepage"><div><div><h3 class="title"><a id="manual.ext.concurrency.impl.thread"></a>Thread Abstraction</h3></div></div></div><p>A thin layer above IEEE 1003.1 (i.e. pthreads) is used to abstract | |
15133 | the thread interface for GCC. This layer is called "gthread," and is | |
15134 | comprised of one header file that wraps the host's default thread layer with | |
15135 | a POSIX-like interface. | |
15136 | @@ -37,9 +37,9 @@ | |
15137 | the current host. In libstdc++ implementation files, | |
15138 | <bits/gthr.h> is used to select the proper gthreads file. | |
15139 | </p><p>Within libstdc++ sources, all calls to underlying thread functionality | |
15140 | -use this layer. More detail as to the specific interface can be found in the source <a class="link" href="http://gcc.gnu.org/onlinedocs/libstdc++/latest-doxygen/a00883_source.html">documentation</a>. | |
15141 | +use this layer. More detail as to the specific interface can be found in the source <a class="link" href="http://gcc.gnu.org/onlinedocs/libstdc++/latest-doxygen/a00883_source.html" target="_top">documentation</a>. | |
15142 | </p><p>By design, the gthread layer is interoperable with the types, | |
15143 | functions, and usage found in the usual <pthread.h> file, | |
15144 | including <code class="code">pthread_t</code>, <code class="code">pthread_once_t</code>, <code class="code">pthread_create</code>, | |
15145 | etc. | |
15146 | -</p></div></div><div class="navfooter"><hr/><table width="100%" summary="Navigation footer"><tr><td align="left"><a accesskey="p" href="ext_concurrency.html">Prev</a> </td><td align="center"><a accesskey="u" href="ext_concurrency.html">Up</a></td><td align="right"> <a accesskey="n" href="bk01pt03ch30s03.html">Next</a></td></tr><tr><td align="left" valign="top">Chapter 30. Concurrency </td><td align="center"><a accesskey="h" href="../index.html">Home</a></td><td align="right" valign="top"> Use</td></tr></table></div></body></html> | |
15147 | +</p></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="ext_concurrency.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="ext_concurrency.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="bk01pt03ch30s03.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Chapter 30. Concurrency </td><td width="20%" align="center"><a accesskey="h" href="../index.html">Home</a></td><td width="40%" align="right" valign="top"> Use</td></tr></table></div></body></html> | |
15148 | Index: libstdc++-v3/doc/html/manual/bk01pt03ch20s03.html | |
15149 | =================================================================== | |
9f95000d AM |
15150 | --- libstdc++-v3/doc/html/manual/bk01pt03ch20s03.html (.../tags/gcc_4_7_2_release) (wersja 192468) |
15151 | +++ libstdc++-v3/doc/html/manual/bk01pt03ch20s03.html (.../branches/gcc-4_7-branch) (wersja 192468) | |
5a87b929 AM |
15152 | @@ -1,9 +1,9 @@ |
15153 | <?xml version="1.0" encoding="UTF-8" standalone="no"?> | |
15154 | -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> | |
15155 | -<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Implementation</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1"/><meta name="keywords" content=" ISO C++ , allocator "/><meta name="keywords" content=" ISO C++ , library "/><meta name="keywords" content=" ISO C++ , runtime , library "/><link rel="home" href="../index.html" title="The GNU C++ Library"/><link rel="up" href="mt_allocator.html" title="Chapter 20. The mt_allocator"/><link rel="prev" href="bk01pt03ch20s02.html" title="Design Issues"/><link rel="next" href="bk01pt03ch20s04.html" title="Single Thread Example"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Implementation</th></tr><tr><td align="left"><a accesskey="p" href="bk01pt03ch20s02.html">Prev</a> </td><th width="60%" align="center">Chapter 20. The mt_allocator</th><td align="right"> <a accesskey="n" href="bk01pt03ch20s04.html">Next</a></td></tr></table><hr/></div><div class="section" title="Implementation"><div class="titlepage"><div><div><h2 class="title"><a id="allocator.mt.impl"/>Implementation</h2></div></div></div><div class="section" title="Tunable Parameters"><div class="titlepage"><div><div><h3 class="title"><a id="allocator.mt.tune"/>Tunable Parameters</h3></div></div></div><p>Certain allocation parameters can be modified, or tuned. There | |
15156 | +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> | |
15157 | +<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Implementation</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1" /><meta name="keywords" content=" ISO C++ , allocator " /><meta name="keywords" content=" ISO C++ , library " /><meta name="keywords" content=" ISO C++ , runtime , library " /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="mt_allocator.html" title="Chapter 20. The mt_allocator" /><link rel="prev" href="bk01pt03ch20s02.html" title="Design Issues" /><link rel="next" href="bk01pt03ch20s04.html" title="Single Thread Example" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Implementation</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="bk01pt03ch20s02.html">Prev</a> </td><th width="60%" align="center">Chapter 20. The mt_allocator</th><td width="20%" align="right"> <a accesskey="n" href="bk01pt03ch20s04.html">Next</a></td></tr></table><hr /></div><div class="section" title="Implementation"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="allocator.mt.impl"></a>Implementation</h2></div></div></div><div class="section" title="Tunable Parameters"><div class="titlepage"><div><div><h3 class="title"><a id="allocator.mt.tune"></a>Tunable Parameters</h3></div></div></div><p>Certain allocation parameters can be modified, or tuned. There | |
15158 | exists a nested <code class="code">struct __pool_base::_Tune</code> that contains all | |
15159 | these parameters, which include settings for | |
15160 | -</p><div class="itemizedlist"><ul class="itemizedlist"><li class="listitem"><p>Alignment</p></li><li class="listitem"><p>Maximum bytes before calling <code class="code">::operator new</code> directly</p></li><li class="listitem"><p>Minimum bytes</p></li><li class="listitem"><p>Size of underlying global allocations</p></li><li class="listitem"><p>Maximum number of supported threads</p></li><li class="listitem"><p>Migration of deallocations to the global free list</p></li><li class="listitem"><p>Shunt for global <code class="code">new</code> and <code class="code">delete</code></p></li></ul></div><p>Adjusting parameters for a given instance of an allocator can only | |
15161 | +</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>Alignment</p></li><li class="listitem"><p>Maximum bytes before calling <code class="code">::operator new</code> directly</p></li><li class="listitem"><p>Minimum bytes</p></li><li class="listitem"><p>Size of underlying global allocations</p></li><li class="listitem"><p>Maximum number of supported threads</p></li><li class="listitem"><p>Migration of deallocations to the global free list</p></li><li class="listitem"><p>Shunt for global <code class="code">new</code> and <code class="code">delete</code></p></li></ul></div><p>Adjusting parameters for a given instance of an allocator can only | |
15162 | happen before any allocations take place, when the allocator itself is | |
15163 | initialized. For instance: | |
15164 | </p><pre class="programlisting"> | |
15165 | @@ -39,7 +39,7 @@ | |
15166 | ||
15167 | return 0; | |
15168 | } | |
15169 | -</pre></div><div class="section" title="Initialization"><div class="titlepage"><div><div><h3 class="title"><a id="allocator.mt.init"/>Initialization</h3></div></div></div><p> | |
15170 | +</pre></div><div class="section" title="Initialization"><div class="titlepage"><div><div><h3 class="title"><a id="allocator.mt.init"></a>Initialization</h3></div></div></div><p> | |
15171 | The static variables (pointers to freelists, tuning parameters etc) | |
15172 | are initialized as above, or are set to the global defaults. | |
15173 | </p><p> | |
15174 | @@ -131,7 +131,7 @@ | |
15175 | for this specific bin. This only occurs when a number of blocks | |
15176 | are grabbed from the global list to a thread specific list or when | |
15177 | a thread decides to return some blocks to the global freelist. | |
15178 | -</p></div><div class="section" title="Deallocation Notes"><div class="titlepage"><div><div><h3 class="title"><a id="allocator.mt.deallocation"/>Deallocation Notes</h3></div></div></div><p> Notes about deallocation. This allocator does not explicitly | |
15179 | +</p></div><div class="section" title="Deallocation Notes"><div class="titlepage"><div><div><h3 class="title"><a id="allocator.mt.deallocation"></a>Deallocation Notes</h3></div></div></div><p> Notes about deallocation. This allocator does not explicitly | |
15180 | release memory. Because of this, memory debugging programs like | |
15181 | valgrind or purify may notice leaks: sorry about this | |
15182 | inconvenience. Operating systems will reclaim allocated memory at | |
15183 | @@ -156,6 +156,6 @@ | |
15184 | as part of a container's constructor. However, this assumption is | |
15185 | implementation-specific, and subject to change. For an example of a | |
15186 | pool that frees memory, see the following | |
15187 | - <a class="link" href="http://gcc.gnu.org/viewcvs/trunk/libstdc++-v3/testsuite/ext/mt_allocator/deallocate_local-6.cc?view=markup"> | |
15188 | + <a class="link" href="http://gcc.gnu.org/viewcvs/trunk/libstdc++-v3/testsuite/ext/mt_allocator/deallocate_local-6.cc?view=markup" target="_top"> | |
15189 | example.</a> | |
15190 | -</p></div></div><div class="navfooter"><hr/><table width="100%" summary="Navigation footer"><tr><td align="left"><a accesskey="p" href="bk01pt03ch20s02.html">Prev</a> </td><td align="center"><a accesskey="u" href="mt_allocator.html">Up</a></td><td align="right"> <a accesskey="n" href="bk01pt03ch20s04.html">Next</a></td></tr><tr><td align="left" valign="top">Design Issues </td><td align="center"><a accesskey="h" href="../index.html">Home</a></td><td align="right" valign="top"> Single Thread Example</td></tr></table></div></body></html> | |
15191 | +</p></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="bk01pt03ch20s02.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="mt_allocator.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="bk01pt03ch20s04.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Design Issues </td><td width="20%" align="center"><a accesskey="h" href="../index.html">Home</a></td><td width="40%" align="right" valign="top"> Single Thread Example</td></tr></table></div></body></html> | |
15192 | Index: libstdc++-v3/doc/html/manual/appendix_free.html | |
15193 | =================================================================== | |
9f95000d AM |
15194 | --- libstdc++-v3/doc/html/manual/appendix_free.html (.../tags/gcc_4_7_2_release) (wersja 192468) |
15195 | +++ libstdc++-v3/doc/html/manual/appendix_free.html (.../branches/gcc-4_7-branch) (wersja 192468) | |
5a87b929 AM |
15196 | @@ -1,13 +1,13 @@ |
15197 | <?xml version="1.0" encoding="UTF-8" standalone="no"?> | |
15198 | -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> | |
15199 | -<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Appendix C. Free Software Needs Free Documentation</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1"/><meta name="keywords" content=" ISO C++ , library "/><meta name="keywords" content=" ISO C++ , runtime , library "/><link rel="home" href="../index.html" title="The GNU C++ Library"/><link rel="up" href="bk01pt04.html" title="Part IV. Appendices"/><link rel="prev" href="backwards.html" title="Backwards Compatibility"/><link rel="next" href="appendix_gpl.html" title="Appendix D. GNU General Public License version 3"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Appendix C. | |
15200 | +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> | |
15201 | +<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Appendix C. Free Software Needs Free Documentation</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1" /><meta name="keywords" content=" ISO C++ , library " /><meta name="keywords" content=" ISO C++ , runtime , library " /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="bk01pt04.html" title="Part IV. Appendices" /><link rel="prev" href="backwards.html" title="Backwards Compatibility" /><link rel="next" href="appendix_gpl.html" title="Appendix D. GNU General Public License version 3" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Appendix C. | |
15202 | Free Software Needs Free Documentation | |
15203 | ||
15204 | -</th></tr><tr><td align="left"><a accesskey="p" href="backwards.html">Prev</a> </td><th width="60%" align="center">Part IV. | |
15205 | +</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="backwards.html">Prev</a> </td><th width="60%" align="center">Part IV. | |
15206 | Appendices | |
15207 | -</th><td align="right"> <a accesskey="n" href="appendix_gpl.html">Next</a></td></tr></table><hr/></div><div class="appendix" title="Appendix C. Free Software Needs Free Documentation"><div class="titlepage"><div><div><h1 class="title"><a id="appendix.free"/> | |
15208 | +</th><td width="20%" align="right"> <a accesskey="n" href="appendix_gpl.html">Next</a></td></tr></table><hr /></div><div class="appendix" title="Appendix C. Free Software Needs Free Documentation"><div class="titlepage"><div><div><h1 class="title"><a id="appendix.free"></a> | |
15209 | Free Software Needs Free Documentation | |
15210 | - <a id="id564125" class="indexterm"/> | |
15211 | + <a id="id742628" class="indexterm"></a> | |
15212 | </h1></div></div></div><p> | |
15213 | The biggest deficiency in free operating systems is not in the | |
15214 | software--it is the lack of good free manuals that we can include in | |
15215 | @@ -41,7 +41,7 @@ | |
15216 | Free documentation, like free software, is a matter of freedom, | |
15217 | not price. The problem with these manuals was not that O'Reilly | |
15218 | Associates charged a price for printed copies--that in itself is fine. | |
15219 | -(The Free Software Foundation <a class="link" href="http://www.gnu.org/doc/doc.html">sells printed copies</a> of | |
15220 | +(The Free Software Foundation <a class="link" href="http://www.gnu.org/doc/doc.html" target="_top">sells printed copies</a> of | |
15221 | free GNU manuals, too.) But GNU manuals are available in source code | |
15222 | form, while these manuals are available only on paper. GNU manuals | |
15223 | come with permission to copy and modify; the Perl manuals do not. | |
15224 | @@ -117,10 +117,10 @@ | |
15225 | check the distribution terms of a manual before you buy it, and | |
15226 | prefer copylefted manuals to non-copylefted ones. | |
15227 | </p><p> | |
15228 | -[Note: We now maintain a <a class="link" href="http://www.fsf.org/licensing/doc/other-free-books.html">web page | |
15229 | +[Note: We now maintain a <a class="link" href="http://www.fsf.org/licensing/doc/other-free-books.html" target="_top">web page | |
15230 | that lists free books available from other publishers</a>]. | |
15231 | </p><p>Copyright © 2004, 2005, 2006, 2007 Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA</p><p>Verbatim copying and distribution of this entire article are | |
15232 | permitted worldwide, without royalty, in any medium, provided this | |
15233 | -notice is preserved.</p><p>Report any problems or suggestions to <code class="email"><<a class="email" href="mailto:webmaster@fsf.org">webmaster@fsf.org</a>></code>.</p></div><div class="navfooter"><hr/><table width="100%" summary="Navigation footer"><tr><td align="left"><a accesskey="p" href="backwards.html">Prev</a> </td><td align="center"><a accesskey="u" href="bk01pt04.html">Up</a></td><td align="right"> <a accesskey="n" href="appendix_gpl.html">Next</a></td></tr><tr><td align="left" valign="top">Backwards Compatibility </td><td align="center"><a accesskey="h" href="../index.html">Home</a></td><td align="right" valign="top"> Appendix D. | |
15234 | +notice is preserved.</p><p>Report any problems or suggestions to <code class="email"><<a class="email" href="mailto:webmaster@fsf.org">webmaster@fsf.org</a>></code>.</p></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="backwards.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="bk01pt04.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="appendix_gpl.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Backwards Compatibility </td><td width="20%" align="center"><a accesskey="h" href="../index.html">Home</a></td><td width="40%" align="right" valign="top"> Appendix D. | |
15235 | <acronym class="acronym">GNU</acronym> General Public License version 3 | |
15236 | </td></tr></table></div></body></html> | |
15237 | Index: libstdc++-v3/doc/html/manual/algorithms.html | |
15238 | =================================================================== | |
9f95000d AM |
15239 | --- libstdc++-v3/doc/html/manual/algorithms.html (.../tags/gcc_4_7_2_release) (wersja 192468) |
15240 | +++ libstdc++-v3/doc/html/manual/algorithms.html (.../branches/gcc-4_7-branch) (wersja 192468) | |
5a87b929 AM |
15241 | @@ -1,18 +1,18 @@ |
15242 | <?xml version="1.0" encoding="UTF-8" standalone="no"?> | |
15243 | -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> | |
15244 | -<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Chapter 11. Algorithms</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1"/><meta name="keywords" content=" ISO C++ , library , algorithm "/><meta name="keywords" content=" ISO C++ , runtime , library "/><link rel="home" href="../index.html" title="The GNU C++ Library"/><link rel="up" href="bk01pt02.html" title="Part II. Standard Contents"/><link rel="prev" href="iterators.html" title="Chapter 10. Iterators"/><link rel="next" href="numerics.html" title="Chapter 12. Numerics"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 11. | |
15245 | +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> | |
15246 | +<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Chapter 11. Algorithms</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1" /><meta name="keywords" content=" ISO C++ , library , algorithm " /><meta name="keywords" content=" ISO C++ , runtime , library " /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="bk01pt02.html" title="Part II. Standard Contents" /><link rel="prev" href="iterators.html" title="Chapter 10. Iterators" /><link rel="next" href="numerics.html" title="Chapter 12. Numerics" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 11. | |
15247 | Algorithms | |
15248 | ||
15249 | -</th></tr><tr><td align="left"><a accesskey="p" href="iterators.html">Prev</a> </td><th width="60%" align="center">Part II. | |
15250 | +</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="iterators.html">Prev</a> </td><th width="60%" align="center">Part II. | |
15251 | Standard Contents | |
15252 | - </th><td align="right"> <a accesskey="n" href="numerics.html">Next</a></td></tr></table><hr/></div><div class="chapter" title="Chapter 11. Algorithms"><div class="titlepage"><div><div><h2 class="title"><a id="std.algorithms"/>Chapter 11. | |
15253 | + </th><td width="20%" align="right"> <a accesskey="n" href="numerics.html">Next</a></td></tr></table><hr /></div><div class="chapter" title="Chapter 11. Algorithms"><div class="titlepage"><div><div><h2 class="title"><a id="std.algorithms"></a>Chapter 11. | |
15254 | Algorithms | |
15255 | - <a id="id504394" class="indexterm"/> | |
15256 | + <a id="id682880" class="indexterm"></a> | |
15257 | </h2></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl><dt><span class="section"><a href="algorithms.html#std.algorithms.mutating">Mutating</a></span></dt><dd><dl><dt><span class="section"><a href="algorithms.html#algorithms.mutating.swap"><code class="function">swap</code></a></span></dt><dd><dl><dt><span class="section"><a href="algorithms.html#algorithms.swap.specializations">Specializations</a></span></dt></dl></dd></dl></dd></dl></div><p> | |
15258 | The neatest accomplishment of the algorithms section is that all the | |
15259 | work is done via iterators, not containers directly. This means two | |
15260 | important things: | |
15261 | -</p><div class="orderedlist"><ol class="orderedlist"><li class="listitem"><p> | |
15262 | +</p><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><p> | |
15263 | Anything that behaves like an iterator can be used in one of | |
15264 | these algorithms. Raw pointers make great candidates, thus | |
15265 | built-in arrays are fine containers, as well as your own | |
15266 | @@ -42,7 +42,7 @@ | |
15267 | to cause so much confusion. Once you | |
15268 | get <span class="emphasis"><em>range</em></span> into your head (it's not that hard, | |
15269 | honest!), then the algorithms are a cakewalk. | |
15270 | -</p><div class="section" title="Mutating"><div class="titlepage"><div><div><h2 class="title"><a id="std.algorithms.mutating"/>Mutating</h2></div></div></div><div class="section" title="swap"><div class="titlepage"><div><div><h3 class="title"><a id="algorithms.mutating.swap"/><code class="function">swap</code></h3></div></div></div><div class="section" title="Specializations"><div class="titlepage"><div><div><h4 class="title"><a id="algorithms.swap.specializations"/>Specializations</h4></div></div></div><p>If you call <code class="code"> std::swap(x,y); </code> where x and y are standard | |
15271 | +</p><div class="section" title="Mutating"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="std.algorithms.mutating"></a>Mutating</h2></div></div></div><div class="section" title="swap"><div class="titlepage"><div><div><h3 class="title"><a id="algorithms.mutating.swap"></a><code class="function">swap</code></h3></div></div></div><div class="section" title="Specializations"><div class="titlepage"><div><div><h4 class="title"><a id="algorithms.swap.specializations"></a>Specializations</h4></div></div></div><p>If you call <code class="code"> std::swap(x,y); </code> where x and y are standard | |
15272 | containers, then the call will automatically be replaced by a call to | |
15273 | <code class="code"> x.swap(y); </code> instead. | |
15274 | </p><p>This allows member functions of each container class to take over, and | |
15275 | @@ -52,10 +52,10 @@ | |
15276 | fact use constant-time swaps.) This should not be surprising, since | |
15277 | for two containers of the same type to swap contents, only some | |
15278 | internal pointers to storage need to be exchanged. | |
15279 | - </p></div></div></div></div><div class="navfooter"><hr/><table width="100%" summary="Navigation footer"><tr><td align="left"><a accesskey="p" href="iterators.html">Prev</a> </td><td align="center"><a accesskey="u" href="bk01pt02.html">Up</a></td><td align="right"> <a accesskey="n" href="numerics.html">Next</a></td></tr><tr><td align="left" valign="top">Chapter 10. | |
15280 | + </p></div></div></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="iterators.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="bk01pt02.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="numerics.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Chapter 10. | |
15281 | Iterators | |
15282 | ||
15283 | - </td><td align="center"><a accesskey="h" href="../index.html">Home</a></td><td align="right" valign="top"> Chapter 12. | |
15284 | + </td><td width="20%" align="center"><a accesskey="h" href="../index.html">Home</a></td><td width="40%" align="right" valign="top"> Chapter 12. | |
15285 | Numerics | |
15286 | ||
15287 | </td></tr></table></div></body></html> | |
15288 | Index: libstdc++-v3/doc/html/manual/appendix_porting.html | |
15289 | =================================================================== | |
9f95000d AM |
15290 | --- libstdc++-v3/doc/html/manual/appendix_porting.html (.../tags/gcc_4_7_2_release) (wersja 192468) |
15291 | +++ libstdc++-v3/doc/html/manual/appendix_porting.html (.../branches/gcc-4_7-branch) (wersja 192468) | |
5a87b929 AM |
15292 | @@ -1,13 +1,13 @@ |
15293 | <?xml version="1.0" encoding="UTF-8" standalone="no"?> | |
15294 | -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> | |
15295 | -<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Appendix B. Porting and Maintenance</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1"/><meta name="keywords" content=" ISO C++ , library "/><meta name="keywords" content=" ISO C++ , runtime , library "/><link rel="home" href="../index.html" title="The GNU C++ Library"/><link rel="up" href="bk01pt04.html" title="Part IV. Appendices"/><link rel="prev" href="source_design_notes.html" title="Design Notes"/><link rel="next" href="documentation_hacking.html" title="Writing and Generating Documentation"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Appendix B. | |
15296 | +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> | |
15297 | +<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Appendix B. Porting and Maintenance</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1" /><meta name="keywords" content=" ISO C++ , library " /><meta name="keywords" content=" ISO C++ , runtime , library " /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="bk01pt04.html" title="Part IV. Appendices" /><link rel="prev" href="source_design_notes.html" title="Design Notes" /><link rel="next" href="documentation_hacking.html" title="Writing and Generating Documentation" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Appendix B. | |
15298 | Porting and Maintenance | |
15299 | ||
15300 | -</th></tr><tr><td align="left"><a accesskey="p" href="source_design_notes.html">Prev</a> </td><th width="60%" align="center">Part IV. | |
15301 | +</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="source_design_notes.html">Prev</a> </td><th width="60%" align="center">Part IV. | |
15302 | Appendices | |
15303 | -</th><td align="right"> <a accesskey="n" href="documentation_hacking.html">Next</a></td></tr></table><hr/></div><div class="appendix" title="Appendix B. Porting and Maintenance"><div class="titlepage"><div><div><h1 class="title"><a id="appendix.porting"/> | |
15304 | +</th><td width="20%" align="right"> <a accesskey="n" href="documentation_hacking.html">Next</a></td></tr></table><hr /></div><div class="appendix" title="Appendix B. Porting and Maintenance"><div class="titlepage"><div><div><h1 class="title"><a id="appendix.porting"></a> | |
15305 | Porting and Maintenance | |
15306 | - <a id="id552847" class="indexterm"/> | |
15307 | + <a id="id731334" class="indexterm"></a> | |
15308 | </h1></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl><dt><span class="section"><a href="appendix_porting.html#appendix.porting.build_hacking">Configure and Build Hacking</a></span></dt><dd><dl><dt><span class="section"><a href="appendix_porting.html#build_hacking.prereq">Prerequisites</a></span></dt><dt><span class="section"><a href="appendix_porting.html#build_hacking.map">Overview: What Comes from Where</a></span></dt><dt><span class="section"><a href="appendix_porting.html#build_hacking.scripts">Storing Information in non-AC files (like configure.host)</a></span></dt><dt><span class="section"><a href="appendix_porting.html#build_hacking.conventions">Coding and Commenting Conventions</a></span></dt><dt><span class="section"><a href="appendix_porting.html#build_hacking.acinclude">The acinclude.m4 layout</a></span></dt><dt><span class="section"><a href="appendix_porting.html#build_hacking.enable"><code class="constant">GLIBCXX_ENABLE</code>, the <code class="literal">--enable</code> maker</a></span></dt></dl></dd><dt><span class="section"><a href="documentation_hacking.html">Writing and Generating Documentation</a></span></dt><dd><dl><dt><span class="section"><a href="documentation_hacking.html#doc.intro">Introduction</a></span></dt><dt><span class="section"><a href="documentation_hacking.html#doc.generation">Generating Documentation</a></span></dt><dt><span class="section"><a href="documentation_hacking.html#doc.doxygen">Doxygen</a></span></dt><dd><dl><dt><span class="section"><a href="documentation_hacking.html#doxygen.prereq">Prerequisites</a></span></dt><dt><span class="section"><a href="documentation_hacking.html#doxygen.rules">Generating the Doxygen Files</a></span></dt><dt><span class="section"><a href="documentation_hacking.html#doxygen.markup">Markup</a></span></dt></dl></dd><dt><span class="section"><a href="documentation_hacking.html#doc.docbook">Docbook</a></span></dt><dd><dl><dt><span class="section"><a href="documentation_hacking.html#docbook.prereq">Prerequisites</a></span></dt><dt><span class="section"><a href="documentation_hacking.html#docbook.rules">Generating the DocBook Files</a></span></dt><dt><span class="section"><a href="documentation_hacking.html#docbook.validation">Editing and Validation</a></span></dt><dt><span class="section"><a href="documentation_hacking.html#docbook.examples">File Organization and Basics</a></span></dt><dt><span class="section"><a href="documentation_hacking.html#docbook.markup">Markup By Example</a></span></dt></dl></dd></dl></dd><dt><span class="section"><a href="internals.html">Porting to New Hardware or Operating Systems</a></span></dt><dd><dl><dt><span class="section"><a href="internals.html#internals.os">Operating System</a></span></dt><dt><span class="section"><a href="internals.html#internals.cpu">CPU</a></span></dt><dt><span class="section"><a href="internals.html#internals.char_types">Character Types</a></span></dt><dt><span class="section"><a href="internals.html#internals.thread_safety">Thread Safety</a></span></dt><dt><span class="section"><a href="internals.html#internals.numeric_limits">Numeric Limits</a></span></dt><dt><span class="section"><a href="internals.html#internals.libtool">Libtool</a></span></dt></dl></dd><dt><span class="section"><a href="test.html">Test</a></span></dt><dd><dl><dt><span class="section"><a href="test.html#test.organization">Organization</a></span></dt><dd><dl><dt><span class="section"><a href="test.html#test.organization.layout">Directory Layout</a></span></dt><dt><span class="section"><a href="test.html#test.organization.naming">Naming Conventions</a></span></dt></dl></dd><dt><span class="section"><a href="test.html#test.run">Running the Testsuite</a></span></dt><dd><dl><dt><span class="section"><a href="test.html#test.run.basic">Basic</a></span></dt><dt><span class="section"><a href="test.html#test.run.variations">Variations</a></span></dt><dt><span class="section"><a href="test.html#test.run.permutations">Permutations</a></span></dt></dl></dd><dt><span class="section"><a href="test.html#test.new_tests">Writing a new test case</a></span></dt><dt><span class="section"><a href="test.html#test.harness">Test Harness and Utilities</a></span></dt><dd><dl><dt><span class="section"><a href="test.html#test.harness.dejagnu">Dejagnu Harness Details</a></span></dt><dt><span class="section"><a href="test.html#test.harness.utils">Utilities</a></span></dt></dl></dd><dt><span class="section"><a href="test.html#test.special">Special Topics</a></span></dt><dd><dl><dt><span class="section"><a href="test.html#test.exception.safety"> | |
15309 | Qualifying Exception Safety Guarantees | |
15310 | ||
15311 | @@ -30,8 +30,8 @@ | |
15312 | Support for C++11 dialect. | |
15313 | </a></span></dt><dt><span class="section"><a href="backwards.html#backwards.third.iterator_type"> | |
15314 | <code class="code">Container::iterator_type</code> is not necessarily <code class="code">Container::value_type*</code> | |
15315 | -</a></span></dt></dl></dd></dl></dd></dl></div><div class="section" title="Configure and Build Hacking"><div class="titlepage"><div><div><h2 class="title"><a id="appendix.porting.build_hacking"/>Configure and Build Hacking</h2></div></div></div><div class="section" title="Prerequisites"><div class="titlepage"><div><div><h3 class="title"><a id="build_hacking.prereq"/>Prerequisites</h3></div></div></div><p> | |
15316 | - As noted <a class="link" href="http://gcc.gnu.org/install/prerequisites.html">previously</a>, | |
15317 | +</a></span></dt></dl></dd></dl></dd></dl></div><div class="section" title="Configure and Build Hacking"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="appendix.porting.build_hacking"></a>Configure and Build Hacking</h2></div></div></div><div class="section" title="Prerequisites"><div class="titlepage"><div><div><h3 class="title"><a id="build_hacking.prereq"></a>Prerequisites</h3></div></div></div><p> | |
15318 | + As noted <a class="link" href="http://gcc.gnu.org/install/prerequisites.html" target="_top">previously</a>, | |
15319 | certain other tools are necessary for hacking on files that | |
15320 | control configure (<code class="code">configure.ac</code>, | |
15321 | <code class="code">acinclude.m4</code>) and make | |
15322 | @@ -41,17 +41,17 @@ | |
15323 | in GCC try to stay in sync with each other in terms of versions of | |
15324 | the auto-tools used, so please try to play nicely with the | |
15325 | neighbors. | |
15326 | - </p></div><div class="section" title="Overview: What Comes from Where"><div class="titlepage"><div><div><h3 class="title"><a id="build_hacking.map"/>Overview: What Comes from Where</h3></div></div></div><div class="figure"><a id="id552980"/><p class="title"><strong>Figure B.1. Configure and Build File Dependencies</strong></p><div class="figure-contents"><div class="mediaobject" style="text-align: center"><img src="../images/confdeps.png" style="text-align: middle" alt="Dependency Graph for Configure and Build Files"/></div></div></div><br class="figure-break"/><p> | |
15327 | + </p></div><div class="section" title="Overview: What Comes from Where"><div class="titlepage"><div><div><h3 class="title"><a id="build_hacking.map"></a>Overview: What Comes from Where</h3></div></div></div><div class="figure"><a id="id731466"></a><p class="title"><strong>Figure B.1. Configure and Build File Dependencies</strong></p><div class="figure-contents"><div class="mediaobject" align="center"><img src="../images/confdeps.png" align="middle" alt="Dependency Graph for Configure and Build Files" /></div></div></div><br class="figure-break" /><p> | |
15328 | Regenerate all generated files by using the command sequence | |
15329 | <code class="code">"autoreconf"</code> at the top level of the libstdc++ source | |
15330 | directory. The following will also work, but is much more complex: | |
15331 | <code class="code">"aclocal-1.11 && autoconf-2.64 && | |
15332 | autoheader-2.64 && automake-1.11"</code> The version | |
15333 | numbers may be absent entirely or otherwise vary depending on | |
15334 | - <a class="link" href="http://gcc.gnu.org/install/prerequisites.html">the | |
15335 | + <a class="link" href="http://gcc.gnu.org/install/prerequisites.html" target="_top">the | |
15336 | current requirements</a> and your vendor's choice of | |
15337 | installation names. | |
15338 | - </p></div><div class="section" title="Storing Information in non-AC files (like configure.host)"><div class="titlepage"><div><div><h3 class="title"><a id="build_hacking.scripts"/>Storing Information in non-AC files (like configure.host)</h3></div></div></div><p> | |
15339 | + </p></div><div class="section" title="Storing Information in non-AC files (like configure.host)"><div class="titlepage"><div><div><h3 class="title"><a id="build_hacking.scripts"></a>Storing Information in non-AC files (like configure.host)</h3></div></div></div><p> | |
15340 | Until that glorious day when we can use AC_TRY_LINK with a | |
15341 | cross-compiler, we have to hardcode the results of what the tests | |
15342 | would have shown if they could be run. So we have an inflexible | |
15343 | @@ -73,7 +73,7 @@ | |
15344 | for instance, but then we would need arguments to aclocal/autoconf | |
15345 | to properly find them all when generating configure. I would | |
15346 | discourage that. | |
15347 | -</p></div><div class="section" title="Coding and Commenting Conventions"><div class="titlepage"><div><div><h3 class="title"><a id="build_hacking.conventions"/>Coding and Commenting Conventions</h3></div></div></div><p> | |
15348 | +</p></div><div class="section" title="Coding and Commenting Conventions"><div class="titlepage"><div><div><h3 class="title"><a id="build_hacking.conventions"></a>Coding and Commenting Conventions</h3></div></div></div><p> | |
15349 | Most comments should use {octothorpes, shibboleths, hash marks, | |
15350 | pound signs, whatever} rather than "dnl". Nearly all comments in | |
15351 | configure.ac should. Comments inside macros written in ancilliary | |
15352 | @@ -90,7 +90,7 @@ | |
15353 | Do not use any <code class="code">$target*</code> variables, such as | |
15354 | <code class="code">$target_alias</code>. The single exception is in | |
15355 | configure.ac, for automake+dejagnu's sake. | |
15356 | - </p></div><div class="section" title="The acinclude.m4 layout"><div class="titlepage"><div><div><h3 class="title"><a id="build_hacking.acinclude"/>The acinclude.m4 layout</h3></div></div></div><p> | |
15357 | + </p></div><div class="section" title="The acinclude.m4 layout"><div class="titlepage"><div><div><h3 class="title"><a id="build_hacking.acinclude"></a>The acinclude.m4 layout</h3></div></div></div><p> | |
15358 | The nice thing about acinclude.m4/aclocal.m4 is that macros aren't | |
15359 | actually performed/called/expanded/whatever here, just loaded. So | |
15360 | we can arrange the contents however we like. As of this writing, | |
15361 | @@ -161,11 +161,11 @@ | |
15362 | </pre><p> | |
15363 | Things which we don't seem to use directly, but just has to be | |
15364 | present otherwise stuff magically goes wonky. | |
15365 | -</p></div><div class="section" title="GLIBCXX_ENABLE, the --enable maker"><div class="titlepage"><div><div><h3 class="title"><a id="build_hacking.enable"/><code class="constant">GLIBCXX_ENABLE</code>, the <code class="literal">--enable</code> maker</h3></div></div></div><p> | |
15366 | +</p></div><div class="section" title="GLIBCXX_ENABLE, the --enable maker"><div class="titlepage"><div><div><h3 class="title"><a id="build_hacking.enable"></a><code class="constant">GLIBCXX_ENABLE</code>, the <code class="literal">--enable</code> maker</h3></div></div></div><p> | |
15367 | All the GLIBCXX_ENABLE_FOO macros use a common helper, | |
15368 | GLIBCXX_ENABLE. (You don't have to use it, but it's easy.) The | |
15369 | helper does two things for us: | |
15370 | - </p><div class="orderedlist"><ol class="orderedlist"><li class="listitem"><p> | |
15371 | + </p><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><p> | |
15372 | Builds the call to the AC_ARG_ENABLE macro, with --help text | |
15373 | properly quoted and aligned. (Death to changequote!) | |
15374 | </p></li><li class="listitem"><p> | |
15375 | @@ -190,7 +190,7 @@ | |
15376 | GLIBCXX_ENABLE (FEATURE, DEFAULT, HELP-ARG, HELP-STRING) | |
15377 | GLIBCXX_ENABLE (FEATURE, DEFAULT, HELP-ARG, HELP-STRING, permit a|b|c) | |
15378 | GLIBCXX_ENABLE (FEATURE, DEFAULT, HELP-ARG, HELP-STRING, SHELL-CODE-HANDLER) | |
15379 | -</pre><div class="itemizedlist"><ul class="itemizedlist"><li class="listitem"><p> | |
15380 | +</pre><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p> | |
15381 | FEATURE is the string that follows --enable. The results of the | |
15382 | test (such as it is) will be in the variable $enable_FEATURE, | |
15383 | where FEATURE has been squashed. Example: | |
15384 | @@ -218,7 +218,7 @@ | |
15385 | </p><p> | |
15386 | If you're wondering what that line noise in the last example was, | |
15387 | that's how you embed autoconf special characters in output text. | |
15388 | - They're called <a class="link" href="http://www.gnu.org/software/autoconf/manual/autoconf.html#Quadrigraphs"><span class="emphasis"><em>quadrigraphs</em></span></a> | |
15389 | + They're called <a class="link" href="http://www.gnu.org/software/autoconf/manual/autoconf.html#Quadrigraphs" target="_top"><span class="emphasis"><em>quadrigraphs</em></span></a> | |
15390 | and you should use them whenever necessary. | |
15391 | </p></li><li class="listitem"><p>HELP-STRING is what you think it is. Do not include the | |
15392 | "default" text like we used to do; it will be done for you by | |
15393 | @@ -249,4 +249,4 @@ | |
15394 | argument checking at all is done in this signature. See | |
15395 | GLIBCXX_ENABLE_CXX_FLAGS for an example of handling, and an error | |
15396 | message. | |
15397 | -</p></div></div></div><div class="navfooter"><hr/><table width="100%" summary="Navigation footer"><tr><td align="left"><a accesskey="p" href="source_design_notes.html">Prev</a> </td><td align="center"><a accesskey="u" href="bk01pt04.html">Up</a></td><td align="right"> <a accesskey="n" href="documentation_hacking.html">Next</a></td></tr><tr><td align="left" valign="top">Design Notes </td><td align="center"><a accesskey="h" href="../index.html">Home</a></td><td align="right" valign="top"> Writing and Generating Documentation</td></tr></table></div></body></html> | |
15398 | +</p></div></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="source_design_notes.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="bk01pt04.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="documentation_hacking.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Design Notes </td><td width="20%" align="center"><a accesskey="h" href="../index.html">Home</a></td><td width="40%" align="right" valign="top"> Writing and Generating Documentation</td></tr></table></div></body></html> | |
15399 | Index: libstdc++-v3/doc/html/manual/make.html | |
15400 | =================================================================== | |
9f95000d AM |
15401 | --- libstdc++-v3/doc/html/manual/make.html (.../tags/gcc_4_7_2_release) (wersja 192468) |
15402 | +++ libstdc++-v3/doc/html/manual/make.html (.../branches/gcc-4_7-branch) (wersja 192468) | |
5a87b929 AM |
15403 | @@ -1,9 +1,9 @@ |
15404 | <?xml version="1.0" encoding="UTF-8" standalone="no"?> | |
15405 | -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> | |
15406 | -<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Make</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1"/><meta name="keywords" content=" ISO C++ , library "/><meta name="keywords" content=" ISO C++ , runtime , library "/><link rel="home" href="../index.html" title="The GNU C++ Library"/><link rel="up" href="setup.html" title="Chapter 2. Setup"/><link rel="prev" href="configure.html" title="Configure"/><link rel="next" href="using.html" title="Chapter 3. Using"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Make</th></tr><tr><td align="left"><a accesskey="p" href="configure.html">Prev</a> </td><th width="60%" align="center">Chapter 2. Setup</th><td align="right"> <a accesskey="n" href="using.html">Next</a></td></tr></table><hr/></div><div class="section" title="Make"><div class="titlepage"><div><div><h2 class="title"><a id="manual.intro.setup.make"/>Make</h2></div></div></div><p>If you have never done this before, you should read the basic | |
15407 | - <a class="link" href="http://gcc.gnu.org/install/">GCC Installation | |
15408 | +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> | |
15409 | +<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Make</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1" /><meta name="keywords" content=" ISO C++ , library " /><meta name="keywords" content=" ISO C++ , runtime , library " /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="setup.html" title="Chapter 2. Setup" /><link rel="prev" href="configure.html" title="Configure" /><link rel="next" href="using.html" title="Chapter 3. Using" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Make</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="configure.html">Prev</a> </td><th width="60%" align="center">Chapter 2. Setup</th><td width="20%" align="right"> <a accesskey="n" href="using.html">Next</a></td></tr></table><hr /></div><div class="section" title="Make"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="manual.intro.setup.make"></a>Make</h2></div></div></div><p>If you have never done this before, you should read the basic | |
15410 | + <a class="link" href="http://gcc.gnu.org/install/" target="_top">GCC Installation | |
15411 | Instructions</a> first. Read <span class="emphasis"><em>all of them</em></span>. | |
15412 | <span class="emphasis"><em>Twice.</em></span> | |
15413 | </p><p>Then type: <span class="command"><strong>make</strong></span>, and congratulations, you've | |
15414 | started to build. | |
15415 | -</p></div><div class="navfooter"><hr/><table width="100%" summary="Navigation footer"><tr><td align="left"><a accesskey="p" href="configure.html">Prev</a> </td><td align="center"><a accesskey="u" href="setup.html">Up</a></td><td align="right"> <a accesskey="n" href="using.html">Next</a></td></tr><tr><td align="left" valign="top">Configure </td><td align="center"><a accesskey="h" href="../index.html">Home</a></td><td align="right" valign="top"> Chapter 3. Using</td></tr></table></div></body></html> | |
15416 | +</p></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="configure.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="setup.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="using.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Configure </td><td width="20%" align="center"><a accesskey="h" href="../index.html">Home</a></td><td width="40%" align="right" valign="top"> Chapter 3. Using</td></tr></table></div></body></html> | |
15417 | Index: libstdc++-v3/doc/html/manual/bk01pt03ch17s04.html | |
15418 | =================================================================== | |
9f95000d AM |
15419 | --- libstdc++-v3/doc/html/manual/bk01pt03ch17s04.html (.../tags/gcc_4_7_2_release) (wersja 192468) |
15420 | +++ libstdc++-v3/doc/html/manual/bk01pt03ch17s04.html (.../branches/gcc-4_7-branch) (wersja 192468) | |
5a87b929 AM |
15421 | @@ -1,11 +1,11 @@ |
15422 | <?xml version="1.0" encoding="UTF-8" standalone="no"?> | |
15423 | -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> | |
15424 | -<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Design</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1"/><meta name="keywords" content=" C++ , library , debug "/><meta name="keywords" content=" ISO C++ , library "/><meta name="keywords" content=" ISO C++ , runtime , library "/><link rel="home" href="../index.html" title="The GNU C++ Library"/><link rel="up" href="debug_mode.html" title="Chapter 17. Debug Mode"/><link rel="prev" href="bk01pt03ch17s03.html" title="Using"/><link rel="next" href="parallel_mode.html" title="Chapter 18. Parallel Mode"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Design</th></tr><tr><td align="left"><a accesskey="p" href="bk01pt03ch17s03.html">Prev</a> </td><th width="60%" align="center">Chapter 17. Debug Mode</th><td align="right"> <a accesskey="n" href="parallel_mode.html">Next</a></td></tr></table><hr/></div><div class="section" title="Design"><div class="titlepage"><div><div><h2 class="title"><a id="manual.ext.debug_mode.design"/>Design</h2></div></div></div><p> | |
15425 | - </p><div class="section" title="Goals"><div class="titlepage"><div><div><h3 class="title"><a id="debug_mode.design.goals"/>Goals</h3></div></div></div><p> | |
15426 | +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> | |
15427 | +<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Design</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1" /><meta name="keywords" content=" C++ , library , debug " /><meta name="keywords" content=" ISO C++ , library " /><meta name="keywords" content=" ISO C++ , runtime , library " /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="debug_mode.html" title="Chapter 17. Debug Mode" /><link rel="prev" href="bk01pt03ch17s03.html" title="Using" /><link rel="next" href="parallel_mode.html" title="Chapter 18. Parallel Mode" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Design</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="bk01pt03ch17s03.html">Prev</a> </td><th width="60%" align="center">Chapter 17. Debug Mode</th><td width="20%" align="right"> <a accesskey="n" href="parallel_mode.html">Next</a></td></tr></table><hr /></div><div class="section" title="Design"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="manual.ext.debug_mode.design"></a>Design</h2></div></div></div><p> | |
15428 | + </p><div class="section" title="Goals"><div class="titlepage"><div><div><h3 class="title"><a id="debug_mode.design.goals"></a>Goals</h3></div></div></div><p> | |
15429 | </p><p> The libstdc++ debug mode replaces unsafe (but efficient) standard | |
15430 | containers and iterators with semantically equivalent safe standard | |
15431 | containers and iterators to aid in debugging user programs. The | |
15432 | - following goals directed the design of the libstdc++ debug mode:</p><div class="itemizedlist"><ul class="itemizedlist"><li class="listitem"><p><span class="emphasis"><em>Correctness</em></span>: the libstdc++ debug mode must not change | |
15433 | + following goals directed the design of the libstdc++ debug mode:</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p><span class="emphasis"><em>Correctness</em></span>: the libstdc++ debug mode must not change | |
15434 | the semantics of the standard library for all cases specified in | |
15435 | the ANSI/ISO C++ standard. The essence of this constraint is that | |
15436 | any valid C++ program should behave in the same manner regardless | |
15437 | @@ -39,7 +39,7 @@ | |
15438 | higher-numbered conformance levels are more usable (i.e., require | |
15439 | less recompilation) but are more complicated to implement than | |
15440 | the lower-numbered conformance levels. | |
15441 | - </p><div class="orderedlist"><ol class="orderedlist"><li class="listitem"><p><span class="emphasis"><em>Full recompilation</em></span>: The user must recompile his or | |
15442 | + </p><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><p><span class="emphasis"><em>Full recompilation</em></span>: The user must recompile his or | |
15443 | her entire application and all C++ libraries it depends on, | |
15444 | including the C++ standard library that ships with the | |
15445 | compiler. This must be done even if only a small part of the | |
15446 | @@ -89,10 +89,10 @@ | |
15447 | (performance regression) or allocating extra memory associated | |
15448 | with each iterator with <code class="code">new</code> (changes the program | |
15449 | semantics).</p></li></ol></div><p> | |
15450 | - </p></li></ul></div></div><div class="section" title="Methods"><div class="titlepage"><div><div><h3 class="title"><a id="debug_mode.design.methods"/>Methods</h3></div></div></div><p> | |
15451 | + </p></li></ul></div></div><div class="section" title="Methods"><div class="titlepage"><div><div><h3 class="title"><a id="debug_mode.design.methods"></a>Methods</h3></div></div></div><p> | |
15452 | </p><p>This section provides an overall view of the design of the | |
15453 | libstdc++ debug mode and details the relationship between design | |
15454 | - decisions and the stated design goals.</p><div class="section" title="The Wrapper Model"><div class="titlepage"><div><div><h4 class="title"><a id="debug_mode.design.methods.wrappers"/>The Wrapper Model</h4></div></div></div><p>The libstdc++ debug mode uses a wrapper model where the | |
15455 | + decisions and the stated design goals.</p><div class="section" title="The Wrapper Model"><div class="titlepage"><div><div><h4 class="title"><a id="debug_mode.design.methods.wrappers"></a>The Wrapper Model</h4></div></div></div><p>The libstdc++ debug mode uses a wrapper model where the | |
15456 | debugging versions of library components (e.g., iterators and | |
15457 | containers) form a layer on top of the release versions of the | |
15458 | library components. The debugging components first verify that the | |
15459 | @@ -109,19 +109,19 @@ | |
15460 | their associated containers, which are necessary to detect certain | |
15461 | types of standard library usage errors such as dereferencing | |
15462 | past-the-end iterators or inserting into a container using an | |
15463 | - iterator from a different container.</p><div class="section" title="Safe Iterators"><div class="titlepage"><div><div><h5 class="title"><a id="debug_mode.design.methods.safe_iter"/>Safe Iterators</h5></div></div></div><p>Iterator wrappers provide a debugging layer over any iterator that | |
15464 | + iterator from a different container.</p><div class="section" title="Safe Iterators"><div class="titlepage"><div><div><h5 class="title"><a id="debug_mode.design.methods.safe_iter"></a>Safe Iterators</h5></div></div></div><p>Iterator wrappers provide a debugging layer over any iterator that | |
15465 | is attached to a particular container, and will manage the | |
15466 | information detailing the iterator's state (singular, | |
15467 | dereferenceable, etc.) and tracking the container to which the | |
15468 | iterator is attached. Because iterators have a well-defined, common | |
15469 | interface the iterator wrapper is implemented with the iterator | |
15470 | adaptor class template <code class="code">__gnu_debug::_Safe_iterator</code>, | |
15471 | - which takes two template parameters:</p><div class="itemizedlist"><ul class="itemizedlist"><li class="listitem"><p><code class="code">Iterator</code>: The underlying iterator type, which must | |
15472 | + which takes two template parameters:</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p><code class="code">Iterator</code>: The underlying iterator type, which must | |
15473 | be either the <code class="code">iterator</code> or <code class="code">const_iterator</code> | |
15474 | typedef from the sequence type this iterator can reference.</p></li><li class="listitem"><p><code class="code">Sequence</code>: The type of sequence that this iterator | |
15475 | references. This sequence must be a safe sequence (discussed below) | |
15476 | whose <code class="code">iterator</code> or <code class="code">const_iterator</code> typedef | |
15477 | - is the type of the safe iterator.</p></li></ul></div></div><div class="section" title="Safe Sequences (Containers)"><div class="titlepage"><div><div><h5 class="title"><a id="debug_mode.design.methods.safe_seq"/>Safe Sequences (Containers)</h5></div></div></div><p>Container wrappers provide a debugging layer over a particular | |
15478 | + is the type of the safe iterator.</p></li></ul></div></div><div class="section" title="Safe Sequences (Containers)"><div class="titlepage"><div><div><h5 class="title"><a id="debug_mode.design.methods.safe_seq"></a>Safe Sequences (Containers)</h5></div></div></div><p>Container wrappers provide a debugging layer over a particular | |
15479 | container type. Because containers vary greatly in the member | |
15480 | functions they support and the semantics of those member functions | |
15481 | (especially in the area of iterator invalidation), container | |
15482 | @@ -157,7 +157,7 @@ | |
15483 | ||
15484 | // duplicate std::list interface with debugging semantics | |
15485 | }; | |
15486 | -</pre></div></div><div class="section" title="Precondition Checking"><div class="titlepage"><div><div><h4 class="title"><a id="debug_mode.design.methods.precond"/>Precondition Checking</h4></div></div></div><p>The debug mode operates primarily by checking the preconditions of | |
15487 | +</pre></div></div><div class="section" title="Precondition Checking"><div class="titlepage"><div><div><h4 class="title"><a id="debug_mode.design.methods.precond"></a>Precondition Checking</h4></div></div></div><p>The debug mode operates primarily by checking the preconditions of | |
15488 | all standard library operations that it supports. Preconditions that | |
15489 | are always checked (regardless of whether or not we are in debug | |
15490 | mode) are checked via the <code class="code">__check_xxx</code> macros defined | |
15491 | @@ -184,7 +184,7 @@ | |
15492 | cousin <code class="code">_GLIBCXX_DEBUG_PEDASSERT</code>, or the assertion | |
15493 | check macro that supports more advance formulation of error | |
15494 | messages, <code class="code">_GLIBCXX_DEBUG_VERIFY</code>. These macros are | |
15495 | - documented more thoroughly in the debug mode source code.</p></div><div class="section" title="Release- and debug-mode coexistence"><div class="titlepage"><div><div><h4 class="title"><a id="debug_mode.design.methods.coexistence"/>Release- and debug-mode coexistence</h4></div></div></div><p>The libstdc++ debug mode is the first debug mode we know of that | |
15496 | + documented more thoroughly in the debug mode source code.</p></div><div class="section" title="Release- and debug-mode coexistence"><div class="titlepage"><div><div><h4 class="title"><a id="debug_mode.design.methods.coexistence"></a>Release- and debug-mode coexistence</h4></div></div></div><p>The libstdc++ debug mode is the first debug mode we know of that | |
15497 | is able to provide the "Per-use recompilation" (4) guarantee, that | |
15498 | allows release-compiled and debug-compiled code to be linked and | |
15499 | executed together without causing unpredictable behavior. This | |
15500 | @@ -194,13 +194,13 @@ | |
15501 | environments by minimizing dependencies.</p><p>Achieving link- and run-time coexistence is not a trivial | |
15502 | implementation task. To achieve this goal we required a small | |
15503 | extension to the GNU C++ compiler (since incorporated into the C++11 language specification, described in the GCC Manual for the C++ language as | |
15504 | - <a class="link" href="http://gcc.gnu.org/onlinedocs/gcc/Namespace-Association.html#Namespace-Association">namespace | |
15505 | + <a class="link" href="http://gcc.gnu.org/onlinedocs/gcc/Namespace-Association.html#Namespace-Association" target="_top">namespace | |
15506 | association</a>), and a complex organization of debug- and | |
15507 | release-modes. The end result is that we have achieved per-use | |
15508 | recompilation but have had to give up some checking of the | |
15509 | <code class="code">std::basic_string</code> class template (namely, safe | |
15510 | iterators). | |
15511 | -</p><div class="section" title="Compile-time coexistence of release- and debug-mode components"><div class="titlepage"><div><div><h5 class="title"><a id="methods.coexistence.compile"/>Compile-time coexistence of release- and debug-mode components</h5></div></div></div><p>Both the release-mode components and the debug-mode | |
15512 | +</p><div class="section" title="Compile-time coexistence of release- and debug-mode components"><div class="titlepage"><div><div><h5 class="title"><a id="methods.coexistence.compile"></a>Compile-time coexistence of release- and debug-mode components</h5></div></div></div><p>Both the release-mode components and the debug-mode | |
15513 | components need to exist within a single translation unit so that | |
15514 | the debug versions can wrap the release versions. However, only one | |
15515 | of these components should be user-visible at any particular | |
15516 | @@ -254,7 +254,7 @@ | |
15517 | // namespace __debug __attribute__ ((strong)); | |
15518 | inline namespace __debug { } | |
15519 | } | |
15520 | -</pre></div><div class="section" title="Link- and run-time coexistence of release- and debug-mode components"><div class="titlepage"><div><div><h5 class="title"><a id="methods.coexistence.link"/>Link- and run-time coexistence of release- and | |
15521 | +</pre></div><div class="section" title="Link- and run-time coexistence of release- and debug-mode components"><div class="titlepage"><div><div><h5 class="title"><a id="methods.coexistence.link"></a>Link- and run-time coexistence of release- and | |
15522 | debug-mode components</h5></div></div></div><p>Because each component has a distinct and separate release and | |
15523 | debug implementation, there is no issue with link-time | |
15524 | coexistence: the separate namespaces result in different mangled | |
15525 | @@ -301,7 +301,7 @@ | |
15526 | release-mode <code class="code">basic_string</code>? While the answer could be | |
15527 | "both", and the difference hidden via renaming a la the | |
15528 | debug/release containers, we must note two things about locale | |
15529 | - facets:</p><div class="orderedlist"><ol class="orderedlist"><li class="listitem"><p>They exist as shared state: one can create a facet in one | |
15530 | + facets:</p><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><p>They exist as shared state: one can create a facet in one | |
15531 | translation unit and access the facet via the same type name in a | |
15532 | different translation unit. This means that we cannot have two | |
15533 | different versions of locale facets, because the types would not be | |
15534 | @@ -316,10 +316,10 @@ | |
15535 | changes. The effect on users is expected to be minimal, as there are | |
15536 | simple alternatives (e.g., <code class="code">__gnu_debug::basic_string</code>), | |
15537 | and the usability benefit we gain from the ability to mix debug- and | |
15538 | - release-compiled translation units is enormous.</p></div><div class="section" title="Alternatives for Coexistence"><div class="titlepage"><div><div><h5 class="title"><a id="methods.coexistence.alt"/>Alternatives for Coexistence</h5></div></div></div><p>The coexistence scheme above was chosen over many alternatives, | |
15539 | + release-compiled translation units is enormous.</p></div><div class="section" title="Alternatives for Coexistence"><div class="titlepage"><div><div><h5 class="title"><a id="methods.coexistence.alt"></a>Alternatives for Coexistence</h5></div></div></div><p>The coexistence scheme above was chosen over many alternatives, | |
15540 | including language-only solutions and solutions that also required | |
15541 | extensions to the C++ front end. The following is a partial list of | |
15542 | - solutions, with justifications for our rejection of each.</p><div class="itemizedlist"><ul class="itemizedlist"><li class="listitem"><p><span class="emphasis"><em>Completely separate debug/release libraries</em></span>: This is by | |
15543 | + solutions, with justifications for our rejection of each.</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p><span class="emphasis"><em>Completely separate debug/release libraries</em></span>: This is by | |
15544 | far the simplest implementation option, where we do not allow any | |
15545 | coexistence of debug- and release-compiled translation units in a | |
15546 | program. This solution has an extreme negative affect on usability, | |
15547 | @@ -353,7 +353,7 @@ | |
15548 | declarations disallow specialization. This method fails | |
15549 | the <span class="emphasis"><em>correctness</em></span> criteria.</p></li><li class="listitem"><p><span class="emphasis"><em> Use implementation-specific properties of anonymous | |
15550 | namespaces. </em></span> | |
15551 | - See <a class="link" href="http://gcc.gnu.org/ml/libstdc++/2003-08/msg00004.html"> this post | |
15552 | + See <a class="link" href="http://gcc.gnu.org/ml/libstdc++/2003-08/msg00004.html" target="_top"> this post | |
15553 | </a> | |
15554 | This method fails the <span class="emphasis"><em>correctness</em></span> criteria.</p></li><li class="listitem"><p><span class="emphasis"><em>Extension: allow reopening on namespaces</em></span>: This would | |
15555 | allow the debug mode to effectively alias the | |
15556 | @@ -376,7 +376,7 @@ | |
15557 | functions taking no arguments in mixed-mode settings resulting in | |
15558 | equivalent link names, <code class="code"> vector::push_back() </code> being | |
15559 | one example. | |
15560 | - See <a class="link" href="http://gcc.gnu.org/ml/libstdc++/2003-08/msg00177.html">link | |
15561 | + See <a class="link" href="http://gcc.gnu.org/ml/libstdc++/2003-08/msg00177.html" target="_top">link | |
15562 | name</a> </p></li></ul></div><p>Other options may exist for implementing the debug mode, many of | |
15563 | which have probably been considered and others that may still be | |
15564 | lurking. This list may be expanded over time to include other | |
15565 | @@ -388,17 +388,17 @@ | |
15566 | that breaks user specialization), and additional testcases will be | |
15567 | added as we are able to identify other typical problem cases. These | |
15568 | test cases will serve as a benchmark by which we can compare debug | |
15569 | - mode implementations.</p></div></div></div><div class="section" title="Other Implementations"><div class="titlepage"><div><div><h3 class="title"><a id="debug_mode.design.other"/>Other Implementations</h3></div></div></div><p> | |
15570 | + mode implementations.</p></div></div></div><div class="section" title="Other Implementations"><div class="titlepage"><div><div><h3 class="title"><a id="debug_mode.design.other"></a>Other Implementations</h3></div></div></div><p> | |
15571 | </p><p> There are several existing implementations of debug modes for C++ | |
15572 | standard library implementations, although none of them directly | |
15573 | supports debugging for programs using libstdc++. The existing | |
15574 | - implementations include:</p><div class="itemizedlist"><ul class="itemizedlist"><li class="listitem"><p><a class="link" href="http://www.mathcs.sjsu.edu/faculty/horstman/safestl.html">SafeSTL</a>: | |
15575 | + implementations include:</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p><a class="link" href="http://www.mathcs.sjsu.edu/faculty/horstman/safestl.html" target="_top">SafeSTL</a>: | |
15576 | SafeSTL was the original debugging version of the Standard Template | |
15577 | Library (STL), implemented by Cay S. Horstmann on top of the | |
15578 | Hewlett-Packard STL. Though it inspired much work in this area, it | |
15579 | has not been kept up-to-date for use with modern compilers or C++ | |
15580 | - standard library implementations.</p></li><li class="listitem"><p><a class="link" href="http://www.stlport.org/">STLport</a>: STLport is a free | |
15581 | - implementation of the C++ standard library derived from the <a class="link" href="http://www.sgi.com/tech/stl/">SGI implementation</a>, and | |
15582 | + standard library implementations.</p></li><li class="listitem"><p><a class="link" href="http://www.stlport.org/" target="_top">STLport</a>: STLport is a free | |
15583 | + implementation of the C++ standard library derived from the <a class="link" href="http://www.sgi.com/tech/stl/" target="_top">SGI implementation</a>, and | |
15584 | ported to many other platforms. It includes a debug mode that uses a | |
15585 | wrapper model (that in some ways inspired the libstdc++ debug mode | |
15586 | design), although at the time of this writing the debug mode is | |
15587 | @@ -409,4 +409,4 @@ | |
15588 | a full debug-mode implementation (including debugging for | |
15589 | CodeWarrior extensions) and is easy to use, although it meets only | |
15590 | the "Full recompilation" (1) recompilation | |
15591 | - guarantee.</p></li></ul></div></div></div><div class="navfooter"><hr/><table width="100%" summary="Navigation footer"><tr><td align="left"><a accesskey="p" href="bk01pt03ch17s03.html">Prev</a> </td><td align="center"><a accesskey="u" href="debug_mode.html">Up</a></td><td align="right"> <a accesskey="n" href="parallel_mode.html">Next</a></td></tr><tr><td align="left" valign="top">Using </td><td align="center"><a accesskey="h" href="../index.html">Home</a></td><td align="right" valign="top"> Chapter 18. Parallel Mode</td></tr></table></div></body></html> | |
15592 | + guarantee.</p></li></ul></div></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="bk01pt03ch17s03.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="debug_mode.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="parallel_mode.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Using </td><td width="20%" align="center"><a accesskey="h" href="../index.html">Home</a></td><td width="40%" align="right" valign="top"> Chapter 18. Parallel Mode</td></tr></table></div></body></html> | |
15593 | Index: libstdc++-v3/doc/html/manual/pairs.html | |
15594 | =================================================================== | |
9f95000d AM |
15595 | --- libstdc++-v3/doc/html/manual/pairs.html (.../tags/gcc_4_7_2_release) (wersja 192468) |
15596 | +++ libstdc++-v3/doc/html/manual/pairs.html (.../branches/gcc-4_7-branch) (wersja 192468) | |
5a87b929 AM |
15597 | @@ -1,9 +1,9 @@ |
15598 | <?xml version="1.0" encoding="UTF-8" standalone="no"?> | |
15599 | -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> | |
15600 | -<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Pairs</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1"/><meta name="keywords" content=" ISO C++ , library "/><meta name="keywords" content=" ISO C++ , runtime , library "/><link rel="home" href="../index.html" title="The GNU C++ Library"/><link rel="up" href="utilities.html" title="Chapter 6. Utilities"/><link rel="prev" href="utilities.html" title="Chapter 6. Utilities"/><link rel="next" href="memory.html" title="Memory"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Pairs</th></tr><tr><td align="left"><a accesskey="p" href="utilities.html">Prev</a> </td><th width="60%" align="center">Chapter 6. | |
15601 | +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> | |
15602 | +<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Pairs</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1" /><meta name="keywords" content=" ISO C++ , library " /><meta name="keywords" content=" ISO C++ , runtime , library " /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="utilities.html" title="Chapter 6. Utilities" /><link rel="prev" href="utilities.html" title="Chapter 6. Utilities" /><link rel="next" href="memory.html" title="Memory" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Pairs</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="utilities.html">Prev</a> </td><th width="60%" align="center">Chapter 6. | |
15603 | Utilities | |
15604 | ||
15605 | -</th><td align="right"> <a accesskey="n" href="memory.html">Next</a></td></tr></table><hr/></div><div class="section" title="Pairs"><div class="titlepage"><div><div><h2 class="title"><a id="std.util.pairs"/>Pairs</h2></div></div></div><p>The <code class="code">pair<T1,T2></code> is a simple and handy way to | |
15606 | +</th><td width="20%" align="right"> <a accesskey="n" href="memory.html">Next</a></td></tr></table><hr /></div><div class="section" title="Pairs"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="std.util.pairs"></a>Pairs</h2></div></div></div><p>The <code class="code">pair<T1,T2></code> is a simple and handy way to | |
15607 | carry around a pair of objects. One is of type T1, and another of | |
15608 | type T2; they may be the same type, but you don't get anything | |
15609 | extra if they are. The two members can be accessed directly, as | |
15610 | @@ -38,7 +38,7 @@ | |
15611 | instance of a pair instantiated on their respective types: | |
15612 | </p><pre class="programlisting"> | |
15613 | pair<int,MyClass> p = make_pair(4,myobject); | |
15614 | - </pre></div><div class="navfooter"><hr/><table width="100%" summary="Navigation footer"><tr><td align="left"><a accesskey="p" href="utilities.html">Prev</a> </td><td align="center"><a accesskey="u" href="utilities.html">Up</a></td><td align="right"> <a accesskey="n" href="memory.html">Next</a></td></tr><tr><td align="left" valign="top">Chapter 6. | |
15615 | + </pre></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="utilities.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="utilities.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="memory.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Chapter 6. | |
15616 | Utilities | |
15617 | ||
15618 | - </td><td align="center"><a accesskey="h" href="../index.html">Home</a></td><td align="right" valign="top"> Memory</td></tr></table></div></body></html> | |
15619 | + </td><td width="20%" align="center"><a accesskey="h" href="../index.html">Home</a></td><td width="40%" align="right" valign="top"> Memory</td></tr></table></div></body></html> | |
15620 | Index: libstdc++-v3/doc/html/manual/bk01pt03ch18s04.html | |
15621 | =================================================================== | |
9f95000d AM |
15622 | --- libstdc++-v3/doc/html/manual/bk01pt03ch18s04.html (.../tags/gcc_4_7_2_release) (wersja 192468) |
15623 | +++ libstdc++-v3/doc/html/manual/bk01pt03ch18s04.html (.../branches/gcc-4_7-branch) (wersja 192468) | |
5a87b929 AM |
15624 | @@ -1,7 +1,7 @@ |
15625 | <?xml version="1.0" encoding="UTF-8" standalone="no"?> | |
15626 | -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> | |
15627 | -<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Design</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1"/><meta name="keywords" content=" C++ , library , parallel "/><meta name="keywords" content=" ISO C++ , library "/><meta name="keywords" content=" ISO C++ , runtime , library "/><link rel="home" href="../index.html" title="The GNU C++ Library"/><link rel="up" href="parallel_mode.html" title="Chapter 18. Parallel Mode"/><link rel="prev" href="bk01pt03ch18s03.html" title="Using"/><link rel="next" href="bk01pt03ch18s05.html" title="Testing"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Design</th></tr><tr><td align="left"><a accesskey="p" href="bk01pt03ch18s03.html">Prev</a> </td><th width="60%" align="center">Chapter 18. Parallel Mode</th><td align="right"> <a accesskey="n" href="bk01pt03ch18s05.html">Next</a></td></tr></table><hr/></div><div class="section" title="Design"><div class="titlepage"><div><div><h2 class="title"><a id="manual.ext.parallel_mode.design"/>Design</h2></div></div></div><p> | |
15628 | - </p><div class="section" title="Interface Basics"><div class="titlepage"><div><div><h3 class="title"><a id="parallel_mode.design.intro"/>Interface Basics</h3></div></div></div><p> | |
15629 | +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> | |
15630 | +<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Design</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1" /><meta name="keywords" content=" C++ , library , parallel " /><meta name="keywords" content=" ISO C++ , library " /><meta name="keywords" content=" ISO C++ , runtime , library " /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="parallel_mode.html" title="Chapter 18. Parallel Mode" /><link rel="prev" href="bk01pt03ch18s03.html" title="Using" /><link rel="next" href="bk01pt03ch18s05.html" title="Testing" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Design</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="bk01pt03ch18s03.html">Prev</a> </td><th width="60%" align="center">Chapter 18. Parallel Mode</th><td width="20%" align="right"> <a accesskey="n" href="bk01pt03ch18s05.html">Next</a></td></tr></table><hr /></div><div class="section" title="Design"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="manual.ext.parallel_mode.design"></a>Design</h2></div></div></div><p> | |
15631 | + </p><div class="section" title="Interface Basics"><div class="titlepage"><div><div><h3 class="title"><a id="parallel_mode.design.intro"></a>Interface Basics</h3></div></div></div><p> | |
15632 | All parallel algorithms are intended to have signatures that are | |
15633 | equivalent to the ISO C++ algorithms replaced. For instance, the | |
15634 | <code class="function">std::adjacent_find</code> function is declared as: | |
15635 | @@ -36,13 +36,13 @@ | |
15636 | compile-time or run-time conditions. | |
15637 | </p><p> The available signature options are specific for the different | |
15638 | algorithms/algorithm classes.</p><p> The general view of overloads for the parallel algorithms look like this: | |
15639 | -</p><div class="itemizedlist"><ul class="itemizedlist"><li class="listitem"><p>ISO C++ signature</p></li><li class="listitem"><p>ISO C++ signature + sequential_tag argument</p></li><li class="listitem"><p>ISO C++ signature + algorithm-specific tag type | |
15640 | +</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>ISO C++ signature</p></li><li class="listitem"><p>ISO C++ signature + sequential_tag argument</p></li><li class="listitem"><p>ISO C++ signature + algorithm-specific tag type | |
15641 | (several signatures)</p></li></ul></div><p> Please note that the implementation may use additional functions | |
15642 | (designated with the <code class="code">_switch</code> suffix) to dispatch from the | |
15643 | ISO C++ signature to the correct parallel version. Also, some of the | |
15644 | algorithms do not have support for run-time conditions, so the last | |
15645 | overload is therefore missing. | |
15646 | -</p></div><div class="section" title="Configuration and Tuning"><div class="titlepage"><div><div><h3 class="title"><a id="parallel_mode.design.tuning"/>Configuration and Tuning</h3></div></div></div><div class="section" title="Setting up the OpenMP Environment"><div class="titlepage"><div><div><h4 class="title"><a id="parallel_mode.design.tuning.omp"/>Setting up the OpenMP Environment</h4></div></div></div><p> | |
15647 | +</p></div><div class="section" title="Configuration and Tuning"><div class="titlepage"><div><div><h3 class="title"><a id="parallel_mode.design.tuning"></a>Configuration and Tuning</h3></div></div></div><div class="section" title="Setting up the OpenMP Environment"><div class="titlepage"><div><div><h4 class="title"><a id="parallel_mode.design.tuning.omp"></a>Setting up the OpenMP Environment</h4></div></div></div><p> | |
15648 | Several aspects of the overall runtime environment can be manipulated | |
15649 | by standard OpenMP function calls. | |
15650 | </p><p> | |
15651 | @@ -72,7 +72,7 @@ | |
15652 | nested parallelism (<code class="function">omp_set_nested</code>), schedule kind | |
15653 | (<code class="function">omp_set_schedule</code>), and others. See the OpenMP | |
15654 | documentation for more information. | |
15655 | -</p></div><div class="section" title="Compile Time Switches"><div class="titlepage"><div><div><h4 class="title"><a id="parallel_mode.design.tuning.compile"/>Compile Time Switches</h4></div></div></div><p> | |
15656 | +</p></div><div class="section" title="Compile Time Switches"><div class="titlepage"><div><div><h4 class="title"><a id="parallel_mode.design.tuning.compile"></a>Compile Time Switches</h4></div></div></div><p> | |
15657 | To force an algorithm to execute sequentially, even though parallelism | |
15658 | is switched on in general via the macro <code class="constant">_GLIBCXX_PARALLEL</code>, | |
15659 | add <code class="classname">__gnu_parallel::sequential_tag()</code> to the end | |
15660 | @@ -126,7 +126,7 @@ | |
15661 | <code class="code">__gnu_parallel::balanced_quicksort_tag</code>. | |
15662 | Multiway mergesort comes with the two splitting strategies for multi-way | |
15663 | merging. The quicksort options cannot be used for <code class="code">stable_sort</code>. | |
15664 | -</p></div><div class="section" title="Run Time Settings and Defaults"><div class="titlepage"><div><div><h4 class="title"><a id="parallel_mode.design.tuning.settings"/>Run Time Settings and Defaults</h4></div></div></div><p> | |
15665 | +</p></div><div class="section" title="Run Time Settings and Defaults"><div class="titlepage"><div><div><h4 class="title"><a id="parallel_mode.design.tuning.settings"></a>Run Time Settings and Defaults</h4></div></div></div><p> | |
15666 | The default parallelization strategy, the choice of specific algorithm | |
15667 | strategy, the minimum threshold limits for individual parallel | |
15668 | algorithms, and aspects of the underlying hardware can be specified as | |
15669 | @@ -175,7 +175,7 @@ | |
15670 | <code class="code">__gnu_parallel::_Settings::set</code>, respectively. | |
15671 | Please note that the first call return a const object, so direct manipulation | |
15672 | is forbidden. | |
15673 | -See <a class="link" href="http://gcc.gnu.org/onlinedocs/libstdc++/latest-doxygen/a01005.html"> | |
15674 | +See <a class="link" href="http://gcc.gnu.org/onlinedocs/libstdc++/latest-doxygen/a01005.html" target="_top"> | |
15675 | <code class="filename">settings.h</code></a> | |
15676 | for complete details. | |
15677 | </p><p> | |
15678 | @@ -194,7 +194,7 @@ | |
15679 | ||
15680 | return 0; | |
15681 | } | |
15682 | -</pre></div></div><div class="section" title="Implementation Namespaces"><div class="titlepage"><div><div><h3 class="title"><a id="parallel_mode.design.impl"/>Implementation Namespaces</h3></div></div></div><p> One namespace contain versions of code that are always | |
15683 | +</pre></div></div><div class="section" title="Implementation Namespaces"><div class="titlepage"><div><div><h3 class="title"><a id="parallel_mode.design.impl"></a>Implementation Namespaces</h3></div></div></div><p> One namespace contain versions of code that are always | |
15684 | explicitly sequential: | |
15685 | <code class="code">__gnu_serial</code>. | |
15686 | </p><p> Two namespaces contain the parallel mode: | |
15687 | @@ -210,4 +210,4 @@ | |
15688 | </p><p> More information, and an organized index of types and functions | |
15689 | related to the parallel mode on a per-namespace basis, can be found in | |
15690 | the generated source documentation. | |
15691 | -</p></div></div><div class="navfooter"><hr/><table width="100%" summary="Navigation footer"><tr><td align="left"><a accesskey="p" href="bk01pt03ch18s03.html">Prev</a> </td><td align="center"><a accesskey="u" href="parallel_mode.html">Up</a></td><td align="right"> <a accesskey="n" href="bk01pt03ch18s05.html">Next</a></td></tr><tr><td align="left" valign="top">Using </td><td align="center"><a accesskey="h" href="../index.html">Home</a></td><td align="right" valign="top"> Testing</td></tr></table></div></body></html> | |
15692 | +</p></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="bk01pt03ch18s03.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="parallel_mode.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="bk01pt03ch18s05.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Using </td><td width="20%" align="center"><a accesskey="h" href="../index.html">Home</a></td><td width="40%" align="right" valign="top"> Testing</td></tr></table></div></body></html> | |
15693 | Index: libstdc++-v3/doc/html/manual/test.html | |
15694 | =================================================================== | |
9f95000d AM |
15695 | --- libstdc++-v3/doc/html/manual/test.html (.../tags/gcc_4_7_2_release) (wersja 192468) |
15696 | +++ libstdc++-v3/doc/html/manual/test.html (.../branches/gcc-4_7-branch) (wersja 192468) | |
5a87b929 AM |
15697 | @@ -1,12 +1,12 @@ |
15698 | <?xml version="1.0" encoding="UTF-8" standalone="no"?> | |
15699 | -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> | |
15700 | -<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Test</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1"/><meta name="keywords" content=" ISO C++ , test , testsuite , performance , conformance , ABI , exception safety "/><meta name="keywords" content=" ISO C++ , library "/><meta name="keywords" content=" ISO C++ , runtime , library "/><link rel="home" href="../index.html" title="The GNU C++ Library"/><link rel="up" href="appendix_porting.html" title="Appendix B. Porting and Maintenance"/><link rel="prev" href="internals.html" title="Porting to New Hardware or Operating Systems"/><link rel="next" href="abi.html" title="ABI Policy and Guidelines"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Test</th></tr><tr><td align="left"><a accesskey="p" href="internals.html">Prev</a> </td><th width="60%" align="center">Appendix B. | |
15701 | +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> | |
15702 | +<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Test</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1" /><meta name="keywords" content=" ISO C++ , test , testsuite , performance , conformance , ABI , exception safety " /><meta name="keywords" content=" ISO C++ , library " /><meta name="keywords" content=" ISO C++ , runtime , library " /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="appendix_porting.html" title="Appendix B. Porting and Maintenance" /><link rel="prev" href="internals.html" title="Porting to New Hardware or Operating Systems" /><link rel="next" href="abi.html" title="ABI Policy and Guidelines" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Test</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="internals.html">Prev</a> </td><th width="60%" align="center">Appendix B. | |
15703 | Porting and Maintenance | |
15704 | ||
15705 | -</th><td align="right"> <a accesskey="n" href="abi.html">Next</a></td></tr></table><hr/></div><div class="section" title="Test"><div class="titlepage"><div><div><h2 class="title"><a id="manual.intro.setup.test"/>Test</h2></div></div></div><p> | |
15706 | +</th><td width="20%" align="right"> <a accesskey="n" href="abi.html">Next</a></td></tr></table><hr /></div><div class="section" title="Test"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="manual.intro.setup.test"></a>Test</h2></div></div></div><p> | |
15707 | The libstdc++ testsuite includes testing for standard conformance, | |
15708 | regressions, ABI, and performance. | |
15709 | -</p><div class="section" title="Organization"><div class="titlepage"><div><div><h3 class="title"><a id="test.organization"/>Organization</h3></div></div></div><div class="section" title="Directory Layout"><div class="titlepage"><div><div><h4 class="title"><a id="test.organization.layout"/>Directory Layout</h4></div></div></div><p> | |
15710 | +</p><div class="section" title="Organization"><div class="titlepage"><div><div><h3 class="title"><a id="test.organization"></a>Organization</h3></div></div></div><div class="section" title="Directory Layout"><div class="titlepage"><div><div><h4 class="title"><a id="test.organization.layout"></a>Directory Layout</h4></div></div></div><p> | |
15711 | The directory <span class="emphasis"><em>libsrcdir/testsuite</em></span> contains the | |
15712 | individual test cases organized in sub-directories corresponding to | |
15713 | chapters of the C++ standard (detailed below), the dejagnu test | |
15714 | @@ -77,11 +77,11 @@ | |
15715 | </pre><p> | |
15716 | All new tests should be written with the policy of one test | |
15717 | case, one file in mind. | |
15718 | - </p></div><div class="section" title="Naming Conventions"><div class="titlepage"><div><div><h4 class="title"><a id="test.organization.naming"/>Naming Conventions</h4></div></div></div><p> | |
15719 | + </p></div><div class="section" title="Naming Conventions"><div class="titlepage"><div><div><h4 class="title"><a id="test.organization.naming"></a>Naming Conventions</h4></div></div></div><p> | |
15720 | In addition, there are some special names and suffixes that are | |
15721 | used within the testsuite to designate particular kinds of | |
15722 | tests. | |
15723 | - </p><div class="itemizedlist"><ul class="itemizedlist"><li class="listitem"><p> | |
15724 | + </p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p> | |
15725 | <span class="emphasis"><em>_xin.cc</em></span> | |
15726 | </p><p> | |
15727 | This test case expects some kind of interactive input in order | |
15728 | @@ -131,7 +131,7 @@ | |
15729 | analyze runtime performance, for performance regression testing, | |
15730 | or for other optimization related analysis. At the moment, these | |
15731 | test cases are not run by default. | |
15732 | - </p></li></ul></div></div></div><div class="section" title="Running the Testsuite"><div class="titlepage"><div><div><h3 class="title"><a id="test.run"/>Running the Testsuite</h3></div></div></div><div class="section" title="Basic"><div class="titlepage"><div><div><h4 class="title"><a id="test.run.basic"/>Basic</h4></div></div></div><p> | |
15733 | + </p></li></ul></div></div></div><div class="section" title="Running the Testsuite"><div class="titlepage"><div><div><h3 class="title"><a id="test.run"></a>Running the Testsuite</h3></div></div></div><div class="section" title="Basic"><div class="titlepage"><div><div><h4 class="title"><a id="test.run.basic"></a>Basic</h4></div></div></div><p> | |
15734 | You can check the status of the build without installing it | |
15735 | using the dejagnu harness, much like the rest of the gcc | |
15736 | tools.</p><pre class="programlisting"> make check</pre><p>in the <span class="emphasis"><em>libbuilddir</em></span> directory.</p><p>or</p><pre class="programlisting"> make check-target-libstdc++-v3</pre><p>in the <span class="emphasis"><em>gccbuilddir</em></span> directory. | |
15737 | @@ -146,12 +146,12 @@ | |
15738 | output, and the executable output (if any). | |
15739 | </p><p> | |
15740 | Archives of test results for various versions and platforms are | |
15741 | - available on the GCC website in the <a class="link" href="http://gcc.gnu.org/gcc-4.3/buildstat.html">build | |
15742 | + available on the GCC website in the <a class="link" href="http://gcc.gnu.org/gcc-4.3/buildstat.html" target="_top">build | |
15743 | status</a> section of each individual release, and are also | |
15744 | - archived on a daily basis on the <a class="link" href="http://gcc.gnu.org/ml/gcc-testresults/current">gcc-testresults</a> | |
15745 | + archived on a daily basis on the <a class="link" href="http://gcc.gnu.org/ml/gcc-testresults/current" target="_top">gcc-testresults</a> | |
15746 | mailing list. Please check either of these places for a similar | |
15747 | combination of source version, operating system, and host CPU. | |
15748 | - </p></div><div class="section" title="Variations"><div class="titlepage"><div><div><h4 class="title"><a id="test.run.variations"/>Variations</h4></div></div></div><p> | |
15749 | + </p></div><div class="section" title="Variations"><div class="titlepage"><div><div><h4 class="title"><a id="test.run.variations"></a>Variations</h4></div></div></div><p> | |
15750 | There are several options for running tests, including testing | |
15751 | the regression tests, testing a subset of the regression tests, | |
15752 | testing the performance tests, testing just compilation, testing | |
15753 | @@ -222,7 +222,7 @@ | |
15754 | </pre><p> | |
15755 | Five files are generated that determine what test files | |
15756 | are run. These files are: | |
15757 | - </p><div class="itemizedlist"><ul class="itemizedlist"><li class="listitem"><p> | |
15758 | + </p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p> | |
15759 | <span class="emphasis"><em>testsuite_files</em></span> | |
15760 | </p><p> | |
15761 | This is a list of all the test cases that will be run. Each | |
15762 | @@ -277,7 +277,7 @@ | |
15763 | We are interested in any strange failures of the testsuite; | |
15764 | please email the main libstdc++ mailing list if you see | |
15765 | something odd or have questions. | |
15766 | - </p></div><div class="section" title="Permutations"><div class="titlepage"><div><div><h4 class="title"><a id="test.run.permutations"/>Permutations</h4></div></div></div><p> | |
15767 | + </p></div><div class="section" title="Permutations"><div class="titlepage"><div><div><h4 class="title"><a id="test.run.permutations"></a>Permutations</h4></div></div></div><p> | |
15768 | To run the libstdc++ test suite under the <a class="link" href="debug_mode.html" title="Chapter 17. Debug Mode">debug mode</a>, edit | |
15769 | <code class="filename">libstdc++-v3/scripts/testsuite_flags</code> to add the | |
15770 | compile-time flag <code class="constant">-D_GLIBCXX_DEBUG</code> to the | |
15771 | @@ -297,7 +297,7 @@ | |
15772 | Or, just run the testsuites with <code class="constant">CXXFLAGS</code> | |
15773 | set to <code class="constant">-D_GLIBCXX_DEBUG</code> or | |
15774 | <code class="constant">-D_GLIBCXX_PARALLEL</code>. | |
15775 | - </p></div></div><div class="section" title="Writing a new test case"><div class="titlepage"><div><div><h3 class="title"><a id="test.new_tests"/>Writing a new test case</h3></div></div></div><p> | |
15776 | + </p></div></div><div class="section" title="Writing a new test case"><div class="titlepage"><div><div><h3 class="title"><a id="test.new_tests"></a>Writing a new test case</h3></div></div></div><p> | |
15777 | The first step in making a new test case is to choose the correct | |
15778 | directory and file name, given the organization as previously | |
15779 | described. | |
15780 | @@ -408,7 +408,7 @@ | |
15781 | // { dg-options "-O0" { target *-*-* } } | |
15782 | </pre><p> | |
15783 | More examples can be found in the libstdc++-v3/testsuite/*/*.cc files. | |
15784 | - </p></div><div class="section" title="Test Harness and Utilities"><div class="titlepage"><div><div><h3 class="title"><a id="test.harness"/>Test Harness and Utilities</h3></div></div></div><div class="section" title="Dejagnu Harness Details"><div class="titlepage"><div><div><h4 class="title"><a id="test.harness.dejagnu"/>Dejagnu Harness Details</h4></div></div></div><p> | |
15785 | + </p></div><div class="section" title="Test Harness and Utilities"><div class="titlepage"><div><div><h3 class="title"><a id="test.harness"></a>Test Harness and Utilities</h3></div></div></div><div class="section" title="Dejagnu Harness Details"><div class="titlepage"><div><div><h4 class="title"><a id="test.harness.dejagnu"></a>Dejagnu Harness Details</h4></div></div></div><p> | |
15786 | Underlying details of testing for conformance and regressions are | |
15787 | abstracted via the GNU Dejagnu package. This is similar to the | |
15788 | rest of GCC. | |
15789 | @@ -435,7 +435,7 @@ | |
15790 | </p><p>The <code class="code">config</code> directory is searched for any particular "target | |
15791 | board" information unique to this library. This is currently unused and sets | |
15792 | only default variables. | |
15793 | -</p></div><div class="section" title="Utilities"><div class="titlepage"><div><div><h4 class="title"><a id="test.harness.utils"/>Utilities</h4></div></div></div><p> | |
15794 | +</p></div><div class="section" title="Utilities"><div class="titlepage"><div><div><h4 class="title"><a id="test.harness.utils"></a>Utilities</h4></div></div></div><p> | |
15795 | </p><p> | |
15796 | The testsuite directory also contains some files that implement | |
15797 | functionality that is intended to make writing test cases easier, | |
15798 | @@ -447,7 +447,7 @@ | |
15799 | during testing. | |
15800 | </p><p> | |
15801 | These files include the following functionality: | |
15802 | - </p><div class="itemizedlist"><ul class="itemizedlist"><li class="listitem"><p> | |
15803 | + </p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p> | |
15804 | <span class="emphasis"><em>testsuite_abi.h</em></span>, | |
15805 | <span class="emphasis"><em>testsuite_abi.cc</em></span>, | |
15806 | <span class="emphasis"><em>testsuite_abi_check.cc</em></span> | |
15807 | @@ -477,7 +477,7 @@ | |
15808 | <span class="emphasis"><em>testsuite_hooks.cc</em></span> | |
15809 | </p><p> | |
15810 | A large number of utilities, including: | |
15811 | - </p><div class="itemizedlist"><ul class="itemizedlist"><li class="listitem"><p>VERIFY</p></li><li class="listitem"><p>set_memory_limits</p></li><li class="listitem"><p>verify_demangle</p></li><li class="listitem"><p>run_tests_wrapped_locale</p></li><li class="listitem"><p>run_tests_wrapped_env</p></li><li class="listitem"><p>try_named_locale</p></li><li class="listitem"><p>try_mkfifo</p></li><li class="listitem"><p>func_callback</p></li><li class="listitem"><p>counter</p></li><li class="listitem"><p>copy_tracker</p></li><li class="listitem"><p>copy_constructor</p></li><li class="listitem"><p>assignment_operator</p></li><li class="listitem"><p>destructor</p></li><li class="listitem"><p>pod_char, pod_int and associated char_traits specializations</p></li></ul></div></li><li class="listitem"><p> | |
15812 | + </p><div class="itemizedlist"><ul class="itemizedlist" type="circle"><li class="listitem"><p>VERIFY</p></li><li class="listitem"><p>set_memory_limits</p></li><li class="listitem"><p>verify_demangle</p></li><li class="listitem"><p>run_tests_wrapped_locale</p></li><li class="listitem"><p>run_tests_wrapped_env</p></li><li class="listitem"><p>try_named_locale</p></li><li class="listitem"><p>try_mkfifo</p></li><li class="listitem"><p>func_callback</p></li><li class="listitem"><p>counter</p></li><li class="listitem"><p>copy_tracker</p></li><li class="listitem"><p>copy_constructor</p></li><li class="listitem"><p>assignment_operator</p></li><li class="listitem"><p>destructor</p></li><li class="listitem"><p>pod_char, pod_int and associated char_traits specializations</p></li></ul></div></li><li class="listitem"><p> | |
15813 | <span class="emphasis"><em>testsuite_io.h</em></span> | |
15814 | </p><p> | |
15815 | Error, exception, and constraint checking for | |
15816 | @@ -491,10 +491,10 @@ | |
15817 | </p><p> | |
15818 | A number of class abstractions for performance counters, and | |
15819 | reporting functions including: | |
15820 | - </p><div class="itemizedlist"><ul class="itemizedlist"><li class="listitem"><p>time_counter</p></li><li class="listitem"><p>resource_counter</p></li><li class="listitem"><p>report_performance</p></li></ul></div></li></ul></div></div></div><div class="section" title="Special Topics"><div class="titlepage"><div><div><h3 class="title"><a id="test.special"/>Special Topics</h3></div></div></div><div class="section" title="Qualifying Exception Safety Guarantees"><div class="titlepage"><div><div><h4 class="title"><a id="test.exception.safety"/> | |
15821 | + </p><div class="itemizedlist"><ul class="itemizedlist" type="circle"><li class="listitem"><p>time_counter</p></li><li class="listitem"><p>resource_counter</p></li><li class="listitem"><p>report_performance</p></li></ul></div></li></ul></div></div></div><div class="section" title="Special Topics"><div class="titlepage"><div><div><h3 class="title"><a id="test.special"></a>Special Topics</h3></div></div></div><div class="section" title="Qualifying Exception Safety Guarantees"><div class="titlepage"><div><div><h4 class="title"><a id="test.exception.safety"></a> | |
15822 | Qualifying Exception Safety Guarantees | |
15823 | - <a id="id557519" class="indexterm"/> | |
15824 | -</h4></div></div></div><div class="section" title="Overview"><div class="titlepage"><div><div><h5 class="title"><a id="test.exception.safety.overview"/>Overview</h5></div></div></div><p> | |
15825 | + <a id="id736022" class="indexterm"></a> | |
15826 | +</h4></div></div></div><div class="section" title="Overview"><div class="titlepage"><div><div><h5 class="title"><a id="test.exception.safety.overview"></a>Overview</h5></div></div></div><p> | |
15827 | Testing is composed of running a particular test sequence, | |
15828 | and looking at what happens to the surrounding code when | |
15829 | exceptions are thrown. Each test is composed of measuring | |
15830 | @@ -524,9 +524,9 @@ | |
15831 | completes without an exception being thrown, assume all | |
15832 | potential error paths have been exercised in a sequential | |
15833 | manner. | |
15834 | - </p></div><div class="section" title="Existing tests"><div class="titlepage"><div><div><h5 class="title"><a id="test.exception.safety.status"/> | |
15835 | + </p></div><div class="section" title="Existing tests"><div class="titlepage"><div><div><h5 class="title"><a id="test.exception.safety.status"></a> | |
15836 | Existing tests | |
15837 | -</h5></div></div></div><div class="itemizedlist"><ul class="itemizedlist"><li class="listitem"><p> | |
15838 | +</h5></div></div></div><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p> | |
15839 | Ad Hoc | |
15840 | </p><p> | |
15841 | For example, | |
15842 | @@ -563,9 +563,9 @@ | |
15843 | instrumentation to <code class="classname">iterator</code> | |
15844 | and <code class="classname">const_iterator</code> types that throw | |
15845 | conditionally on iterator operations. | |
15846 | - </p></li></ul></div></div><div class="section" title="C++11 Requirements Test Sequence Descriptions"><div class="titlepage"><div><div><h5 class="title"><a id="test.exception.safety.containers"/> | |
15847 | + </p></li></ul></div></div><div class="section" title="C++11 Requirements Test Sequence Descriptions"><div class="titlepage"><div><div><h5 class="title"><a id="test.exception.safety.containers"></a> | |
15848 | C++11 Requirements Test Sequence Descriptions | |
15849 | -</h5></div></div></div><div class="itemizedlist"><ul class="itemizedlist"><li class="listitem"><p> | |
15850 | +</h5></div></div></div><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p> | |
15851 | Basic | |
15852 | </p><p> | |
15853 | Basic consistency on exception propagation tests. For | |
15854 | @@ -636,4 +636,4 @@ | |
15855 | The general form demonstrated in | |
15856 | <code class="filename">testsuite/23_containers/list/requirements/exception/propagation_coherent.cc | |
15857 | </code>. The instantiating test object is <code class="classname">__gnu_test::propagation_coherent</code> and is detailed in <code class="filename">testsuite/util/exception/safety.h</code>. | |
15858 | - </p></li></ul></div></div></div></div></div><div class="navfooter"><hr/><table width="100%" summary="Navigation footer"><tr><td align="left"><a accesskey="p" href="internals.html">Prev</a> </td><td align="center"><a accesskey="u" href="appendix_porting.html">Up</a></td><td align="right"> <a accesskey="n" href="abi.html">Next</a></td></tr><tr><td align="left" valign="top">Porting to New Hardware or Operating Systems </td><td align="center"><a accesskey="h" href="../index.html">Home</a></td><td align="right" valign="top"> ABI Policy and Guidelines</td></tr></table></div></body></html> | |
15859 | + </p></li></ul></div></div></div></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="internals.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="appendix_porting.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="abi.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Porting to New Hardware or Operating Systems </td><td width="20%" align="center"><a accesskey="h" href="../index.html">Home</a></td><td width="40%" align="right" valign="top"> ABI Policy and Guidelines</td></tr></table></div></body></html> | |
15860 | Index: libstdc++-v3/doc/html/manual/using_dynamic_or_shared.html | |
15861 | =================================================================== | |
9f95000d AM |
15862 | --- libstdc++-v3/doc/html/manual/using_dynamic_or_shared.html (.../tags/gcc_4_7_2_release) (wersja 192468) |
15863 | +++ libstdc++-v3/doc/html/manual/using_dynamic_or_shared.html (.../branches/gcc-4_7-branch) (wersja 192468) | |
5a87b929 AM |
15864 | @@ -1,10 +1,10 @@ |
15865 | <?xml version="1.0" encoding="UTF-8" standalone="no"?> | |
15866 | -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> | |
15867 | -<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Linking</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1"/><meta name="keywords" content=" ISO C++ , library "/><meta name="keywords" content=" ISO C++ , runtime , library "/><link rel="home" href="../index.html" title="The GNU C++ Library"/><link rel="up" href="using.html" title="Chapter 3. Using"/><link rel="prev" href="using_namespaces.html" title="Namespaces"/><link rel="next" href="using_concurrency.html" title="Concurrency"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Linking</th></tr><tr><td align="left"><a accesskey="p" href="using_namespaces.html">Prev</a> </td><th width="60%" align="center">Chapter 3. Using</th><td align="right"> <a accesskey="n" href="using_concurrency.html">Next</a></td></tr></table><hr/></div><div class="section" title="Linking"><div class="titlepage"><div><div><h2 class="title"><a id="manual.intro.using.linkage"/>Linking</h2></div></div></div><div class="section" title="Almost Nothing"><div class="titlepage"><div><div><h3 class="title"><a id="manual.intro.using.linkage.freestanding"/>Almost Nothing</h3></div></div></div><p> | |
15868 | +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> | |
15869 | +<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Linking</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1" /><meta name="keywords" content=" ISO C++ , library " /><meta name="keywords" content=" ISO C++ , runtime , library " /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="using.html" title="Chapter 3. Using" /><link rel="prev" href="using_namespaces.html" title="Namespaces" /><link rel="next" href="using_concurrency.html" title="Concurrency" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Linking</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="using_namespaces.html">Prev</a> </td><th width="60%" align="center">Chapter 3. Using</th><td width="20%" align="right"> <a accesskey="n" href="using_concurrency.html">Next</a></td></tr></table><hr /></div><div class="section" title="Linking"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="manual.intro.using.linkage"></a>Linking</h2></div></div></div><div class="section" title="Almost Nothing"><div class="titlepage"><div><div><h3 class="title"><a id="manual.intro.using.linkage.freestanding"></a>Almost Nothing</h3></div></div></div><p> | |
15870 | Or as close as it gets: freestanding. This is a minimal | |
15871 | configuration, with only partial support for the standard | |
15872 | library. Assume only the following header files can be used: | |
15873 | - </p><div class="itemizedlist"><ul class="itemizedlist"><li class="listitem"><p> | |
15874 | + </p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p> | |
15875 | <code class="filename">cstdarg</code> | |
15876 | </p></li><li class="listitem"><p> | |
15877 | <code class="filename">cstddef</code> | |
15878 | @@ -22,12 +22,12 @@ | |
15879 | <code class="filename">typeinfo</code> | |
15880 | </p></li></ul></div><p> | |
15881 | In addition, throw in | |
15882 | - </p><div class="itemizedlist"><ul class="itemizedlist"><li class="listitem"><p> | |
15883 | + </p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p> | |
15884 | <code class="filename">cxxabi.h</code>. | |
15885 | </p></li></ul></div><p> | |
15886 | In the | |
15887 | C++11 <a class="link" href="using.html#manual.intro.using.flags" title="Command Options">dialect</a> add | |
15888 | - </p><div class="itemizedlist"><ul class="itemizedlist"><li class="listitem"><p> | |
15889 | + </p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p> | |
15890 | <code class="filename">initializer_list</code> | |
15891 | </p></li><li class="listitem"><p> | |
15892 | <code class="filename">type_traits</code> | |
15893 | @@ -40,7 +40,7 @@ | |
15894 | No attempt is made to verify that only the minimal subset | |
15895 | identified above is actually used at compile time. Violations | |
15896 | are diagnosed as undefined symbols at link time. | |
15897 | - </p></div><div class="section" title="Finding Dynamic or Shared Libraries"><div class="titlepage"><div><div><h3 class="title"><a id="manual.intro.using.linkage.dynamic"/>Finding Dynamic or Shared Libraries</h3></div></div></div><p> | |
15898 | + </p></div><div class="section" title="Finding Dynamic or Shared Libraries"><div class="titlepage"><div><div><h3 class="title"><a id="manual.intro.using.linkage.dynamic"></a>Finding Dynamic or Shared Libraries</h3></div></div></div><p> | |
15899 | If the only library built is the static library | |
15900 | (<code class="filename">libstdc++.a</code>), or if | |
15901 | specifying static linking, this section is can be skipped. But | |
15902 | @@ -51,10 +51,10 @@ | |
15903 | But how? | |
15904 | </p><p> | |
15905 | A quick read of the relevant part of the GCC | |
15906 | - manual, <a class="link" href="http://gcc.gnu.org/onlinedocs/gcc/Invoking-G_002b_002b.html#Invoking-G_002b_002b">Compiling | |
15907 | + manual, <a class="link" href="http://gcc.gnu.org/onlinedocs/gcc/Invoking-G_002b_002b.html#Invoking-G_002b_002b" target="_top">Compiling | |
15908 | C++ Programs</a>, specifies linking against a C++ | |
15909 | library. More details from the | |
15910 | - GCC <a class="link" href="http://gcc.gnu.org/faq.html#rpath">FAQ</a>, | |
15911 | + GCC <a class="link" href="http://gcc.gnu.org/faq.html#rpath" target="_top">FAQ</a>, | |
15912 | which states <span class="emphasis"><em>GCC does not, by default, specify a | |
15913 | location so that the dynamic linker can find dynamic libraries at | |
15914 | runtime.</em></span> | |
15915 | @@ -63,7 +63,7 @@ | |
15916 | </p><p> | |
15917 | Methods vary for different platforms and different styles, and | |
15918 | are printed to the screen during installation. To summarize: | |
15919 | - </p><div class="itemizedlist"><ul class="itemizedlist"><li class="listitem"><p> | |
15920 | + </p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p> | |
15921 | At runtime set <code class="literal">LD_LIBRARY_PATH</code> in your | |
15922 | environment correctly, so that the shared library for | |
15923 | libstdc++ can be found and loaded. Be certain that you | |
15924 | @@ -75,7 +75,7 @@ | |
15925 | <span class="command"><strong>g++</strong></span>, which will in turn pass them on to | |
15926 | the linker. The exact format of the options is dependent on | |
15927 | which linker you use: | |
15928 | - </p><div class="itemizedlist"><ul class="itemizedlist"><li class="listitem"><p> | |
15929 | + </p><div class="itemizedlist"><ul class="itemizedlist" type="circle"><li class="listitem"><p> | |
15930 | GNU ld (default on GNU/Linux): | |
15931 | <code class="literal">-Wl,-rpath,</code><code class="filename">destdir/lib</code> | |
15932 | </p></li><li class="listitem"><p> | |
15933 | @@ -106,4 +106,4 @@ | |
15934 | also installed, for use with Libtool. If you use Libtool to | |
15935 | create your executables, these details are taken care of for | |
15936 | you. | |
15937 | - </p></div></div><div class="navfooter"><hr/><table width="100%" summary="Navigation footer"><tr><td align="left"><a accesskey="p" href="using_namespaces.html">Prev</a> </td><td align="center"><a accesskey="u" href="using.html">Up</a></td><td align="right"> <a accesskey="n" href="using_concurrency.html">Next</a></td></tr><tr><td align="left" valign="top">Namespaces </td><td align="center"><a accesskey="h" href="../index.html">Home</a></td><td align="right" valign="top"> Concurrency</td></tr></table></div></body></html> | |
15938 | + </p></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="using_namespaces.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="using.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="using_concurrency.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Namespaces </td><td width="20%" align="center"><a accesskey="h" href="../index.html">Home</a></td><td width="40%" align="right" valign="top"> Concurrency</td></tr></table></div></body></html> | |
15939 | Index: libstdc++-v3/doc/html/manual/bk01pt03ch19s04.html | |
15940 | =================================================================== | |
9f95000d AM |
15941 | --- libstdc++-v3/doc/html/manual/bk01pt03ch19s04.html (.../tags/gcc_4_7_2_release) (wersja 192468) |
15942 | +++ libstdc++-v3/doc/html/manual/bk01pt03ch19s04.html (.../branches/gcc-4_7-branch) (wersja 192468) | |
5a87b929 AM |
15943 | @@ -1,6 +1,6 @@ |
15944 | <?xml version="1.0" encoding="UTF-8" standalone="no"?> | |
15945 | -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> | |
15946 | -<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Empirical Cost Model</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1"/><meta name="keywords" content=" C++ , library , profile "/><meta name="keywords" content=" ISO C++ , library "/><meta name="keywords" content=" ISO C++ , runtime , library "/><link rel="home" href="../index.html" title="The GNU C++ Library"/><link rel="up" href="profile_mode.html" title="Chapter 19. Profile Mode"/><link rel="prev" href="bk01pt03ch19s03.html" title="Extensions for Custom Containers"/><link rel="next" href="bk01pt03ch19s05.html" title="Implementation Issues"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Empirical Cost Model</th></tr><tr><td align="left"><a accesskey="p" href="bk01pt03ch19s03.html">Prev</a> </td><th width="60%" align="center">Chapter 19. Profile Mode</th><td align="right"> <a accesskey="n" href="bk01pt03ch19s05.html">Next</a></td></tr></table><hr/></div><div class="section" title="Empirical Cost Model"><div class="titlepage"><div><div><h2 class="title"><a id="manual.ext.profile_mode.cost_model"/>Empirical Cost Model</h2></div></div></div><p> | |
15947 | +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> | |
15948 | +<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Empirical Cost Model</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1" /><meta name="keywords" content=" C++ , library , profile " /><meta name="keywords" content=" ISO C++ , library " /><meta name="keywords" content=" ISO C++ , runtime , library " /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="profile_mode.html" title="Chapter 19. Profile Mode" /><link rel="prev" href="bk01pt03ch19s03.html" title="Extensions for Custom Containers" /><link rel="next" href="bk01pt03ch19s05.html" title="Implementation Issues" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Empirical Cost Model</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="bk01pt03ch19s03.html">Prev</a> </td><th width="60%" align="center">Chapter 19. Profile Mode</th><td width="20%" align="right"> <a accesskey="n" href="bk01pt03ch19s05.html">Next</a></td></tr></table><hr /></div><div class="section" title="Empirical Cost Model"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="manual.ext.profile_mode.cost_model"></a>Empirical Cost Model</h2></div></div></div><p> | |
15949 | Currently, the cost model uses formulas with predefined relative weights | |
15950 | for alternative containers or container implementations. For instance, | |
15951 | iterating through a vector is X times faster than iterating through a list. | |
15952 | @@ -15,4 +15,4 @@ | |
15953 | filled in either by hand or by an automated training mechanism. | |
15954 | The analysis module will then use this database instead of the built in. | |
15955 | generic parameters. | |
15956 | - </p></div><div class="navfooter"><hr/><table width="100%" summary="Navigation footer"><tr><td align="left"><a accesskey="p" href="bk01pt03ch19s03.html">Prev</a> </td><td align="center"><a accesskey="u" href="profile_mode.html">Up</a></td><td align="right"> <a accesskey="n" href="bk01pt03ch19s05.html">Next</a></td></tr><tr><td align="left" valign="top">Extensions for Custom Containers </td><td align="center"><a accesskey="h" href="../index.html">Home</a></td><td align="right" valign="top"> Implementation Issues</td></tr></table></div></body></html> | |
15957 | + </p></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="bk01pt03ch19s03.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="profile_mode.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="bk01pt03ch19s05.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Extensions for Custom Containers </td><td width="20%" align="center"><a accesskey="h" href="../index.html">Home</a></td><td width="40%" align="right" valign="top"> Implementation Issues</td></tr></table></div></body></html> | |
15958 | Index: libstdc++-v3/doc/html/manual/using_headers.html | |
15959 | =================================================================== | |
9f95000d AM |
15960 | --- libstdc++-v3/doc/html/manual/using_headers.html (.../tags/gcc_4_7_2_release) (wersja 192468) |
15961 | +++ libstdc++-v3/doc/html/manual/using_headers.html (.../branches/gcc-4_7-branch) (wersja 192468) | |
5a87b929 AM |
15962 | @@ -1,6 +1,6 @@ |
15963 | <?xml version="1.0" encoding="UTF-8" standalone="no"?> | |
15964 | -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> | |
15965 | -<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Headers</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1"/><meta name="keywords" content=" ISO C++ , library "/><meta name="keywords" content=" ISO C++ , runtime , library "/><link rel="home" href="../index.html" title="The GNU C++ Library"/><link rel="up" href="using.html" title="Chapter 3. Using"/><link rel="prev" href="using.html" title="Chapter 3. Using"/><link rel="next" href="using_macros.html" title="Macros"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Headers</th></tr><tr><td align="left"><a accesskey="p" href="using.html">Prev</a> </td><th width="60%" align="center">Chapter 3. Using</th><td align="right"> <a accesskey="n" href="using_macros.html">Next</a></td></tr></table><hr/></div><div class="section" title="Headers"><div class="titlepage"><div><div><h2 class="title"><a id="manual.intro.using.headers"/>Headers</h2></div></div></div><div class="section" title="Header Files"><div class="titlepage"><div><div><h3 class="title"><a id="manual.intro.using.headers.all"/>Header Files</h3></div></div></div><p> | |
15966 | +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> | |
15967 | +<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Headers</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1" /><meta name="keywords" content=" ISO C++ , library " /><meta name="keywords" content=" ISO C++ , runtime , library " /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="using.html" title="Chapter 3. Using" /><link rel="prev" href="using.html" title="Chapter 3. Using" /><link rel="next" href="using_macros.html" title="Macros" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Headers</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="using.html">Prev</a> </td><th width="60%" align="center">Chapter 3. Using</th><td width="20%" align="right"> <a accesskey="n" href="using_macros.html">Next</a></td></tr></table><hr /></div><div class="section" title="Headers"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="manual.intro.using.headers"></a>Headers</h2></div></div></div><div class="section" title="Header Files"><div class="titlepage"><div><div><h3 class="title"><a id="manual.intro.using.headers.all"></a>Header Files</h3></div></div></div><p> | |
15968 | The C++ standard specifies the entire set of header files that | |
15969 | must be available to all hosted implementations. Actually, the | |
15970 | word "files" is a misnomer, since the contents of the | |
15971 | @@ -19,19 +19,19 @@ | |
15972 | the 1998 standard as updated for 2003, and the current 2011 standard. | |
15973 | </p><p> | |
15974 | C++98/03 include files. These are available in the default compilation mode, i.e. <code class="code">-std=c++98</code> or <code class="code">-std=gnu++98</code>. | |
15975 | - </p><div class="table"><a id="id478273"/><p class="title"><strong>Table 3.2. C++ 1998 Library Headers</strong></p><div class="table-contents"><table summary="C++ 1998 Library Headers" border="1"><colgroup><col style="text-align: left" class="c1"/><col style="text-align: left" class="c2"/><col style="text-align: left" class="c3"/><col style="text-align: left" class="c4"/><col style="text-align: left" class="c5"/></colgroup><tbody><tr><td style="text-align: left"><code class="filename">algorithm</code></td><td style="text-align: left"><code class="filename">bitset</code></td><td style="text-align: left"><code class="filename">complex</code></td><td style="text-align: left"><code class="filename">deque</code></td><td style="text-align: left"><code class="filename">exception</code></td></tr><tr><td style="text-align: left"><code class="filename">fstream</code></td><td style="text-align: left"><code class="filename">functional</code></td><td style="text-align: left"><code class="filename">iomanip</code></td><td style="text-align: left"><code class="filename">ios</code></td><td style="text-align: left"><code class="filename">iosfwd</code></td></tr><tr><td style="text-align: left"><code class="filename">iostream</code></td><td style="text-align: left"><code class="filename">istream</code></td><td style="text-align: left"><code class="filename">iterator</code></td><td style="text-align: left"><code class="filename">limits</code></td><td style="text-align: left"><code class="filename">list</code></td></tr><tr><td style="text-align: left"><code class="filename">locale</code></td><td style="text-align: left"><code class="filename">map</code></td><td style="text-align: left"><code class="filename">memory</code></td><td style="text-align: left"><code class="filename">new</code></td><td style="text-align: left"><code class="filename">numeric</code></td></tr><tr><td style="text-align: left"><code class="filename">ostream</code></td><td style="text-align: left"><code class="filename">queue</code></td><td style="text-align: left"><code class="filename">set</code></td><td style="text-align: left"><code class="filename">sstream</code></td><td style="text-align: left"><code class="filename">stack</code></td></tr><tr><td style="text-align: left"><code class="filename">stdexcept</code></td><td style="text-align: left"><code class="filename">streambuf</code></td><td style="text-align: left"><code class="filename">string</code></td><td style="text-align: left"><code class="filename">utility</code></td><td style="text-align: left"><code class="filename">typeinfo</code></td></tr><tr><td style="text-align: left"><code class="filename">valarray</code></td><td style="text-align: left"><code class="filename">vector</code></td><td class="auto-generated"> </td><td class="auto-generated"> </td><td class="auto-generated"> </td></tr></tbody></table></div></div><br class="table-break"/><p/><div class="table"><a id="id478577"/><p class="title"><strong>Table 3.3. C++ 1998 Library Headers for C Library Facilities</strong></p><div class="table-contents"><table summary="C++ 1998 Library Headers for C Library Facilities" border="1"><colgroup><col style="text-align: left" class="c1"/><col style="text-align: left" class="c2"/><col style="text-align: left" class="c3"/><col style="text-align: left" class="c4"/><col style="text-align: left" class="c5"/></colgroup><tbody><tr><td style="text-align: left"><code class="filename">cassert</code></td><td style="text-align: left"><code class="filename">cerrno</code></td><td style="text-align: left"><code class="filename">cctype</code></td><td style="text-align: left"><code class="filename">cfloat</code></td><td style="text-align: left"><code class="filename">ciso646</code></td></tr><tr><td style="text-align: left"><code class="filename">climits</code></td><td style="text-align: left"><code class="filename">clocale</code></td><td style="text-align: left"><code class="filename">cmath</code></td><td style="text-align: left"><code class="filename">csetjmp</code></td><td style="text-align: left"><code class="filename">csignal</code></td></tr><tr><td style="text-align: left"><code class="filename">cstdarg</code></td><td style="text-align: left"><code class="filename">cstddef</code></td><td style="text-align: left"><code class="filename">cstdio</code></td><td style="text-align: left"><code class="filename">cstdlib</code></td><td style="text-align: left"><code class="filename">cstring</code></td></tr><tr><td style="text-align: left"><code class="filename">ctime</code></td><td style="text-align: left"><code class="filename">cwchar</code></td><td style="text-align: left"><code class="filename">cwctype</code></td><td class="auto-generated"> </td><td class="auto-generated"> </td></tr></tbody></table></div></div><br class="table-break"/><p> | |
15976 | + </p><div class="table"><a id="id656761"></a><p class="title"><strong>Table 3.2. C++ 1998 Library Headers</strong></p><div class="table-contents"><table summary="C++ 1998 Library Headers" border="1"><colgroup><col align="left" class="c1" /><col align="left" class="c2" /><col align="left" class="c3" /><col align="left" class="c4" /><col align="left" class="c5" /></colgroup><tbody><tr><td align="left"><code class="filename">algorithm</code></td><td align="left"><code class="filename">bitset</code></td><td align="left"><code class="filename">complex</code></td><td align="left"><code class="filename">deque</code></td><td align="left"><code class="filename">exception</code></td></tr><tr><td align="left"><code class="filename">fstream</code></td><td align="left"><code class="filename">functional</code></td><td align="left"><code class="filename">iomanip</code></td><td align="left"><code class="filename">ios</code></td><td align="left"><code class="filename">iosfwd</code></td></tr><tr><td align="left"><code class="filename">iostream</code></td><td align="left"><code class="filename">istream</code></td><td align="left"><code class="filename">iterator</code></td><td align="left"><code class="filename">limits</code></td><td align="left"><code class="filename">list</code></td></tr><tr><td align="left"><code class="filename">locale</code></td><td align="left"><code class="filename">map</code></td><td align="left"><code class="filename">memory</code></td><td align="left"><code class="filename">new</code></td><td align="left"><code class="filename">numeric</code></td></tr><tr><td align="left"><code class="filename">ostream</code></td><td align="left"><code class="filename">queue</code></td><td align="left"><code class="filename">set</code></td><td align="left"><code class="filename">sstream</code></td><td align="left"><code class="filename">stack</code></td></tr><tr><td align="left"><code class="filename">stdexcept</code></td><td align="left"><code class="filename">streambuf</code></td><td align="left"><code class="filename">string</code></td><td align="left"><code class="filename">utility</code></td><td align="left"><code class="filename">typeinfo</code></td></tr><tr><td align="left"><code class="filename">valarray</code></td><td align="left"><code class="filename">vector</code></td><td class="auto-generated"> </td><td class="auto-generated"> </td><td class="auto-generated"> </td></tr></tbody></table></div></div><br class="table-break" /><p></p><div class="table"><a id="id657065"></a><p class="title"><strong>Table 3.3. C++ 1998 Library Headers for C Library Facilities</strong></p><div class="table-contents"><table summary="C++ 1998 Library Headers for C Library Facilities" border="1"><colgroup><col align="left" class="c1" /><col align="left" class="c2" /><col align="left" class="c3" /><col align="left" class="c4" /><col align="left" class="c5" /></colgroup><tbody><tr><td align="left"><code class="filename">cassert</code></td><td align="left"><code class="filename">cerrno</code></td><td align="left"><code class="filename">cctype</code></td><td align="left"><code class="filename">cfloat</code></td><td align="left"><code class="filename">ciso646</code></td></tr><tr><td align="left"><code class="filename">climits</code></td><td align="left"><code class="filename">clocale</code></td><td align="left"><code class="filename">cmath</code></td><td align="left"><code class="filename">csetjmp</code></td><td align="left"><code class="filename">csignal</code></td></tr><tr><td align="left"><code class="filename">cstdarg</code></td><td align="left"><code class="filename">cstddef</code></td><td align="left"><code class="filename">cstdio</code></td><td align="left"><code class="filename">cstdlib</code></td><td align="left"><code class="filename">cstring</code></td></tr><tr><td align="left"><code class="filename">ctime</code></td><td align="left"><code class="filename">cwchar</code></td><td align="left"><code class="filename">cwctype</code></td><td class="auto-generated"> </td><td class="auto-generated"> </td></tr></tbody></table></div></div><br class="table-break" /><p> | |
15977 | C++11 include files. These are only available in C++11 compilation | |
15978 | mode, i.e. <code class="literal">-std=c++11</code> or <code class="literal">-std=gnu++11</code>. | |
15979 | -</p><p/><div class="table"><a id="id478783"/><p class="title"><strong>Table 3.4. C++ 2011 Library Headers</strong></p><div class="table-contents"><table summary="C++ 2011 Library Headers" border="1"><colgroup><col style="text-align: left" class="c1"/><col style="text-align: left" class="c2"/><col style="text-align: left" class="c3"/><col style="text-align: left" class="c4"/><col style="text-align: left" class="c5"/></colgroup><tbody><tr><td style="text-align: left"><code class="filename">algorithm</code></td><td style="text-align: left"><code class="filename">array</code></td><td style="text-align: left"><code class="filename">bitset</code></td><td style="text-align: left"><code class="filename">chrono</code></td><td style="text-align: left"><code class="filename">complex</code></td></tr><tr><td style="text-align: left"><code class="filename">condition_variable</code></td><td style="text-align: left"><code class="filename">deque</code></td><td style="text-align: left"><code class="filename">exception</code></td><td style="text-align: left"><code class="filename">forward_list</code></td><td style="text-align: left"><code class="filename">fstream</code></td></tr><tr><td style="text-align: left"><code class="filename">functional</code></td><td style="text-align: left"><code class="filename">future</code></td><td style="text-align: left"><code class="filename">initalizer_list</code></td><td style="text-align: left"><code class="filename">iomanip</code></td><td style="text-align: left"><code class="filename">ios</code></td></tr><tr><td style="text-align: left"><code class="filename">iosfwd</code></td><td style="text-align: left"><code class="filename">iostream</code></td><td style="text-align: left"><code class="filename">istream</code></td><td style="text-align: left"><code class="filename">iterator</code></td><td style="text-align: left"><code class="filename">limits</code></td></tr><tr><td style="text-align: left"><code class="filename">list</code></td><td style="text-align: left"><code class="filename">locale</code></td><td style="text-align: left"><code class="filename">map</code></td><td style="text-align: left"><code class="filename">memory</code></td><td style="text-align: left"><code class="filename">mutex</code></td></tr><tr><td style="text-align: left"><code class="filename">new</code></td><td style="text-align: left"><code class="filename">numeric</code></td><td style="text-align: left"><code class="filename">ostream</code></td><td style="text-align: left"><code class="filename">queue</code></td><td style="text-align: left"><code class="filename">random</code></td></tr><tr><td style="text-align: left"><code class="filename">ratio</code></td><td style="text-align: left"><code class="filename">regex</code></td><td style="text-align: left"><code class="filename">set</code></td><td style="text-align: left"><code class="filename">sstream</code></td><td style="text-align: left"><code class="filename">stack</code></td></tr><tr><td style="text-align: left"><code class="filename">stdexcept</code></td><td style="text-align: left"><code class="filename">streambuf</code></td><td style="text-align: left"><code class="filename">string</code></td><td style="text-align: left"><code class="filename">system_error</code></td><td style="text-align: left"><code class="filename">thread</code></td></tr><tr><td style="text-align: left"><code class="filename">tuple</code></td><td style="text-align: left"><code class="filename">type_traits</code></td><td style="text-align: left"><code class="filename">typeinfo</code></td><td style="text-align: left"><code class="filename">unordered_map</code></td><td style="text-align: left"><code class="filename">unordered_set</code></td></tr><tr><td style="text-align: left"><code class="filename">utility</code></td><td style="text-align: left"><code class="filename">valarray</code></td><td style="text-align: left"><code class="filename">vector</code></td><td class="auto-generated"> </td><td class="auto-generated"> </td></tr></tbody></table></div></div><br class="table-break"/><p/><div class="table"><a id="id479212"/><p class="title"><strong>Table 3.5. C++ 2011 Library Headers for C Library Facilities</strong></p><div class="table-contents"><table summary="C++ 2011 Library Headers for C Library Facilities" border="1"><colgroup><col style="text-align: left" class="c1"/><col style="text-align: left" class="c2"/><col style="text-align: left" class="c3"/><col style="text-align: left" class="c4"/><col style="text-align: left" class="c5"/></colgroup><tbody><tr><td style="text-align: left"><code class="filename">cassert</code></td><td style="text-align: left"><code class="filename">ccomplex</code></td><td style="text-align: left"><code class="filename">cctype</code></td><td style="text-align: left"><code class="filename">cerrno</code></td><td style="text-align: left"><code class="filename">cfenv</code></td></tr><tr><td style="text-align: left"><code class="filename">cfloat</code></td><td style="text-align: left"><code class="filename">cinttypes</code></td><td style="text-align: left"><code class="filename">ciso646</code></td><td style="text-align: left"><code class="filename">climits</code></td><td style="text-align: left"><code class="filename">clocale</code></td></tr><tr><td style="text-align: left"><code class="filename">cmath</code></td><td style="text-align: left"><code class="filename">csetjmp</code></td><td style="text-align: left"><code class="filename">csignal</code></td><td style="text-align: left"><code class="filename">cstdarg</code></td><td style="text-align: left"><code class="filename">cstdbool</code></td></tr><tr><td style="text-align: left"><code class="filename">cstddef</code></td><td style="text-align: left"><code class="filename">cstdint</code></td><td style="text-align: left"><code class="filename">cstdlib</code></td><td style="text-align: left"><code class="filename">cstdio</code></td><td style="text-align: left"><code class="filename">cstring</code></td></tr><tr><td style="text-align: left"><code class="filename">ctgmath</code></td><td style="text-align: left"><code class="filename">ctime</code></td><td style="text-align: left"><code class="filename">cuchar</code></td><td style="text-align: left"><code class="filename">cwchar</code></td><td style="text-align: left"><code class="filename">cwctype</code></td></tr></tbody></table></div></div><br class="table-break"/><p> | |
15980 | +</p><p></p><div class="table"><a id="id657271"></a><p class="title"><strong>Table 3.4. C++ 2011 Library Headers</strong></p><div class="table-contents"><table summary="C++ 2011 Library Headers" border="1"><colgroup><col align="left" class="c1" /><col align="left" class="c2" /><col align="left" class="c3" /><col align="left" class="c4" /><col align="left" class="c5" /></colgroup><tbody><tr><td align="left"><code class="filename">algorithm</code></td><td align="left"><code class="filename">array</code></td><td align="left"><code class="filename">bitset</code></td><td align="left"><code class="filename">chrono</code></td><td align="left"><code class="filename">complex</code></td></tr><tr><td align="left"><code class="filename">condition_variable</code></td><td align="left"><code class="filename">deque</code></td><td align="left"><code class="filename">exception</code></td><td align="left"><code class="filename">forward_list</code></td><td align="left"><code class="filename">fstream</code></td></tr><tr><td align="left"><code class="filename">functional</code></td><td align="left"><code class="filename">future</code></td><td align="left"><code class="filename">initalizer_list</code></td><td align="left"><code class="filename">iomanip</code></td><td align="left"><code class="filename">ios</code></td></tr><tr><td align="left"><code class="filename">iosfwd</code></td><td align="left"><code class="filename">iostream</code></td><td align="left"><code class="filename">istream</code></td><td align="left"><code class="filename">iterator</code></td><td align="left"><code class="filename">limits</code></td></tr><tr><td align="left"><code class="filename">list</code></td><td align="left"><code class="filename">locale</code></td><td align="left"><code class="filename">map</code></td><td align="left"><code class="filename">memory</code></td><td align="left"><code class="filename">mutex</code></td></tr><tr><td align="left"><code class="filename">new</code></td><td align="left"><code class="filename">numeric</code></td><td align="left"><code class="filename">ostream</code></td><td align="left"><code class="filename">queue</code></td><td align="left"><code class="filename">random</code></td></tr><tr><td align="left"><code class="filename">ratio</code></td><td align="left"><code class="filename">regex</code></td><td align="left"><code class="filename">set</code></td><td align="left"><code class="filename">sstream</code></td><td align="left"><code class="filename">stack</code></td></tr><tr><td align="left"><code class="filename">stdexcept</code></td><td align="left"><code class="filename">streambuf</code></td><td align="left"><code class="filename">string</code></td><td align="left"><code class="filename">system_error</code></td><td align="left"><code class="filename">thread</code></td></tr><tr><td align="left"><code class="filename">tuple</code></td><td align="left"><code class="filename">type_traits</code></td><td align="left"><code class="filename">typeinfo</code></td><td align="left"><code class="filename">unordered_map</code></td><td align="left"><code class="filename">unordered_set</code></td></tr><tr><td align="left"><code class="filename">utility</code></td><td align="left"><code class="filename">valarray</code></td><td align="left"><code class="filename">vector</code></td><td class="auto-generated"> </td><td class="auto-generated"> </td></tr></tbody></table></div></div><br class="table-break" /><p></p><div class="table"><a id="id657700"></a><p class="title"><strong>Table 3.5. C++ 2011 Library Headers for C Library Facilities</strong></p><div class="table-contents"><table summary="C++ 2011 Library Headers for C Library Facilities" border="1"><colgroup><col align="left" class="c1" /><col align="left" class="c2" /><col align="left" class="c3" /><col align="left" class="c4" /><col align="left" class="c5" /></colgroup><tbody><tr><td align="left"><code class="filename">cassert</code></td><td align="left"><code class="filename">ccomplex</code></td><td align="left"><code class="filename">cctype</code></td><td align="left"><code class="filename">cerrno</code></td><td align="left"><code class="filename">cfenv</code></td></tr><tr><td align="left"><code class="filename">cfloat</code></td><td align="left"><code class="filename">cinttypes</code></td><td align="left"><code class="filename">ciso646</code></td><td align="left"><code class="filename">climits</code></td><td align="left"><code class="filename">clocale</code></td></tr><tr><td align="left"><code class="filename">cmath</code></td><td align="left"><code class="filename">csetjmp</code></td><td align="left"><code class="filename">csignal</code></td><td align="left"><code class="filename">cstdarg</code></td><td align="left"><code class="filename">cstdbool</code></td></tr><tr><td align="left"><code class="filename">cstddef</code></td><td align="left"><code class="filename">cstdint</code></td><td align="left"><code class="filename">cstdlib</code></td><td align="left"><code class="filename">cstdio</code></td><td align="left"><code class="filename">cstring</code></td></tr><tr><td align="left"><code class="filename">ctgmath</code></td><td align="left"><code class="filename">ctime</code></td><td align="left"><code class="filename">cuchar</code></td><td align="left"><code class="filename">cwchar</code></td><td align="left"><code class="filename">cwctype</code></td></tr></tbody></table></div></div><br class="table-break" /><p> | |
15981 | In addition, TR1 includes as: | |
15982 | -</p><div class="table"><a id="id479461"/><p class="title"><strong>Table 3.6. C++ TR 1 Library Headers</strong></p><div class="table-contents"><table summary="C++ TR 1 Library Headers" border="1"><colgroup><col style="text-align: left" class="c1"/><col style="text-align: left" class="c2"/><col style="text-align: left" class="c3"/><col style="text-align: left" class="c4"/><col style="text-align: left" class="c5"/></colgroup><tbody><tr><td style="text-align: left"><code class="filename">tr1/array</code></td><td style="text-align: left"><code class="filename">tr1/complex</code></td><td style="text-align: left"><code class="filename">tr1/memory</code></td><td style="text-align: left"><code class="filename">tr1/functional</code></td><td style="text-align: left"><code class="filename">tr1/random</code></td></tr><tr><td style="text-align: left"><code class="filename">tr1/regex</code></td><td style="text-align: left"><code class="filename">tr1/tuple</code></td><td style="text-align: left"><code class="filename">tr1/type_traits</code></td><td style="text-align: left"><code class="filename">tr1/unordered_map</code></td><td style="text-align: left"><code class="filename">tr1/unordered_set</code></td></tr><tr><td style="text-align: left"><code class="filename">tr1/utility</code></td><td class="auto-generated"> </td><td class="auto-generated"> </td><td class="auto-generated"> </td><td class="auto-generated"> </td></tr></tbody></table></div></div><br class="table-break"/><p/><div class="table"><a id="id479602"/><p class="title"><strong>Table 3.7. C++ TR 1 Library Headers for C Library Facilities</strong></p><div class="table-contents"><table summary="C++ TR 1 Library Headers for C Library Facilities" border="1"><colgroup><col style="text-align: left" class="c1"/><col style="text-align: left" class="c2"/><col style="text-align: left" class="c3"/><col style="text-align: left" class="c4"/><col style="text-align: left" class="c5"/></colgroup><tbody><tr><td style="text-align: left"><code class="filename">tr1/ccomplex</code></td><td style="text-align: left"><code class="filename">tr1/cfenv</code></td><td style="text-align: left"><code class="filename">tr1/cfloat</code></td><td style="text-align: left"><code class="filename">tr1/cmath</code></td><td style="text-align: left"><code class="filename">tr1/cinttypes</code></td></tr><tr><td style="text-align: left"><code class="filename">tr1/climits</code></td><td style="text-align: left"><code class="filename">tr1/cstdarg</code></td><td style="text-align: left"><code class="filename">tr1/cstdbool</code></td><td style="text-align: left"><code class="filename">tr1/cstdint</code></td><td style="text-align: left"><code class="filename">tr1/cstdio</code></td></tr><tr><td style="text-align: left"><code class="filename">tr1/cstdlib</code></td><td style="text-align: left"><code class="filename">tr1/ctgmath</code></td><td style="text-align: left"><code class="filename">tr1/ctime</code></td><td style="text-align: left"><code class="filename">tr1/cwchar</code></td><td style="text-align: left"><code class="filename">tr1/cwctype</code></td></tr></tbody></table></div></div><br class="table-break"/><p>Decimal floating-point arithmetic is available if the C++ | |
15983 | +</p><div class="table"><a id="id657949"></a><p class="title"><strong>Table 3.6. C++ TR 1 Library Headers</strong></p><div class="table-contents"><table summary="C++ TR 1 Library Headers" border="1"><colgroup><col align="left" class="c1" /><col align="left" class="c2" /><col align="left" class="c3" /><col align="left" class="c4" /><col align="left" class="c5" /></colgroup><tbody><tr><td align="left"><code class="filename">tr1/array</code></td><td align="left"><code class="filename">tr1/complex</code></td><td align="left"><code class="filename">tr1/memory</code></td><td align="left"><code class="filename">tr1/functional</code></td><td align="left"><code class="filename">tr1/random</code></td></tr><tr><td align="left"><code class="filename">tr1/regex</code></td><td align="left"><code class="filename">tr1/tuple</code></td><td align="left"><code class="filename">tr1/type_traits</code></td><td align="left"><code class="filename">tr1/unordered_map</code></td><td align="left"><code class="filename">tr1/unordered_set</code></td></tr><tr><td align="left"><code class="filename">tr1/utility</code></td><td class="auto-generated"> </td><td class="auto-generated"> </td><td class="auto-generated"> </td><td class="auto-generated"> </td></tr></tbody></table></div></div><br class="table-break" /><p></p><div class="table"><a id="id658090"></a><p class="title"><strong>Table 3.7. C++ TR 1 Library Headers for C Library Facilities</strong></p><div class="table-contents"><table summary="C++ TR 1 Library Headers for C Library Facilities" border="1"><colgroup><col align="left" class="c1" /><col align="left" class="c2" /><col align="left" class="c3" /><col align="left" class="c4" /><col align="left" class="c5" /></colgroup><tbody><tr><td align="left"><code class="filename">tr1/ccomplex</code></td><td align="left"><code class="filename">tr1/cfenv</code></td><td align="left"><code class="filename">tr1/cfloat</code></td><td align="left"><code class="filename">tr1/cmath</code></td><td align="left"><code class="filename">tr1/cinttypes</code></td></tr><tr><td align="left"><code class="filename">tr1/climits</code></td><td align="left"><code class="filename">tr1/cstdarg</code></td><td align="left"><code class="filename">tr1/cstdbool</code></td><td align="left"><code class="filename">tr1/cstdint</code></td><td align="left"><code class="filename">tr1/cstdio</code></td></tr><tr><td align="left"><code class="filename">tr1/cstdlib</code></td><td align="left"><code class="filename">tr1/ctgmath</code></td><td align="left"><code class="filename">tr1/ctime</code></td><td align="left"><code class="filename">tr1/cwchar</code></td><td align="left"><code class="filename">tr1/cwctype</code></td></tr></tbody></table></div></div><br class="table-break" /><p>Decimal floating-point arithmetic is available if the C++ | |
15984 | compiler supports scalar decimal floating-point types defined via | |
15985 | <code class="code">__attribute__((mode(SD|DD|LD)))</code>. | |
15986 | -</p><div class="table"><a id="id479778"/><p class="title"><strong>Table 3.8. C++ TR 24733 Decimal Floating-Point Header</strong></p><div class="table-contents"><table summary="C++ TR 24733 Decimal Floating-Point Header" border="1"><colgroup><col style="text-align: left" class="c1"/></colgroup><tbody><tr><td style="text-align: left"><code class="filename">decimal/decimal</code></td></tr></tbody></table></div></div><br class="table-break"/><p> | |
15987 | +</p><div class="table"><a id="id658266"></a><p class="title"><strong>Table 3.8. C++ TR 24733 Decimal Floating-Point Header</strong></p><div class="table-contents"><table summary="C++ TR 24733 Decimal Floating-Point Header" border="1"><colgroup><col align="left" class="c1" /></colgroup><tbody><tr><td align="left"><code class="filename">decimal/decimal</code></td></tr></tbody></table></div></div><br class="table-break" /><p> | |
15988 | Also included are files for the C++ ABI interface: | |
15989 | -</p><div class="table"><a id="id479824"/><p class="title"><strong>Table 3.9. C++ ABI Headers</strong></p><div class="table-contents"><table summary="C++ ABI Headers" border="1"><colgroup><col style="text-align: left" class="c1"/><col style="text-align: left" class="c2"/></colgroup><tbody><tr><td style="text-align: left"><code class="filename">cxxabi.h</code></td><td style="text-align: left"><code class="filename">cxxabi_forced.h</code></td></tr></tbody></table></div></div><br class="table-break"/><p> | |
15990 | +</p><div class="table"><a id="id658312"></a><p class="title"><strong>Table 3.9. C++ ABI Headers</strong></p><div class="table-contents"><table summary="C++ ABI Headers" border="1"><colgroup><col align="left" class="c1" /><col align="left" class="c2" /></colgroup><tbody><tr><td align="left"><code class="filename">cxxabi.h</code></td><td align="left"><code class="filename">cxxabi_forced.h</code></td></tr></tbody></table></div></div><br class="table-break" /><p> | |
15991 | And a large variety of extensions. | |
15992 | -</p><div class="table"><a id="id479877"/><p class="title"><strong>Table 3.10. Extension Headers</strong></p><div class="table-contents"><table summary="Extension Headers" border="1"><colgroup><col style="text-align: left" class="c1"/><col style="text-align: left" class="c2"/><col style="text-align: left" class="c3"/><col style="text-align: left" class="c4"/><col style="text-align: left" class="c5"/></colgroup><tbody><tr><td style="text-align: left"><code class="filename">ext/algorithm</code></td><td style="text-align: left"><code class="filename">ext/atomicity.h</code></td><td style="text-align: left"><code class="filename">ext/array_allocator.h</code></td><td style="text-align: left"><code class="filename">ext/bitmap_allocator.h</code></td><td style="text-align: left"><code class="filename">ext/cast.h</code></td></tr><tr><td style="text-align: left"><code class="filename">ext/codecvt_specializations.h</code></td><td style="text-align: left"><code class="filename">ext/concurrence.h</code></td><td style="text-align: left"><code class="filename">ext/debug_allocator.h</code></td><td style="text-align: left"><code class="filename">ext/enc_filebuf.h</code></td><td style="text-align: left"><code class="filename">ext/extptr_allocator.h</code></td></tr><tr><td style="text-align: left"><code class="filename">ext/functional</code></td><td style="text-align: left"><code class="filename">ext/iterator</code></td><td style="text-align: left"><code class="filename">ext/malloc_allocator.h</code></td><td style="text-align: left"><code class="filename">ext/memory</code></td><td style="text-align: left"><code class="filename">ext/mt_allocator.h</code></td></tr><tr><td style="text-align: left"><code class="filename">ext/new_allocator.h</code></td><td style="text-align: left"><code class="filename">ext/numeric</code></td><td style="text-align: left"><code class="filename">ext/numeric_traits.h</code></td><td style="text-align: left"><code class="filename">ext/pb_ds/assoc_container.h</code></td><td style="text-align: left"><code class="filename">ext/pb_ds/priority_queue.h</code></td></tr><tr><td style="text-align: left"><code class="filename">ext/pod_char_traits.h</code></td><td style="text-align: left"><code class="filename">ext/pool_allocator.h</code></td><td style="text-align: left"><code class="filename">ext/rb_tree</code></td><td style="text-align: left"><code class="filename">ext/rope</code></td><td style="text-align: left"><code class="filename">ext/slist</code></td></tr><tr><td style="text-align: left"><code class="filename">ext/stdio_filebuf.h</code></td><td style="text-align: left"><code class="filename">ext/stdio_sync_filebuf.h</code></td><td style="text-align: left"><code class="filename">ext/throw_allocator.h</code></td><td style="text-align: left"><code class="filename">ext/typelist.h</code></td><td style="text-align: left"><code class="filename">ext/type_traits.h</code></td></tr><tr><td style="text-align: left"><code class="filename">ext/vstring.h</code></td><td class="auto-generated"> </td><td class="auto-generated"> </td><td class="auto-generated"> </td><td class="auto-generated"> </td></tr></tbody></table></div></div><br class="table-break"/><p/><div class="table"><a id="id480175"/><p class="title"><strong>Table 3.11. Extension Debug Headers</strong></p><div class="table-contents"><table summary="Extension Debug Headers" border="1"><colgroup><col style="text-align: left" class="c1"/><col style="text-align: left" class="c2"/><col style="text-align: left" class="c3"/><col style="text-align: left" class="c4"/><col style="text-align: left" class="c5"/></colgroup><tbody><tr><td style="text-align: left"><code class="filename">debug/bitset</code></td><td style="text-align: left"><code class="filename">debug/deque</code></td><td style="text-align: left"><code class="filename">debug/list</code></td><td style="text-align: left"><code class="filename">debug/map</code></td><td style="text-align: left"><code class="filename">debug/set</code></td></tr><tr><td style="text-align: left"><code class="filename">debug/string</code></td><td style="text-align: left"><code class="filename">debug/unordered_map</code></td><td style="text-align: left"><code class="filename">debug/unordered_set</code></td><td style="text-align: left"><code class="filename">debug/vector</code></td><td class="auto-generated"> </td></tr></tbody></table></div></div><br class="table-break"/><p/><div class="table"><a id="id480298"/><p class="title"><strong>Table 3.12. Extension Profile Headers</strong></p><div class="table-contents"><table summary="Extension Profile Headers" border="1"><colgroup><col style="text-align: left" class="c1"/><col style="text-align: left" class="c2"/><col style="text-align: left" class="c3"/><col style="text-align: left" class="c4"/></colgroup><tbody><tr><td style="text-align: left"><code class="filename">profile/bitset</code></td><td style="text-align: left"><code class="filename">profile/deque</code></td><td style="text-align: left"><code class="filename">profile/list</code></td><td style="text-align: left"><code class="filename">profile/map</code></td></tr><tr><td style="text-align: left"><code class="filename">profile/set</code></td><td style="text-align: left"><code class="filename">profile/unordered_map</code></td><td style="text-align: left"><code class="filename">profile/unordered_set</code></td><td style="text-align: left"><code class="filename">profile/vector</code></td></tr></tbody></table></div></div><br class="table-break"/><p/><div class="table"><a id="id480409"/><p class="title"><strong>Table 3.13. Extension Parallel Headers</strong></p><div class="table-contents"><table summary="Extension Parallel Headers" border="1"><colgroup><col style="text-align: left" class="c1"/><col style="text-align: left" class="c2"/></colgroup><tbody><tr><td style="text-align: left"><code class="filename">parallel/algorithm</code></td><td style="text-align: left"><code class="filename">parallel/numeric</code></td></tr></tbody></table></div></div><br class="table-break"/></div><div class="section" title="Mixing Headers"><div class="titlepage"><div><div><h3 class="title"><a id="manual.intro.using.headers.mixing"/>Mixing Headers</h3></div></div></div><p> A few simple rules. | |
15993 | +</p><div class="table"><a id="id658365"></a><p class="title"><strong>Table 3.10. Extension Headers</strong></p><div class="table-contents"><table summary="Extension Headers" border="1"><colgroup><col align="left" class="c1" /><col align="left" class="c2" /><col align="left" class="c3" /><col align="left" class="c4" /><col align="left" class="c5" /></colgroup><tbody><tr><td align="left"><code class="filename">ext/algorithm</code></td><td align="left"><code class="filename">ext/atomicity.h</code></td><td align="left"><code class="filename">ext/array_allocator.h</code></td><td align="left"><code class="filename">ext/bitmap_allocator.h</code></td><td align="left"><code class="filename">ext/cast.h</code></td></tr><tr><td align="left"><code class="filename">ext/codecvt_specializations.h</code></td><td align="left"><code class="filename">ext/concurrence.h</code></td><td align="left"><code class="filename">ext/debug_allocator.h</code></td><td align="left"><code class="filename">ext/enc_filebuf.h</code></td><td align="left"><code class="filename">ext/extptr_allocator.h</code></td></tr><tr><td align="left"><code class="filename">ext/functional</code></td><td align="left"><code class="filename">ext/iterator</code></td><td align="left"><code class="filename">ext/malloc_allocator.h</code></td><td align="left"><code class="filename">ext/memory</code></td><td align="left"><code class="filename">ext/mt_allocator.h</code></td></tr><tr><td align="left"><code class="filename">ext/new_allocator.h</code></td><td align="left"><code class="filename">ext/numeric</code></td><td align="left"><code class="filename">ext/numeric_traits.h</code></td><td align="left"><code class="filename">ext/pb_ds/assoc_container.h</code></td><td align="left"><code class="filename">ext/pb_ds/priority_queue.h</code></td></tr><tr><td align="left"><code class="filename">ext/pod_char_traits.h</code></td><td align="left"><code class="filename">ext/pool_allocator.h</code></td><td align="left"><code class="filename">ext/rb_tree</code></td><td align="left"><code class="filename">ext/rope</code></td><td align="left"><code class="filename">ext/slist</code></td></tr><tr><td align="left"><code class="filename">ext/stdio_filebuf.h</code></td><td align="left"><code class="filename">ext/stdio_sync_filebuf.h</code></td><td align="left"><code class="filename">ext/throw_allocator.h</code></td><td align="left"><code class="filename">ext/typelist.h</code></td><td align="left"><code class="filename">ext/type_traits.h</code></td></tr><tr><td align="left"><code class="filename">ext/vstring.h</code></td><td class="auto-generated"> </td><td class="auto-generated"> </td><td class="auto-generated"> </td><td class="auto-generated"> </td></tr></tbody></table></div></div><br class="table-break" /><p></p><div class="table"><a id="id658663"></a><p class="title"><strong>Table 3.11. Extension Debug Headers</strong></p><div class="table-contents"><table summary="Extension Debug Headers" border="1"><colgroup><col align="left" class="c1" /><col align="left" class="c2" /><col align="left" class="c3" /><col align="left" class="c4" /><col align="left" class="c5" /></colgroup><tbody><tr><td align="left"><code class="filename">debug/bitset</code></td><td align="left"><code class="filename">debug/deque</code></td><td align="left"><code class="filename">debug/list</code></td><td align="left"><code class="filename">debug/map</code></td><td align="left"><code class="filename">debug/set</code></td></tr><tr><td align="left"><code class="filename">debug/string</code></td><td align="left"><code class="filename">debug/unordered_map</code></td><td align="left"><code class="filename">debug/unordered_set</code></td><td align="left"><code class="filename">debug/vector</code></td><td class="auto-generated"> </td></tr></tbody></table></div></div><br class="table-break" /><p></p><div class="table"><a id="id658786"></a><p class="title"><strong>Table 3.12. Extension Profile Headers</strong></p><div class="table-contents"><table summary="Extension Profile Headers" border="1"><colgroup><col align="left" class="c1" /><col align="left" class="c2" /><col align="left" class="c3" /><col align="left" class="c4" /></colgroup><tbody><tr><td align="left"><code class="filename">profile/bitset</code></td><td align="left"><code class="filename">profile/deque</code></td><td align="left"><code class="filename">profile/list</code></td><td align="left"><code class="filename">profile/map</code></td></tr><tr><td align="left"><code class="filename">profile/set</code></td><td align="left"><code class="filename">profile/unordered_map</code></td><td align="left"><code class="filename">profile/unordered_set</code></td><td align="left"><code class="filename">profile/vector</code></td></tr></tbody></table></div></div><br class="table-break" /><p></p><div class="table"><a id="id658897"></a><p class="title"><strong>Table 3.13. Extension Parallel Headers</strong></p><div class="table-contents"><table summary="Extension Parallel Headers" border="1"><colgroup><col align="left" class="c1" /><col align="left" class="c2" /></colgroup><tbody><tr><td align="left"><code class="filename">parallel/algorithm</code></td><td align="left"><code class="filename">parallel/numeric</code></td></tr></tbody></table></div></div><br class="table-break" /></div><div class="section" title="Mixing Headers"><div class="titlepage"><div><div><h3 class="title"><a id="manual.intro.using.headers.mixing"></a>Mixing Headers</h3></div></div></div><p> A few simple rules. | |
15994 | </p><p>First, mixing different dialects of the standard headers is not | |
15995 | possible. It's an all-or-nothing affair. Thus, code like | |
15996 | </p><pre class="programlisting"> | |
15997 | @@ -54,7 +54,7 @@ | |
15998 | #include <tr1/type_traits> | |
15999 | #include <type_traits> | |
16000 | </pre><p> Several parts of C++11 diverge quite substantially from TR1 predecessors. | |
16001 | -</p></div><div class="section" title="The C Headers and namespace std"><div class="titlepage"><div><div><h3 class="title"><a id="manual.intro.using.headers.cheaders"/>The C Headers and <code class="code">namespace std</code></h3></div></div></div><p> | |
16002 | +</p></div><div class="section" title="The C Headers and namespace std"><div class="titlepage"><div><div><h3 class="title"><a id="manual.intro.using.headers.cheaders"></a>The C Headers and <code class="code">namespace std</code></h3></div></div></div><p> | |
16003 | The standard specifies that if one includes the C-style header | |
16004 | (<math.h> in this case), the symbols will be available | |
16005 | in the global namespace and perhaps in | |
16006 | @@ -73,10 +73,10 @@ | |
16007 | used uniformly, instead of a combination | |
16008 | of <code class="code">std::sinf</code>, <code class="code">std::sin</code>, | |
16009 | and <code class="code">std::sinl</code>. | |
16010 | -</p></div><div class="section" title="Precompiled Headers"><div class="titlepage"><div><div><h3 class="title"><a id="manual.intro.using.headers.pre"/>Precompiled Headers</h3></div></div></div><p>There are three base header files that are provided. They can be | |
16011 | +</p></div><div class="section" title="Precompiled Headers"><div class="titlepage"><div><div><h3 class="title"><a id="manual.intro.using.headers.pre"></a>Precompiled Headers</h3></div></div></div><p>There are three base header files that are provided. They can be | |
16012 | used to precompile the standard headers and extensions into binary | |
16013 | files that may the be used to speed compiles that use these headers. | |
16014 | -</p><div class="itemizedlist"><ul class="itemizedlist"><li class="listitem"><p>stdc++.h</p><p>Includes all standard headers. Actual content varies depending on | |
16015 | +</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>stdc++.h</p><p>Includes all standard headers. Actual content varies depending on | |
16016 | language dialect. | |
16017 | </p></li><li class="listitem"><p>stdtr1c++.h</p><p>Includes all of <stdc++.h>, and adds all the TR1 headers. | |
16018 | </p></li><li class="listitem"><p>extc++.h</p><p>Includes all of <stdtr1c++.h>, and adds all the Extension headers. | |
16019 | @@ -99,5 +99,5 @@ | |
16020 | ! ./stdc++.h.gch | |
16021 | . /mnt/share/bld/H-x86-gcc.20071201/include/c++/4.3.0/iostream | |
16022 | . /mnt/share/bld/H-x86-gcc.20071201include/c++/4.3.0/string | |
16023 | -</pre><p>The exclamation point to the left of the <code class="code">stdc++.h.gch</code> listing means that the generated PCH file was used, and thus the </p><p/><p> Detailed information about creating precompiled header files can be found in the GCC <a class="link" href="http://gcc.gnu.org/onlinedocs/gcc/Precompiled-Headers.html">documentation</a>. | |
16024 | -</p></div></div><div class="navfooter"><hr/><table width="100%" summary="Navigation footer"><tr><td align="left"><a accesskey="p" href="using.html">Prev</a> </td><td align="center"><a accesskey="u" href="using.html">Up</a></td><td align="right"> <a accesskey="n" href="using_macros.html">Next</a></td></tr><tr><td align="left" valign="top">Chapter 3. Using </td><td align="center"><a accesskey="h" href="../index.html">Home</a></td><td align="right" valign="top"> Macros</td></tr></table></div></body></html> | |
16025 | +</pre><p>The exclamation point to the left of the <code class="code">stdc++.h.gch</code> listing means that the generated PCH file was used, and thus the </p><p></p><p> Detailed information about creating precompiled header files can be found in the GCC <a class="link" href="http://gcc.gnu.org/onlinedocs/gcc/Precompiled-Headers.html" target="_top">documentation</a>. | |
16026 | +</p></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="using.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="using.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="using_macros.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Chapter 3. Using </td><td width="20%" align="center"><a accesskey="h" href="../index.html">Home</a></td><td width="40%" align="right" valign="top"> Macros</td></tr></table></div></body></html> | |
16027 | Index: libstdc++-v3/doc/html/manual/using_namespaces.html | |
16028 | =================================================================== | |
9f95000d AM |
16029 | --- libstdc++-v3/doc/html/manual/using_namespaces.html (.../tags/gcc_4_7_2_release) (wersja 192468) |
16030 | +++ libstdc++-v3/doc/html/manual/using_namespaces.html (.../branches/gcc-4_7-branch) (wersja 192468) | |
5a87b929 AM |
16031 | @@ -1,7 +1,7 @@ |
16032 | <?xml version="1.0" encoding="UTF-8" standalone="no"?> | |
16033 | -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> | |
16034 | -<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Namespaces</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1"/><meta name="keywords" content=" ISO C++ , library "/><meta name="keywords" content=" ISO C++ , runtime , library "/><link rel="home" href="../index.html" title="The GNU C++ Library"/><link rel="up" href="using.html" title="Chapter 3. Using"/><link rel="prev" href="using_macros.html" title="Macros"/><link rel="next" href="using_dynamic_or_shared.html" title="Linking"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Namespaces</th></tr><tr><td align="left"><a accesskey="p" href="using_macros.html">Prev</a> </td><th width="60%" align="center">Chapter 3. Using</th><td align="right"> <a accesskey="n" href="using_dynamic_or_shared.html">Next</a></td></tr></table><hr/></div><div class="section" title="Namespaces"><div class="titlepage"><div><div><h2 class="title"><a id="manual.intro.using.namespaces"/>Namespaces</h2></div></div></div><div class="section" title="Available Namespaces"><div class="titlepage"><div><div><h3 class="title"><a id="manual.intro.using.namespaces.all"/>Available Namespaces</h3></div></div></div><p> There are three main namespaces. | |
16035 | -</p><div class="itemizedlist"><ul class="itemizedlist"><li class="listitem"><p>std</p><p>The ISO C++ standards specify that "all library entities are defined | |
16036 | +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> | |
16037 | +<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Namespaces</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1" /><meta name="keywords" content=" ISO C++ , library " /><meta name="keywords" content=" ISO C++ , runtime , library " /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="using.html" title="Chapter 3. Using" /><link rel="prev" href="using_macros.html" title="Macros" /><link rel="next" href="using_dynamic_or_shared.html" title="Linking" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Namespaces</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="using_macros.html">Prev</a> </td><th width="60%" align="center">Chapter 3. Using</th><td width="20%" align="right"> <a accesskey="n" href="using_dynamic_or_shared.html">Next</a></td></tr></table><hr /></div><div class="section" title="Namespaces"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="manual.intro.using.namespaces"></a>Namespaces</h2></div></div></div><div class="section" title="Available Namespaces"><div class="titlepage"><div><div><h3 class="title"><a id="manual.intro.using.namespaces.all"></a>Available Namespaces</h3></div></div></div><p> There are three main namespaces. | |
16038 | +</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>std</p><p>The ISO C++ standards specify that "all library entities are defined | |
16039 | within namespace std." This includes namespaces nested | |
16040 | within <code class="code">namespace std</code>, such as <code class="code">namespace | |
16041 | std::tr1</code>. | |
16042 | @@ -11,12 +11,12 @@ | |
16043 | </p></li><li class="listitem"><p>__gnu_</p><p>Indicating one of several GNU extensions. Choices | |
16044 | include <code class="code">__gnu_cxx</code>, <code class="code">__gnu_debug</code>, <code class="code">__gnu_parallel</code>, | |
16045 | and <code class="code">__gnu_pbds</code>. | |
16046 | -</p></li></ul></div><p> A complete list of implementation namespaces (including namespace contents) is available in the generated source <a class="link" href="http://gcc.gnu.org/onlinedocs/libstdc++/latest-doxygen/namespaces.html">documentation</a>. | |
16047 | -</p></div><div class="section" title="namespace std"><div class="titlepage"><div><div><h3 class="title"><a id="manual.intro.using.namespaces.std"/>namespace std</h3></div></div></div><p> | |
16048 | +</p></li></ul></div><p> A complete list of implementation namespaces (including namespace contents) is available in the generated source <a class="link" href="http://gcc.gnu.org/onlinedocs/libstdc++/latest-doxygen/namespaces.html" target="_top">documentation</a>. | |
16049 | +</p></div><div class="section" title="namespace std"><div class="titlepage"><div><div><h3 class="title"><a id="manual.intro.using.namespaces.std"></a>namespace std</h3></div></div></div><p> | |
16050 | One standard requirement is that the library components are defined | |
16051 | in <code class="code">namespace std::</code>. Thus, in order to use these types or | |
16052 | functions, one must do one of two things: | |
16053 | -</p><div class="itemizedlist"><ul class="itemizedlist"><li class="listitem"><p>put a kind of <span class="emphasis"><em>using-declaration</em></span> in your source | |
16054 | +</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>put a kind of <span class="emphasis"><em>using-declaration</em></span> in your source | |
16055 | (either <code class="code">using namespace std;</code> or i.e. <code class="code">using | |
16056 | std::string;</code>) This approach works well for individual source files, but | |
16057 | should not be used in a global context, like header files. | |
16058 | @@ -25,7 +25,7 @@ | |
16059 | (i.e. <code class="code">std::string</code>, <code class="code">std::cout</code>) Always can be | |
16060 | used, and usually enhanced, by strategic use of typedefs. (In the | |
16061 | cases where the qualified verbiage becomes unwieldy.) | |
16062 | - </p></li></ul></div></div><div class="section" title="Using Namespace Composition"><div class="titlepage"><div><div><h3 class="title"><a id="manual.intro.using.namespaces.comp"/>Using Namespace Composition</h3></div></div></div><p> | |
16063 | + </p></li></ul></div></div><div class="section" title="Using Namespace Composition"><div class="titlepage"><div><div><h3 class="title"><a id="manual.intro.using.namespaces.comp"></a>Using Namespace Composition</h3></div></div></div><p> | |
16064 | Best practice in programming suggests sequestering new data or | |
16065 | functionality in a sanely-named, unique namespace whenever | |
16066 | possible. This is considered an advantage over dumping everything in | |
16067 | @@ -58,4 +58,4 @@ | |
16068 | std::string;</code> (depending on whether the system has | |
16069 | libstdc++ in <code class="code">std::</code> or not). (ideas from | |
16070 | Llewelly and Karl Nelson) | |
16071 | -</p></div></div><div class="navfooter"><hr/><table width="100%" summary="Navigation footer"><tr><td align="left"><a accesskey="p" href="using_macros.html">Prev</a> </td><td align="center"><a accesskey="u" href="using.html">Up</a></td><td align="right"> <a accesskey="n" href="using_dynamic_or_shared.html">Next</a></td></tr><tr><td align="left" valign="top">Macros </td><td align="center"><a accesskey="h" href="../index.html">Home</a></td><td align="right" valign="top"> Linking</td></tr></table></div></body></html> | |
16072 | +</p></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="using_macros.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="using.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="using_dynamic_or_shared.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Macros </td><td width="20%" align="center"><a accesskey="h" href="../index.html">Home</a></td><td width="40%" align="right" valign="top"> Linking</td></tr></table></div></body></html> | |
16073 | Index: libstdc++-v3/doc/html/manual/debug.html | |
16074 | =================================================================== | |
9f95000d AM |
16075 | --- libstdc++-v3/doc/html/manual/debug.html (.../tags/gcc_4_7_2_release) (wersja 192468) |
16076 | +++ libstdc++-v3/doc/html/manual/debug.html (.../branches/gcc-4_7-branch) (wersja 192468) | |
5a87b929 AM |
16077 | @@ -1,10 +1,10 @@ |
16078 | <?xml version="1.0" encoding="UTF-8" standalone="no"?> | |
16079 | -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> | |
16080 | -<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Debugging Support</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1"/><meta name="keywords" content=" C++ , debug "/><meta name="keywords" content=" ISO C++ , library "/><meta name="keywords" content=" ISO C++ , runtime , library "/><link rel="home" href="../index.html" title="The GNU C++ Library"/><link rel="up" href="using.html" title="Chapter 3. Using"/><link rel="prev" href="using_exceptions.html" title="Exceptions"/><link rel="next" href="bk01pt02.html" title="Part II. Standard Contents"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Debugging Support</th></tr><tr><td align="left"><a accesskey="p" href="using_exceptions.html">Prev</a> </td><th width="60%" align="center">Chapter 3. Using</th><td align="right"> <a accesskey="n" href="bk01pt02.html">Next</a></td></tr></table><hr/></div><div class="section" title="Debugging Support"><div class="titlepage"><div><div><h2 class="title"><a id="manual.intro.using.debug"/>Debugging Support</h2></div></div></div><p> | |
16081 | +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> | |
16082 | +<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Debugging Support</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1" /><meta name="keywords" content=" C++ , debug " /><meta name="keywords" content=" ISO C++ , library " /><meta name="keywords" content=" ISO C++ , runtime , library " /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="using.html" title="Chapter 3. Using" /><link rel="prev" href="using_exceptions.html" title="Exceptions" /><link rel="next" href="bk01pt02.html" title="Part II. Standard Contents" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Debugging Support</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="using_exceptions.html">Prev</a> </td><th width="60%" align="center">Chapter 3. Using</th><td width="20%" align="right"> <a accesskey="n" href="bk01pt02.html">Next</a></td></tr></table><hr /></div><div class="section" title="Debugging Support"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="manual.intro.using.debug"></a>Debugging Support</h2></div></div></div><p> | |
16083 | There are numerous things that can be done to improve the ease with | |
16084 | which C++ binaries are debugged when using the GNU tool chain. Here | |
16085 | are some of them. | |
16086 | -</p><div class="section" title="Using g++"><div class="titlepage"><div><div><h3 class="title"><a id="debug.compiler"/>Using <span class="command"><strong>g++</strong></span></h3></div></div></div><p> | |
16087 | +</p><div class="section" title="Using g++"><div class="titlepage"><div><div><h3 class="title"><a id="debug.compiler"></a>Using <span class="command"><strong>g++</strong></span></h3></div></div></div><p> | |
16088 | Compiler flags determine how debug information is transmitted | |
16089 | between compilation and debug or analysis tools. | |
16090 | </p><p> | |
16091 | @@ -28,10 +28,10 @@ | |
16092 | platform can be identified via the value set by the | |
16093 | PREFERRED_DEBUGGING_TYPE macro in the gcc sources. | |
16094 | </p><p> | |
16095 | - Many other options are available: please see <a class="link" href="http://gcc.gnu.org/onlinedocs/gcc/Debugging-Options.html#Debugging%20Options">"Options | |
16096 | + Many other options are available: please see <a class="link" href="http://gcc.gnu.org/onlinedocs/gcc/Debugging-Options.html#Debugging%20Options" target="_top">"Options | |
16097 | for Debugging Your Program"</a> in Using the GNU Compiler | |
16098 | Collection (GCC) for a complete list. | |
16099 | -</p></div><div class="section" title="Debug Versions of Library Binary Files"><div class="titlepage"><div><div><h3 class="title"><a id="debug.req"/>Debug Versions of Library Binary Files</h3></div></div></div><p> | |
16100 | +</p></div><div class="section" title="Debug Versions of Library Binary Files"><div class="titlepage"><div><div><h3 class="title"><a id="debug.req"></a>Debug Versions of Library Binary Files</h3></div></div></div><p> | |
16101 | If you would like debug symbols in libstdc++, there are two ways to | |
16102 | build libstdc++ with debug flags. The first is to run make from the | |
16103 | toplevel in a freshly-configured tree with | |
16104 | @@ -52,7 +52,7 @@ | |
16105 | </pre><p> | |
16106 | This quick and dirty approach is often sufficient for quick | |
16107 | debugging tasks, when you cannot or don't want to recompile your | |
16108 | - application to use the <a class="link" href="debug_mode.html" title="Chapter 17. Debug Mode">debug mode</a>.</p></div><div class="section" title="Memory Leak Hunting"><div class="titlepage"><div><div><h3 class="title"><a id="debug.memory"/>Memory Leak Hunting</h3></div></div></div><p> | |
16109 | + application to use the <a class="link" href="debug_mode.html" title="Chapter 17. Debug Mode">debug mode</a>.</p></div><div class="section" title="Memory Leak Hunting"><div class="titlepage"><div><div><h3 class="title"><a id="debug.memory"></a>Memory Leak Hunting</h3></div></div></div><p> | |
16110 | There are various third party memory tracing and debug utilities | |
16111 | that can be used to provide detailed memory allocation information | |
16112 | about C++ code. An exhaustive list of tools is not going to be | |
16113 | @@ -121,7 +121,7 @@ | |
16114 | up the runtime environment, library, and test file, might be: | |
16115 | </p><pre class="programlisting"> | |
16116 | valgrind -v --num-callers=20 --leak-check=yes --leak-resolution=high --show-reachable=yes a.out | |
16117 | -</pre></div><div class="section" title="Data Race Hunting"><div class="titlepage"><div><div><h3 class="title"><a id="debug.races"/>Data Race Hunting</h3></div></div></div><p> | |
16118 | +</pre></div><div class="section" title="Data Race Hunting"><div class="titlepage"><div><div><h3 class="title"><a id="debug.races"></a>Data Race Hunting</h3></div></div></div><p> | |
16119 | All synchronization primitives used in the library internals need to be | |
16120 | understood by race detectors so that they do not produce false reports. | |
16121 | </p><p> | |
16122 | @@ -157,11 +157,11 @@ | |
16123 | </p><p> | |
16124 | The approach described above is known to work with the following race | |
16125 | detection tools: | |
16126 | - <a class="link" href="http://valgrind.org/docs/manual/drd-manual.html"> | |
16127 | + <a class="link" href="http://valgrind.org/docs/manual/drd-manual.html" target="_top"> | |
16128 | DRD</a>, | |
16129 | - <a class="link" href="http://valgrind.org/docs/manual/hg-manual.html"> | |
16130 | + <a class="link" href="http://valgrind.org/docs/manual/hg-manual.html" target="_top"> | |
16131 | Helgrind</a>, and | |
16132 | - <a class="link" href="http://code.google.com/p/data-race-test"> | |
16133 | + <a class="link" href="http://code.google.com/p/data-race-test" target="_top"> | |
16134 | ThreadSanitizer</a>. | |
16135 | </p><p> | |
16136 | With DRD, Helgrind and ThreadSanitizer you will need to define | |
16137 | @@ -171,9 +171,9 @@ | |
16138 | #define _GLIBCXX_SYNCHRONIZATION_HAPPENS_AFTER(A) ANNOTATE_HAPPENS_AFTER(A) | |
16139 | </pre><p> | |
16140 | Refer to the documentation of each particular tool for details. | |
16141 | -</p></div><div class="section" title="Using gdb"><div class="titlepage"><div><div><h3 class="title"><a id="debug.gdb"/>Using <span class="command"><strong>gdb</strong></span></h3></div></div></div><p> | |
16142 | +</p></div><div class="section" title="Using gdb"><div class="titlepage"><div><div><h3 class="title"><a id="debug.gdb"></a>Using <span class="command"><strong>gdb</strong></span></h3></div></div></div><p> | |
16143 | </p><p> | |
16144 | - Many options are available for GDB itself: please see <a class="link" href="http://sources.redhat.com/gdb/current/onlinedocs/gdb/"> | |
16145 | + Many options are available for GDB itself: please see <a class="link" href="http://sources.redhat.com/gdb/current/onlinedocs/gdb/" target="_top"> | |
16146 | "GDB features for C++" </a> in the GDB documentation. Also | |
16147 | recommended: the other parts of this manual. | |
16148 | </p><p> | |
16149 | @@ -217,25 +217,25 @@ | |
16150 | pretty-printers were not loaded. | |
16151 | </p><p> | |
16152 | For additional information on STL support and GDB please visit: | |
16153 | - <a class="link" href="http://sourceware.org/gdb/wiki/STLSupport"> "GDB Support | |
16154 | + <a class="link" href="http://sourceware.org/gdb/wiki/STLSupport" target="_top"> "GDB Support | |
16155 | for STL" </a> in the GDB wiki. Additionally, in-depth | |
16156 | documentation and discussion of the pretty printing feature can be | |
16157 | found in "Pretty Printing" node in the GDB manual. You can find | |
16158 | on-line versions of the GDB user manual in GDB's homepage, at | |
16159 | - <a class="link" href="http://sourceware.org/gdb/"> "GDB: The GNU Project | |
16160 | + <a class="link" href="http://sourceware.org/gdb/" target="_top"> "GDB: The GNU Project | |
16161 | Debugger" </a>. | |
16162 | -</p></div><div class="section" title="Tracking uncaught exceptions"><div class="titlepage"><div><div><h3 class="title"><a id="debug.exceptions"/>Tracking uncaught exceptions</h3></div></div></div><p> | |
16163 | +</p></div><div class="section" title="Tracking uncaught exceptions"><div class="titlepage"><div><div><h3 class="title"><a id="debug.exceptions"></a>Tracking uncaught exceptions</h3></div></div></div><p> | |
16164 | The <a class="link" href="termination.html#support.termination.verbose" title="Verbose Terminate Handler">verbose | |
16165 | termination handler</a> gives information about uncaught | |
16166 | exceptions which are killing the program. It is described in the | |
16167 | linked-to page. | |
16168 | -</p></div><div class="section" title="Debug Mode"><div class="titlepage"><div><div><h3 class="title"><a id="debug.debug_mode"/>Debug Mode</h3></div></div></div><p> The <a class="link" href="debug_mode.html" title="Chapter 17. Debug Mode">Debug Mode</a> | |
16169 | +</p></div><div class="section" title="Debug Mode"><div class="titlepage"><div><div><h3 class="title"><a id="debug.debug_mode"></a>Debug Mode</h3></div></div></div><p> The <a class="link" href="debug_mode.html" title="Chapter 17. Debug Mode">Debug Mode</a> | |
16170 | has compile and run-time checks for many containers. | |
16171 | - </p></div><div class="section" title="Compile Time Checking"><div class="titlepage"><div><div><h3 class="title"><a id="debug.compile_time_checks"/>Compile Time Checking</h3></div></div></div><p> The <a class="link" href="ext_compile_checks.html" title="Chapter 16. Compile Time Checks">Compile-Time | |
16172 | + </p></div><div class="section" title="Compile Time Checking"><div class="titlepage"><div><div><h3 class="title"><a id="debug.compile_time_checks"></a>Compile Time Checking</h3></div></div></div><p> The <a class="link" href="ext_compile_checks.html" title="Chapter 16. Compile Time Checks">Compile-Time | |
16173 | Checks</a> Extension has compile-time checks for many algorithms. | |
16174 | - </p></div><div class="section" title="Profile-based Performance Analysis"><div class="titlepage"><div><div><h3 class="title"><a id="debug.profile_mode"/>Profile-based Performance Analysis</h3></div></div></div><p> The <a class="link" href="profile_mode.html" title="Chapter 19. Profile Mode">Profile-based | |
16175 | + </p></div><div class="section" title="Profile-based Performance Analysis"><div class="titlepage"><div><div><h3 class="title"><a id="debug.profile_mode"></a>Profile-based Performance Analysis</h3></div></div></div><p> The <a class="link" href="profile_mode.html" title="Chapter 19. Profile Mode">Profile-based | |
16176 | Performance Analysis</a> Extension has performance checks for many | |
16177 | algorithms. | |
16178 | - </p></div></div><div class="navfooter"><hr/><table width="100%" summary="Navigation footer"><tr><td align="left"><a accesskey="p" href="using_exceptions.html">Prev</a> </td><td align="center"><a accesskey="u" href="using.html">Up</a></td><td align="right"> <a accesskey="n" href="bk01pt02.html">Next</a></td></tr><tr><td align="left" valign="top">Exceptions </td><td align="center"><a accesskey="h" href="../index.html">Home</a></td><td align="right" valign="top"> Part II. | |
16179 | + </p></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="using_exceptions.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="using.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="bk01pt02.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Exceptions </td><td width="20%" align="center"><a accesskey="h" href="../index.html">Home</a></td><td width="40%" align="right" valign="top"> Part II. | |
16180 | Standard Contents | |
16181 | </td></tr></table></div></body></html> | |
16182 | Index: libstdc++-v3/doc/html/manual/localization.html | |
16183 | =================================================================== | |
9f95000d AM |
16184 | --- libstdc++-v3/doc/html/manual/localization.html (.../tags/gcc_4_7_2_release) (wersja 192468) |
16185 | +++ libstdc++-v3/doc/html/manual/localization.html (.../branches/gcc-4_7-branch) (wersja 192468) | |
5a87b929 AM |
16186 | @@ -1,18 +1,18 @@ |
16187 | <?xml version="1.0" encoding="UTF-8" standalone="no"?> | |
16188 | -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> | |
16189 | -<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Chapter 8. Localization</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1"/><meta name="keywords" content=" ISO C++ , library "/><meta name="keywords" content=" ISO C++ , runtime , library "/><link rel="home" href="../index.html" title="The GNU C++ Library"/><link rel="up" href="bk01pt02.html" title="Part II. Standard Contents"/><link rel="prev" href="strings.html" title="Chapter 7. Strings"/><link rel="next" href="facets.html" title="Facets"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 8. | |
16190 | +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> | |
16191 | +<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Chapter 8. Localization</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1" /><meta name="keywords" content=" ISO C++ , library " /><meta name="keywords" content=" ISO C++ , runtime , library " /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="bk01pt02.html" title="Part II. Standard Contents" /><link rel="prev" href="strings.html" title="Chapter 7. Strings" /><link rel="next" href="facets.html" title="Facets" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 8. | |
16192 | Localization | |
16193 | ||
16194 | -</th></tr><tr><td align="left"><a accesskey="p" href="strings.html">Prev</a> </td><th width="60%" align="center">Part II. | |
16195 | +</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="strings.html">Prev</a> </td><th width="60%" align="center">Part II. | |
16196 | Standard Contents | |
16197 | - </th><td align="right"> <a accesskey="n" href="facets.html">Next</a></td></tr></table><hr/></div><div class="chapter" title="Chapter 8. Localization"><div class="titlepage"><div><div><h2 class="title"><a id="std.localization"/>Chapter 8. | |
16198 | + </th><td width="20%" align="right"> <a accesskey="n" href="facets.html">Next</a></td></tr></table><hr /></div><div class="chapter" title="Chapter 8. Localization"><div class="titlepage"><div><div><h2 class="title"><a id="std.localization"></a>Chapter 8. | |
16199 | Localization | |
16200 | - <a id="id500383" class="indexterm"/> | |
16201 | -</h2></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl><dt><span class="section"><a href="localization.html#std.localization.locales">Locales</a></span></dt><dd><dl><dt><span class="section"><a href="localization.html#std.localization.locales.locale">locale</a></span></dt><dd><dl><dt><span class="section"><a href="localization.html#locales.locale.req">Requirements</a></span></dt><dt><span class="section"><a href="localization.html#locales.locale.design">Design</a></span></dt><dt><span class="section"><a href="localization.html#locales.locale.impl">Implementation</a></span></dt><dd><dl><dt><span class="section"><a href="localization.html#locale.impl.c">Interacting with "C" locales</a></span></dt></dl></dd><dt><span class="section"><a href="localization.html#locales.locale.future">Future</a></span></dt></dl></dd></dl></dd><dt><span class="section"><a href="facets.html">Facets</a></span></dt><dd><dl><dt><span class="section"><a href="facets.html#std.localization.facet.ctype">ctype</a></span></dt><dd><dl><dt><span class="section"><a href="facets.html#facet.ctype.impl">Implementation</a></span></dt><dd><dl><dt><span class="section"><a href="facets.html#id501036">Specializations</a></span></dt></dl></dd><dt><span class="section"><a href="facets.html#facet.ctype.future">Future</a></span></dt></dl></dd><dt><span class="section"><a href="facets.html#std.localization.facet.codecvt">codecvt</a></span></dt><dd><dl><dt><span class="section"><a href="facets.html#facet.codecvt.req">Requirements</a></span></dt><dt><span class="section"><a href="facets.html#facet.codecvt.design">Design</a></span></dt><dd><dl><dt><span class="section"><a href="facets.html#codecvt.design.wchar_t_size"><span class="type">wchar_t</span> Size</a></span></dt><dt><span class="section"><a href="facets.html#codecvt.design.unicode">Support for Unicode</a></span></dt><dt><span class="section"><a href="facets.html#codecvt.design.issues">Other Issues</a></span></dt></dl></dd><dt><span class="section"><a href="facets.html#facet.codecvt.impl">Implementation</a></span></dt><dt><span class="section"><a href="facets.html#facet.codecvt.use">Use</a></span></dt><dt><span class="section"><a href="facets.html#facet.codecvt.future">Future</a></span></dt></dl></dd><dt><span class="section"><a href="facets.html#manual.localization.facet.messages">messages</a></span></dt><dd><dl><dt><span class="section"><a href="facets.html#facet.messages.req">Requirements</a></span></dt><dt><span class="section"><a href="facets.html#facet.messages.design">Design</a></span></dt><dt><span class="section"><a href="facets.html#facet.messages.impl">Implementation</a></span></dt><dd><dl><dt><span class="section"><a href="facets.html#messages.impl.models">Models</a></span></dt><dt><span class="section"><a href="facets.html#messages.impl.gnu">The GNU Model</a></span></dt></dl></dd><dt><span class="section"><a href="facets.html#facet.messages.use">Use</a></span></dt><dt><span class="section"><a href="facets.html#facet.messages.future">Future</a></span></dt></dl></dd></dl></dd></dl></div><div class="section" title="Locales"><div class="titlepage"><div><div><h2 class="title"><a id="std.localization.locales"/>Locales</h2></div></div></div><div class="section" title="locale"><div class="titlepage"><div><div><h3 class="title"><a id="std.localization.locales.locale"/>locale</h3></div></div></div><p> | |
16202 | + <a id="id678869" class="indexterm"></a> | |
16203 | +</h2></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl><dt><span class="section"><a href="localization.html#std.localization.locales">Locales</a></span></dt><dd><dl><dt><span class="section"><a href="localization.html#std.localization.locales.locale">locale</a></span></dt><dd><dl><dt><span class="section"><a href="localization.html#locales.locale.req">Requirements</a></span></dt><dt><span class="section"><a href="localization.html#locales.locale.design">Design</a></span></dt><dt><span class="section"><a href="localization.html#locales.locale.impl">Implementation</a></span></dt><dd><dl><dt><span class="section"><a href="localization.html#locale.impl.c">Interacting with "C" locales</a></span></dt></dl></dd><dt><span class="section"><a href="localization.html#locales.locale.future">Future</a></span></dt></dl></dd></dl></dd><dt><span class="section"><a href="facets.html">Facets</a></span></dt><dd><dl><dt><span class="section"><a href="facets.html#std.localization.facet.ctype">ctype</a></span></dt><dd><dl><dt><span class="section"><a href="facets.html#facet.ctype.impl">Implementation</a></span></dt><dd><dl><dt><span class="section"><a href="facets.html#id679521">Specializations</a></span></dt></dl></dd><dt><span class="section"><a href="facets.html#facet.ctype.future">Future</a></span></dt></dl></dd><dt><span class="section"><a href="facets.html#std.localization.facet.codecvt">codecvt</a></span></dt><dd><dl><dt><span class="section"><a href="facets.html#facet.codecvt.req">Requirements</a></span></dt><dt><span class="section"><a href="facets.html#facet.codecvt.design">Design</a></span></dt><dd><dl><dt><span class="section"><a href="facets.html#codecvt.design.wchar_t_size"><span class="type">wchar_t</span> Size</a></span></dt><dt><span class="section"><a href="facets.html#codecvt.design.unicode">Support for Unicode</a></span></dt><dt><span class="section"><a href="facets.html#codecvt.design.issues">Other Issues</a></span></dt></dl></dd><dt><span class="section"><a href="facets.html#facet.codecvt.impl">Implementation</a></span></dt><dt><span class="section"><a href="facets.html#facet.codecvt.use">Use</a></span></dt><dt><span class="section"><a href="facets.html#facet.codecvt.future">Future</a></span></dt></dl></dd><dt><span class="section"><a href="facets.html#manual.localization.facet.messages">messages</a></span></dt><dd><dl><dt><span class="section"><a href="facets.html#facet.messages.req">Requirements</a></span></dt><dt><span class="section"><a href="facets.html#facet.messages.design">Design</a></span></dt><dt><span class="section"><a href="facets.html#facet.messages.impl">Implementation</a></span></dt><dd><dl><dt><span class="section"><a href="facets.html#messages.impl.models">Models</a></span></dt><dt><span class="section"><a href="facets.html#messages.impl.gnu">The GNU Model</a></span></dt></dl></dd><dt><span class="section"><a href="facets.html#facet.messages.use">Use</a></span></dt><dt><span class="section"><a href="facets.html#facet.messages.future">Future</a></span></dt></dl></dd></dl></dd></dl></div><div class="section" title="Locales"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="std.localization.locales"></a>Locales</h2></div></div></div><div class="section" title="locale"><div class="titlepage"><div><div><h3 class="title"><a id="std.localization.locales.locale"></a>locale</h3></div></div></div><p> | |
16204 | Describes the basic locale object, including nested | |
16205 | classes id, facet, and the reference-counted implementation object, | |
16206 | class _Impl. | |
16207 | -</p><div class="section" title="Requirements"><div class="titlepage"><div><div><h4 class="title"><a id="locales.locale.req"/>Requirements</h4></div></div></div><p> | |
16208 | +</p><div class="section" title="Requirements"><div class="titlepage"><div><div><h4 class="title"><a id="locales.locale.req"></a>Requirements</h4></div></div></div><p> | |
16209 | Class locale is non-templatized and has two distinct types nested | |
16210 | inside of it: | |
16211 | </p><div class="blockquote"><blockquote class="blockquote"><p> | |
16212 | @@ -26,7 +26,7 @@ | |
16213 | thousands separator in the locale. | |
16214 | </p><p> | |
16215 | Literally, a facet is strictly defined: | |
16216 | -</p><div class="itemizedlist"><ul class="itemizedlist"><li class="listitem"><p> | |
16217 | +</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p> | |
16218 | Containing the following public data member: | |
16219 | </p><p> | |
16220 | <code class="code">static locale::id id;</code> | |
16221 | @@ -48,14 +48,14 @@ | |
16222 | </em></span> | |
16223 | </p></blockquote></div><p> | |
16224 | Provides an index for looking up specific facets. | |
16225 | -</p></div><div class="section" title="Design"><div class="titlepage"><div><div><h4 class="title"><a id="locales.locale.design"/>Design</h4></div></div></div><p> | |
16226 | +</p></div><div class="section" title="Design"><div class="titlepage"><div><div><h4 class="title"><a id="locales.locale.design"></a>Design</h4></div></div></div><p> | |
16227 | The major design challenge is fitting an object-orientated and | |
16228 | non-global locale design on top of POSIX and other relevant standards, | |
16229 | which include the Single Unix (nee X/Open.) | |
16230 | </p><p> | |
16231 | Because C and earlier versions of POSIX fall down so completely, | |
16232 | portability is an issue. | |
16233 | -</p></div><div class="section" title="Implementation"><div class="titlepage"><div><div><h4 class="title"><a id="locales.locale.impl"/>Implementation</h4></div></div></div><div class="section" title="Interacting with "C" locales"><div class="titlepage"><div><div><h5 class="title"><a id="locale.impl.c"/>Interacting with "C" locales</h5></div></div></div><div class="itemizedlist"><ul class="itemizedlist"><li class="listitem"><p> | |
16234 | +</p></div><div class="section" title="Implementation"><div class="titlepage"><div><div><h4 class="title"><a id="locales.locale.impl"></a>Implementation</h4></div></div></div><div class="section" title="Interacting with "C" locales"><div class="titlepage"><div><div><h5 class="title"><a id="locale.impl.c"></a>Interacting with "C" locales</h5></div></div></div><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p> | |
16235 | <code class="code">`locale -a`</code> displays available locales. | |
16236 | </p><div class="blockquote"><blockquote class="blockquote"><pre class="programlisting"> | |
16237 | af_ZA | |
16238 | @@ -385,7 +385,7 @@ | |
16239 | particular on the working of locale(""), which constructs the locale | |
16240 | object from the environment of the running program, that is, in | |
16241 | practice, the set of LC_ALL, LANG, etc. variable of the shell. | |
16242 | -</p></div></div><div class="section" title="Future"><div class="titlepage"><div><div><h4 class="title"><a id="locales.locale.future"/>Future</h4></div></div></div><div class="itemizedlist"><ul class="itemizedlist"><li class="listitem"><p> | |
16243 | +</p></div></div><div class="section" title="Future"><div class="titlepage"><div><div><h4 class="title"><a id="locales.locale.future"></a>Future</h4></div></div></div><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p> | |
16244 | Locale initialization: at what point does _S_classic, _S_global | |
16245 | get initialized? Can named locales assume this initialization | |
16246 | has already taken place? | |
16247 | @@ -403,35 +403,35 @@ | |
16248 | What should non-required facet instantiations do? If the | |
16249 | generic implementation is provided, then how to end-users | |
16250 | provide specializations? | |
16251 | - </p></li></ul></div></div><div class="bibliography" title="Bibliography"><div class="titlepage"><div><div><h4 class="title"><a id="locales.locale.biblio"/>Bibliography</h4></div></div></div><div class="biblioentry"><a id="id500746"/><p><span class="citetitle"><em class="citetitle"> | |
16252 | + </p></li></ul></div></div><div class="bibliography" title="Bibliography"><div class="titlepage"><div><div><h4 class="title"><a id="locales.locale.biblio"></a>Bibliography</h4></div></div></div><div class="biblioentry"><a id="id679232"></a><p><span class="citetitle"><em class="citetitle"> | |
16253 | The GNU C Library | |
16254 | </em>. </span><span class="author"><span class="firstname">Roland</span> <span class="surname">McGrath</span>. </span><span class="author"><span class="firstname">Ulrich</span> <span class="surname">Drepper</span>. </span><span class="copyright">Copyright © 2007 FSF. </span><span class="pagenums"> | |
16255 | Chapters 6 Character Set Handling and 7 Locales and | |
16256 | Internationalization | |
16257 | - . </span></p></div><div class="biblioentry"><a id="id500786"/><p><span class="citetitle"><em class="citetitle"> | |
16258 | + . </span></p></div><div class="biblioentry"><a id="id679272"></a><p><span class="citetitle"><em class="citetitle"> | |
16259 | Correspondence | |
16260 | - </em>. </span><span class="author"><span class="firstname">Ulrich</span> <span class="surname">Drepper</span>. </span><span class="copyright">Copyright © 2002 . </span></p></div><div class="biblioentry"><a id="id500811"/><p><span class="citetitle"><em class="citetitle"> | |
16261 | + </em>. </span><span class="author"><span class="firstname">Ulrich</span> <span class="surname">Drepper</span>. </span><span class="copyright">Copyright © 2002 . </span></p></div><div class="biblioentry"><a id="id679298"></a><p><span class="citetitle"><em class="citetitle"> | |
16262 | ISO/IEC 14882:1998 Programming languages - C++ | |
16263 | - </em>. </span><span class="copyright">Copyright © 1998 ISO. </span></p></div><div class="biblioentry"><a id="id500830"/><p><span class="citetitle"><em class="citetitle"> | |
16264 | + </em>. </span><span class="copyright">Copyright © 1998 ISO. </span></p></div><div class="biblioentry"><a id="id679317"></a><p><span class="citetitle"><em class="citetitle"> | |
16265 | ISO/IEC 9899:1999 Programming languages - C | |
16266 | - </em>. </span><span class="copyright">Copyright © 1999 ISO. </span></p></div><div class="biblioentry" title="System Interface Definitions, Issue 7 (IEEE Std. 1003.1-2008)"><a id="id500849"/><p><span class="title"><em> | |
16267 | - <a class="link" href="http://www.opengroup.org/austin/"> | |
16268 | + </em>. </span><span class="copyright">Copyright © 1999 ISO. </span></p></div><div class="biblioentry" title="System Interface Definitions, Issue 7 (IEEE Std. 1003.1-2008)"><a id="id679336"></a><p><span class="title"><em> | |
16269 | + <a class="link" href="http://www.opengroup.org/austin/" target="_top"> | |
16270 | System Interface Definitions, Issue 7 (IEEE Std. 1003.1-2008) | |
16271 | </a> | |
16272 | </em>. </span><span class="copyright">Copyright © 2008 | |
16273 | The Open Group/The Institute of Electrical and Electronics | |
16274 | Engineers, Inc. | |
16275 | - . </span></p></div><div class="biblioentry"><a id="id500876"/><p><span class="citetitle"><em class="citetitle"> | |
16276 | + . </span></p></div><div class="biblioentry"><a id="id679362"></a><p><span class="citetitle"><em class="citetitle"> | |
16277 | The C++ Programming Language, Special Edition | |
16278 | </em>. </span><span class="author"><span class="firstname">Bjarne</span> <span class="surname">Stroustrup</span>. </span><span class="copyright">Copyright © 2000 Addison Wesley, Inc.. </span><span class="pagenums">Appendix D. </span><span class="publisher"><span class="publishername"> | |
16279 | Addison Wesley | |
16280 | - . </span></span></p></div><div class="biblioentry"><a id="id500915"/><p><span class="citetitle"><em class="citetitle"> | |
16281 | + . </span></span></p></div><div class="biblioentry"><a id="id679401"></a><p><span class="citetitle"><em class="citetitle"> | |
16282 | Standard C++ IOStreams and Locales | |
16283 | </em>. </span><span class="subtitle"> | |
16284 | Advanced Programmer's Guide and Reference | |
16285 | . </span><span class="author"><span class="firstname">Angelika</span> <span class="surname">Langer</span>. </span><span class="author"><span class="firstname">Klaus</span> <span class="surname">Kreft</span>. </span><span class="copyright">Copyright © 2000 Addison Wesley Longman, Inc.. </span><span class="publisher"><span class="publishername"> | |
16286 | Addison Wesley Longman | |
16287 | - . </span></span></p></div></div></div></div></div><div class="navfooter"><hr/><table width="100%" summary="Navigation footer"><tr><td align="left"><a accesskey="p" href="strings.html">Prev</a> </td><td align="center"><a accesskey="u" href="bk01pt02.html">Up</a></td><td align="right"> <a accesskey="n" href="facets.html">Next</a></td></tr><tr><td align="left" valign="top">Chapter 7. | |
16288 | + . </span></span></p></div></div></div></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="strings.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="bk01pt02.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="facets.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Chapter 7. | |
16289 | Strings | |
16290 | ||
16291 | - </td><td align="center"><a accesskey="h" href="../index.html">Home</a></td><td align="right" valign="top"> Facets</td></tr></table></div></body></html> | |
16292 | + </td><td width="20%" align="center"><a accesskey="h" href="../index.html">Home</a></td><td width="40%" align="right" valign="top"> Facets</td></tr></table></div></body></html> | |
16293 | Index: libstdc++-v3/doc/html/manual/ext_algorithms.html | |
16294 | =================================================================== | |
9f95000d AM |
16295 | --- libstdc++-v3/doc/html/manual/ext_algorithms.html (.../tags/gcc_4_7_2_release) (wersja 192468) |
16296 | +++ libstdc++-v3/doc/html/manual/ext_algorithms.html (.../branches/gcc-4_7-branch) (wersja 192468) | |
5a87b929 AM |
16297 | @@ -1,9 +1,9 @@ |
16298 | <?xml version="1.0" encoding="UTF-8" standalone="no"?> | |
16299 | -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> | |
16300 | -<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Chapter 25. Algorithms</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1"/><meta name="keywords" content=" ISO C++ , library "/><meta name="keywords" content=" ISO C++ , runtime , library "/><link rel="home" href="../index.html" title="The GNU C++ Library"/><link rel="up" href="extensions.html" title="Part III. Extensions"/><link rel="prev" href="ext_utilities.html" title="Chapter 24. Utilities"/><link rel="next" href="ext_numerics.html" title="Chapter 26. Numerics"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 25. Algorithms</th></tr><tr><td align="left"><a accesskey="p" href="ext_utilities.html">Prev</a> </td><th width="60%" align="center">Part III. | |
16301 | +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> | |
16302 | +<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Chapter 25. Algorithms</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1" /><meta name="keywords" content=" ISO C++ , library " /><meta name="keywords" content=" ISO C++ , runtime , library " /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="extensions.html" title="Part III. Extensions" /><link rel="prev" href="ext_utilities.html" title="Chapter 24. Utilities" /><link rel="next" href="ext_numerics.html" title="Chapter 26. Numerics" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 25. Algorithms</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ext_utilities.html">Prev</a> </td><th width="60%" align="center">Part III. | |
16303 | Extensions | |
16304 | ||
16305 | -</th><td align="right"> <a accesskey="n" href="ext_numerics.html">Next</a></td></tr></table><hr/></div><div class="chapter" title="Chapter 25. Algorithms"><div class="titlepage"><div><div><h2 class="title"><a id="manual.ext.algorithms"/>Chapter 25. Algorithms</h2></div></div></div><p>25.1.6 (count, count_if) is extended with two more versions of count | |
16306 | +</th><td width="20%" align="right"> <a accesskey="n" href="ext_numerics.html">Next</a></td></tr></table><hr /></div><div class="chapter" title="Chapter 25. Algorithms"><div class="titlepage"><div><div><h2 class="title"><a id="manual.ext.algorithms"></a>Chapter 25. Algorithms</h2></div></div></div><p>25.1.6 (count, count_if) is extended with two more versions of count | |
16307 | and count_if. The standard versions return their results. The | |
16308 | additional signatures return void, but take a final parameter by | |
16309 | reference to which they assign their results, e.g., | |
16310 | @@ -15,9 +15,9 @@ | |
16311 | copy_n (_InputIter first, _Size count, _OutputIter result);</pre><p>which copies the first 'count' elements at 'first' into 'result'. | |
16312 | </p><p>25.3 (sorting 'n' heaps 'n' stuff) is extended with some helper | |
16313 | predicates. Look in the doxygen-generated pages for notes on these. | |
16314 | -</p><div class="itemizedlist"><ul class="itemizedlist"><li class="listitem"><p><code class="code">is_heap</code> tests whether or not a range is a heap.</p></li><li class="listitem"><p><code class="code">is_sorted</code> tests whether or not a range is sorted in | |
16315 | +</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p><code class="code">is_heap</code> tests whether or not a range is a heap.</p></li><li class="listitem"><p><code class="code">is_sorted</code> tests whether or not a range is sorted in | |
16316 | nondescending order.</p></li></ul></div><p>25.3.8 (lexicographical_compare) is extended with | |
16317 | </p><pre class="programlisting"> | |
16318 | lexicographical_compare_3way(_InputIter1 first1, _InputIter1 last1, | |
16319 | _InputIter2 first2, _InputIter2 last2)</pre><p>which does... what? | |
16320 | -</p></div><div class="navfooter"><hr/><table width="100%" summary="Navigation footer"><tr><td align="left"><a accesskey="p" href="ext_utilities.html">Prev</a> </td><td align="center"><a accesskey="u" href="extensions.html">Up</a></td><td align="right"> <a accesskey="n" href="ext_numerics.html">Next</a></td></tr><tr><td align="left" valign="top">Chapter 24. Utilities </td><td align="center"><a accesskey="h" href="../index.html">Home</a></td><td align="right" valign="top"> Chapter 26. Numerics</td></tr></table></div></body></html> | |
16321 | +</p></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="ext_utilities.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="extensions.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="ext_numerics.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Chapter 24. Utilities </td><td width="20%" align="center"><a accesskey="h" href="../index.html">Home</a></td><td width="40%" align="right" valign="top"> Chapter 26. Numerics</td></tr></table></div></body></html> | |
16322 | Index: libstdc++-v3/doc/html/manual/debug_mode.html | |
16323 | =================================================================== | |
9f95000d AM |
16324 | --- libstdc++-v3/doc/html/manual/debug_mode.html (.../tags/gcc_4_7_2_release) (wersja 192468) |
16325 | +++ libstdc++-v3/doc/html/manual/debug_mode.html (.../branches/gcc-4_7-branch) (wersja 192468) | |
5a87b929 AM |
16326 | @@ -1,10 +1,10 @@ |
16327 | <?xml version="1.0" encoding="UTF-8" standalone="no"?> | |
16328 | -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> | |
16329 | -<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Chapter 17. Debug Mode</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1"/><meta name="keywords" content=" C++ , library , debug "/><meta name="keywords" content=" ISO C++ , library "/><meta name="keywords" content=" ISO C++ , runtime , library "/><link rel="home" href="../index.html" title="The GNU C++ Library"/><link rel="up" href="extensions.html" title="Part III. Extensions"/><link rel="prev" href="ext_compile_checks.html" title="Chapter 16. Compile Time Checks"/><link rel="next" href="bk01pt03ch17s02.html" title="Semantics"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 17. Debug Mode</th></tr><tr><td align="left"><a accesskey="p" href="ext_compile_checks.html">Prev</a> </td><th width="60%" align="center">Part III. | |
16330 | +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> | |
16331 | +<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Chapter 17. Debug Mode</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1" /><meta name="keywords" content=" C++ , library , debug " /><meta name="keywords" content=" ISO C++ , library " /><meta name="keywords" content=" ISO C++ , runtime , library " /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="extensions.html" title="Part III. Extensions" /><link rel="prev" href="ext_compile_checks.html" title="Chapter 16. Compile Time Checks" /><link rel="next" href="bk01pt03ch17s02.html" title="Semantics" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 17. Debug Mode</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ext_compile_checks.html">Prev</a> </td><th width="60%" align="center">Part III. | |
16332 | Extensions | |
16333 | ||
16334 | -</th><td align="right"> <a accesskey="n" href="bk01pt03ch17s02.html">Next</a></td></tr></table><hr/></div><div class="chapter" title="Chapter 17. Debug Mode"><div class="titlepage"><div><div><h2 class="title"><a id="manual.ext.debug_mode"/>Chapter 17. Debug Mode</h2></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl><dt><span class="section"><a href="debug_mode.html#manual.ext.debug_mode.intro">Intro</a></span></dt><dt><span class="section"><a href="bk01pt03ch17s02.html">Semantics</a></span></dt><dt><span class="section"><a href="bk01pt03ch17s03.html">Using</a></span></dt><dd><dl><dt><span class="section"><a href="bk01pt03ch17s03.html#debug_mode.using.mode">Using the Debug Mode</a></span></dt><dt><span class="section"><a href="bk01pt03ch17s03.html#debug_mode.using.specific">Using a Specific Debug Container</a></span></dt></dl></dd><dt><span class="section"><a href="bk01pt03ch17s04.html">Design</a></span></dt><dd><dl><dt><span class="section"><a href="bk01pt03ch17s04.html#debug_mode.design.goals">Goals</a></span></dt><dt><span class="section"><a href="bk01pt03ch17s04.html#debug_mode.design.methods">Methods</a></span></dt><dd><dl><dt><span class="section"><a href="bk01pt03ch17s04.html#debug_mode.design.methods.wrappers">The Wrapper Model</a></span></dt><dd><dl><dt><span class="section"><a href="bk01pt03ch17s04.html#debug_mode.design.methods.safe_iter">Safe Iterators</a></span></dt><dt><span class="section"><a href="bk01pt03ch17s04.html#debug_mode.design.methods.safe_seq">Safe Sequences (Containers)</a></span></dt></dl></dd><dt><span class="section"><a href="bk01pt03ch17s04.html#debug_mode.design.methods.precond">Precondition Checking</a></span></dt><dt><span class="section"><a href="bk01pt03ch17s04.html#debug_mode.design.methods.coexistence">Release- and debug-mode coexistence</a></span></dt><dd><dl><dt><span class="section"><a href="bk01pt03ch17s04.html#methods.coexistence.compile">Compile-time coexistence of release- and debug-mode components</a></span></dt><dt><span class="section"><a href="bk01pt03ch17s04.html#methods.coexistence.link">Link- and run-time coexistence of release- and | |
16335 | - debug-mode components</a></span></dt><dt><span class="section"><a href="bk01pt03ch17s04.html#methods.coexistence.alt">Alternatives for Coexistence</a></span></dt></dl></dd></dl></dd><dt><span class="section"><a href="bk01pt03ch17s04.html#debug_mode.design.other">Other Implementations</a></span></dt></dl></dd></dl></div><div class="section" title="Intro"><div class="titlepage"><div><div><h2 class="title"><a id="manual.ext.debug_mode.intro"/>Intro</h2></div></div></div><p> | |
16336 | +</th><td width="20%" align="right"> <a accesskey="n" href="bk01pt03ch17s02.html">Next</a></td></tr></table><hr /></div><div class="chapter" title="Chapter 17. Debug Mode"><div class="titlepage"><div><div><h2 class="title"><a id="manual.ext.debug_mode"></a>Chapter 17. Debug Mode</h2></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl><dt><span class="section"><a href="debug_mode.html#manual.ext.debug_mode.intro">Intro</a></span></dt><dt><span class="section"><a href="bk01pt03ch17s02.html">Semantics</a></span></dt><dt><span class="section"><a href="bk01pt03ch17s03.html">Using</a></span></dt><dd><dl><dt><span class="section"><a href="bk01pt03ch17s03.html#debug_mode.using.mode">Using the Debug Mode</a></span></dt><dt><span class="section"><a href="bk01pt03ch17s03.html#debug_mode.using.specific">Using a Specific Debug Container</a></span></dt></dl></dd><dt><span class="section"><a href="bk01pt03ch17s04.html">Design</a></span></dt><dd><dl><dt><span class="section"><a href="bk01pt03ch17s04.html#debug_mode.design.goals">Goals</a></span></dt><dt><span class="section"><a href="bk01pt03ch17s04.html#debug_mode.design.methods">Methods</a></span></dt><dd><dl><dt><span class="section"><a href="bk01pt03ch17s04.html#debug_mode.design.methods.wrappers">The Wrapper Model</a></span></dt><dd><dl><dt><span class="section"><a href="bk01pt03ch17s04.html#debug_mode.design.methods.safe_iter">Safe Iterators</a></span></dt><dt><span class="section"><a href="bk01pt03ch17s04.html#debug_mode.design.methods.safe_seq">Safe Sequences (Containers)</a></span></dt></dl></dd><dt><span class="section"><a href="bk01pt03ch17s04.html#debug_mode.design.methods.precond">Precondition Checking</a></span></dt><dt><span class="section"><a href="bk01pt03ch17s04.html#debug_mode.design.methods.coexistence">Release- and debug-mode coexistence</a></span></dt><dd><dl><dt><span class="section"><a href="bk01pt03ch17s04.html#methods.coexistence.compile">Compile-time coexistence of release- and debug-mode components</a></span></dt><dt><span class="section"><a href="bk01pt03ch17s04.html#methods.coexistence.link">Link- and run-time coexistence of release- and | |
16337 | + debug-mode components</a></span></dt><dt><span class="section"><a href="bk01pt03ch17s04.html#methods.coexistence.alt">Alternatives for Coexistence</a></span></dt></dl></dd></dl></dd><dt><span class="section"><a href="bk01pt03ch17s04.html#debug_mode.design.other">Other Implementations</a></span></dt></dl></dd></dl></div><div class="section" title="Intro"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="manual.ext.debug_mode.intro"></a>Intro</h2></div></div></div><p> | |
16338 | By default, libstdc++ is built with efficiency in mind, and | |
16339 | therefore performs little or no error checking that is not | |
16340 | required by the C++ standard. This means that programs that | |
16341 | @@ -21,7 +21,7 @@ | |
16342 | The libstdc++ debug mode performs checking for many areas of the | |
16343 | C++ standard, but the focus is on checking interactions among | |
16344 | standard iterators, containers, and algorithms, including: | |
16345 | - </p><div class="itemizedlist"><ul class="itemizedlist"><li class="listitem"><p><span class="emphasis"><em>Safe iterators</em></span>: Iterators keep track of the | |
16346 | + </p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p><span class="emphasis"><em>Safe iterators</em></span>: Iterators keep track of the | |
16347 | container whose elements they reference, so errors such as | |
16348 | incrementing a past-the-end iterator or dereferencing an iterator | |
16349 | that points to a container that has been destructed are diagnosed | |
16350 | @@ -35,4 +35,4 @@ | |
16351 | the same predicate that was passed | |
16352 | to <code class="code">set_intersection</code>; the libstdc++ debug mode will | |
16353 | detect an error if the sequence is not sorted or was sorted by a | |
16354 | - different predicate.</p></li></ul></div></div></div><div class="navfooter"><hr/><table width="100%" summary="Navigation footer"><tr><td align="left"><a accesskey="p" href="ext_compile_checks.html">Prev</a> </td><td align="center"><a accesskey="u" href="extensions.html">Up</a></td><td align="right"> <a accesskey="n" href="bk01pt03ch17s02.html">Next</a></td></tr><tr><td align="left" valign="top">Chapter 16. Compile Time Checks </td><td align="center"><a accesskey="h" href="../index.html">Home</a></td><td align="right" valign="top"> Semantics</td></tr></table></div></body></html> | |
16355 | + different predicate.</p></li></ul></div></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="ext_compile_checks.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="extensions.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="bk01pt03ch17s02.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Chapter 16. Compile Time Checks </td><td width="20%" align="center"><a accesskey="h" href="../index.html">Home</a></td><td width="40%" align="right" valign="top"> Semantics</td></tr></table></div></body></html> | |
16356 | Index: libstdc++-v3/doc/html/manual/using_concurrency.html | |
16357 | =================================================================== | |
9f95000d AM |
16358 | --- libstdc++-v3/doc/html/manual/using_concurrency.html (.../tags/gcc_4_7_2_release) (wersja 192468) |
16359 | +++ libstdc++-v3/doc/html/manual/using_concurrency.html (.../branches/gcc-4_7-branch) (wersja 192468) | |
5a87b929 AM |
16360 | @@ -1,10 +1,10 @@ |
16361 | <?xml version="1.0" encoding="UTF-8" standalone="no"?> | |
16362 | -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> | |
16363 | -<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Concurrency</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1"/><meta name="keywords" content=" ISO C++ , library "/><meta name="keywords" content=" ISO C++ , runtime , library "/><link rel="home" href="../index.html" title="The GNU C++ Library"/><link rel="up" href="using.html" title="Chapter 3. Using"/><link rel="prev" href="using_dynamic_or_shared.html" title="Linking"/><link rel="next" href="using_exceptions.html" title="Exceptions"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Concurrency</th></tr><tr><td align="left"><a accesskey="p" href="using_dynamic_or_shared.html">Prev</a> </td><th width="60%" align="center">Chapter 3. Using</th><td align="right"> <a accesskey="n" href="using_exceptions.html">Next</a></td></tr></table><hr/></div><div class="section" title="Concurrency"><div class="titlepage"><div><div><h2 class="title"><a id="manual.intro.using.concurrency"/>Concurrency</h2></div></div></div><p>This section discusses issues surrounding the proper compilation | |
16364 | +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> | |
16365 | +<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Concurrency</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1" /><meta name="keywords" content=" ISO C++ , library " /><meta name="keywords" content=" ISO C++ , runtime , library " /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="using.html" title="Chapter 3. Using" /><link rel="prev" href="using_dynamic_or_shared.html" title="Linking" /><link rel="next" href="using_exceptions.html" title="Exceptions" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Concurrency</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="using_dynamic_or_shared.html">Prev</a> </td><th width="60%" align="center">Chapter 3. Using</th><td width="20%" align="right"> <a accesskey="n" href="using_exceptions.html">Next</a></td></tr></table><hr /></div><div class="section" title="Concurrency"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="manual.intro.using.concurrency"></a>Concurrency</h2></div></div></div><p>This section discusses issues surrounding the proper compilation | |
16366 | of multithreaded applications which use the Standard C++ | |
16367 | library. This information is GCC-specific since the C++ | |
16368 | standard does not address matters of multithreaded applications. | |
16369 | - </p><div class="section" title="Prerequisites"><div class="titlepage"><div><div><h3 class="title"><a id="manual.intro.using.concurrency.prereq"/>Prerequisites</h3></div></div></div><p>All normal disclaimers aside, multithreaded C++ application are | |
16370 | + </p><div class="section" title="Prerequisites"><div class="titlepage"><div><div><h3 class="title"><a id="manual.intro.using.concurrency.prereq"></a>Prerequisites</h3></div></div></div><p>All normal disclaimers aside, multithreaded C++ application are | |
16371 | only supported when libstdc++ and all user code was built with | |
16372 | compilers which report (via <code class="code"> gcc/g++ -v </code>) the same thread | |
16373 | model and that model is not <span class="emphasis"><em>single</em></span>. As long as your | |
16374 | @@ -33,7 +33,7 @@ | |
16375 | -pthread is honored. Some other ports use other switches. | |
16376 | AFAIK, none of this is properly documented anywhere other than | |
16377 | in ``gcc -dumpspecs'' (look at lib and cpp entries). | |
16378 | - </p></div><div class="section" title="Thread Safety"><div class="titlepage"><div><div><h3 class="title"><a id="manual.intro.using.concurrency.thread_safety"/>Thread Safety</h3></div></div></div><p> | |
16379 | + </p></div><div class="section" title="Thread Safety"><div class="titlepage"><div><div><h3 class="title"><a id="manual.intro.using.concurrency.thread_safety"></a>Thread Safety</h3></div></div></div><p> | |
16380 | In the terms of the 2011 C++ standard a thread-safe program is one which | |
16381 | does not perform any conflicting non-atomic operations on memory locations | |
16382 | and so does not contain any data races. | |
16383 | @@ -41,11 +41,11 @@ | |
16384 | races are caused by the library itself or by programs which use the | |
16385 | library correctly (as described below). | |
16386 | The C++11 memory model and library requirements are a more formal version | |
16387 | -of the <a class="link" href="http://www.sgi.com/tech/stl/thread_safety.html">SGI STL</a> definition of thread safety, which the library used | |
16388 | +of the <a class="link" href="http://www.sgi.com/tech/stl/thread_safety.html" target="_top">SGI STL</a> definition of thread safety, which the library used | |
16389 | prior to the 2011 standard. | |
16390 | </p><p>The library strives to be thread-safe when all of the following | |
16391 | conditions are met: | |
16392 | - </p><div class="itemizedlist"><ul class="itemizedlist"><li class="listitem"><p>The system's libc is itself thread-safe, | |
16393 | + </p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>The system's libc is itself thread-safe, | |
16394 | </p></li><li class="listitem"><p> | |
16395 | The compiler in use reports a thread model other than | |
16396 | 'single'. This can be tested via output from <code class="code">gcc | |
16397 | @@ -61,7 +61,7 @@ | |
16398 | Requisite command-line flags are used for atomic operations | |
16399 | and threading. Examples of this include <code class="code">-pthread</code> | |
16400 | and <code class="code">-march=native</code>, although specifics vary | |
16401 | - depending on the host environment. See <a class="link" href="http://gcc.gnu.org/onlinedocs/gcc/Option-Summary.html">Machine | |
16402 | + depending on the host environment. See <a class="link" href="http://gcc.gnu.org/onlinedocs/gcc/Option-Summary.html" target="_top">Machine | |
16403 | Dependent Options</a>. | |
16404 | </p></li><li class="listitem"><p> | |
16405 | An implementation of atomicity.h functions | |
16406 | @@ -153,12 +153,12 @@ | |
16407 | t2.join(); | |
16408 | } | |
16409 | </pre><p>For further details of the C++11 memory model see Hans-J. Boehm's | |
16410 | - <a class="link" href="http://www.hpl.hp.com/personal/Hans_Boehm/c++mm/user-faq.html">Threads | |
16411 | - and memory model for C++</a> pages, particularly the <a class="link" href="http://www.hpl.hp.com/personal/Hans_Boehm/c++mm/threadsintro.html">introduction</a> | |
16412 | - and <a class="link" href="http://www.hpl.hp.com/personal/Hans_Boehm/c++mm/user-faq.html">FAQ</a>. | |
16413 | - </p></div><div class="section" title="Atomics"><div class="titlepage"><div><div><h3 class="title"><a id="manual.intro.using.concurrency.atomics"/>Atomics</h3></div></div></div><p> | |
16414 | - </p></div><div class="section" title="IO"><div class="titlepage"><div><div><h3 class="title"><a id="manual.intro.using.concurrency.io"/>IO</h3></div></div></div><p>This gets a bit tricky. Please read carefully, and bear with me. | |
16415 | - </p><div class="section" title="Structure"><div class="titlepage"><div><div><h4 class="title"><a id="concurrency.io.structure"/>Structure</h4></div></div></div><p>A wrapper | |
16416 | + <a class="link" href="http://www.hpl.hp.com/personal/Hans_Boehm/c++mm/user-faq.html" target="_top">Threads | |
16417 | + and memory model for C++</a> pages, particularly the <a class="link" href="http://www.hpl.hp.com/personal/Hans_Boehm/c++mm/threadsintro.html" target="_top">introduction</a> | |
16418 | + and <a class="link" href="http://www.hpl.hp.com/personal/Hans_Boehm/c++mm/user-faq.html" target="_top">FAQ</a>. | |
16419 | + </p></div><div class="section" title="Atomics"><div class="titlepage"><div><div><h3 class="title"><a id="manual.intro.using.concurrency.atomics"></a>Atomics</h3></div></div></div><p> | |
16420 | + </p></div><div class="section" title="IO"><div class="titlepage"><div><div><h3 class="title"><a id="manual.intro.using.concurrency.io"></a>IO</h3></div></div></div><p>This gets a bit tricky. Please read carefully, and bear with me. | |
16421 | + </p><div class="section" title="Structure"><div class="titlepage"><div><div><h4 class="title"><a id="concurrency.io.structure"></a>Structure</h4></div></div></div><p>A wrapper | |
16422 | type called <code class="code">__basic_file</code> provides our abstraction layer | |
16423 | for the <code class="code">std::filebuf</code> classes. Nearly all decisions dealing | |
16424 | with actual input and output must be made in <code class="code">__basic_file</code>. | |
16425 | @@ -166,7 +166,7 @@ | |
16426 | but is not used in the current code. Providing locking at any higher | |
16427 | level is akin to providing locking within containers, and is not done | |
16428 | for the same reasons (see the links above). | |
16429 | - </p></div><div class="section" title="Defaults"><div class="titlepage"><div><div><h4 class="title"><a id="concurrency.io.defaults"/>Defaults</h4></div></div></div><p>The __basic_file type is simply a collection of small wrappers around | |
16430 | + </p></div><div class="section" title="Defaults"><div class="titlepage"><div><div><h4 class="title"><a id="concurrency.io.defaults"></a>Defaults</h4></div></div></div><p>The __basic_file type is simply a collection of small wrappers around | |
16431 | the C stdio layer (again, see the link under Structure). We do no | |
16432 | locking ourselves, but simply pass through to calls to <code class="code">fopen</code>, | |
16433 | <code class="code">fwrite</code>, and so forth. | |
16434 | @@ -188,7 +188,7 @@ | |
16435 | contained in the stream formatting classes (e.g., setting up callbacks | |
16436 | inside an <code class="code">std::ofstream</code>), you need to guard such accesses | |
16437 | like any other critical shared resource. | |
16438 | - </p></div><div class="section" title="Future"><div class="titlepage"><div><div><h4 class="title"><a id="concurrency.io.future"/>Future</h4></div></div></div><p> A | |
16439 | + </p></div><div class="section" title="Future"><div class="titlepage"><div><div><h4 class="title"><a id="concurrency.io.future"></a>Future</h4></div></div></div><p> A | |
16440 | second choice may be available for I/O implementations: libio. This is | |
16441 | disabled by default, and in fact will not currently work due to other | |
16442 | issues. It will be revisited, however. | |
16443 | @@ -213,10 +213,10 @@ | |
16444 | version will see calls from libstdc++ directly into the glibc already | |
16445 | installed. For other platforms, a copy of the libio subsection will | |
16446 | be built and included in libstdc++. | |
16447 | - </p></div><div class="section" title="Alternatives"><div class="titlepage"><div><div><h4 class="title"><a id="concurrency.io.alt"/>Alternatives</h4></div></div></div><p>Don't forget that other cstdio implementations are possible. You could | |
16448 | + </p></div><div class="section" title="Alternatives"><div class="titlepage"><div><div><h4 class="title"><a id="concurrency.io.alt"></a>Alternatives</h4></div></div></div><p>Don't forget that other cstdio implementations are possible. You could | |
16449 | easily write one to perform your own forms of locking, to solve your | |
16450 | "interesting" problems. | |
16451 | - </p></div></div><div class="section" title="Containers"><div class="titlepage"><div><div><h3 class="title"><a id="manual.intro.using.concurrency.containers"/>Containers</h3></div></div></div><p>This section discusses issues surrounding the design of | |
16452 | + </p></div></div><div class="section" title="Containers"><div class="titlepage"><div><div><h3 class="title"><a id="manual.intro.using.concurrency.containers"></a>Containers</h3></div></div></div><p>This section discusses issues surrounding the design of | |
16453 | multithreaded applications which use Standard C++ containers. | |
16454 | All information in this section is current as of the gcc 3.0 | |
16455 | release and all later point releases. Although earlier gcc | |
16456 | @@ -228,9 +228,9 @@ | |
16457 | threaded and non-threaded code), see Chapter 17. | |
16458 | </p><p>Two excellent pages to read when working with the Standard C++ | |
16459 | containers and threads are | |
16460 | - <a class="link" href="http://www.sgi.com/tech/stl/thread_safety.html">SGI's | |
16461 | + <a class="link" href="http://www.sgi.com/tech/stl/thread_safety.html" target="_top">SGI's | |
16462 | http://www.sgi.com/tech/stl/thread_safety.html</a> and | |
16463 | - <a class="link" href="http://www.sgi.com/tech/stl/Allocators.html">SGI's | |
16464 | + <a class="link" href="http://www.sgi.com/tech/stl/Allocators.html" target="_top">SGI's | |
16465 | http://www.sgi.com/tech/stl/Allocators.html</a>. | |
16466 | </p><p><span class="emphasis"><em>However, please ignore all discussions about the user-level | |
16467 | configuration of the lock implementation inside the STL | |
16468 | @@ -269,4 +269,4 @@ | |
16469 | useful are details | |
16470 | on <a class="link" href="memory.html#std.util.memory.allocator" title="Allocators">allocator</a> | |
16471 | options and capabilities. | |
16472 | - </p></div></div><div class="navfooter"><hr/><table width="100%" summary="Navigation footer"><tr><td align="left"><a accesskey="p" href="using_dynamic_or_shared.html">Prev</a> </td><td align="center"><a accesskey="u" href="using.html">Up</a></td><td align="right"> <a accesskey="n" href="using_exceptions.html">Next</a></td></tr><tr><td align="left" valign="top">Linking </td><td align="center"><a accesskey="h" href="../index.html">Home</a></td><td align="right" valign="top"> Exceptions</td></tr></table></div></body></html> | |
16473 | + </p></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="using_dynamic_or_shared.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="using.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="using_exceptions.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Linking </td><td width="20%" align="center"><a accesskey="h" href="../index.html">Home</a></td><td width="40%" align="right" valign="top"> Exceptions</td></tr></table></div></body></html> | |
16474 | Index: libstdc++-v3/doc/html/manual/bk01pt02.html | |
16475 | =================================================================== | |
9f95000d AM |
16476 | --- libstdc++-v3/doc/html/manual/bk01pt02.html (.../tags/gcc_4_7_2_release) (wersja 192468) |
16477 | +++ libstdc++-v3/doc/html/manual/bk01pt02.html (.../branches/gcc-4_7-branch) (wersja 192468) | |
5a87b929 AM |
16478 | @@ -1,8 +1,8 @@ |
16479 | <?xml version="1.0" encoding="UTF-8" standalone="no"?> | |
16480 | -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> | |
16481 | -<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Part II. Standard Contents</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1"/><meta name="keywords" content=" ISO C++ , runtime , library "/><link rel="home" href="../index.html" title="The GNU C++ Library"/><link rel="up" href="index.html" title="The GNU C++ Library Manual"/><link rel="prev" href="debug.html" title="Debugging Support"/><link rel="next" href="support.html" title="Chapter 4. Support"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Part II. | |
16482 | +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> | |
16483 | +<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Part II. Standard Contents</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1" /><meta name="keywords" content=" ISO C++ , runtime , library " /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="index.html" title="The GNU C++ Library Manual" /><link rel="prev" href="debug.html" title="Debugging Support" /><link rel="next" href="support.html" title="Chapter 4. Support" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Part II. | |
16484 | Standard Contents | |
16485 | - </th></tr><tr><td align="left"><a accesskey="p" href="debug.html">Prev</a> </td><th width="60%" align="center">The GNU C++ Library Manual</th><td align="right"> <a accesskey="n" href="support.html">Next</a></td></tr></table><hr/></div><div class="part" title="Part II. Standard Contents"><div class="titlepage"><div><div><h1 class="title"><a id="manual.std"/>Part II. | |
16486 | + </th></tr><tr><td width="20%" align="left"><a accesskey="p" href="debug.html">Prev</a> </td><th width="60%" align="center">The GNU C++ Library Manual</th><td width="20%" align="right"> <a accesskey="n" href="support.html">Next</a></td></tr></table><hr /></div><div class="part" title="Part II. Standard Contents"><div class="titlepage"><div><div><h1 class="title"><a id="manual.std"></a>Part II. | |
16487 | Standard Contents | |
16488 | </h1></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl><dt><span class="chapter"><a href="support.html">4. | |
16489 | Support | |
16490 | @@ -13,13 +13,13 @@ | |
16491 | </a></span></dt><dd><dl><dt><span class="section"><a href="diagnostics.html#std.diagnostics.exceptions">Exceptions</a></span></dt><dd><dl><dt><span class="section"><a href="diagnostics.html#std.diagnostics.exceptions.api">API Reference</a></span></dt><dt><span class="section"><a href="diagnostics.html#std.diagnostics.exceptions.data">Adding Data to <code class="classname">exception</code></a></span></dt></dl></dd><dt><span class="section"><a href="bk01pt02ch05s02.html">Concept Checking</a></span></dt></dl></dd><dt><span class="chapter"><a href="utilities.html">6. | |
16492 | Utilities | |
16493 | ||
16494 | -</a></span></dt><dd><dl><dt><span class="section"><a href="utilities.html#std.util.functors">Functors</a></span></dt><dt><span class="section"><a href="pairs.html">Pairs</a></span></dt><dt><span class="section"><a href="memory.html">Memory</a></span></dt><dd><dl><dt><span class="section"><a href="memory.html#std.util.memory.allocator">Allocators</a></span></dt><dd><dl><dt><span class="section"><a href="memory.html#allocator.req">Requirements</a></span></dt><dt><span class="section"><a href="memory.html#allocator.design_issues">Design Issues</a></span></dt><dt><span class="section"><a href="memory.html#allocator.impl">Implementation</a></span></dt><dd><dl><dt><span class="section"><a href="memory.html#id485345">Interface Design</a></span></dt><dt><span class="section"><a href="memory.html#id485374">Selecting Default Allocation Policy</a></span></dt><dt><span class="section"><a href="memory.html#id485485">Disabling Memory Caching</a></span></dt></dl></dd><dt><span class="section"><a href="memory.html#allocator.using">Using a Specific Allocator</a></span></dt><dt><span class="section"><a href="memory.html#allocator.custom">Custom Allocators</a></span></dt><dt><span class="section"><a href="memory.html#allocator.ext">Extension Allocators</a></span></dt></dl></dd><dt><span class="section"><a href="memory.html#std.util.memory.auto_ptr">auto_ptr</a></span></dt><dd><dl><dt><span class="section"><a href="memory.html#auto_ptr.limitations">Limitations</a></span></dt><dt><span class="section"><a href="memory.html#auto_ptr.using">Use in Containers</a></span></dt></dl></dd><dt><span class="section"><a href="memory.html#std.util.memory.shared_ptr">shared_ptr</a></span></dt><dd><dl><dt><span class="section"><a href="memory.html#shared_ptr.req">Requirements</a></span></dt><dt><span class="section"><a href="memory.html#shared_ptr.design_issues">Design Issues</a></span></dt><dt><span class="section"><a href="memory.html#shared_ptr.impl">Implementation</a></span></dt><dd><dl><dt><span class="section"><a href="memory.html#id486484">Class Hierarchy</a></span></dt><dt><span class="section"><a href="memory.html#id486672">Thread Safety</a></span></dt><dt><span class="section"><a href="memory.html#id486733">Selecting Lock Policy</a></span></dt><dt><span class="section"><a href="memory.html#id486854">Related functions and classes</a></span></dt></dl></dd><dt><span class="section"><a href="memory.html#shared_ptr.using">Use</a></span></dt><dd><dl><dt><span class="section"><a href="memory.html#id499306">Examples</a></span></dt><dt><span class="section"><a href="memory.html#id499336">Unresolved Issues</a></span></dt></dl></dd><dt><span class="section"><a href="memory.html#shared_ptr.ack">Acknowledgments</a></span></dt></dl></dd></dl></dd><dt><span class="section"><a href="traits.html">Traits</a></span></dt></dl></dd><dt><span class="chapter"><a href="strings.html">7. | |
16495 | +</a></span></dt><dd><dl><dt><span class="section"><a href="utilities.html#std.util.functors">Functors</a></span></dt><dt><span class="section"><a href="pairs.html">Pairs</a></span></dt><dt><span class="section"><a href="memory.html">Memory</a></span></dt><dd><dl><dt><span class="section"><a href="memory.html#std.util.memory.allocator">Allocators</a></span></dt><dd><dl><dt><span class="section"><a href="memory.html#allocator.req">Requirements</a></span></dt><dt><span class="section"><a href="memory.html#allocator.design_issues">Design Issues</a></span></dt><dt><span class="section"><a href="memory.html#allocator.impl">Implementation</a></span></dt><dd><dl><dt><span class="section"><a href="memory.html#id663833">Interface Design</a></span></dt><dt><span class="section"><a href="memory.html#id663862">Selecting Default Allocation Policy</a></span></dt><dt><span class="section"><a href="memory.html#id663973">Disabling Memory Caching</a></span></dt></dl></dd><dt><span class="section"><a href="memory.html#allocator.using">Using a Specific Allocator</a></span></dt><dt><span class="section"><a href="memory.html#allocator.custom">Custom Allocators</a></span></dt><dt><span class="section"><a href="memory.html#allocator.ext">Extension Allocators</a></span></dt></dl></dd><dt><span class="section"><a href="memory.html#std.util.memory.auto_ptr">auto_ptr</a></span></dt><dd><dl><dt><span class="section"><a href="memory.html#auto_ptr.limitations">Limitations</a></span></dt><dt><span class="section"><a href="memory.html#auto_ptr.using">Use in Containers</a></span></dt></dl></dd><dt><span class="section"><a href="memory.html#std.util.memory.shared_ptr">shared_ptr</a></span></dt><dd><dl><dt><span class="section"><a href="memory.html#shared_ptr.req">Requirements</a></span></dt><dt><span class="section"><a href="memory.html#shared_ptr.design_issues">Design Issues</a></span></dt><dt><span class="section"><a href="memory.html#shared_ptr.impl">Implementation</a></span></dt><dd><dl><dt><span class="section"><a href="memory.html#id664972">Class Hierarchy</a></span></dt><dt><span class="section"><a href="memory.html#id665160">Thread Safety</a></span></dt><dt><span class="section"><a href="memory.html#id665221">Selecting Lock Policy</a></span></dt><dt><span class="section"><a href="memory.html#id665342">Related functions and classes</a></span></dt></dl></dd><dt><span class="section"><a href="memory.html#shared_ptr.using">Use</a></span></dt><dd><dl><dt><span class="section"><a href="memory.html#id677792">Examples</a></span></dt><dt><span class="section"><a href="memory.html#id677822">Unresolved Issues</a></span></dt></dl></dd><dt><span class="section"><a href="memory.html#shared_ptr.ack">Acknowledgments</a></span></dt></dl></dd></dl></dd><dt><span class="section"><a href="traits.html">Traits</a></span></dt></dl></dd><dt><span class="chapter"><a href="strings.html">7. | |
16496 | Strings | |
16497 | ||
16498 | </a></span></dt><dd><dl><dt><span class="section"><a href="strings.html#std.strings.string">String Classes</a></span></dt><dd><dl><dt><span class="section"><a href="strings.html#strings.string.simple">Simple Transformations</a></span></dt><dt><span class="section"><a href="strings.html#strings.string.case">Case Sensitivity</a></span></dt><dt><span class="section"><a href="strings.html#strings.string.character_types">Arbitrary Character Types</a></span></dt><dt><span class="section"><a href="strings.html#strings.string.token">Tokenizing</a></span></dt><dt><span class="section"><a href="strings.html#strings.string.shrink">Shrink to Fit</a></span></dt><dt><span class="section"><a href="strings.html#strings.string.Cstring">CString (MFC)</a></span></dt></dl></dd></dl></dd><dt><span class="chapter"><a href="localization.html">8. | |
16499 | Localization | |
16500 | ||
16501 | -</a></span></dt><dd><dl><dt><span class="section"><a href="localization.html#std.localization.locales">Locales</a></span></dt><dd><dl><dt><span class="section"><a href="localization.html#std.localization.locales.locale">locale</a></span></dt><dd><dl><dt><span class="section"><a href="localization.html#locales.locale.req">Requirements</a></span></dt><dt><span class="section"><a href="localization.html#locales.locale.design">Design</a></span></dt><dt><span class="section"><a href="localization.html#locales.locale.impl">Implementation</a></span></dt><dd><dl><dt><span class="section"><a href="localization.html#locale.impl.c">Interacting with "C" locales</a></span></dt></dl></dd><dt><span class="section"><a href="localization.html#locales.locale.future">Future</a></span></dt></dl></dd></dl></dd><dt><span class="section"><a href="facets.html">Facets</a></span></dt><dd><dl><dt><span class="section"><a href="facets.html#std.localization.facet.ctype">ctype</a></span></dt><dd><dl><dt><span class="section"><a href="facets.html#facet.ctype.impl">Implementation</a></span></dt><dd><dl><dt><span class="section"><a href="facets.html#id501036">Specializations</a></span></dt></dl></dd><dt><span class="section"><a href="facets.html#facet.ctype.future">Future</a></span></dt></dl></dd><dt><span class="section"><a href="facets.html#std.localization.facet.codecvt">codecvt</a></span></dt><dd><dl><dt><span class="section"><a href="facets.html#facet.codecvt.req">Requirements</a></span></dt><dt><span class="section"><a href="facets.html#facet.codecvt.design">Design</a></span></dt><dd><dl><dt><span class="section"><a href="facets.html#codecvt.design.wchar_t_size"><span class="type">wchar_t</span> Size</a></span></dt><dt><span class="section"><a href="facets.html#codecvt.design.unicode">Support for Unicode</a></span></dt><dt><span class="section"><a href="facets.html#codecvt.design.issues">Other Issues</a></span></dt></dl></dd><dt><span class="section"><a href="facets.html#facet.codecvt.impl">Implementation</a></span></dt><dt><span class="section"><a href="facets.html#facet.codecvt.use">Use</a></span></dt><dt><span class="section"><a href="facets.html#facet.codecvt.future">Future</a></span></dt></dl></dd><dt><span class="section"><a href="facets.html#manual.localization.facet.messages">messages</a></span></dt><dd><dl><dt><span class="section"><a href="facets.html#facet.messages.req">Requirements</a></span></dt><dt><span class="section"><a href="facets.html#facet.messages.design">Design</a></span></dt><dt><span class="section"><a href="facets.html#facet.messages.impl">Implementation</a></span></dt><dd><dl><dt><span class="section"><a href="facets.html#messages.impl.models">Models</a></span></dt><dt><span class="section"><a href="facets.html#messages.impl.gnu">The GNU Model</a></span></dt></dl></dd><dt><span class="section"><a href="facets.html#facet.messages.use">Use</a></span></dt><dt><span class="section"><a href="facets.html#facet.messages.future">Future</a></span></dt></dl></dd></dl></dd></dl></dd><dt><span class="chapter"><a href="containers.html">9. | |
16502 | +</a></span></dt><dd><dl><dt><span class="section"><a href="localization.html#std.localization.locales">Locales</a></span></dt><dd><dl><dt><span class="section"><a href="localization.html#std.localization.locales.locale">locale</a></span></dt><dd><dl><dt><span class="section"><a href="localization.html#locales.locale.req">Requirements</a></span></dt><dt><span class="section"><a href="localization.html#locales.locale.design">Design</a></span></dt><dt><span class="section"><a href="localization.html#locales.locale.impl">Implementation</a></span></dt><dd><dl><dt><span class="section"><a href="localization.html#locale.impl.c">Interacting with "C" locales</a></span></dt></dl></dd><dt><span class="section"><a href="localization.html#locales.locale.future">Future</a></span></dt></dl></dd></dl></dd><dt><span class="section"><a href="facets.html">Facets</a></span></dt><dd><dl><dt><span class="section"><a href="facets.html#std.localization.facet.ctype">ctype</a></span></dt><dd><dl><dt><span class="section"><a href="facets.html#facet.ctype.impl">Implementation</a></span></dt><dd><dl><dt><span class="section"><a href="facets.html#id679521">Specializations</a></span></dt></dl></dd><dt><span class="section"><a href="facets.html#facet.ctype.future">Future</a></span></dt></dl></dd><dt><span class="section"><a href="facets.html#std.localization.facet.codecvt">codecvt</a></span></dt><dd><dl><dt><span class="section"><a href="facets.html#facet.codecvt.req">Requirements</a></span></dt><dt><span class="section"><a href="facets.html#facet.codecvt.design">Design</a></span></dt><dd><dl><dt><span class="section"><a href="facets.html#codecvt.design.wchar_t_size"><span class="type">wchar_t</span> Size</a></span></dt><dt><span class="section"><a href="facets.html#codecvt.design.unicode">Support for Unicode</a></span></dt><dt><span class="section"><a href="facets.html#codecvt.design.issues">Other Issues</a></span></dt></dl></dd><dt><span class="section"><a href="facets.html#facet.codecvt.impl">Implementation</a></span></dt><dt><span class="section"><a href="facets.html#facet.codecvt.use">Use</a></span></dt><dt><span class="section"><a href="facets.html#facet.codecvt.future">Future</a></span></dt></dl></dd><dt><span class="section"><a href="facets.html#manual.localization.facet.messages">messages</a></span></dt><dd><dl><dt><span class="section"><a href="facets.html#facet.messages.req">Requirements</a></span></dt><dt><span class="section"><a href="facets.html#facet.messages.design">Design</a></span></dt><dt><span class="section"><a href="facets.html#facet.messages.impl">Implementation</a></span></dt><dd><dl><dt><span class="section"><a href="facets.html#messages.impl.models">Models</a></span></dt><dt><span class="section"><a href="facets.html#messages.impl.gnu">The GNU Model</a></span></dt></dl></dd><dt><span class="section"><a href="facets.html#facet.messages.use">Use</a></span></dt><dt><span class="section"><a href="facets.html#facet.messages.future">Future</a></span></dt></dl></dd></dl></dd></dl></dd><dt><span class="chapter"><a href="containers.html">9. | |
16503 | Containers | |
16504 | ||
16505 | </a></span></dt><dd><dl><dt><span class="section"><a href="containers.html#std.containers.sequences">Sequences</a></span></dt><dd><dl><dt><span class="section"><a href="containers.html#containers.sequences.list">list</a></span></dt><dd><dl><dt><span class="section"><a href="containers.html#sequences.list.size">list::size() is O(n)</a></span></dt></dl></dd><dt><span class="section"><a href="containers.html#containers.sequences.vector">vector</a></span></dt><dd><dl><dt><span class="section"><a href="containers.html#sequences.vector.management">Space Overhead Management</a></span></dt></dl></dd></dl></dd><dt><span class="section"><a href="associative.html">Associative</a></span></dt><dd><dl><dt><span class="section"><a href="associative.html#containers.associative.insert_hints">Insertion Hints</a></span></dt><dt><span class="section"><a href="associative.html#containers.associative.bitset">bitset</a></span></dt><dd><dl><dt><span class="section"><a href="associative.html#associative.bitset.size_variable">Size Variable</a></span></dt><dt><span class="section"><a href="associative.html#associative.bitset.type_string">Type String</a></span></dt></dl></dd></dl></dd><dt><span class="section"><a href="containers_and_c.html">Interacting with C</a></span></dt><dd><dl><dt><span class="section"><a href="containers_and_c.html#containers.c.vs_array">Containers vs. Arrays</a></span></dt></dl></dd></dl></dd><dt><span class="chapter"><a href="iterators.html">10. | |
16506 | @@ -40,7 +40,7 @@ | |
16507 | </a></span></dt><dd><dl><dt><span class="section"><a href="atomics.html#std.atomics.api">API Reference</a></span></dt></dl></dd><dt><span class="chapter"><a href="concurrency.html">15. | |
16508 | Concurrency | |
16509 | ||
16510 | -</a></span></dt><dd><dl><dt><span class="section"><a href="concurrency.html#std.concurrency.api">API Reference</a></span></dt></dl></dd></dl></div></div><div class="navfooter"><hr/><table width="100%" summary="Navigation footer"><tr><td align="left"><a accesskey="p" href="debug.html">Prev</a> </td><td align="center"><a accesskey="u" href="index.html">Up</a></td><td align="right"> <a accesskey="n" href="support.html">Next</a></td></tr><tr><td align="left" valign="top">Debugging Support </td><td align="center"><a accesskey="h" href="../index.html">Home</a></td><td align="right" valign="top"> Chapter 4. | |
16511 | +</a></span></dt><dd><dl><dt><span class="section"><a href="concurrency.html#std.concurrency.api">API Reference</a></span></dt></dl></dd></dl></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="debug.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="index.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="support.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Debugging Support </td><td width="20%" align="center"><a accesskey="h" href="../index.html">Home</a></td><td width="40%" align="right" valign="top"> Chapter 4. | |
16512 | Support | |
16513 | ||
16514 | </td></tr></table></div></body></html> | |
16515 | Index: libstdc++-v3/doc/html/manual/appendix_gfdl.html | |
16516 | =================================================================== | |
9f95000d AM |
16517 | --- libstdc++-v3/doc/html/manual/appendix_gfdl.html (.../tags/gcc_4_7_2_release) (wersja 192468) |
16518 | +++ libstdc++-v3/doc/html/manual/appendix_gfdl.html (.../branches/gcc-4_7-branch) (wersja 192468) | |
5a87b929 AM |
16519 | @@ -1,14 +1,14 @@ |
16520 | <?xml version="1.0" encoding="UTF-8" standalone="no"?> | |
16521 | -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> | |
16522 | -<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Appendix E. GNU Free Documentation License</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1"/><meta name="keywords" content=" ISO C++ , runtime , library "/><link rel="home" href="../index.html" title="The GNU C++ Library"/><link rel="up" href="bk01pt04.html" title="Part IV. Appendices"/><link rel="prev" href="appendix_gpl.html" title="Appendix D. GNU General Public License version 3"/><link rel="next" href="../bk02.html" title=""/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Appendix E. GNU Free Documentation License</th></tr><tr><td align="left"><a accesskey="p" href="appendix_gpl.html">Prev</a> </td><th width="60%" align="center">Part IV. | |
16523 | +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> | |
16524 | +<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Appendix E. GNU Free Documentation License</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1" /><meta name="keywords" content=" ISO C++ , runtime , library " /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="bk01pt04.html" title="Part IV. Appendices" /><link rel="prev" href="appendix_gpl.html" title="Appendix D. GNU General Public License version 3" /><link rel="next" href="../bk02.html" title="" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Appendix E. GNU Free Documentation License</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="appendix_gpl.html">Prev</a> </td><th width="60%" align="center">Part IV. | |
16525 | Appendices | |
16526 | -</th><td align="right"> <a accesskey="n" href="../bk02.html">Next</a></td></tr></table><hr/></div><div class="appendix" title="Appendix E. GNU Free Documentation License"><div class="titlepage"><div><div><h1 class="title"><a id="appendix.gfdl-1.3"/>GNU Free Documentation License</h1></div></div></div><p>Version 1.3, 3 November 2008</p><p> | |
16527 | +</th><td width="20%" align="right"> <a accesskey="n" href="../bk02.html">Next</a></td></tr></table><hr /></div><div class="appendix" title="Appendix E. GNU Free Documentation License"><div class="titlepage"><div><div><h1 class="title"><a id="appendix.gfdl-1.3"></a>GNU Free Documentation License</h1></div></div></div><p>Version 1.3, 3 November 2008</p><p> | |
16528 | Copyright © 2000, 2001, 2002, 2007, 2008 | |
16529 | - <a class="link" href="http://www.fsf.org/">Free Software Foundation, Inc.</a> | |
16530 | + <a class="link" href="http://www.fsf.org/" target="_top">Free Software Foundation, Inc.</a> | |
16531 | </p><p> | |
16532 | Everyone is permitted to copy and distribute verbatim copies of this | |
16533 | license document, but changing it is not allowed. | |
16534 | - </p><h3><a id="fdl-1-section0"/> | |
16535 | + </p><h3><a id="fdl-1-section0"></a> | |
16536 | 0. PREAMBLE | |
16537 | </h3><p> | |
16538 | The purpose of this License is to make a manual, textbook, or other | |
16539 | @@ -31,7 +31,7 @@ | |
16540 | for any textual work, regardless of subject matter or whether it is | |
16541 | published as a printed book. We recommend this License principally for | |
16542 | works whose purpose is instruction or reference. | |
16543 | - </p><h3><a id="fdl-1-section1"/> | |
16544 | + </p><h3><a id="fdl-1-section1"></a> | |
16545 | 1. APPLICABILITY AND DEFINITIONS | |
16546 | </h3><p> | |
16547 | This License applies to any manual or other work, in any medium, that | |
16548 | @@ -120,7 +120,7 @@ | |
16549 | but only as regards disclaiming warranties: any other implication that | |
16550 | these Warranty Disclaimers may have is void and has no effect on the | |
16551 | meaning of this License. | |
16552 | - </p><h3><a id="fdl-1-section2"/> | |
16553 | + </p><h3><a id="fdl-1-section2"></a> | |
16554 | 2. VERBATIM COPYING | |
16555 | </h3><p> | |
16556 | You may copy and distribute the Document in any medium, either | |
16557 | @@ -135,7 +135,7 @@ | |
16558 | </p><p> | |
16559 | You may also lend copies, under the same conditions stated above, and you | |
16560 | may publicly display copies. | |
16561 | - </p><h3><a id="fdl-1-section3"/> | |
16562 | + </p><h3><a id="fdl-1-section3"></a> | |
16563 | 3. COPYING IN QUANTITY | |
16564 | </h3><p> | |
16565 | If you publish printed copies (or copies in media that commonly have | |
16566 | @@ -169,7 +169,7 @@ | |
16567 | It is requested, but not required, that you contact the authors of the | |
16568 | Document well before redistributing any large number of copies, to give | |
16569 | them a chance to provide you with an updated version of the Document. | |
16570 | - </p><h3><a id="fdl-1-section4"/> | |
16571 | + </p><h3><a id="fdl-1-section4"></a> | |
16572 | 4. MODIFICATIONS | |
16573 | </h3><p> | |
16574 | You may copy and distribute a Modified Version of the Document under the | |
16575 | @@ -178,7 +178,7 @@ | |
16576 | filling the role of the Document, thus licensing distribution and | |
16577 | modification of the Modified Version to whoever possesses a copy of it. In | |
16578 | addition, you must do these things in the Modified Version: | |
16579 | - </p><div class="orderedlist"><ol class="orderedlist"><li class="listitem"> | |
16580 | + </p><div class="orderedlist"><ol class="orderedlist" type="A"><li class="listitem"> | |
16581 | Use in the Title Page (and on the covers, if any) a title distinct | |
16582 | from that of the Document, and from those of previous versions (which | |
16583 | should, if there were any, be listed in the History section of the | |
16584 | @@ -269,7 +269,7 @@ | |
16585 | The author(s) and publisher(s) of the Document do not by this License give | |
16586 | permission to use their names for publicity for or to assert or imply | |
16587 | endorsement of any Modified Version. | |
16588 | - </p><h3><a id="fdl-1-section5"/> | |
16589 | + </p><h3><a id="fdl-1-section5"></a> | |
16590 | 5. COMBINING DOCUMENTS | |
16591 | </h3><p> | |
16592 | You may combine the Document with other documents released under this | |
16593 | @@ -294,7 +294,7 @@ | |
16594 | Entitled “Acknowledgements”, and any sections Entitled | |
16595 | “Dedications”. You must delete all sections Entitled | |
16596 | “Endorsements”. | |
16597 | - </p><h3><a id="fdl-1-section6"/> | |
16598 | + </p><h3><a id="fdl-1-section6"></a> | |
16599 | 6. COLLECTIONS OF DOCUMENTS | |
16600 | </h3><p> | |
16601 | You may make a collection consisting of the Document and other documents | |
16602 | @@ -307,7 +307,7 @@ | |
16603 | it individually under this License, provided you insert a copy of this | |
16604 | License into the extracted document, and follow this License in all other | |
16605 | respects regarding verbatim copying of that document. | |
16606 | - </p><h3><a id="fdl-1-section7"/> | |
16607 | + </p><h3><a id="fdl-1-section7"></a> | |
16608 | 7. AGGREGATION WITH INDEPENDENT WORKS | |
16609 | </h3><p> | |
16610 | A compilation of the Document or its derivatives with other separate and | |
16611 | @@ -325,7 +325,7 @@ | |
16612 | bracket the Document within the aggregate, or the electronic equivalent of | |
16613 | covers if the Document is in electronic form. Otherwise they must appear | |
16614 | on printed covers that bracket the whole aggregate. | |
16615 | - </p><h3><a id="fdl-1-section8"/> | |
16616 | + </p><h3><a id="fdl-1-section8"></a> | |
16617 | 8. TRANSLATION | |
16618 | </h3><p> | |
16619 | Translation is considered a kind of modification, so you may distribute | |
16620 | @@ -344,7 +344,7 @@ | |
16621 | “Dedications”, or “History”, the requirement | |
16622 | (section 4) to Preserve its Title (section 1) will typically require | |
16623 | changing the actual title. | |
16624 | - </p><h3><a id="fdl-1-section9"/> | |
16625 | + </p><h3><a id="fdl-1-section9"></a> | |
16626 | 9. TERMINATION | |
16627 | </h3><p> | |
16628 | You may not copy, modify, sublicense, or distribute the Document except as | |
16629 | @@ -370,14 +370,14 @@ | |
16630 | License. If your rights have been terminated and not permanently | |
16631 | reinstated, receipt of a copy of some or all of the same material does not | |
16632 | give you any rights to use it. | |
16633 | - </p><h3><a id="fdl-1-section10"/> | |
16634 | + </p><h3><a id="fdl-1-section10"></a> | |
16635 | 10. FUTURE REVISIONS OF THIS LICENSE | |
16636 | </h3><p> | |
16637 | The Free Software Foundation may publish new, revised versions of the GNU | |
16638 | Free Documentation License from time to time. Such new versions will be | |
16639 | similar in spirit to the present version, but may differ in detail to | |
16640 | address new problems or concerns. See | |
16641 | - <a class="link" href="http://www.gnu.org/copyleft/">Copyleft</a>. | |
16642 | + <a class="link" href="http://www.gnu.org/copyleft/" target="_top">Copyleft</a>. | |
16643 | </p><p> | |
16644 | Each version of the License is given a distinguishing version number. If | |
16645 | the Document specifies that a particular numbered version of this License | |
16646 | @@ -390,7 +390,7 @@ | |
16647 | can decide which future versions of this License can be used, that | |
16648 | proxy’s public statement of acceptance of a version permanently | |
16649 | authorizes you to choose that version for the Document. | |
16650 | - </p><h3><a id="fdl-1-section11"/> | |
16651 | + </p><h3><a id="fdl-1-section11"></a> | |
16652 | 11. RELICENSING | |
16653 | </h3><p> | |
16654 | “Massive Multiauthor Collaboration Site” (or “MMC | |
16655 | @@ -419,7 +419,7 @@ | |
16656 | The operator of an MMC Site may republish an MMC contained in the site | |
16657 | under CC-BY-SA on the same site at any time before August 1, 2009, | |
16658 | provided the MMC is eligible for relicensing. | |
16659 | - </p><h3><a id="fdl-1-addendum"/> | |
16660 | + </p><h3><a id="fdl-1-addendum"></a> | |
16661 | ADDENDUM: How to use this License for your documents | |
16662 | </h3><p> | |
16663 | To use this License in a document you have written, include a copy of the | |
16664 | @@ -444,6 +444,6 @@ | |
16665 | recommend releasing these examples in parallel under your choice of free | |
16666 | software license, such as the GNU General Public License, to permit their | |
16667 | use in free software. | |
16668 | - </p></div><div class="navfooter"><hr/><table width="100%" summary="Navigation footer"><tr><td align="left"><a accesskey="p" href="appendix_gpl.html">Prev</a> </td><td align="center"><a accesskey="u" href="bk01pt04.html">Up</a></td><td align="right"> <a accesskey="n" href="../bk02.html">Next</a></td></tr><tr><td align="left" valign="top">Appendix D. | |
16669 | + </p></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="appendix_gpl.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="bk01pt04.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="../bk02.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Appendix D. | |
16670 | <acronym class="acronym">GNU</acronym> General Public License version 3 | |
16671 | - </td><td align="center"><a accesskey="h" href="../index.html">Home</a></td><td align="right" valign="top"> </td></tr></table></div></body></html> | |
16672 | + </td><td width="20%" align="center"><a accesskey="h" href="../index.html">Home</a></td><td width="40%" align="right" valign="top"> </td></tr></table></div></body></html> | |
16673 | Index: libstdc++-v3/doc/html/manual/containers.html | |
16674 | =================================================================== | |
9f95000d AM |
16675 | --- libstdc++-v3/doc/html/manual/containers.html (.../tags/gcc_4_7_2_release) (wersja 192468) |
16676 | +++ libstdc++-v3/doc/html/manual/containers.html (.../branches/gcc-4_7-branch) (wersja 192468) | |
5a87b929 AM |
16677 | @@ -1,17 +1,17 @@ |
16678 | <?xml version="1.0" encoding="UTF-8" standalone="no"?> | |
16679 | -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> | |
16680 | -<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Chapter 9. Containers</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1"/><meta name="keywords" content=" ISO C++ , library "/><meta name="keywords" content=" ISO C++ , runtime , library "/><link rel="home" href="../index.html" title="The GNU C++ Library"/><link rel="up" href="bk01pt02.html" title="Part II. Standard Contents"/><link rel="prev" href="facets.html" title="Facets"/><link rel="next" href="associative.html" title="Associative"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 9. | |
16681 | +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> | |
16682 | +<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Chapter 9. Containers</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1" /><meta name="keywords" content=" ISO C++ , library " /><meta name="keywords" content=" ISO C++ , runtime , library " /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="bk01pt02.html" title="Part II. Standard Contents" /><link rel="prev" href="facets.html" title="Facets" /><link rel="next" href="associative.html" title="Associative" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 9. | |
16683 | Containers | |
16684 | ||
16685 | -</th></tr><tr><td align="left"><a accesskey="p" href="facets.html">Prev</a> </td><th width="60%" align="center">Part II. | |
16686 | +</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="facets.html">Prev</a> </td><th width="60%" align="center">Part II. | |
16687 | Standard Contents | |
16688 | - </th><td align="right"> <a accesskey="n" href="associative.html">Next</a></td></tr></table><hr/></div><div class="chapter" title="Chapter 9. Containers"><div class="titlepage"><div><div><h2 class="title"><a id="std.containers"/>Chapter 9. | |
16689 | + </th><td width="20%" align="right"> <a accesskey="n" href="associative.html">Next</a></td></tr></table><hr /></div><div class="chapter" title="Chapter 9. Containers"><div class="titlepage"><div><div><h2 class="title"><a id="std.containers"></a>Chapter 9. | |
16690 | Containers | |
16691 | - <a id="id503211" class="indexterm"/> | |
16692 | -</h2></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl><dt><span class="section"><a href="containers.html#std.containers.sequences">Sequences</a></span></dt><dd><dl><dt><span class="section"><a href="containers.html#containers.sequences.list">list</a></span></dt><dd><dl><dt><span class="section"><a href="containers.html#sequences.list.size">list::size() is O(n)</a></span></dt></dl></dd><dt><span class="section"><a href="containers.html#containers.sequences.vector">vector</a></span></dt><dd><dl><dt><span class="section"><a href="containers.html#sequences.vector.management">Space Overhead Management</a></span></dt></dl></dd></dl></dd><dt><span class="section"><a href="associative.html">Associative</a></span></dt><dd><dl><dt><span class="section"><a href="associative.html#containers.associative.insert_hints">Insertion Hints</a></span></dt><dt><span class="section"><a href="associative.html#containers.associative.bitset">bitset</a></span></dt><dd><dl><dt><span class="section"><a href="associative.html#associative.bitset.size_variable">Size Variable</a></span></dt><dt><span class="section"><a href="associative.html#associative.bitset.type_string">Type String</a></span></dt></dl></dd></dl></dd><dt><span class="section"><a href="containers_and_c.html">Interacting with C</a></span></dt><dd><dl><dt><span class="section"><a href="containers_and_c.html#containers.c.vs_array">Containers vs. Arrays</a></span></dt></dl></dd></dl></div><div class="section" title="Sequences"><div class="titlepage"><div><div><h2 class="title"><a id="std.containers.sequences"/>Sequences</h2></div></div></div><div class="section" title="list"><div class="titlepage"><div><div><h3 class="title"><a id="containers.sequences.list"/>list</h3></div></div></div><div class="section" title="list::size() is O(n)"><div class="titlepage"><div><div><h4 class="title"><a id="sequences.list.size"/>list::size() is O(n)</h4></div></div></div><p> | |
16693 | + <a id="id681698" class="indexterm"></a> | |
16694 | +</h2></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl><dt><span class="section"><a href="containers.html#std.containers.sequences">Sequences</a></span></dt><dd><dl><dt><span class="section"><a href="containers.html#containers.sequences.list">list</a></span></dt><dd><dl><dt><span class="section"><a href="containers.html#sequences.list.size">list::size() is O(n)</a></span></dt></dl></dd><dt><span class="section"><a href="containers.html#containers.sequences.vector">vector</a></span></dt><dd><dl><dt><span class="section"><a href="containers.html#sequences.vector.management">Space Overhead Management</a></span></dt></dl></dd></dl></dd><dt><span class="section"><a href="associative.html">Associative</a></span></dt><dd><dl><dt><span class="section"><a href="associative.html#containers.associative.insert_hints">Insertion Hints</a></span></dt><dt><span class="section"><a href="associative.html#containers.associative.bitset">bitset</a></span></dt><dd><dl><dt><span class="section"><a href="associative.html#associative.bitset.size_variable">Size Variable</a></span></dt><dt><span class="section"><a href="associative.html#associative.bitset.type_string">Type String</a></span></dt></dl></dd></dl></dd><dt><span class="section"><a href="containers_and_c.html">Interacting with C</a></span></dt><dd><dl><dt><span class="section"><a href="containers_and_c.html#containers.c.vs_array">Containers vs. Arrays</a></span></dt></dl></dd></dl></div><div class="section" title="Sequences"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="std.containers.sequences"></a>Sequences</h2></div></div></div><div class="section" title="list"><div class="titlepage"><div><div><h3 class="title"><a id="containers.sequences.list"></a>list</h3></div></div></div><div class="section" title="list::size() is O(n)"><div class="titlepage"><div><div><h4 class="title"><a id="sequences.list.size"></a>list::size() is O(n)</h4></div></div></div><p> | |
16695 | Yes it is, and that's okay. This is a decision that we preserved | |
16696 | when we imported SGI's STL implementation. The following is | |
16697 | - quoted from <a class="link" href="http://www.sgi.com/tech/stl/FAQ.html">their FAQ</a>: | |
16698 | + quoted from <a class="link" href="http://www.sgi.com/tech/stl/FAQ.html" target="_top">their FAQ</a>: | |
16699 | </p><div class="blockquote"><blockquote class="blockquote"><p> | |
16700 | The size() member function, for list and slist, takes time | |
16701 | proportional to the number of elements in the list. This was a | |
16702 | @@ -42,14 +42,14 @@ | |
16703 | </p><pre class="programlisting"> | |
16704 | if (L.empty()) | |
16705 | ... | |
16706 | - </pre></blockquote></div></div></div><div class="section" title="vector"><div class="titlepage"><div><div><h3 class="title"><a id="containers.sequences.vector"/>vector</h3></div></div></div><p> | |
16707 | - </p><div class="section" title="Space Overhead Management"><div class="titlepage"><div><div><h4 class="title"><a id="sequences.vector.management"/>Space Overhead Management</h4></div></div></div><p> | |
16708 | - In <a class="link" href="http://gcc.gnu.org/ml/libstdc++/2002-04/msg00105.html">this | |
16709 | + </pre></blockquote></div></div></div><div class="section" title="vector"><div class="titlepage"><div><div><h3 class="title"><a id="containers.sequences.vector"></a>vector</h3></div></div></div><p> | |
16710 | + </p><div class="section" title="Space Overhead Management"><div class="titlepage"><div><div><h4 class="title"><a id="sequences.vector.management"></a>Space Overhead Management</h4></div></div></div><p> | |
16711 | + In <a class="link" href="http://gcc.gnu.org/ml/libstdc++/2002-04/msg00105.html" target="_top">this | |
16712 | message to the list</a>, Daniel Kostecky announced work on an | |
16713 | alternate form of <code class="code">std::vector</code> that would support | |
16714 | hints on the number of elements to be over-allocated. The design | |
16715 | was also described, along with possible implementation choices. | |
16716 | </p><p> | |
16717 | - The first two alpha releases were announced <a class="link" href="http://gcc.gnu.org/ml/libstdc++/2002-07/msg00048.html">here</a> | |
16718 | - and <a class="link" href="http://gcc.gnu.org/ml/libstdc++/2002-07/msg00111.html">here</a>. | |
16719 | - </p></div></div></div></div><div class="navfooter"><hr/><table width="100%" summary="Navigation footer"><tr><td align="left"><a accesskey="p" href="facets.html">Prev</a> </td><td align="center"><a accesskey="u" href="bk01pt02.html">Up</a></td><td align="right"> <a accesskey="n" href="associative.html">Next</a></td></tr><tr><td align="left" valign="top">Facets </td><td align="center"><a accesskey="h" href="../index.html">Home</a></td><td align="right" valign="top"> Associative</td></tr></table></div></body></html> | |
16720 | + The first two alpha releases were announced <a class="link" href="http://gcc.gnu.org/ml/libstdc++/2002-07/msg00048.html" target="_top">here</a> | |
16721 | + and <a class="link" href="http://gcc.gnu.org/ml/libstdc++/2002-07/msg00111.html" target="_top">here</a>. | |
16722 | + </p></div></div></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="facets.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="bk01pt02.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="associative.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Facets </td><td width="20%" align="center"><a accesskey="h" href="../index.html">Home</a></td><td width="40%" align="right" valign="top"> Associative</td></tr></table></div></body></html> | |
16723 | Index: libstdc++-v3/doc/html/manual/io.html | |
16724 | =================================================================== | |
9f95000d AM |
16725 | --- libstdc++-v3/doc/html/manual/io.html (.../tags/gcc_4_7_2_release) (wersja 192468) |
16726 | +++ libstdc++-v3/doc/html/manual/io.html (.../branches/gcc-4_7-branch) (wersja 192468) | |
5a87b929 AM |
16727 | @@ -1,14 +1,14 @@ |
16728 | <?xml version="1.0" encoding="UTF-8" standalone="no"?> | |
16729 | -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> | |
16730 | -<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Chapter 13. Input and Output</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1"/><meta name="keywords" content=" ISO C++ , library "/><meta name="keywords" content=" ISO C++ , runtime , library "/><link rel="home" href="../index.html" title="The GNU C++ Library"/><link rel="up" href="bk01pt02.html" title="Part II. Standard Contents"/><link rel="prev" href="numerics_and_c.html" title="Interacting with C"/><link rel="next" href="streambufs.html" title="Stream Buffers"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 13. | |
16731 | +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> | |
16732 | +<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Chapter 13. Input and Output</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1" /><meta name="keywords" content=" ISO C++ , library " /><meta name="keywords" content=" ISO C++ , runtime , library " /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="bk01pt02.html" title="Part II. Standard Contents" /><link rel="prev" href="numerics_and_c.html" title="Interacting with C" /><link rel="next" href="streambufs.html" title="Stream Buffers" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 13. | |
16733 | Input and Output | |
16734 | ||
16735 | -</th></tr><tr><td align="left"><a accesskey="p" href="numerics_and_c.html">Prev</a> </td><th width="60%" align="center">Part II. | |
16736 | +</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="numerics_and_c.html">Prev</a> </td><th width="60%" align="center">Part II. | |
16737 | Standard Contents | |
16738 | - </th><td align="right"> <a accesskey="n" href="streambufs.html">Next</a></td></tr></table><hr/></div><div class="chapter" title="Chapter 13. Input and Output"><div class="titlepage"><div><div><h2 class="title"><a id="std.io"/>Chapter 13. | |
16739 | + </th><td width="20%" align="right"> <a accesskey="n" href="streambufs.html">Next</a></td></tr></table><hr /></div><div class="chapter" title="Chapter 13. Input and Output"><div class="titlepage"><div><div><h2 class="title"><a id="std.io"></a>Chapter 13. | |
16740 | Input and Output | |
16741 | - <a id="id504933" class="indexterm"/> | |
16742 | -</h2></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl><dt><span class="section"><a href="io.html#std.io.objects">Iostream Objects</a></span></dt><dt><span class="section"><a href="streambufs.html">Stream Buffers</a></span></dt><dd><dl><dt><span class="section"><a href="streambufs.html#io.streambuf.derived">Derived streambuf Classes</a></span></dt><dt><span class="section"><a href="streambufs.html#io.streambuf.buffering">Buffering</a></span></dt></dl></dd><dt><span class="section"><a href="stringstreams.html">Memory Based Streams</a></span></dt><dd><dl><dt><span class="section"><a href="stringstreams.html#std.io.memstreams.compat">Compatibility With strstream</a></span></dt></dl></dd><dt><span class="section"><a href="fstreams.html">File Based Streams</a></span></dt><dd><dl><dt><span class="section"><a href="fstreams.html#std.io.filestreams.copying_a_file">Copying a File</a></span></dt><dt><span class="section"><a href="fstreams.html#std.io.filestreams.binary">Binary Input and Output</a></span></dt></dl></dd><dt><span class="section"><a href="io_and_c.html">Interacting with C</a></span></dt><dd><dl><dt><span class="section"><a href="io_and_c.html#std.io.c.FILE">Using FILE* and file descriptors</a></span></dt><dt><span class="section"><a href="io_and_c.html#std.io.c.sync">Performance</a></span></dt></dl></dd></dl></div><div class="section" title="Iostream Objects"><div class="titlepage"><div><div><h2 class="title"><a id="std.io.objects"/>Iostream Objects</h2></div></div></div><p>To minimize the time you have to wait on the compiler, it's good to | |
16743 | + <a id="id683420" class="indexterm"></a> | |
16744 | +</h2></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl><dt><span class="section"><a href="io.html#std.io.objects">Iostream Objects</a></span></dt><dt><span class="section"><a href="streambufs.html">Stream Buffers</a></span></dt><dd><dl><dt><span class="section"><a href="streambufs.html#io.streambuf.derived">Derived streambuf Classes</a></span></dt><dt><span class="section"><a href="streambufs.html#io.streambuf.buffering">Buffering</a></span></dt></dl></dd><dt><span class="section"><a href="stringstreams.html">Memory Based Streams</a></span></dt><dd><dl><dt><span class="section"><a href="stringstreams.html#std.io.memstreams.compat">Compatibility With strstream</a></span></dt></dl></dd><dt><span class="section"><a href="fstreams.html">File Based Streams</a></span></dt><dd><dl><dt><span class="section"><a href="fstreams.html#std.io.filestreams.copying_a_file">Copying a File</a></span></dt><dt><span class="section"><a href="fstreams.html#std.io.filestreams.binary">Binary Input and Output</a></span></dt></dl></dd><dt><span class="section"><a href="io_and_c.html">Interacting with C</a></span></dt><dd><dl><dt><span class="section"><a href="io_and_c.html#std.io.c.FILE">Using FILE* and file descriptors</a></span></dt><dt><span class="section"><a href="io_and_c.html#std.io.c.sync">Performance</a></span></dt></dl></dd></dl></div><div class="section" title="Iostream Objects"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="std.io.objects"></a>Iostream Objects</h2></div></div></div><p>To minimize the time you have to wait on the compiler, it's good to | |
16745 | only include the headers you really need. Many people simply include | |
16746 | <iostream> when they don't need to -- and that can <span class="emphasis"><em>penalize | |
16747 | your runtime as well.</em></span> Here are some tips on which header to use | |
16748 | @@ -118,4 +118,4 @@ | |
16749 | the standard objects in that source file; you'll pay less startup | |
16750 | time. Only include the header files you need to in general; your | |
16751 | compile times will go down when there's less parsing work to do. | |
16752 | - </p></div></div><div class="navfooter"><hr/><table width="100%" summary="Navigation footer"><tr><td align="left"><a accesskey="p" href="numerics_and_c.html">Prev</a> </td><td align="center"><a accesskey="u" href="bk01pt02.html">Up</a></td><td align="right"> <a accesskey="n" href="streambufs.html">Next</a></td></tr><tr><td align="left" valign="top">Interacting with C </td><td align="center"><a accesskey="h" href="../index.html">Home</a></td><td align="right" valign="top"> Stream Buffers</td></tr></table></div></body></html> | |
16753 | + </p></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="numerics_and_c.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="bk01pt02.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="streambufs.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Interacting with C </td><td width="20%" align="center"><a accesskey="h" href="../index.html">Home</a></td><td width="40%" align="right" valign="top"> Stream Buffers</td></tr></table></div></body></html> | |
16754 | Index: libstdc++-v3/doc/html/manual/index.html | |
16755 | =================================================================== | |
9f95000d AM |
16756 | --- libstdc++-v3/doc/html/manual/index.html (.../tags/gcc_4_7_2_release) (wersja 192468) |
16757 | +++ libstdc++-v3/doc/html/manual/index.html (.../branches/gcc-4_7-branch) (wersja 192468) | |
5a87b929 AM |
16758 | @@ -1,8 +1,8 @@ |
16759 | <?xml version="1.0" encoding="UTF-8" standalone="no"?> | |
16760 | -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> | |
16761 | -<html xmlns="http://www.w3.org/1999/xhtml"><head><title>The GNU C++ Library Manual</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1"/><meta name="keywords" content=" ISO C++ , runtime , library "/><link rel="home" href="../index.html" title="The GNU C++ Library"/><link rel="up" href="../index.html" title="The GNU C++ Library"/><link rel="prev" href="../index.html" title="The GNU C++ Library"/><link rel="next" href="intro.html" title="Part I. Introduction"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">The GNU C++ Library Manual</th></tr><tr><td align="left"><a accesskey="p" href="../index.html">Prev</a> </td><th width="60%" align="center"> </th><td align="right"> <a accesskey="n" href="intro.html">Next</a></td></tr></table><hr/></div><div class="book" title="The GNU C++ Library Manual"><div class="titlepage"><div><div><h1 class="title"><a id="manual"/>The GNU C++ Library Manual</h1></div><div><div class="authorgroup"><div class="author"><h3 class="author"><span class="firstname"/> <span class="surname"/></h3></div><div class="author"><h3 class="author"><span class="firstname">Paolo</span> <span class="surname">Carlini</span></h3></div><div class="author"><h3 class="author"><span class="firstname">Phil</span> <span class="surname">Edwards</span></h3></div><div class="author"><h3 class="author"><span class="firstname">Doug</span> <span class="surname">Gregor</span></h3></div><div class="author"><h3 class="author"><span class="firstname">Benjamin</span> <span class="surname">Kosnik</span></h3></div><div class="author"><h3 class="author"><span class="firstname">Dhruv</span> <span class="surname">Matani</span></h3></div><div class="author"><h3 class="author"><span class="firstname">Jason</span> <span class="surname">Merrill</span></h3></div><div class="author"><h3 class="author"><span class="firstname">Mark</span> <span class="surname">Mitchell</span></h3></div><div class="author"><h3 class="author"><span class="firstname">Nathan</span> <span class="surname">Myers</span></h3></div><div class="author"><h3 class="author"><span class="firstname">Felix</span> <span class="surname">Natter</span></h3></div><div class="author"><h3 class="author"><span class="firstname">Stefan</span> <span class="surname">Olsson</span></h3></div><div class="author"><h3 class="author"><span class="firstname">Silvius</span> <span class="surname">Rus</span></h3></div><div class="author"><h3 class="author"><span class="firstname">Johannes</span> <span class="surname">Singler</span></h3></div><div class="author"><h3 class="author"><span class="firstname">Ami</span> <span class="surname">Tavory</span></h3></div><div class="author"><h3 class="author"><span class="firstname">Jonathan</span> <span class="surname">Wakely</span></h3></div></div></div><div><p class="copyright">Copyright © 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 | |
16762 | - <a class="link" href="http://www.fsf.org">FSF</a> | |
16763 | - </p></div></div><hr/></div><div class="toc"><p><strong>Table of Contents</strong></p><dl><dt><span class="part"><a href="intro.html">I. | |
16764 | +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> | |
16765 | +<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>The GNU C++ Library Manual</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1" /><meta name="keywords" content=" ISO C++ , runtime , library " /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="../index.html" title="The GNU C++ Library" /><link rel="prev" href="../index.html" title="The GNU C++ Library" /><link rel="next" href="intro.html" title="Part I. Introduction" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">The GNU C++ Library Manual</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="../index.html">Prev</a> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a accesskey="n" href="intro.html">Next</a></td></tr></table><hr /></div><div class="book" title="The GNU C++ Library Manual"><div class="titlepage"><div><div><h1 class="title"><a id="manual"></a>The GNU C++ Library Manual</h1></div><div><div class="authorgroup"><div class="author"><h3 class="author"><span class="firstname"></span> <span class="surname"></span></h3></div><div class="author"><h3 class="author"><span class="firstname">Paolo</span> <span class="surname">Carlini</span></h3></div><div class="author"><h3 class="author"><span class="firstname">Phil</span> <span class="surname">Edwards</span></h3></div><div class="author"><h3 class="author"><span class="firstname">Doug</span> <span class="surname">Gregor</span></h3></div><div class="author"><h3 class="author"><span class="firstname">Benjamin</span> <span class="surname">Kosnik</span></h3></div><div class="author"><h3 class="author"><span class="firstname">Dhruv</span> <span class="surname">Matani</span></h3></div><div class="author"><h3 class="author"><span class="firstname">Jason</span> <span class="surname">Merrill</span></h3></div><div class="author"><h3 class="author"><span class="firstname">Mark</span> <span class="surname">Mitchell</span></h3></div><div class="author"><h3 class="author"><span class="firstname">Nathan</span> <span class="surname">Myers</span></h3></div><div class="author"><h3 class="author"><span class="firstname">Felix</span> <span class="surname">Natter</span></h3></div><div class="author"><h3 class="author"><span class="firstname">Stefan</span> <span class="surname">Olsson</span></h3></div><div class="author"><h3 class="author"><span class="firstname">Silvius</span> <span class="surname">Rus</span></h3></div><div class="author"><h3 class="author"><span class="firstname">Johannes</span> <span class="surname">Singler</span></h3></div><div class="author"><h3 class="author"><span class="firstname">Ami</span> <span class="surname">Tavory</span></h3></div><div class="author"><h3 class="author"><span class="firstname">Jonathan</span> <span class="surname">Wakely</span></h3></div></div></div><div><p class="copyright">Copyright © 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 | |
16766 | + <a class="link" href="http://www.fsf.org" target="_top">FSF</a> | |
16767 | + </p></div></div><hr /></div><div class="toc"><p><strong>Table of Contents</strong></p><dl><dt><span class="part"><a href="intro.html">I. | |
16768 | Introduction | |
16769 | ||
16770 | </a></span></dt><dd><dl><dt><span class="chapter"><a href="status.html">1. Status</a></span></dt><dd><dl><dt><span class="section"><a href="status.html#manual.intro.status.iso">Implementation Status</a></span></dt><dd><dl><dt><span class="section"><a href="status.html#status.iso.1998">C++ 1998/2003</a></span></dt><dd><dl><dt><span class="section"><a href="status.html#iso.1998.status">Implementation Status</a></span></dt><dt><span class="section"><a href="status.html#iso.1998.specific">Implementation Specific Behavior</a></span></dt></dl></dd><dt><span class="section"><a href="status.html#status.iso.2011">C++ 2011</a></span></dt><dd><dl><dt><span class="section"><a href="status.html#iso.2011.specific">Implementation Specific Behavior</a></span></dt></dl></dd><dt><span class="section"><a href="status.html#status.iso.tr1">C++ TR1</a></span></dt><dd><dl><dt><span class="section"><a href="status.html#iso.tr1.specific">Implementation Specific Behavior</a></span></dt></dl></dd><dt><span class="section"><a href="status.html#status.iso.tr24733">C++ TR 24733</a></span></dt></dl></dd><dt><span class="section"><a href="license.html">License</a></span></dt><dd><dl><dt><span class="section"><a href="license.html#manual.intro.status.license.gpl">The Code: GPL</a></span></dt><dt><span class="section"><a href="license.html#manual.intro.status.license.fdl">The Documentation: GPL, FDL</a></span></dt></dl></dd><dt><span class="section"><a href="bugs.html">Bugs</a></span></dt><dd><dl><dt><span class="section"><a href="bugs.html#manual.intro.status.bugs.impl">Implementation Bugs</a></span></dt><dt><span class="section"><a href="bugs.html#manual.intro.status.bugs.iso">Standard Bugs</a></span></dt></dl></dd></dl></dd><dt><span class="chapter"><a href="setup.html">2. Setup</a></span></dt><dd><dl><dt><span class="section"><a href="setup.html#manual.intro.setup.prereq">Prerequisites</a></span></dt><dt><span class="section"><a href="configure.html">Configure</a></span></dt><dt><span class="section"><a href="make.html">Make</a></span></dt></dl></dd><dt><span class="chapter"><a href="using.html">3. Using</a></span></dt><dd><dl><dt><span class="section"><a href="using.html#manual.intro.using.flags">Command Options</a></span></dt><dt><span class="section"><a href="using_headers.html">Headers</a></span></dt><dd><dl><dt><span class="section"><a href="using_headers.html#manual.intro.using.headers.all">Header Files</a></span></dt><dt><span class="section"><a href="using_headers.html#manual.intro.using.headers.mixing">Mixing Headers</a></span></dt><dt><span class="section"><a href="using_headers.html#manual.intro.using.headers.cheaders">The C Headers and <code class="code">namespace std</code></a></span></dt><dt><span class="section"><a href="using_headers.html#manual.intro.using.headers.pre">Precompiled Headers</a></span></dt></dl></dd><dt><span class="section"><a href="using_macros.html">Macros</a></span></dt><dt><span class="section"><a href="using_namespaces.html">Namespaces</a></span></dt><dd><dl><dt><span class="section"><a href="using_namespaces.html#manual.intro.using.namespaces.all">Available Namespaces</a></span></dt><dt><span class="section"><a href="using_namespaces.html#manual.intro.using.namespaces.std">namespace std</a></span></dt><dt><span class="section"><a href="using_namespaces.html#manual.intro.using.namespaces.comp">Using Namespace Composition</a></span></dt></dl></dd><dt><span class="section"><a href="using_dynamic_or_shared.html">Linking</a></span></dt><dd><dl><dt><span class="section"><a href="using_dynamic_or_shared.html#manual.intro.using.linkage.freestanding">Almost Nothing</a></span></dt><dt><span class="section"><a href="using_dynamic_or_shared.html#manual.intro.using.linkage.dynamic">Finding Dynamic or Shared Libraries</a></span></dt></dl></dd><dt><span class="section"><a href="using_concurrency.html">Concurrency</a></span></dt><dd><dl><dt><span class="section"><a href="using_concurrency.html#manual.intro.using.concurrency.prereq">Prerequisites</a></span></dt><dt><span class="section"><a href="using_concurrency.html#manual.intro.using.concurrency.thread_safety">Thread Safety</a></span></dt><dt><span class="section"><a href="using_concurrency.html#manual.intro.using.concurrency.atomics">Atomics</a></span></dt><dt><span class="section"><a href="using_concurrency.html#manual.intro.using.concurrency.io">IO</a></span></dt><dd><dl><dt><span class="section"><a href="using_concurrency.html#concurrency.io.structure">Structure</a></span></dt><dt><span class="section"><a href="using_concurrency.html#concurrency.io.defaults">Defaults</a></span></dt><dt><span class="section"><a href="using_concurrency.html#concurrency.io.future">Future</a></span></dt><dt><span class="section"><a href="using_concurrency.html#concurrency.io.alt">Alternatives</a></span></dt></dl></dd><dt><span class="section"><a href="using_concurrency.html#manual.intro.using.concurrency.containers">Containers</a></span></dt></dl></dd><dt><span class="section"><a href="using_exceptions.html">Exceptions</a></span></dt><dd><dl><dt><span class="section"><a href="using_exceptions.html#intro.using.exception.safety">Exception Safety</a></span></dt><dt><span class="section"><a href="using_exceptions.html#intro.using.exception.propagating">Exception Neutrality</a></span></dt><dt><span class="section"><a href="using_exceptions.html#intro.using.exception.no">Doing without</a></span></dt><dt><span class="section"><a href="using_exceptions.html#intro.using.exception.compat">Compatibility</a></span></dt><dd><dl><dt><span class="section"><a href="using_exceptions.html#using.exception.compat.c">With <code class="literal">C</code></a></span></dt><dt><span class="section"><a href="using_exceptions.html#using.exception.compat.posix">With <code class="literal">POSIX</code> thread cancellation</a></span></dt></dl></dd></dl></dd><dt><span class="section"><a href="debug.html">Debugging Support</a></span></dt><dd><dl><dt><span class="section"><a href="debug.html#debug.compiler">Using <span class="command"><strong>g++</strong></span></a></span></dt><dt><span class="section"><a href="debug.html#debug.req">Debug Versions of Library Binary Files</a></span></dt><dt><span class="section"><a href="debug.html#debug.memory">Memory Leak Hunting</a></span></dt><dt><span class="section"><a href="debug.html#debug.races">Data Race Hunting</a></span></dt><dt><span class="section"><a href="debug.html#debug.gdb">Using <span class="command"><strong>gdb</strong></span></a></span></dt><dt><span class="section"><a href="debug.html#debug.exceptions">Tracking uncaught exceptions</a></span></dt><dt><span class="section"><a href="debug.html#debug.debug_mode">Debug Mode</a></span></dt><dt><span class="section"><a href="debug.html#debug.compile_time_checks">Compile Time Checking</a></span></dt><dt><span class="section"><a href="debug.html#debug.profile_mode">Profile-based Performance Analysis</a></span></dt></dl></dd></dl></dd></dl></dd><dt><span class="part"><a href="bk01pt02.html">II. | |
16771 | @@ -16,13 +16,13 @@ | |
16772 | </a></span></dt><dd><dl><dt><span class="section"><a href="diagnostics.html#std.diagnostics.exceptions">Exceptions</a></span></dt><dd><dl><dt><span class="section"><a href="diagnostics.html#std.diagnostics.exceptions.api">API Reference</a></span></dt><dt><span class="section"><a href="diagnostics.html#std.diagnostics.exceptions.data">Adding Data to <code class="classname">exception</code></a></span></dt></dl></dd><dt><span class="section"><a href="bk01pt02ch05s02.html">Concept Checking</a></span></dt></dl></dd><dt><span class="chapter"><a href="utilities.html">6. | |
16773 | Utilities | |
16774 | ||
16775 | -</a></span></dt><dd><dl><dt><span class="section"><a href="utilities.html#std.util.functors">Functors</a></span></dt><dt><span class="section"><a href="pairs.html">Pairs</a></span></dt><dt><span class="section"><a href="memory.html">Memory</a></span></dt><dd><dl><dt><span class="section"><a href="memory.html#std.util.memory.allocator">Allocators</a></span></dt><dd><dl><dt><span class="section"><a href="memory.html#allocator.req">Requirements</a></span></dt><dt><span class="section"><a href="memory.html#allocator.design_issues">Design Issues</a></span></dt><dt><span class="section"><a href="memory.html#allocator.impl">Implementation</a></span></dt><dd><dl><dt><span class="section"><a href="memory.html#id485345">Interface Design</a></span></dt><dt><span class="section"><a href="memory.html#id485374">Selecting Default Allocation Policy</a></span></dt><dt><span class="section"><a href="memory.html#id485485">Disabling Memory Caching</a></span></dt></dl></dd><dt><span class="section"><a href="memory.html#allocator.using">Using a Specific Allocator</a></span></dt><dt><span class="section"><a href="memory.html#allocator.custom">Custom Allocators</a></span></dt><dt><span class="section"><a href="memory.html#allocator.ext">Extension Allocators</a></span></dt></dl></dd><dt><span class="section"><a href="memory.html#std.util.memory.auto_ptr">auto_ptr</a></span></dt><dd><dl><dt><span class="section"><a href="memory.html#auto_ptr.limitations">Limitations</a></span></dt><dt><span class="section"><a href="memory.html#auto_ptr.using">Use in Containers</a></span></dt></dl></dd><dt><span class="section"><a href="memory.html#std.util.memory.shared_ptr">shared_ptr</a></span></dt><dd><dl><dt><span class="section"><a href="memory.html#shared_ptr.req">Requirements</a></span></dt><dt><span class="section"><a href="memory.html#shared_ptr.design_issues">Design Issues</a></span></dt><dt><span class="section"><a href="memory.html#shared_ptr.impl">Implementation</a></span></dt><dd><dl><dt><span class="section"><a href="memory.html#id486484">Class Hierarchy</a></span></dt><dt><span class="section"><a href="memory.html#id486672">Thread Safety</a></span></dt><dt><span class="section"><a href="memory.html#id486733">Selecting Lock Policy</a></span></dt><dt><span class="section"><a href="memory.html#id486854">Related functions and classes</a></span></dt></dl></dd><dt><span class="section"><a href="memory.html#shared_ptr.using">Use</a></span></dt><dd><dl><dt><span class="section"><a href="memory.html#id499306">Examples</a></span></dt><dt><span class="section"><a href="memory.html#id499336">Unresolved Issues</a></span></dt></dl></dd><dt><span class="section"><a href="memory.html#shared_ptr.ack">Acknowledgments</a></span></dt></dl></dd></dl></dd><dt><span class="section"><a href="traits.html">Traits</a></span></dt></dl></dd><dt><span class="chapter"><a href="strings.html">7. | |
16776 | +</a></span></dt><dd><dl><dt><span class="section"><a href="utilities.html#std.util.functors">Functors</a></span></dt><dt><span class="section"><a href="pairs.html">Pairs</a></span></dt><dt><span class="section"><a href="memory.html">Memory</a></span></dt><dd><dl><dt><span class="section"><a href="memory.html#std.util.memory.allocator">Allocators</a></span></dt><dd><dl><dt><span class="section"><a href="memory.html#allocator.req">Requirements</a></span></dt><dt><span class="section"><a href="memory.html#allocator.design_issues">Design Issues</a></span></dt><dt><span class="section"><a href="memory.html#allocator.impl">Implementation</a></span></dt><dd><dl><dt><span class="section"><a href="memory.html#id663833">Interface Design</a></span></dt><dt><span class="section"><a href="memory.html#id663862">Selecting Default Allocation Policy</a></span></dt><dt><span class="section"><a href="memory.html#id663973">Disabling Memory Caching</a></span></dt></dl></dd><dt><span class="section"><a href="memory.html#allocator.using">Using a Specific Allocator</a></span></dt><dt><span class="section"><a href="memory.html#allocator.custom">Custom Allocators</a></span></dt><dt><span class="section"><a href="memory.html#allocator.ext">Extension Allocators</a></span></dt></dl></dd><dt><span class="section"><a href="memory.html#std.util.memory.auto_ptr">auto_ptr</a></span></dt><dd><dl><dt><span class="section"><a href="memory.html#auto_ptr.limitations">Limitations</a></span></dt><dt><span class="section"><a href="memory.html#auto_ptr.using">Use in Containers</a></span></dt></dl></dd><dt><span class="section"><a href="memory.html#std.util.memory.shared_ptr">shared_ptr</a></span></dt><dd><dl><dt><span class="section"><a href="memory.html#shared_ptr.req">Requirements</a></span></dt><dt><span class="section"><a href="memory.html#shared_ptr.design_issues">Design Issues</a></span></dt><dt><span class="section"><a href="memory.html#shared_ptr.impl">Implementation</a></span></dt><dd><dl><dt><span class="section"><a href="memory.html#id664972">Class Hierarchy</a></span></dt><dt><span class="section"><a href="memory.html#id665160">Thread Safety</a></span></dt><dt><span class="section"><a href="memory.html#id665221">Selecting Lock Policy</a></span></dt><dt><span class="section"><a href="memory.html#id665342">Related functions and classes</a></span></dt></dl></dd><dt><span class="section"><a href="memory.html#shared_ptr.using">Use</a></span></dt><dd><dl><dt><span class="section"><a href="memory.html#id677792">Examples</a></span></dt><dt><span class="section"><a href="memory.html#id677822">Unresolved Issues</a></span></dt></dl></dd><dt><span class="section"><a href="memory.html#shared_ptr.ack">Acknowledgments</a></span></dt></dl></dd></dl></dd><dt><span class="section"><a href="traits.html">Traits</a></span></dt></dl></dd><dt><span class="chapter"><a href="strings.html">7. | |
16777 | Strings | |
16778 | ||
16779 | </a></span></dt><dd><dl><dt><span class="section"><a href="strings.html#std.strings.string">String Classes</a></span></dt><dd><dl><dt><span class="section"><a href="strings.html#strings.string.simple">Simple Transformations</a></span></dt><dt><span class="section"><a href="strings.html#strings.string.case">Case Sensitivity</a></span></dt><dt><span class="section"><a href="strings.html#strings.string.character_types">Arbitrary Character Types</a></span></dt><dt><span class="section"><a href="strings.html#strings.string.token">Tokenizing</a></span></dt><dt><span class="section"><a href="strings.html#strings.string.shrink">Shrink to Fit</a></span></dt><dt><span class="section"><a href="strings.html#strings.string.Cstring">CString (MFC)</a></span></dt></dl></dd></dl></dd><dt><span class="chapter"><a href="localization.html">8. | |
16780 | Localization | |
16781 | ||
16782 | -</a></span></dt><dd><dl><dt><span class="section"><a href="localization.html#std.localization.locales">Locales</a></span></dt><dd><dl><dt><span class="section"><a href="localization.html#std.localization.locales.locale">locale</a></span></dt><dd><dl><dt><span class="section"><a href="localization.html#locales.locale.req">Requirements</a></span></dt><dt><span class="section"><a href="localization.html#locales.locale.design">Design</a></span></dt><dt><span class="section"><a href="localization.html#locales.locale.impl">Implementation</a></span></dt><dd><dl><dt><span class="section"><a href="localization.html#locale.impl.c">Interacting with "C" locales</a></span></dt></dl></dd><dt><span class="section"><a href="localization.html#locales.locale.future">Future</a></span></dt></dl></dd></dl></dd><dt><span class="section"><a href="facets.html">Facets</a></span></dt><dd><dl><dt><span class="section"><a href="facets.html#std.localization.facet.ctype">ctype</a></span></dt><dd><dl><dt><span class="section"><a href="facets.html#facet.ctype.impl">Implementation</a></span></dt><dd><dl><dt><span class="section"><a href="facets.html#id501036">Specializations</a></span></dt></dl></dd><dt><span class="section"><a href="facets.html#facet.ctype.future">Future</a></span></dt></dl></dd><dt><span class="section"><a href="facets.html#std.localization.facet.codecvt">codecvt</a></span></dt><dd><dl><dt><span class="section"><a href="facets.html#facet.codecvt.req">Requirements</a></span></dt><dt><span class="section"><a href="facets.html#facet.codecvt.design">Design</a></span></dt><dd><dl><dt><span class="section"><a href="facets.html#codecvt.design.wchar_t_size"><span class="type">wchar_t</span> Size</a></span></dt><dt><span class="section"><a href="facets.html#codecvt.design.unicode">Support for Unicode</a></span></dt><dt><span class="section"><a href="facets.html#codecvt.design.issues">Other Issues</a></span></dt></dl></dd><dt><span class="section"><a href="facets.html#facet.codecvt.impl">Implementation</a></span></dt><dt><span class="section"><a href="facets.html#facet.codecvt.use">Use</a></span></dt><dt><span class="section"><a href="facets.html#facet.codecvt.future">Future</a></span></dt></dl></dd><dt><span class="section"><a href="facets.html#manual.localization.facet.messages">messages</a></span></dt><dd><dl><dt><span class="section"><a href="facets.html#facet.messages.req">Requirements</a></span></dt><dt><span class="section"><a href="facets.html#facet.messages.design">Design</a></span></dt><dt><span class="section"><a href="facets.html#facet.messages.impl">Implementation</a></span></dt><dd><dl><dt><span class="section"><a href="facets.html#messages.impl.models">Models</a></span></dt><dt><span class="section"><a href="facets.html#messages.impl.gnu">The GNU Model</a></span></dt></dl></dd><dt><span class="section"><a href="facets.html#facet.messages.use">Use</a></span></dt><dt><span class="section"><a href="facets.html#facet.messages.future">Future</a></span></dt></dl></dd></dl></dd></dl></dd><dt><span class="chapter"><a href="containers.html">9. | |
16783 | +</a></span></dt><dd><dl><dt><span class="section"><a href="localization.html#std.localization.locales">Locales</a></span></dt><dd><dl><dt><span class="section"><a href="localization.html#std.localization.locales.locale">locale</a></span></dt><dd><dl><dt><span class="section"><a href="localization.html#locales.locale.req">Requirements</a></span></dt><dt><span class="section"><a href="localization.html#locales.locale.design">Design</a></span></dt><dt><span class="section"><a href="localization.html#locales.locale.impl">Implementation</a></span></dt><dd><dl><dt><span class="section"><a href="localization.html#locale.impl.c">Interacting with "C" locales</a></span></dt></dl></dd><dt><span class="section"><a href="localization.html#locales.locale.future">Future</a></span></dt></dl></dd></dl></dd><dt><span class="section"><a href="facets.html">Facets</a></span></dt><dd><dl><dt><span class="section"><a href="facets.html#std.localization.facet.ctype">ctype</a></span></dt><dd><dl><dt><span class="section"><a href="facets.html#facet.ctype.impl">Implementation</a></span></dt><dd><dl><dt><span class="section"><a href="facets.html#id679521">Specializations</a></span></dt></dl></dd><dt><span class="section"><a href="facets.html#facet.ctype.future">Future</a></span></dt></dl></dd><dt><span class="section"><a href="facets.html#std.localization.facet.codecvt">codecvt</a></span></dt><dd><dl><dt><span class="section"><a href="facets.html#facet.codecvt.req">Requirements</a></span></dt><dt><span class="section"><a href="facets.html#facet.codecvt.design">Design</a></span></dt><dd><dl><dt><span class="section"><a href="facets.html#codecvt.design.wchar_t_size"><span class="type">wchar_t</span> Size</a></span></dt><dt><span class="section"><a href="facets.html#codecvt.design.unicode">Support for Unicode</a></span></dt><dt><span class="section"><a href="facets.html#codecvt.design.issues">Other Issues</a></span></dt></dl></dd><dt><span class="section"><a href="facets.html#facet.codecvt.impl">Implementation</a></span></dt><dt><span class="section"><a href="facets.html#facet.codecvt.use">Use</a></span></dt><dt><span class="section"><a href="facets.html#facet.codecvt.future">Future</a></span></dt></dl></dd><dt><span class="section"><a href="facets.html#manual.localization.facet.messages">messages</a></span></dt><dd><dl><dt><span class="section"><a href="facets.html#facet.messages.req">Requirements</a></span></dt><dt><span class="section"><a href="facets.html#facet.messages.design">Design</a></span></dt><dt><span class="section"><a href="facets.html#facet.messages.impl">Implementation</a></span></dt><dd><dl><dt><span class="section"><a href="facets.html#messages.impl.models">Models</a></span></dt><dt><span class="section"><a href="facets.html#messages.impl.gnu">The GNU Model</a></span></dt></dl></dd><dt><span class="section"><a href="facets.html#facet.messages.use">Use</a></span></dt><dt><span class="section"><a href="facets.html#facet.messages.future">Future</a></span></dt></dl></dd></dl></dd></dl></dd><dt><span class="chapter"><a href="containers.html">9. | |
16784 | Containers | |
16785 | ||
16786 | </a></span></dt><dd><dl><dt><span class="section"><a href="containers.html#std.containers.sequences">Sequences</a></span></dt><dd><dl><dt><span class="section"><a href="containers.html#containers.sequences.list">list</a></span></dt><dd><dl><dt><span class="section"><a href="containers.html#sequences.list.size">list::size() is O(n)</a></span></dt></dl></dd><dt><span class="section"><a href="containers.html#containers.sequences.vector">vector</a></span></dt><dd><dl><dt><span class="section"><a href="containers.html#sequences.vector.management">Space Overhead Management</a></span></dt></dl></dd></dl></dd><dt><span class="section"><a href="associative.html">Associative</a></span></dt><dd><dl><dt><span class="section"><a href="associative.html#containers.associative.insert_hints">Insertion Hints</a></span></dt><dt><span class="section"><a href="associative.html#containers.associative.bitset">bitset</a></span></dt><dd><dl><dt><span class="section"><a href="associative.html#associative.bitset.size_variable">Size Variable</a></span></dt><dt><span class="section"><a href="associative.html#associative.bitset.type_string">Type String</a></span></dt></dl></dd></dl></dd><dt><span class="section"><a href="containers_and_c.html">Interacting with C</a></span></dt><dd><dl><dt><span class="section"><a href="containers_and_c.html#containers.c.vs_array">Containers vs. Arrays</a></span></dt></dl></dd></dl></dd><dt><span class="chapter"><a href="iterators.html">10. | |
16787 | @@ -46,7 +46,7 @@ | |
16788 | </a></span></dt><dd><dl><dt><span class="section"><a href="concurrency.html#std.concurrency.api">API Reference</a></span></dt></dl></dd></dl></dd><dt><span class="part"><a href="extensions.html">III. | |
16789 | Extensions | |
16790 | ||
16791 | -</a></span></dt><dd><dl><dt><span class="preface"><a href="bk01pt03pr01.html"/></span></dt><dt><span class="chapter"><a href="ext_compile_checks.html">16. Compile Time Checks</a></span></dt><dt><span class="chapter"><a href="debug_mode.html">17. Debug Mode</a></span></dt><dd><dl><dt><span class="section"><a href="debug_mode.html#manual.ext.debug_mode.intro">Intro</a></span></dt><dt><span class="section"><a href="bk01pt03ch17s02.html">Semantics</a></span></dt><dt><span class="section"><a href="bk01pt03ch17s03.html">Using</a></span></dt><dd><dl><dt><span class="section"><a href="bk01pt03ch17s03.html#debug_mode.using.mode">Using the Debug Mode</a></span></dt><dt><span class="section"><a href="bk01pt03ch17s03.html#debug_mode.using.specific">Using a Specific Debug Container</a></span></dt></dl></dd><dt><span class="section"><a href="bk01pt03ch17s04.html">Design</a></span></dt><dd><dl><dt><span class="section"><a href="bk01pt03ch17s04.html#debug_mode.design.goals">Goals</a></span></dt><dt><span class="section"><a href="bk01pt03ch17s04.html#debug_mode.design.methods">Methods</a></span></dt><dd><dl><dt><span class="section"><a href="bk01pt03ch17s04.html#debug_mode.design.methods.wrappers">The Wrapper Model</a></span></dt><dd><dl><dt><span class="section"><a href="bk01pt03ch17s04.html#debug_mode.design.methods.safe_iter">Safe Iterators</a></span></dt><dt><span class="section"><a href="bk01pt03ch17s04.html#debug_mode.design.methods.safe_seq">Safe Sequences (Containers)</a></span></dt></dl></dd><dt><span class="section"><a href="bk01pt03ch17s04.html#debug_mode.design.methods.precond">Precondition Checking</a></span></dt><dt><span class="section"><a href="bk01pt03ch17s04.html#debug_mode.design.methods.coexistence">Release- and debug-mode coexistence</a></span></dt><dd><dl><dt><span class="section"><a href="bk01pt03ch17s04.html#methods.coexistence.compile">Compile-time coexistence of release- and debug-mode components</a></span></dt><dt><span class="section"><a href="bk01pt03ch17s04.html#methods.coexistence.link">Link- and run-time coexistence of release- and | |
16792 | +</a></span></dt><dd><dl><dt><span class="preface"><a href="bk01pt03pr01.html"></a></span></dt><dt><span class="chapter"><a href="ext_compile_checks.html">16. Compile Time Checks</a></span></dt><dt><span class="chapter"><a href="debug_mode.html">17. Debug Mode</a></span></dt><dd><dl><dt><span class="section"><a href="debug_mode.html#manual.ext.debug_mode.intro">Intro</a></span></dt><dt><span class="section"><a href="bk01pt03ch17s02.html">Semantics</a></span></dt><dt><span class="section"><a href="bk01pt03ch17s03.html">Using</a></span></dt><dd><dl><dt><span class="section"><a href="bk01pt03ch17s03.html#debug_mode.using.mode">Using the Debug Mode</a></span></dt><dt><span class="section"><a href="bk01pt03ch17s03.html#debug_mode.using.specific">Using a Specific Debug Container</a></span></dt></dl></dd><dt><span class="section"><a href="bk01pt03ch17s04.html">Design</a></span></dt><dd><dl><dt><span class="section"><a href="bk01pt03ch17s04.html#debug_mode.design.goals">Goals</a></span></dt><dt><span class="section"><a href="bk01pt03ch17s04.html#debug_mode.design.methods">Methods</a></span></dt><dd><dl><dt><span class="section"><a href="bk01pt03ch17s04.html#debug_mode.design.methods.wrappers">The Wrapper Model</a></span></dt><dd><dl><dt><span class="section"><a href="bk01pt03ch17s04.html#debug_mode.design.methods.safe_iter">Safe Iterators</a></span></dt><dt><span class="section"><a href="bk01pt03ch17s04.html#debug_mode.design.methods.safe_seq">Safe Sequences (Containers)</a></span></dt></dl></dd><dt><span class="section"><a href="bk01pt03ch17s04.html#debug_mode.design.methods.precond">Precondition Checking</a></span></dt><dt><span class="section"><a href="bk01pt03ch17s04.html#debug_mode.design.methods.coexistence">Release- and debug-mode coexistence</a></span></dt><dd><dl><dt><span class="section"><a href="bk01pt03ch17s04.html#methods.coexistence.compile">Compile-time coexistence of release- and debug-mode components</a></span></dt><dt><span class="section"><a href="bk01pt03ch17s04.html#methods.coexistence.link">Link- and run-time coexistence of release- and | |
16793 | debug-mode components</a></span></dt><dt><span class="section"><a href="bk01pt03ch17s04.html#methods.coexistence.alt">Alternatives for Coexistence</a></span></dt></dl></dd></dl></dd><dt><span class="section"><a href="bk01pt03ch17s04.html#debug_mode.design.other">Other Implementations</a></span></dt></dl></dd></dl></dd><dt><span class="chapter"><a href="parallel_mode.html">18. Parallel Mode</a></span></dt><dd><dl><dt><span class="section"><a href="parallel_mode.html#manual.ext.parallel_mode.intro">Intro</a></span></dt><dt><span class="section"><a href="bk01pt03ch18s02.html">Semantics</a></span></dt><dt><span class="section"><a href="bk01pt03ch18s03.html">Using</a></span></dt><dd><dl><dt><span class="section"><a href="bk01pt03ch18s03.html#parallel_mode.using.prereq_flags">Prerequisite Compiler Flags</a></span></dt><dt><span class="section"><a href="bk01pt03ch18s03.html#parallel_mode.using.parallel_mode">Using Parallel Mode</a></span></dt><dt><span class="section"><a href="bk01pt03ch18s03.html#parallel_mode.using.specific">Using Specific Parallel Components</a></span></dt></dl></dd><dt><span class="section"><a href="bk01pt03ch18s04.html">Design</a></span></dt><dd><dl><dt><span class="section"><a href="bk01pt03ch18s04.html#parallel_mode.design.intro">Interface Basics</a></span></dt><dt><span class="section"><a href="bk01pt03ch18s04.html#parallel_mode.design.tuning">Configuration and Tuning</a></span></dt><dd><dl><dt><span class="section"><a href="bk01pt03ch18s04.html#parallel_mode.design.tuning.omp">Setting up the OpenMP Environment</a></span></dt><dt><span class="section"><a href="bk01pt03ch18s04.html#parallel_mode.design.tuning.compile">Compile Time Switches</a></span></dt><dt><span class="section"><a href="bk01pt03ch18s04.html#parallel_mode.design.tuning.settings">Run Time Settings and Defaults</a></span></dt></dl></dd><dt><span class="section"><a href="bk01pt03ch18s04.html#parallel_mode.design.impl">Implementation Namespaces</a></span></dt></dl></dd><dt><span class="section"><a href="bk01pt03ch18s05.html">Testing</a></span></dt><dt><span class="bibliography"><a href="parallel_mode.html#parallel_mode.biblio">Bibliography</a></span></dt></dl></dd><dt><span class="chapter"><a href="profile_mode.html">19. Profile Mode</a></span></dt><dd><dl><dt><span class="section"><a href="profile_mode.html#manual.ext.profile_mode.intro">Intro</a></span></dt><dd><dl><dt><span class="section"><a href="profile_mode.html#manual.ext.profile_mode.using">Using the Profile Mode</a></span></dt><dt><span class="section"><a href="profile_mode.html#manual.ext.profile_mode.tuning">Tuning the Profile Mode</a></span></dt></dl></dd><dt><span class="section"><a href="bk01pt03ch19s02.html">Design</a></span></dt><dd><dl><dt><span class="section"><a href="bk01pt03ch19s02.html#manual.ext.profile_mode.design.wrapper">Wrapper Model</a></span></dt><dt><span class="section"><a href="bk01pt03ch19s02.html#manual.ext.profile_mode.design.instrumentation">Instrumentation</a></span></dt><dt><span class="section"><a href="bk01pt03ch19s02.html#manual.ext.profile_mode.design.rtlib">Run Time Behavior</a></span></dt><dt><span class="section"><a href="bk01pt03ch19s02.html#manual.ext.profile_mode.design.analysis">Analysis and Diagnostics</a></span></dt><dt><span class="section"><a href="bk01pt03ch19s02.html#manual.ext.profile_mode.design.cost-model">Cost Model</a></span></dt><dt><span class="section"><a href="bk01pt03ch19s02.html#manual.ext.profile_mode.design.reports">Reports</a></span></dt><dt><span class="section"><a href="bk01pt03ch19s02.html#manual.ext.profile_mode.design.testing">Testing</a></span></dt></dl></dd><dt><span class="section"><a href="bk01pt03ch19s03.html">Extensions for Custom Containers</a></span></dt><dt><span class="section"><a href="bk01pt03ch19s04.html">Empirical Cost Model</a></span></dt><dt><span class="section"><a href="bk01pt03ch19s05.html">Implementation Issues</a></span></dt><dd><dl><dt><span class="section"><a href="bk01pt03ch19s05.html#manual.ext.profile_mode.implementation.stack">Stack Traces</a></span></dt><dt><span class="section"><a href="bk01pt03ch19s05.html#manual.ext.profile_mode.implementation.symbols">Symbolization of Instruction Addresses</a></span></dt><dt><span class="section"><a href="bk01pt03ch19s05.html#manual.ext.profile_mode.implementation.concurrency">Concurrency</a></span></dt><dt><span class="section"><a href="bk01pt03ch19s05.html#manual.ext.profile_mode.implementation.stdlib-in-proflib">Using the Standard Library in the Instrumentation Implementation</a></span></dt><dt><span class="section"><a href="bk01pt03ch19s05.html#manual.ext.profile_mode.implementation.malloc-hooks">Malloc Hooks</a></span></dt><dt><span class="section"><a href="bk01pt03ch19s05.html#manual.ext.profile_mode.implementation.construction-destruction">Construction and Destruction of Global Objects</a></span></dt></dl></dd><dt><span class="section"><a href="bk01pt03ch19s06.html">Developer Information</a></span></dt><dd><dl><dt><span class="section"><a href="bk01pt03ch19s06.html#manual.ext.profile_mode.developer.bigpic">Big Picture</a></span></dt><dt><span class="section"><a href="bk01pt03ch19s06.html#manual.ext.profile_mode.developer.howto">How To Add A Diagnostic</a></span></dt></dl></dd><dt><span class="section"><a href="bk01pt03ch19s07.html">Diagnostics</a></span></dt><dd><dl><dt><span class="section"><a href="bk01pt03ch19s07.html#manual.ext.profile_mode.analysis.template">Diagnostic Template</a></span></dt><dt><span class="section"><a href="bk01pt03ch19s07.html#manual.ext.profile_mode.analysis.containers">Containers</a></span></dt><dd><dl><dt><span class="section"><a href="bk01pt03ch19s07.html#manual.ext.profile_mode.analysis.hashtable_too_small">Hashtable Too Small</a></span></dt><dt><span class="section"><a href="bk01pt03ch19s07.html#manual.ext.profile_mode.analysis.hashtable_too_large">Hashtable Too Large</a></span></dt><dt><span class="section"><a href="bk01pt03ch19s07.html#manual.ext.profile_mode.analysis.inefficient_hash">Inefficient Hash</a></span></dt><dt><span class="section"><a href="bk01pt03ch19s07.html#manual.ext.profile_mode.analysis.vector_too_small">Vector Too Small</a></span></dt><dt><span class="section"><a href="bk01pt03ch19s07.html#manual.ext.profile_mode.analysis.vector_too_large">Vector Too Large</a></span></dt><dt><span class="section"><a href="bk01pt03ch19s07.html#manual.ext.profile_mode.analysis.vector_to_hashtable">Vector to Hashtable</a></span></dt><dt><span class="section"><a href="bk01pt03ch19s07.html#manual.ext.profile_mode.analysis.hashtable_to_vector">Hashtable to Vector</a></span></dt><dt><span class="section"><a href="bk01pt03ch19s07.html#manual.ext.profile_mode.analysis.vector_to_list">Vector to List</a></span></dt><dt><span class="section"><a href="bk01pt03ch19s07.html#manual.ext.profile_mode.analysis.list_to_vector">List to Vector</a></span></dt><dt><span class="section"><a href="bk01pt03ch19s07.html#manual.ext.profile_mode.analysis.list_to_slist">List to Forward List (Slist)</a></span></dt><dt><span class="section"><a href="bk01pt03ch19s07.html#manual.ext.profile_mode.analysis.assoc_ord_to_unord">Ordered to Unordered Associative Container</a></span></dt></dl></dd><dt><span class="section"><a href="bk01pt03ch19s07.html#manual.ext.profile_mode.analysis.algorithms">Algorithms</a></span></dt><dd><dl><dt><span class="section"><a href="bk01pt03ch19s07.html#manual.ext.profile_mode.analysis.algorithms.sort">Sort Algorithm Performance</a></span></dt></dl></dd><dt><span class="section"><a href="bk01pt03ch19s07.html#manual.ext.profile_mode.analysis.locality">Data Locality</a></span></dt><dd><dl><dt><span class="section"><a href="bk01pt03ch19s07.html#manual.ext.profile_mode.analysis.locality.sw_prefetch">Need Software Prefetch</a></span></dt><dt><span class="section"><a href="bk01pt03ch19s07.html#manual.ext.profile_mode.analysis.locality.linked">Linked Structure Locality</a></span></dt></dl></dd><dt><span class="section"><a href="bk01pt03ch19s07.html#manual.ext.profile_mode.analysis.mthread">Multithreaded Data Access</a></span></dt><dd><dl><dt><span class="section"><a href="bk01pt03ch19s07.html#manual.ext.profile_mode.analysis.mthread.ddtest">Data Dependence Violations at Container Level</a></span></dt><dt><span class="section"><a href="bk01pt03ch19s07.html#manual.ext.profile_mode.analysis.mthread.false_share">False Sharing</a></span></dt></dl></dd><dt><span class="section"><a href="bk01pt03ch19s07.html#manual.ext.profile_mode.analysis.statistics">Statistics</a></span></dt></dl></dd><dt><span class="bibliography"><a href="profile_mode.html#profile_mode.biblio">Bibliography</a></span></dt></dl></dd><dt><span class="chapter"><a href="mt_allocator.html">20. The mt_allocator</a></span></dt><dd><dl><dt><span class="section"><a href="mt_allocator.html#allocator.mt.intro">Intro</a></span></dt><dt><span class="section"><a href="bk01pt03ch20s02.html">Design Issues</a></span></dt><dd><dl><dt><span class="section"><a href="bk01pt03ch20s02.html#allocator.mt.overview">Overview</a></span></dt></dl></dd><dt><span class="section"><a href="bk01pt03ch20s03.html">Implementation</a></span></dt><dd><dl><dt><span class="section"><a href="bk01pt03ch20s03.html#allocator.mt.tune">Tunable Parameters</a></span></dt><dt><span class="section"><a href="bk01pt03ch20s03.html#allocator.mt.init">Initialization</a></span></dt><dt><span class="section"><a href="bk01pt03ch20s03.html#allocator.mt.deallocation">Deallocation Notes</a></span></dt></dl></dd><dt><span class="section"><a href="bk01pt03ch20s04.html">Single Thread Example</a></span></dt><dt><span class="section"><a href="bk01pt03ch20s05.html">Multiple Thread Example</a></span></dt></dl></dd><dt><span class="chapter"><a href="bitmap_allocator.html">21. The bitmap_allocator</a></span></dt><dd><dl><dt><span class="section"><a href="bitmap_allocator.html#allocator.bitmap.design">Design</a></span></dt><dt><span class="section"><a href="bk01pt03ch21s02.html">Implementation</a></span></dt><dd><dl><dt><span class="section"><a href="bk01pt03ch21s02.html#bitmap.impl.free_list_store">Free List Store</a></span></dt><dt><span class="section"><a href="bk01pt03ch21s02.html#bitmap.impl.super_block">Super Block</a></span></dt><dt><span class="section"><a href="bk01pt03ch21s02.html#bitmap.impl.super_block_data">Super Block Data Layout</a></span></dt><dt><span class="section"><a href="bk01pt03ch21s02.html#bitmap.impl.max_wasted">Maximum Wasted Percentage</a></span></dt><dt><span class="section"><a href="bk01pt03ch21s02.html#bitmap.impl.allocate"><code class="function">allocate</code></a></span></dt><dt><span class="section"><a href="bk01pt03ch21s02.html#bitmap.impl.deallocate"><code class="function">deallocate</code></a></span></dt><dt><span class="section"><a href="bk01pt03ch21s02.html#bitmap.impl.questions">Questions</a></span></dt><dd><dl><dt><span class="section"><a href="bk01pt03ch21s02.html#bitmap.impl.question.1">1</a></span></dt><dt><span class="section"><a href="bk01pt03ch21s02.html#bitmap.impl.question.2">2</a></span></dt><dt><span class="section"><a href="bk01pt03ch21s02.html#bitmap.impl.question.3">3</a></span></dt></dl></dd><dt><span class="section"><a href="bk01pt03ch21s02.html#bitmap.impl.locality">Locality</a></span></dt><dt><span class="section"><a href="bk01pt03ch21s02.html#bitmap.impl.grow_policy">Overhead and Grow Policy</a></span></dt></dl></dd></dl></dd><dt><span class="chapter"><a href="policy_data_structures.html">22. Policy-Based Data Structures</a></span></dt><dd><dl><dt><span class="section"><a href="policy_data_structures.html#pbds.intro">Intro</a></span></dt><dd><dl><dt><span class="section"><a href="policy_data_structures.html#pbds.intro.issues">Performance Issues</a></span></dt><dd><dl><dt><span class="section"><a href="policy_data_structures.html#pbds.intro.issues.associative">Associative</a></span></dt><dt><span class="section"><a href="policy_data_structures.html#pbds.intro.issues.priority_queue">Priority Que</a></span></dt></dl></dd><dt><span class="section"><a href="policy_data_structures.html#pbds.intro.motivation">Goals</a></span></dt><dd><dl><dt><span class="section"><a href="policy_data_structures.html#pbds.intro.motivation.associative">Associative</a></span></dt><dd><dl><dt><span class="section"><a href="policy_data_structures.html#motivation.associative.policy">Policy Choices</a></span></dt><dt><span class="section"><a href="policy_data_structures.html#motivation.associative.underlying">Underlying Data Structures</a></span></dt><dt><span class="section"><a href="policy_data_structures.html#motivation.associative.iterators">Iterators</a></span></dt><dt><span class="section"><a href="policy_data_structures.html#motivation.associative.functions">Functional</a></span></dt></dl></dd><dt><span class="section"><a href="policy_data_structures.html#pbds.intro.motivation.priority_queue">Priority Queues</a></span></dt><dd><dl><dt><span class="section"><a href="policy_data_structures.html#motivation.priority_queue.policy">Policy Choices</a></span></dt><dt><span class="section"><a href="policy_data_structures.html#motivation.priority_queue.underlying">Underlying Data Structures</a></span></dt><dt><span class="section"><a href="policy_data_structures.html#motivation.priority_queue.binary_heap">Binary Heaps</a></span></dt></dl></dd></dl></dd></dl></dd><dt><span class="section"><a href="policy_data_structures_using.html">Using</a></span></dt><dd><dl><dt><span class="section"><a href="policy_data_structures_using.html#pbds.using.prereq">Prerequisites</a></span></dt><dt><span class="section"><a href="policy_data_structures_using.html#pbds.using.organization">Organization</a></span></dt><dt><span class="section"><a href="policy_data_structures_using.html#pbds.using.tutorial">Tutorial</a></span></dt><dd><dl><dt><span class="section"><a href="policy_data_structures_using.html#pbds.using.tutorial.basic">Basic Use</a></span></dt><dt><span class="section"><a href="policy_data_structures_using.html#pbds.using.tutorial.configuring"> | |
16794 | Configuring via Template Parameters | |
16795 | </a></span></dt><dt><span class="section"><a href="policy_data_structures_using.html#pbds.using.tutorial.traits"> | |
16796 | @@ -146,21 +146,21 @@ | |
16797 | ||
16798 | </a></span></dt><dt><span class="appendix"><a href="appendix_gpl.html">D. | |
16799 | <acronym class="acronym">GNU</acronym> General Public License version 3 | |
16800 | - </a></span></dt><dt><span class="appendix"><a href="appendix_gfdl.html">E. GNU Free Documentation License</a></span></dt></dl></dd></dl></div><div class="list-of-figures"><p><strong>List of Figures</strong></p><dl><dt>22.1. <a href="policy_data_structures.html#id516222">Node Invariants</a></dt><dt>22.2. <a href="policy_data_structures.html#id516278">Underlying Associative Data Structures</a></dt><dt>22.3. <a href="policy_data_structures.html#id516541">Range Iteration in Different Data Structures</a></dt><dt>22.4. <a href="policy_data_structures.html#id516665">Point Iteration in Hash Data Structures</a></dt><dt>22.5. <a href="policy_data_structures.html#id516742">Effect of erase in different underlying data structures</a></dt><dt>22.6. <a href="policy_data_structures.html#id517306">Underlying Priority Queue Data Structures</a></dt><dt>22.7. <a href="policy_data_structures_using.html#id517828">Exception Hierarchy</a></dt><dt>22.8. <a href="policy_data_structures_design.html#id519449">Non-unique Mapping Standard Containers</a></dt><dt>22.9. <a href="policy_data_structures_design.html#fig.pbds_embedded_lists_2"> | |
16801 | + </a></span></dt><dt><span class="appendix"><a href="appendix_gfdl.html">E. GNU Free Documentation License</a></span></dt></dl></dd></dl></div><div class="list-of-figures"><p><strong>List of Figures</strong></p><dl><dt>22.1. <a href="policy_data_structures.html#id694708">Node Invariants</a></dt><dt>22.2. <a href="policy_data_structures.html#id694764">Underlying Associative Data Structures</a></dt><dt>22.3. <a href="policy_data_structures.html#id695027">Range Iteration in Different Data Structures</a></dt><dt>22.4. <a href="policy_data_structures.html#id695152">Point Iteration in Hash Data Structures</a></dt><dt>22.5. <a href="policy_data_structures.html#id695229">Effect of erase in different underlying data structures</a></dt><dt>22.6. <a href="policy_data_structures.html#id695792">Underlying Priority Queue Data Structures</a></dt><dt>22.7. <a href="policy_data_structures_using.html#id696315">Exception Hierarchy</a></dt><dt>22.8. <a href="policy_data_structures_design.html#id697936">Non-unique Mapping Standard Containers</a></dt><dt>22.9. <a href="policy_data_structures_design.html#fig.pbds_embedded_lists_2"> | |
16802 | Effect of embedded lists in | |
16803 | <code class="classname">std::multimap</code> | |
16804 | - </a></dt><dt>22.10. <a href="policy_data_structures_design.html#id519645">Non-unique Mapping Containers</a></dt><dt>22.11. <a href="policy_data_structures_design.html#id519810">Point Iterator Hierarchy</a></dt><dt>22.12. <a href="policy_data_structures_design.html#id519922">Invalidation Guarantee Tags Hierarchy</a></dt><dt>22.13. <a href="policy_data_structures_design.html#id520174">Container Tag Hierarchy</a></dt><dt>22.14. <a href="policy_data_structures_design.html#id520506">Hash functions, ranged-hash functions, and | |
16805 | - range-hashing functions</a></dt><dt>22.15. <a href="policy_data_structures_design.html#id521043">Insert hash sequence diagram</a></dt><dt>22.16. <a href="policy_data_structures_design.html#id521102">Insert hash sequence diagram with a null policy</a></dt><dt>22.17. <a href="policy_data_structures_design.html#id521241">Hash policy class diagram</a></dt><dt>22.18. <a href="policy_data_structures_design.html#id521400">Balls and bins</a></dt><dt>22.19. <a href="policy_data_structures_design.html#id521656">Insert resize sequence diagram</a></dt><dt>22.20. <a href="policy_data_structures_design.html#id521721">Standard resize policy trigger sequence | |
16806 | - diagram</a></dt><dt>22.21. <a href="policy_data_structures_design.html#id521756">Standard resize policy size sequence | |
16807 | - diagram</a></dt><dt>22.22. <a href="policy_data_structures_design.html#id522406">Tree node invariants</a></dt><dt>22.23. <a href="policy_data_structures_design.html#id522484">Tree node invalidation</a></dt><dt>22.24. <a href="policy_data_structures_design.html#id522594">A tree and its update policy</a></dt><dt>22.25. <a href="policy_data_structures_design.html#id522691">Restoring node invariants</a></dt><dt>22.26. <a href="policy_data_structures_design.html#id522759">Insert update sequence</a></dt><dt>22.27. <a href="policy_data_structures_design.html#id522945">Useless update path</a></dt><dt>22.28. <a href="policy_data_structures_design.html#id523317">A PATRICIA trie</a></dt><dt>22.29. <a href="policy_data_structures_design.html#id523405">A trie and its update policy</a></dt><dt>22.30. <a href="policy_data_structures_design.html#id523660">A simple list</a></dt><dt>22.31. <a href="policy_data_structures_design.html#id523706">The counter algorithm</a></dt><dt>22.32. <a href="policy_data_structures_design.html#id524238">Underlying Priority-Queue Data-Structures.</a></dt><dt>22.33. <a href="policy_data_structures_design.html#id524529">Priority-Queue Data-Structure Tags.</a></dt><dt>B.1. <a href="appendix_porting.html#id552980">Configure and Build File Dependencies</a></dt></dl></div><div class="list-of-tables"><p><strong>List of Tables</strong></p><dl><dt>1.1. <a href="status.html#id399802">C++ 1998/2003 Implementation Status</a></dt><dt>1.2. <a href="status.html#id431070">C++ 2011 Implementation Status</a></dt><dt>1.3. <a href="status.html#id433760">C++ TR1 Implementation Status</a></dt><dt>1.4. <a href="status.html#id473964">C++ TR 24733 Implementation Status</a></dt><dt>3.1. <a href="using.html#id478045">C++ Command Options</a></dt><dt>3.2. <a href="using_headers.html#id478273">C++ 1998 Library Headers</a></dt><dt>3.3. <a href="using_headers.html#id478577">C++ 1998 Library Headers for C Library Facilities</a></dt><dt>3.4. <a href="using_headers.html#id478783">C++ 2011 Library Headers</a></dt><dt>3.5. <a href="using_headers.html#id479212">C++ 2011 Library Headers for C Library Facilities</a></dt><dt>3.6. <a href="using_headers.html#id479461">C++ TR 1 Library Headers</a></dt><dt>3.7. <a href="using_headers.html#id479602">C++ TR 1 Library Headers for C Library Facilities</a></dt><dt>3.8. <a href="using_headers.html#id479778">C++ TR 24733 Decimal Floating-Point Header</a></dt><dt>3.9. <a href="using_headers.html#id479824">C++ ABI Headers</a></dt><dt>3.10. <a href="using_headers.html#id479877">Extension Headers</a></dt><dt>3.11. <a href="using_headers.html#id480175">Extension Debug Headers</a></dt><dt>3.12. <a href="using_headers.html#id480298">Extension Profile Headers</a></dt><dt>3.13. <a href="using_headers.html#id480409">Extension Parallel Headers</a></dt><dt>17.1. <a href="bk01pt03ch17s03.html#id506882">Debugging Containers</a></dt><dt>17.2. <a href="bk01pt03ch17s03.html#id507256">Debugging Containers C++11</a></dt><dt>18.1. <a href="bk01pt03ch18s03.html#id508844">Parallel Algorithms</a></dt><dt>19.1. <a href="bk01pt03ch19s02.html#id510967">Profile Code Location</a></dt><dt>19.2. <a href="bk01pt03ch19s07.html#id511849">Profile Diagnostics</a></dt><dt>21.1. <a href="bk01pt03ch21s02.html#id515279">Bitmap Allocator Memory Map</a></dt><dt>B.1. <a href="documentation_hacking.html#id553885">Doxygen Prerequisites</a></dt><dt>B.2. <a href="documentation_hacking.html#id554388">HTML to Doxygen Markup Comparison</a></dt><dt>B.3. <a href="documentation_hacking.html#id554550">Docbook Prerequisites</a></dt><dt>B.4. <a href="documentation_hacking.html#id555059">HTML to Docbook XML Markup Comparison</a></dt><dt>B.5. <a href="documentation_hacking.html#id555261">Docbook XML Element Use</a></dt><dt>B.6. <a href="api.html#id560820">Extension Allocators</a></dt><dt>B.7. <a href="api.html#id561050">Extension Allocators Continued</a></dt></dl></div><div class="list-of-equations"><p><strong>List of Equations</strong></p><dl><dt>22.1. <a href="policy_data_structures_design.html#id520621">Ranged Hash Function</a></dt><dt>22.2. <a href="policy_data_structures_design.html#id520670">Range-Hashing, Division Method</a></dt><dt>22.3. <a href="policy_data_structures_design.html#id520708">Division via Prime Modulo</a></dt><dt>22.4. <a href="policy_data_structures_design.html#id520723">Division via Bit Mask</a></dt><dt>22.5. <a href="policy_data_structures_design.html#id520803"> | |
16808 | + </a></dt><dt>22.10. <a href="policy_data_structures_design.html#id698132">Non-unique Mapping Containers</a></dt><dt>22.11. <a href="policy_data_structures_design.html#id698297">Point Iterator Hierarchy</a></dt><dt>22.12. <a href="policy_data_structures_design.html#id698408">Invalidation Guarantee Tags Hierarchy</a></dt><dt>22.13. <a href="policy_data_structures_design.html#id698660">Container Tag Hierarchy</a></dt><dt>22.14. <a href="policy_data_structures_design.html#id698993">Hash functions, ranged-hash functions, and | |
16809 | + range-hashing functions</a></dt><dt>22.15. <a href="policy_data_structures_design.html#id699530">Insert hash sequence diagram</a></dt><dt>22.16. <a href="policy_data_structures_design.html#id699588">Insert hash sequence diagram with a null policy</a></dt><dt>22.17. <a href="policy_data_structures_design.html#id699728">Hash policy class diagram</a></dt><dt>22.18. <a href="policy_data_structures_design.html#id699887">Balls and bins</a></dt><dt>22.19. <a href="policy_data_structures_design.html#id700143">Insert resize sequence diagram</a></dt><dt>22.20. <a href="policy_data_structures_design.html#id700208">Standard resize policy trigger sequence | |
16810 | + diagram</a></dt><dt>22.21. <a href="policy_data_structures_design.html#id700243">Standard resize policy size sequence | |
16811 | + diagram</a></dt><dt>22.22. <a href="policy_data_structures_design.html#id700892">Tree node invariants</a></dt><dt>22.23. <a href="policy_data_structures_design.html#id700971">Tree node invalidation</a></dt><dt>22.24. <a href="policy_data_structures_design.html#id701081">A tree and its update policy</a></dt><dt>22.25. <a href="policy_data_structures_design.html#id701178">Restoring node invariants</a></dt><dt>22.26. <a href="policy_data_structures_design.html#id701246">Insert update sequence</a></dt><dt>22.27. <a href="policy_data_structures_design.html#id701432">Useless update path</a></dt><dt>22.28. <a href="policy_data_structures_design.html#id701804">A PATRICIA trie</a></dt><dt>22.29. <a href="policy_data_structures_design.html#id701891">A trie and its update policy</a></dt><dt>22.30. <a href="policy_data_structures_design.html#id702146">A simple list</a></dt><dt>22.31. <a href="policy_data_structures_design.html#id702193">The counter algorithm</a></dt><dt>22.32. <a href="policy_data_structures_design.html#id702724">Underlying Priority-Queue Data-Structures.</a></dt><dt>22.33. <a href="policy_data_structures_design.html#id703016">Priority-Queue Data-Structure Tags.</a></dt><dt>B.1. <a href="appendix_porting.html#id731466">Configure and Build File Dependencies</a></dt></dl></div><div class="list-of-tables"><p><strong>List of Tables</strong></p><dl><dt>1.1. <a href="status.html#id582573">C++ 1998/2003 Implementation Status</a></dt><dt>1.2. <a href="status.html#id629236">C++ 2011 Implementation Status</a></dt><dt>1.3. <a href="status.html#id612238">C++ TR1 Implementation Status</a></dt><dt>1.4. <a href="status.html#id652443">C++ TR 24733 Implementation Status</a></dt><dt>3.1. <a href="using.html#id656533">C++ Command Options</a></dt><dt>3.2. <a href="using_headers.html#id656761">C++ 1998 Library Headers</a></dt><dt>3.3. <a href="using_headers.html#id657065">C++ 1998 Library Headers for C Library Facilities</a></dt><dt>3.4. <a href="using_headers.html#id657271">C++ 2011 Library Headers</a></dt><dt>3.5. <a href="using_headers.html#id657700">C++ 2011 Library Headers for C Library Facilities</a></dt><dt>3.6. <a href="using_headers.html#id657949">C++ TR 1 Library Headers</a></dt><dt>3.7. <a href="using_headers.html#id658090">C++ TR 1 Library Headers for C Library Facilities</a></dt><dt>3.8. <a href="using_headers.html#id658266">C++ TR 24733 Decimal Floating-Point Header</a></dt><dt>3.9. <a href="using_headers.html#id658312">C++ ABI Headers</a></dt><dt>3.10. <a href="using_headers.html#id658365">Extension Headers</a></dt><dt>3.11. <a href="using_headers.html#id658663">Extension Debug Headers</a></dt><dt>3.12. <a href="using_headers.html#id658786">Extension Profile Headers</a></dt><dt>3.13. <a href="using_headers.html#id658897">Extension Parallel Headers</a></dt><dt>17.1. <a href="bk01pt03ch17s03.html#id685368">Debugging Containers</a></dt><dt>17.2. <a href="bk01pt03ch17s03.html#id685742">Debugging Containers C++11</a></dt><dt>18.1. <a href="bk01pt03ch18s03.html#id687330">Parallel Algorithms</a></dt><dt>19.1. <a href="bk01pt03ch19s02.html#id689453">Profile Code Location</a></dt><dt>19.2. <a href="bk01pt03ch19s07.html#id690335">Profile Diagnostics</a></dt><dt>21.1. <a href="bk01pt03ch21s02.html#id693765">Bitmap Allocator Memory Map</a></dt><dt>B.1. <a href="documentation_hacking.html#id732372">Doxygen Prerequisites</a></dt><dt>B.2. <a href="documentation_hacking.html#id732889">HTML to Doxygen Markup Comparison</a></dt><dt>B.3. <a href="documentation_hacking.html#id733051">Docbook Prerequisites</a></dt><dt>B.4. <a href="documentation_hacking.html#id733562">HTML to Docbook XML Markup Comparison</a></dt><dt>B.5. <a href="documentation_hacking.html#id733764">Docbook XML Element Use</a></dt><dt>B.6. <a href="api.html#id739323">Extension Allocators</a></dt><dt>B.7. <a href="api.html#id739553">Extension Allocators Continued</a></dt></dl></div><div class="list-of-equations"><p><strong>List of Equations</strong></p><dl><dt>22.1. <a href="policy_data_structures_design.html#id699108">Ranged Hash Function</a></dt><dt>22.2. <a href="policy_data_structures_design.html#id699157">Range-Hashing, Division Method</a></dt><dt>22.3. <a href="policy_data_structures_design.html#id699194">Division via Prime Modulo</a></dt><dt>22.4. <a href="policy_data_structures_design.html#id699210">Division via Bit Mask</a></dt><dt>22.5. <a href="policy_data_structures_design.html#id699290"> | |
16812 | A Standard String Hash Function | |
16813 | - </a></dt><dt>22.6. <a href="policy_data_structures_design.html#id520854"> | |
16814 | + </a></dt><dt>22.6. <a href="policy_data_structures_design.html#id699341"> | |
16815 | Only k String DNA Hash | |
16816 | - </a></dt><dt>22.7. <a href="policy_data_structures_design.html#id521446"> | |
16817 | + </a></dt><dt>22.7. <a href="policy_data_structures_design.html#id699932"> | |
16818 | Probability of Probe Sequence of Length k | |
16819 | - </a></dt><dt>22.8. <a href="policy_data_structures_design.html#id521502"> | |
16820 | + </a></dt><dt>22.8. <a href="policy_data_structures_design.html#id699989"> | |
16821 | Probability Probe Sequence in Some Bin | |
16822 | - </a></dt></dl></div></div><div class="navfooter"><hr/><table width="100%" summary="Navigation footer"><tr><td align="left"><a accesskey="p" href="../index.html">Prev</a> </td><td align="center"> </td><td align="right"> <a accesskey="n" href="intro.html">Next</a></td></tr><tr><td align="left" valign="top">The GNU C++ Library </td><td align="center"><a accesskey="h" href="../index.html">Home</a></td><td align="right" valign="top"> Part I. | |
16823 | + </a></dt></dl></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="../index.html">Prev</a> </td><td width="20%" align="center"> </td><td width="40%" align="right"> <a accesskey="n" href="intro.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">The GNU C++ Library </td><td width="20%" align="center"><a accesskey="h" href="../index.html">Home</a></td><td width="40%" align="right" valign="top"> Part I. | |
16824 | Introduction | |
16825 | ||
16826 | </td></tr></table></div></body></html> | |
16827 | Index: libstdc++-v3/doc/html/manual/bk01pt03ch30s03.html | |
16828 | =================================================================== | |
9f95000d AM |
16829 | --- libstdc++-v3/doc/html/manual/bk01pt03ch30s03.html (.../tags/gcc_4_7_2_release) (wersja 192468) |
16830 | +++ libstdc++-v3/doc/html/manual/bk01pt03ch30s03.html (.../branches/gcc-4_7-branch) (wersja 192468) | |
5a87b929 AM |
16831 | @@ -1,6 +1,6 @@ |
16832 | <?xml version="1.0" encoding="UTF-8" standalone="no"?> | |
16833 | -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> | |
16834 | -<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Use</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1"/><meta name="keywords" content=" ISO C++ , library "/><meta name="keywords" content=" ISO C++ , library "/><meta name="keywords" content=" ISO C++ , runtime , library "/><link rel="home" href="../index.html" title="The GNU C++ Library"/><link rel="up" href="ext_concurrency.html" title="Chapter 30. Concurrency"/><link rel="prev" href="bk01pt03ch30s02.html" title="Implementation"/><link rel="next" href="bk01pt04.html" title="Part IV. Appendices"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Use</th></tr><tr><td align="left"><a accesskey="p" href="bk01pt03ch30s02.html">Prev</a> </td><th width="60%" align="center">Chapter 30. Concurrency</th><td align="right"> <a accesskey="n" href="bk01pt04.html">Next</a></td></tr></table><hr/></div><div class="section" title="Use"><div class="titlepage"><div><div><h2 class="title"><a id="manual.ext.concurrency.use"/>Use</h2></div></div></div><p>Typical usage of the last two constructs is demonstrated as follows: | |
16835 | +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> | |
16836 | +<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Use</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1" /><meta name="keywords" content=" ISO C++ , library " /><meta name="keywords" content=" ISO C++ , library " /><meta name="keywords" content=" ISO C++ , runtime , library " /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="ext_concurrency.html" title="Chapter 30. Concurrency" /><link rel="prev" href="bk01pt03ch30s02.html" title="Implementation" /><link rel="next" href="bk01pt04.html" title="Part IV. Appendices" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Use</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="bk01pt03ch30s02.html">Prev</a> </td><th width="60%" align="center">Chapter 30. Concurrency</th><td width="20%" align="right"> <a accesskey="n" href="bk01pt04.html">Next</a></td></tr></table><hr /></div><div class="section" title="Use"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="manual.ext.concurrency.use"></a>Use</h2></div></div></div><p>Typical usage of the last two constructs is demonstrated as follows: | |
16837 | </p><pre class="programlisting"> | |
16838 | #include <ext/concurrence.h> | |
16839 | ||
16840 | @@ -31,6 +31,6 @@ | |
16841 | concurrence-related errors. These classes | |
16842 | are: <code class="code">__concurrence_lock_error</code>, <code class="code">__concurrence_unlock_error</code>, <code class="code">__concurrence_wait_error</code>, | |
16843 | and <code class="code">__concurrence_broadcast_error</code>. | |
16844 | -</p></div><div class="navfooter"><hr/><table width="100%" summary="Navigation footer"><tr><td align="left"><a accesskey="p" href="bk01pt03ch30s02.html">Prev</a> </td><td align="center"><a accesskey="u" href="ext_concurrency.html">Up</a></td><td align="right"> <a accesskey="n" href="bk01pt04.html">Next</a></td></tr><tr><td align="left" valign="top">Implementation </td><td align="center"><a accesskey="h" href="../index.html">Home</a></td><td align="right" valign="top"> Part IV. | |
16845 | +</p></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="bk01pt03ch30s02.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="ext_concurrency.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="bk01pt04.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Implementation </td><td width="20%" align="center"><a accesskey="h" href="../index.html">Home</a></td><td width="40%" align="right" valign="top"> Part IV. | |
16846 | Appendices | |
16847 | </td></tr></table></div></body></html> | |
16848 | Index: libstdc++-v3/doc/html/manual/bk01pt02ch05s02.html | |
16849 | =================================================================== | |
9f95000d AM |
16850 | --- libstdc++-v3/doc/html/manual/bk01pt02ch05s02.html (.../tags/gcc_4_7_2_release) (wersja 192468) |
16851 | +++ libstdc++-v3/doc/html/manual/bk01pt02ch05s02.html (.../branches/gcc-4_7-branch) (wersja 192468) | |
5a87b929 AM |
16852 | @@ -1,9 +1,9 @@ |
16853 | <?xml version="1.0" encoding="UTF-8" standalone="no"?> | |
16854 | -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> | |
16855 | -<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Concept Checking</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1"/><meta name="keywords" content=" ISO C++ , library "/><meta name="keywords" content=" ISO C++ , runtime , library "/><link rel="home" href="../index.html" title="The GNU C++ Library"/><link rel="up" href="diagnostics.html" title="Chapter 5. Diagnostics"/><link rel="prev" href="diagnostics.html" title="Chapter 5. Diagnostics"/><link rel="next" href="utilities.html" title="Chapter 6. Utilities"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Concept Checking</th></tr><tr><td align="left"><a accesskey="p" href="diagnostics.html">Prev</a> </td><th width="60%" align="center">Chapter 5. | |
16856 | +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> | |
16857 | +<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Concept Checking</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1" /><meta name="keywords" content=" ISO C++ , library " /><meta name="keywords" content=" ISO C++ , runtime , library " /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="diagnostics.html" title="Chapter 5. Diagnostics" /><link rel="prev" href="diagnostics.html" title="Chapter 5. Diagnostics" /><link rel="next" href="utilities.html" title="Chapter 6. Utilities" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Concept Checking</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="diagnostics.html">Prev</a> </td><th width="60%" align="center">Chapter 5. | |
16858 | Diagnostics | |
16859 | ||
16860 | -</th><td align="right"> <a accesskey="n" href="utilities.html">Next</a></td></tr></table><hr/></div><div class="section" title="Concept Checking"><div class="titlepage"><div><div><h2 class="title"><a id="std.diagnostics.concept_checking"/>Concept Checking</h2></div></div></div><p> | |
16861 | +</th><td width="20%" align="right"> <a accesskey="n" href="utilities.html">Next</a></td></tr></table><hr /></div><div class="section" title="Concept Checking"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="std.diagnostics.concept_checking"></a>Concept Checking</h2></div></div></div><p> | |
16862 | In 1999, SGI added <span class="quote">“<span class="quote">concept checkers</span>”</span> to their | |
16863 | implementation of the STL: code which checked the template | |
16864 | parameters of instantiated pieces of the STL, in order to insure | |
16865 | @@ -21,7 +21,7 @@ | |
16866 | The primary author of the checking code, Jeremy Siek, had already | |
16867 | started work on a replacement implementation. The new code was | |
16868 | formally reviewed and accepted into | |
16869 | - <a class="link" href="http://www.boost.org/libs/concept_check/concept_check.htm">the | |
16870 | + <a class="link" href="http://www.boost.org/libs/concept_check/concept_check.htm" target="_top">the | |
16871 | Boost libraries</a>, and we are pleased to incorporate it into the | |
16872 | GNU C++ library. | |
16873 | </p><p> | |
16874 | @@ -41,10 +41,10 @@ | |
16875 | for example template argument types may need to be complete when used in | |
16876 | a template definition, rather than at the point of instantiation. | |
16877 | There are no plans to address these shortcomings. | |
16878 | - </p></div><div class="navfooter"><hr/><table width="100%" summary="Navigation footer"><tr><td align="left"><a accesskey="p" href="diagnostics.html">Prev</a> </td><td align="center"><a accesskey="u" href="diagnostics.html">Up</a></td><td align="right"> <a accesskey="n" href="utilities.html">Next</a></td></tr><tr><td align="left" valign="top">Chapter 5. | |
16879 | + </p></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="diagnostics.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="diagnostics.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="utilities.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Chapter 5. | |
16880 | Diagnostics | |
16881 | ||
16882 | - </td><td align="center"><a accesskey="h" href="../index.html">Home</a></td><td align="right" valign="top"> Chapter 6. | |
16883 | + </td><td width="20%" align="center"><a accesskey="h" href="../index.html">Home</a></td><td width="40%" align="right" valign="top"> Chapter 6. | |
16884 | Utilities | |
16885 | ||
16886 | </td></tr></table></div></body></html> | |
16887 | Index: libstdc++-v3/doc/html/manual/bk01pt03ch20s04.html | |
16888 | =================================================================== | |
9f95000d AM |
16889 | --- libstdc++-v3/doc/html/manual/bk01pt03ch20s04.html (.../tags/gcc_4_7_2_release) (wersja 192468) |
16890 | +++ libstdc++-v3/doc/html/manual/bk01pt03ch20s04.html (.../branches/gcc-4_7-branch) (wersja 192468) | |
5a87b929 AM |
16891 | @@ -1,6 +1,6 @@ |
16892 | <?xml version="1.0" encoding="UTF-8" standalone="no"?> | |
16893 | -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> | |
16894 | -<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Single Thread Example</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1"/><meta name="keywords" content=" ISO C++ , allocator "/><meta name="keywords" content=" ISO C++ , library "/><meta name="keywords" content=" ISO C++ , runtime , library "/><link rel="home" href="../index.html" title="The GNU C++ Library"/><link rel="up" href="mt_allocator.html" title="Chapter 20. The mt_allocator"/><link rel="prev" href="bk01pt03ch20s03.html" title="Implementation"/><link rel="next" href="bk01pt03ch20s05.html" title="Multiple Thread Example"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Single Thread Example</th></tr><tr><td align="left"><a accesskey="p" href="bk01pt03ch20s03.html">Prev</a> </td><th width="60%" align="center">Chapter 20. The mt_allocator</th><td align="right"> <a accesskey="n" href="bk01pt03ch20s05.html">Next</a></td></tr></table><hr/></div><div class="section" title="Single Thread Example"><div class="titlepage"><div><div><h2 class="title"><a id="allocator.mt.example_single"/>Single Thread Example</h2></div></div></div><p> | |
16895 | +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> | |
16896 | +<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Single Thread Example</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1" /><meta name="keywords" content=" ISO C++ , allocator " /><meta name="keywords" content=" ISO C++ , library " /><meta name="keywords" content=" ISO C++ , runtime , library " /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="mt_allocator.html" title="Chapter 20. The mt_allocator" /><link rel="prev" href="bk01pt03ch20s03.html" title="Implementation" /><link rel="next" href="bk01pt03ch20s05.html" title="Multiple Thread Example" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Single Thread Example</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="bk01pt03ch20s03.html">Prev</a> </td><th width="60%" align="center">Chapter 20. The mt_allocator</th><td width="20%" align="right"> <a accesskey="n" href="bk01pt03ch20s05.html">Next</a></td></tr></table><hr /></div><div class="section" title="Single Thread Example"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="allocator.mt.example_single"></a>Single Thread Example</h2></div></div></div><p> | |
16897 | Let's start by describing how the data on a freelist is laid out in memory. | |
16898 | This is the first two blocks in freelist for thread id 3 in bin 3 (8 bytes): | |
16899 | </p><pre class="programlisting"> | |
16900 | @@ -76,4 +76,4 @@ | |
16901 | The decision to add deallocated blocks to the front of the freelist was made | |
16902 | after a set of performance measurements that showed that this is roughly 10% | |
16903 | faster than maintaining a set of "last pointers" as well. | |
16904 | -</p></div><div class="navfooter"><hr/><table width="100%" summary="Navigation footer"><tr><td align="left"><a accesskey="p" href="bk01pt03ch20s03.html">Prev</a> </td><td align="center"><a accesskey="u" href="mt_allocator.html">Up</a></td><td align="right"> <a accesskey="n" href="bk01pt03ch20s05.html">Next</a></td></tr><tr><td align="left" valign="top">Implementation </td><td align="center"><a accesskey="h" href="../index.html">Home</a></td><td align="right" valign="top"> Multiple Thread Example</td></tr></table></div></body></html> | |
16905 | +</p></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="bk01pt03ch20s03.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="mt_allocator.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="bk01pt03ch20s05.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Implementation </td><td width="20%" align="center"><a accesskey="h" href="../index.html">Home</a></td><td width="40%" align="right" valign="top"> Multiple Thread Example</td></tr></table></div></body></html> | |
16906 | Index: libstdc++-v3/doc/html/manual/numerics_and_c.html | |
16907 | =================================================================== | |
9f95000d AM |
16908 | --- libstdc++-v3/doc/html/manual/numerics_and_c.html (.../tags/gcc_4_7_2_release) (wersja 192468) |
16909 | +++ libstdc++-v3/doc/html/manual/numerics_and_c.html (.../branches/gcc-4_7-branch) (wersja 192468) | |
5a87b929 AM |
16910 | @@ -1,9 +1,9 @@ |
16911 | <?xml version="1.0" encoding="UTF-8" standalone="no"?> | |
16912 | -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> | |
16913 | -<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Interacting with C</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1"/><meta name="keywords" content=" ISO C++ , library "/><meta name="keywords" content=" ISO C++ , runtime , library "/><link rel="home" href="../index.html" title="The GNU C++ Library"/><link rel="up" href="numerics.html" title="Chapter 12. Numerics"/><link rel="prev" href="generalized_numeric_operations.html" title="Generalized Operations"/><link rel="next" href="io.html" title="Chapter 13. Input and Output"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Interacting with C</th></tr><tr><td align="left"><a accesskey="p" href="generalized_numeric_operations.html">Prev</a> </td><th width="60%" align="center">Chapter 12. | |
16914 | +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> | |
16915 | +<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Interacting with C</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1" /><meta name="keywords" content=" ISO C++ , library " /><meta name="keywords" content=" ISO C++ , runtime , library " /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="numerics.html" title="Chapter 12. Numerics" /><link rel="prev" href="generalized_numeric_operations.html" title="Generalized Operations" /><link rel="next" href="io.html" title="Chapter 13. Input and Output" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Interacting with C</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="generalized_numeric_operations.html">Prev</a> </td><th width="60%" align="center">Chapter 12. | |
16916 | Numerics | |
16917 | ||
16918 | -</th><td align="right"> <a accesskey="n" href="io.html">Next</a></td></tr></table><hr/></div><div class="section" title="Interacting with C"><div class="titlepage"><div><div><h2 class="title"><a id="std.numerics.c"/>Interacting with C</h2></div></div></div><div class="section" title="Numerics vs. Arrays"><div class="titlepage"><div><div><h3 class="title"><a id="numerics.c.array"/>Numerics vs. Arrays</h3></div></div></div><p>One of the major reasons why FORTRAN can chew through numbers so well | |
16919 | +</th><td width="20%" align="right"> <a accesskey="n" href="io.html">Next</a></td></tr></table><hr /></div><div class="section" title="Interacting with C"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="std.numerics.c"></a>Interacting with C</h2></div></div></div><div class="section" title="Numerics vs. Arrays"><div class="titlepage"><div><div><h3 class="title"><a id="numerics.c.array"></a>Numerics vs. Arrays</h3></div></div></div><p>One of the major reasons why FORTRAN can chew through numbers so well | |
16920 | is that it is defined to be free of pointer aliasing, an assumption | |
16921 | that C89 is not allowed to make, and neither is C++98. C99 adds a new | |
16922 | keyword, <code class="code">restrict</code>, to apply to individual pointers. The | |
16923 | @@ -18,7 +18,7 @@ | |
16924 | speaking this is only one of the five template classes, and they are | |
16925 | designed to be familiar to people who have worked with the BLAS | |
16926 | libraries before. | |
16927 | - </p></div><div class="section" title="C99"><div class="titlepage"><div><div><h3 class="title"><a id="numerics.c.c99"/>C99</h3></div></div></div><p>In addition to the other topics on this page, we'll note here some | |
16928 | + </p></div><div class="section" title="C99"><div class="titlepage"><div><div><h3 class="title"><a id="numerics.c.c99"></a>C99</h3></div></div></div><p>In addition to the other topics on this page, we'll note here some | |
16929 | of the C99 features that appear in libstdc++. | |
16930 | </p><p>The C99 features depend on the <code class="code">--enable-c99</code> configure flag. | |
16931 | This flag is already on by default, but it can be disabled by the | |
16932 | @@ -31,7 +31,7 @@ | |
16933 | are supported, as is the <code class="code">lldiv_t</code> typedef. Also supported | |
16934 | are the wide character functions using 'long long', like | |
16935 | <code class="code">wcstoll</code>. | |
16936 | - </p></div></div><div class="navfooter"><hr/><table width="100%" summary="Navigation footer"><tr><td align="left"><a accesskey="p" href="generalized_numeric_operations.html">Prev</a> </td><td align="center"><a accesskey="u" href="numerics.html">Up</a></td><td align="right"> <a accesskey="n" href="io.html">Next</a></td></tr><tr><td align="left" valign="top">Generalized Operations </td><td align="center"><a accesskey="h" href="../index.html">Home</a></td><td align="right" valign="top"> Chapter 13. | |
16937 | + </p></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="generalized_numeric_operations.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="numerics.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="io.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Generalized Operations </td><td width="20%" align="center"><a accesskey="h" href="../index.html">Home</a></td><td width="40%" align="right" valign="top"> Chapter 13. | |
16938 | Input and Output | |
16939 | ||
16940 | </td></tr></table></div></body></html> | |
16941 | Index: libstdc++-v3/doc/html/manual/appendix_gpl.html | |
16942 | =================================================================== | |
9f95000d AM |
16943 | --- libstdc++-v3/doc/html/manual/appendix_gpl.html (.../tags/gcc_4_7_2_release) (wersja 192468) |
16944 | +++ libstdc++-v3/doc/html/manual/appendix_gpl.html (.../branches/gcc-4_7-branch) (wersja 192468) | |
5a87b929 AM |
16945 | @@ -1,20 +1,20 @@ |
16946 | <?xml version="1.0" encoding="UTF-8" standalone="no"?> | |
16947 | -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> | |
16948 | -<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Appendix D. GNU General Public License version 3</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1"/><meta name="keywords" content=" ISO C++ , runtime , library "/><link rel="home" href="../index.html" title="The GNU C++ Library"/><link rel="up" href="bk01pt04.html" title="Part IV. Appendices"/><link rel="prev" href="appendix_free.html" title="Appendix C. Free Software Needs Free Documentation"/><link rel="next" href="appendix_gfdl.html" title="Appendix E. GNU Free Documentation License"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Appendix D. | |
16949 | +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> | |
16950 | +<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Appendix D. GNU General Public License version 3</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1" /><meta name="keywords" content=" ISO C++ , runtime , library " /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="bk01pt04.html" title="Part IV. Appendices" /><link rel="prev" href="appendix_free.html" title="Appendix C. Free Software Needs Free Documentation" /><link rel="next" href="appendix_gfdl.html" title="Appendix E. GNU Free Documentation License" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Appendix D. | |
16951 | <acronym class="acronym">GNU</acronym> General Public License version 3 | |
16952 | - </th></tr><tr><td align="left"><a accesskey="p" href="appendix_free.html">Prev</a> </td><th width="60%" align="center">Part IV. | |
16953 | + </th></tr><tr><td width="20%" align="left"><a accesskey="p" href="appendix_free.html">Prev</a> </td><th width="60%" align="center">Part IV. | |
16954 | Appendices | |
16955 | -</th><td align="right"> <a accesskey="n" href="appendix_gfdl.html">Next</a></td></tr></table><hr/></div><div class="appendix" title="Appendix D. GNU General Public License version 3"><div class="titlepage"><div><div><h1 class="title"><a id="appendix.gpl-3.0"/> | |
16956 | +</th><td width="20%" align="right"> <a accesskey="n" href="appendix_gfdl.html">Next</a></td></tr></table><hr /></div><div class="appendix" title="Appendix D. GNU General Public License version 3"><div class="titlepage"><div><div><h1 class="title"><a id="appendix.gpl-3.0"></a> | |
16957 | <acronym class="acronym">GNU</acronym> General Public License version 3 | |
16958 | </h1></div></div></div><p> | |
16959 | Version 3, 29 June 2007 | |
16960 | </p><p> | |
16961 | Copyright © 2007 Free Software Foundation, Inc. | |
16962 | - <a class="link" href="http://www.fsf.org/">http://www.fsf.org/</a> | |
16963 | + <a class="link" href="http://www.fsf.org/" target="_top">http://www.fsf.org/</a> | |
16964 | </p><p> | |
16965 | Everyone is permitted to copy and distribute verbatim copies of this license | |
16966 | document, but changing it is not allowed. | |
16967 | - </p><h2><a id="gpl-3-preamble"/> | |
16968 | + </p><h2><a id="gpl-3-preamble"></a> | |
16969 | Preamble | |
16970 | </h2><p> | |
16971 | The <acronym class="acronym">GNU</acronym> General Public License is a free, copyleft | |
16972 | @@ -78,9 +78,9 @@ | |
16973 | </p><p> | |
16974 | The precise terms and conditions for copying, distribution and modification | |
16975 | follow. | |
16976 | - </p><h2><a id="id564464"/> | |
16977 | + </p><h2><a id="id742968"></a> | |
16978 | TERMS AND CONDITIONS | |
16979 | - </h2><h2><a id="gpl-3-definitions"/> | |
16980 | + </h2><h2><a id="gpl-3-definitions"></a> | |
16981 | 0. Definitions. | |
16982 | </h2><p> | |
16983 | “This License” refers to version 3 of the <acronym class="acronym">GNU</acronym> | |
16984 | @@ -122,7 +122,7 @@ | |
16985 | License, and how to view a copy of this License. If the interface presents | |
16986 | a list of user commands or options, such as a menu, a prominent item in the | |
16987 | list meets this criterion. | |
16988 | - </p><h2><a id="SourceCode"/> | |
16989 | + </p><h2><a id="SourceCode"></a> | |
16990 | 1. Source Code. | |
16991 | </h2><p> | |
16992 | The “source code” for a work means the preferred form of the | |
16993 | @@ -162,7 +162,7 @@ | |
16994 | automatically from other parts of the Corresponding Source. | |
16995 | </p><p> | |
16996 | The Corresponding Source for a work in source code form is that same work. | |
16997 | - </p><h2><a id="BasicPermissions"/> | |
16998 | + </p><h2><a id="BasicPermissions"></a> | |
16999 | 2. Basic Permissions. | |
17000 | </h2><p> | |
17001 | All rights granted under this License are granted for the term of copyright | |
17002 | @@ -187,7 +187,7 @@ | |
17003 | Conveying under any other circumstances is permitted solely under the | |
17004 | conditions stated below. Sublicensing is not allowed; section 10 makes it | |
17005 | unnecessary. | |
17006 | - </p><h2><a id="Protecting"/> | |
17007 | + </p><h2><a id="Protecting"></a> | |
17008 | 3. Protecting Users’ Legal Rights From Anti-Circumvention Law. | |
17009 | </h2><p> | |
17010 | No covered work shall be deemed part of an effective technological measure | |
17011 | @@ -202,7 +202,7 @@ | |
17012 | the work as a means of enforcing, against the work’s users, your or | |
17013 | third parties’ legal rights to forbid circumvention of technological | |
17014 | measures. | |
17015 | - </p><h2><a id="ConveyingVerbatim"/> | |
17016 | + </p><h2><a id="ConveyingVerbatim"></a> | |
17017 | 4. Conveying Verbatim Copies. | |
17018 | </h2><p> | |
17019 | You may convey verbatim copies of the Program’s source code as you | |
17020 | @@ -215,13 +215,13 @@ | |
17021 | </p><p> | |
17022 | You may charge any price or no price for each copy that you convey, and you | |
17023 | may offer support or warranty protection for a fee. | |
17024 | - </p><h2><a id="ConveyingModified"/> | |
17025 | + </p><h2><a id="ConveyingModified"></a> | |
17026 | 5. Conveying Modified Source Versions. | |
17027 | </h2><p> | |
17028 | You may convey a work based on the Program, or the modifications to produce | |
17029 | it from the Program, in the form of source code under the terms of section | |
17030 | 4, provided that you also meet all of these conditions: | |
17031 | - </p><div class="orderedlist"><ol class="orderedlist"><li class="listitem"><p> | |
17032 | + </p><div class="orderedlist"><ol class="orderedlist" type="a"><li class="listitem"><p> | |
17033 | The work must carry prominent notices stating that you modified it, and | |
17034 | giving a relevant date. | |
17035 | </p></li><li class="listitem"><p> | |
17036 | @@ -251,13 +251,13 @@ | |
17037 | or legal rights of the compilation’s users beyond what the individual works | |
17038 | permit. Inclusion of a covered work in an aggregate does not cause | |
17039 | this License to apply to the other parts of the aggregate. | |
17040 | - </p><h2><a id="ConveyingNonSource"/> | |
17041 | + </p><h2><a id="ConveyingNonSource"></a> | |
17042 | 6. Conveying Non-Source Forms. | |
17043 | </h2><p> | |
17044 | You may convey a covered work in object code form under the terms of | |
17045 | sections 4 and 5, provided that you also convey the machine-readable | |
17046 | Corresponding Source under the terms of this License, in one of these ways: | |
17047 | - </p><div class="orderedlist"><ol class="orderedlist"><li class="listitem"><p> | |
17048 | + </p><div class="orderedlist"><ol class="orderedlist" type="a"><li class="listitem"><p> | |
17049 | Convey the object code in, or embodied in, a physical product (including | |
17050 | a physical distribution medium), accompanied by the Corresponding Source | |
17051 | fixed on a durable physical medium customarily used for software | |
17052 | @@ -346,7 +346,7 @@ | |
17053 | (and with an implementation available to the public in source code form), | |
17054 | and must require no special password or key for unpacking, reading or | |
17055 | copying. | |
17056 | - </p><h2><a id="AdditionalTerms"/> | |
17057 | + </p><h2><a id="AdditionalTerms"></a> | |
17058 | 7. Additional Terms. | |
17059 | </h2><p> | |
17060 | “Additional permissions” are terms that supplement the terms of | |
17061 | @@ -368,7 +368,7 @@ | |
17062 | Notwithstanding any other provision of this License, for material you add | |
17063 | to a covered work, you may (if authorized by the copyright holders of that | |
17064 | material) supplement the terms of this License with terms: | |
17065 | - </p><div class="orderedlist"><ol class="orderedlist"><li class="listitem"><p> | |
17066 | + </p><div class="orderedlist"><ol class="orderedlist" type="a"><li class="listitem"><p> | |
17067 | Disclaiming warranty or limiting liability differently from the terms | |
17068 | of sections 15 and 16 of this License; or | |
17069 | </p></li><li class="listitem"><p> | |
17070 | @@ -410,7 +410,7 @@ | |
17071 | Additional terms, permissive or non-permissive, may be stated in the form | |
17072 | of a separately written license, or stated as exceptions; the above | |
17073 | requirements apply either way. | |
17074 | - </p><h2><a id="gpl-3-termination"/> | |
17075 | + </p><h2><a id="gpl-3-termination"></a> | |
17076 | 8. Termination. | |
17077 | </h2><p> | |
17078 | You may not propagate or modify a covered work except as expressly provided | |
17079 | @@ -436,7 +436,7 @@ | |
17080 | License. If your rights have been terminated and not permanently | |
17081 | reinstated, you do not qualify to receive new licenses for the same | |
17082 | material under section 10. | |
17083 | - </p><h2><a id="AcceptanceNotRequired"/> | |
17084 | + </p><h2><a id="AcceptanceNotRequired"></a> | |
17085 | 9. Acceptance Not Required for Having Copies. | |
17086 | </h2><p> | |
17087 | You are not required to accept this License in order to receive or run a | |
17088 | @@ -447,7 +447,7 @@ | |
17089 | These actions infringe copyright if you do not accept this License. | |
17090 | Therefore, by modifying or propagating a covered work, you indicate your | |
17091 | acceptance of this License to do so. | |
17092 | - </p><h2><a id="AutomaticDownstream"/> | |
17093 | + </p><h2><a id="AutomaticDownstream"></a> | |
17094 | 10. Automatic Licensing of Downstream Recipients. | |
17095 | </h2><p> | |
17096 | Each time you convey a covered work, the recipient automatically receives a | |
17097 | @@ -472,7 +472,7 @@ | |
17098 | or counterclaim in a lawsuit) alleging that any patent claim is infringed | |
17099 | by making, using, selling, offering for sale, or importing the Program or | |
17100 | any portion of it. | |
17101 | - </p><h2><a id="Patents"/> | |
17102 | + </p><h2><a id="Patents"></a> | |
17103 | 11. Patents. | |
17104 | </h2><p> | |
17105 | A “contributor” is a copyright holder who authorizes use under | |
17106 | @@ -539,7 +539,7 @@ | |
17107 | Nothing in this License shall be construed as excluding or limiting any | |
17108 | implied license or other defenses to infringement that may otherwise be | |
17109 | available to you under applicable patent law. | |
17110 | - </p><h2><a id="NoSurrender"/> | |
17111 | + </p><h2><a id="NoSurrender"></a> | |
17112 | 12. No Surrender of Others’ Freedom. | |
17113 | </h2><p> | |
17114 | If conditions are imposed on you (whether by court order, agreement or | |
17115 | @@ -551,7 +551,7 @@ | |
17116 | to collect a royalty for further conveying from those to whom you convey the | |
17117 | Program, the only way you could satisfy both those terms and this License | |
17118 | would be to refrain entirely from conveying the Program. | |
17119 | - </p><h2><a id="UsedWithAGPL"/> | |
17120 | + </p><h2><a id="UsedWithAGPL"></a> | |
17121 | 13. Use with the <acronym class="acronym">GNU</acronym> Affero General Public License. | |
17122 | </h2><p> | |
17123 | Notwithstanding any other provision of this License, you have permission to | |
17124 | @@ -562,7 +562,7 @@ | |
17125 | requirements of the <acronym class="acronym">GNU</acronym> Affero General Public License, | |
17126 | section 13, concerning interaction through a network will apply to the | |
17127 | combination as such. | |
17128 | - </p><h2><a id="RevisedVersions"/> | |
17129 | + </p><h2><a id="RevisedVersions"></a> | |
17130 | 14. Revised Versions of this License. | |
17131 | </h2><p> | |
17132 | The Free Software Foundation may publish revised and/or new versions of the | |
17133 | @@ -587,7 +587,7 @@ | |
17134 | Later license versions may give you additional or different permissions. | |
17135 | However, no additional obligations are imposed on any author or copyright | |
17136 | holder as a result of your choosing to follow a later version. | |
17137 | - </p><h2><a id="WarrantyDisclaimer"/> | |
17138 | + </p><h2><a id="WarrantyDisclaimer"></a> | |
17139 | 15. Disclaimer of Warranty. | |
17140 | </h2><p> | |
17141 | THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE | |
17142 | @@ -598,7 +598,7 @@ | |
17143 | THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH | |
17144 | YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL | |
17145 | NECESSARY SERVICING, REPAIR OR CORRECTION. | |
17146 | - </p><h2><a id="LiabilityLimitation"/> | |
17147 | + </p><h2><a id="LiabilityLimitation"></a> | |
17148 | 16. Limitation of Liability. | |
17149 | </h2><p> | |
17150 | IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL | |
17151 | @@ -610,7 +610,7 @@ | |
17152 | PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), | |
17153 | EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF | |
17154 | SUCH DAMAGES. | |
17155 | - </p><h2><a id="InterpretationSecs1516"/> | |
17156 | + </p><h2><a id="InterpretationSecs1516"></a> | |
17157 | 17. Interpretation of Sections 15 and 16. | |
17158 | </h2><p> | |
17159 | If the disclaimer of warranty and limitation of liability provided above | |
17160 | @@ -619,9 +619,9 @@ | |
17161 | waiver of all civil liability in connection with the Program, unless a | |
17162 | warranty or assumption of liability accompanies a copy of the Program in | |
17163 | return for a fee. | |
17164 | - </p><h2><a id="id565288"/> | |
17165 | + </p><h2><a id="id743791"></a> | |
17166 | END OF TERMS AND CONDITIONS | |
17167 | - </h2><h2><a id="HowToApply"/> | |
17168 | + </h2><h2><a id="HowToApply"></a> | |
17169 | How to Apply These Terms to Your New Programs | |
17170 | </h2><p> | |
17171 | If you develop a new program, and you want it to be of the greatest possible | |
17172 | @@ -648,7 +648,7 @@ | |
17173 | <acronym class="acronym">GNU</acronym> General Public License for more details. | |
17174 | ||
17175 | You should have received a copy of the <acronym class="acronym">GNU</acronym> General Public License | |
17176 | -along with this program. If not, see <a class="link" href="http://www.gnu.org/licenses/">http://www.gnu.org/licenses/</a>. | |
17177 | +along with this program. If not, see <a class="link" href="http://www.gnu.org/licenses/" target="_top">http://www.gnu.org/licenses/</a>. | |
17178 | </pre><p> | |
17179 | Also add information on how to contact you by electronic and paper mail. | |
17180 | </p><p> | |
17181 | @@ -669,15 +669,15 @@ | |
17182 | if any, to sign a “copyright disclaimer” for the program, if | |
17183 | necessary. For more information on this, and how to apply and follow the | |
17184 | <acronym class="acronym">GNU</acronym> <acronym class="acronym">GPL</acronym>, see | |
17185 | - <a class="link" href="http://www.gnu.org/licenses/">http://www.gnu.org/licenses/</a>. | |
17186 | + <a class="link" href="http://www.gnu.org/licenses/" target="_top">http://www.gnu.org/licenses/</a>. | |
17187 | </p><p> | |
17188 | The <acronym class="acronym">GNU</acronym> General Public License does not permit | |
17189 | incorporating your program into proprietary programs. If your program is a | |
17190 | subroutine library, you may consider it more useful to permit linking | |
17191 | proprietary applications with the library. If this is what you want to do, | |
17192 | use the <acronym class="acronym">GNU</acronym> Lesser General Public License instead of this | |
17193 | - License. But first, please read <a class="link" href="http://www.gnu.org/philosophy/why-not-lgpl.html">http://www.gnu.org/philosophy/why-not-lgpl.html</a>. | |
17194 | - </p></div><div class="navfooter"><hr/><table width="100%" summary="Navigation footer"><tr><td align="left"><a accesskey="p" href="appendix_free.html">Prev</a> </td><td align="center"><a accesskey="u" href="bk01pt04.html">Up</a></td><td align="right"> <a accesskey="n" href="appendix_gfdl.html">Next</a></td></tr><tr><td align="left" valign="top">Appendix C. | |
17195 | + License. But first, please read <a class="link" href="http://www.gnu.org/philosophy/why-not-lgpl.html" target="_top">http://www.gnu.org/philosophy/why-not-lgpl.html</a>. | |
17196 | + </p></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="appendix_free.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="bk01pt04.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="appendix_gfdl.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Appendix C. | |
17197 | Free Software Needs Free Documentation | |
17198 | ||
17199 | - </td><td align="center"><a accesskey="h" href="../index.html">Home</a></td><td align="right" valign="top"> Appendix E. GNU Free Documentation License</td></tr></table></div></body></html> | |
17200 | + </td><td width="20%" align="center"><a accesskey="h" href="../index.html">Home</a></td><td width="40%" align="right" valign="top"> Appendix E. GNU Free Documentation License</td></tr></table></div></body></html> | |
17201 | Index: libstdc++-v3/doc/html/manual/source_code_style.html | |
17202 | =================================================================== | |
9f95000d AM |
17203 | --- libstdc++-v3/doc/html/manual/source_code_style.html (.../tags/gcc_4_7_2_release) (wersja 192468) |
17204 | +++ libstdc++-v3/doc/html/manual/source_code_style.html (.../branches/gcc-4_7-branch) (wersja 192468) | |
5a87b929 AM |
17205 | @@ -1,620 +1,620 @@ |
17206 | <?xml version="1.0" encoding="UTF-8" standalone="no"?> | |
17207 | -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> | |
17208 | -<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Coding Style</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1"/><meta name="keywords" content=" ISO C++ , library "/><meta name="keywords" content=" ISO C++ , runtime , library "/><link rel="home" href="../index.html" title="The GNU C++ Library"/><link rel="up" href="appendix_contributing.html" title="Appendix A. Contributing"/><link rel="prev" href="source_organization.html" title="Directory Layout and Source Conventions"/><link rel="next" href="source_design_notes.html" title="Design Notes"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Coding Style</th></tr><tr><td align="left"><a accesskey="p" href="source_organization.html">Prev</a> </td><th width="60%" align="center">Appendix A. | |
17209 | +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> | |
17210 | +<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Coding Style</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1" /><meta name="keywords" content=" ISO C++ , library " /><meta name="keywords" content=" ISO C++ , runtime , library " /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="appendix_contributing.html" title="Appendix A. Contributing" /><link rel="prev" href="source_organization.html" title="Directory Layout and Source Conventions" /><link rel="next" href="source_design_notes.html" title="Design Notes" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Coding Style</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="source_organization.html">Prev</a> </td><th width="60%" align="center">Appendix A. | |
17211 | Contributing | |
17212 | ||
17213 | -</th><td align="right"> <a accesskey="n" href="source_design_notes.html">Next</a></td></tr></table><hr/></div><div class="section" title="Coding Style"><div class="titlepage"><div><div><h2 class="title"><a id="contrib.coding_style"/>Coding Style</h2></div></div></div><p> | |
17214 | - </p><div class="section" title="Bad Identifiers"><div class="titlepage"><div><div><h3 class="title"><a id="coding_style.bad_identifiers"/>Bad Identifiers</h3></div></div></div><p> | |
17215 | +</th><td width="20%" align="right"> <a accesskey="n" href="source_design_notes.html">Next</a></td></tr></table><hr /></div><div class="section" title="Coding Style"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="contrib.coding_style"></a>Coding Style</h2></div></div></div><p> | |
17216 | + </p><div class="section" title="Bad Identifiers"><div class="titlepage"><div><div><h3 class="title"><a id="coding_style.bad_identifiers"></a>Bad Identifiers</h3></div></div></div><p> | |
17217 | Identifiers that conflict and should be avoided. | |
17218 | - </p><div class="literallayout"><p><br/> | |
17219 | - This is the list of names <span class="quote">“<span class="quote">reserved to the<br/> | |
17220 | - implementation</span>”</span> that have been claimed by certain<br/> | |
17221 | - compilers and system headers of interest, and should not be used<br/> | |
17222 | - in the library. It will grow, of course. We generally are<br/> | |
17223 | - interested in names that are not all-caps, except for those like<br/> | |
17224 | - "_T"<br/> | |
17225 | -<br/> | |
17226 | - For Solaris:<br/> | |
17227 | - _B<br/> | |
17228 | - _C<br/> | |
17229 | - _L<br/> | |
17230 | - _N<br/> | |
17231 | - _P<br/> | |
17232 | - _S<br/> | |
17233 | - _U<br/> | |
17234 | - _X<br/> | |
17235 | - _E1<br/> | |
17236 | - ..<br/> | |
17237 | - _E24<br/> | |
17238 | -<br/> | |
17239 | - Irix adds:<br/> | |
17240 | - _A<br/> | |
17241 | - _G<br/> | |
17242 | -<br/> | |
17243 | - MS adds:<br/> | |
17244 | - _T<br/> | |
17245 | -<br/> | |
17246 | - BSD adds:<br/> | |
17247 | - __used<br/> | |
17248 | - __unused<br/> | |
17249 | - __inline<br/> | |
17250 | - _Complex<br/> | |
17251 | - __istype<br/> | |
17252 | - __maskrune<br/> | |
17253 | - __tolower<br/> | |
17254 | - __toupper<br/> | |
17255 | - __wchar_t<br/> | |
17256 | - __wint_t<br/> | |
17257 | - _res<br/> | |
17258 | - _res_ext<br/> | |
17259 | - __tg_*<br/> | |
17260 | -<br/> | |
17261 | - SPU adds:<br/> | |
17262 | - __ea<br/> | |
17263 | -<br/> | |
17264 | - For GCC:<br/> | |
17265 | -<br/> | |
17266 | - [Note that this list is out of date. It applies to the old<br/> | |
17267 | - name-mangling; in G++ 3.0 and higher a different name-mangling is<br/> | |
17268 | - used. In addition, many of the bugs relating to G++ interpreting<br/> | |
17269 | - these names as operators have been fixed.]<br/> | |
17270 | -<br/> | |
17271 | - The full set of __* identifiers (combined from gcc/cp/lex.c and<br/> | |
17272 | - gcc/cplus-dem.c) that are either old or new, but are definitely<br/> | |
17273 | - recognized by the demangler, is:<br/> | |
17274 | -<br/> | |
17275 | - __aa<br/> | |
17276 | - __aad<br/> | |
17277 | - __ad<br/> | |
17278 | - __addr<br/> | |
17279 | - __adv<br/> | |
17280 | - __aer<br/> | |
17281 | - __als<br/> | |
17282 | - __alshift<br/> | |
17283 | - __amd<br/> | |
17284 | - __ami<br/> | |
17285 | - __aml<br/> | |
17286 | - __amu<br/> | |
17287 | - __aor<br/> | |
17288 | - __apl<br/> | |
17289 | - __array<br/> | |
17290 | - __ars<br/> | |
17291 | - __arshift<br/> | |
17292 | - __as<br/> | |
17293 | - __bit_and<br/> | |
17294 | - __bit_ior<br/> | |
17295 | - __bit_not<br/> | |
17296 | - __bit_xor<br/> | |
17297 | - __call<br/> | |
17298 | - __cl<br/> | |
17299 | - __cm<br/> | |
17300 | - __cn<br/> | |
17301 | - __co<br/> | |
17302 | - __component<br/> | |
17303 | - __compound<br/> | |
17304 | - __cond<br/> | |
17305 | - __convert<br/> | |
17306 | - __delete<br/> | |
17307 | - __dl<br/> | |
17308 | - __dv<br/> | |
17309 | - __eq<br/> | |
17310 | - __er<br/> | |
17311 | - __ge<br/> | |
17312 | - __gt<br/> | |
17313 | - __indirect<br/> | |
17314 | - __le<br/> | |
17315 | - __ls<br/> | |
17316 | - __lt<br/> | |
17317 | - __max<br/> | |
17318 | - __md<br/> | |
17319 | - __method_call<br/> | |
17320 | - __mi<br/> | |
17321 | - __min<br/> | |
17322 | - __minus<br/> | |
17323 | - __ml<br/> | |
17324 | - __mm<br/> | |
17325 | - __mn<br/> | |
17326 | - __mult<br/> | |
17327 | - __mx<br/> | |
17328 | - __ne<br/> | |
17329 | - __negate<br/> | |
17330 | - __new<br/> | |
17331 | - __nop<br/> | |
17332 | - __nt<br/> | |
17333 | - __nw<br/> | |
17334 | - __oo<br/> | |
17335 | - __op<br/> | |
17336 | - __or<br/> | |
17337 | - __pl<br/> | |
17338 | - __plus<br/> | |
17339 | - __postdecrement<br/> | |
17340 | - __postincrement<br/> | |
17341 | - __pp<br/> | |
17342 | - __pt<br/> | |
17343 | - __rf<br/> | |
17344 | - __rm<br/> | |
17345 | - __rs<br/> | |
17346 | - __sz<br/> | |
17347 | - __trunc_div<br/> | |
17348 | - __trunc_mod<br/> | |
17349 | - __truth_andif<br/> | |
17350 | - __truth_not<br/> | |
17351 | - __truth_orif<br/> | |
17352 | - __vc<br/> | |
17353 | - __vd<br/> | |
17354 | - __vn<br/> | |
17355 | -<br/> | |
17356 | - SGI badnames:<br/> | |
17357 | - __builtin_alloca<br/> | |
17358 | - __builtin_fsqrt<br/> | |
17359 | - __builtin_sqrt<br/> | |
17360 | - __builtin_fabs<br/> | |
17361 | - __builtin_dabs<br/> | |
17362 | - __builtin_cast_f2i<br/> | |
17363 | - __builtin_cast_i2f<br/> | |
17364 | - __builtin_cast_d2ll<br/> | |
17365 | - __builtin_cast_ll2d<br/> | |
17366 | - __builtin_copy_dhi2i<br/> | |
17367 | - __builtin_copy_i2dhi<br/> | |
17368 | - __builtin_copy_dlo2i<br/> | |
17369 | - __builtin_copy_i2dlo<br/> | |
17370 | - __add_and_fetch<br/> | |
17371 | - __sub_and_fetch<br/> | |
17372 | - __or_and_fetch<br/> | |
17373 | - __xor_and_fetch<br/> | |
17374 | - __and_and_fetch<br/> | |
17375 | - __nand_and_fetch<br/> | |
17376 | - __mpy_and_fetch<br/> | |
17377 | - __min_and_fetch<br/> | |
17378 | - __max_and_fetch<br/> | |
17379 | - __fetch_and_add<br/> | |
17380 | - __fetch_and_sub<br/> | |
17381 | - __fetch_and_or<br/> | |
17382 | - __fetch_and_xor<br/> | |
17383 | - __fetch_and_and<br/> | |
17384 | - __fetch_and_nand<br/> | |
17385 | - __fetch_and_mpy<br/> | |
17386 | - __fetch_and_min<br/> | |
17387 | - __fetch_and_max<br/> | |
17388 | - __lock_test_and_set<br/> | |
17389 | - __lock_release<br/> | |
17390 | - __lock_acquire<br/> | |
17391 | - __compare_and_swap<br/> | |
17392 | - __synchronize<br/> | |
17393 | - __high_multiply<br/> | |
17394 | - __unix<br/> | |
17395 | - __sgi<br/> | |
17396 | - __linux__<br/> | |
17397 | - __i386__<br/> | |
17398 | - __i486__<br/> | |
17399 | - __cplusplus<br/> | |
17400 | - __embedded_cplusplus<br/> | |
17401 | - // long double conversion members mangled as __opr<br/> | |
17402 | - // http://gcc.gnu.org/ml/libstdc++/1999-q4/msg00060.html<br/> | |
17403 | - __opr<br/> | |
17404 | - </p></div></div><div class="section" title="By Example"><div class="titlepage"><div><div><h3 class="title"><a id="coding_style.example"/>By Example</h3></div></div></div><div class="literallayout"><p><br/> | |
17405 | - This library is written to appropriate C++ coding standards. As such,<br/> | |
17406 | - it is intended to precede the recommendations of the GNU Coding<br/> | |
17407 | - Standard, which can be referenced in full here:<br/> | |
17408 | -<br/> | |
17409 | - <a class="link" href="http://www.gnu.org/prep/standards/standards.html#Formatting">http://www.gnu.org/prep/standards/standards.html#Formatting</a><br/> | |
17410 | -<br/> | |
17411 | - The rest of this is also interesting reading, but skip the "Design<br/> | |
17412 | - Advice" part.<br/> | |
17413 | -<br/> | |
17414 | - The GCC coding conventions are here, and are also useful:<br/> | |
17415 | - <a class="link" href="http://gcc.gnu.org/codingconventions.html">http://gcc.gnu.org/codingconventions.html</a><br/> | |
17416 | -<br/> | |
17417 | - In addition, because it doesn't seem to be stated explicitly anywhere<br/> | |
17418 | - else, there is an 80 column source limit.<br/> | |
17419 | -<br/> | |
17420 | - <code class="filename">ChangeLog</code> entries for member functions should use the<br/> | |
17421 | - classname::member function name syntax as follows:<br/> | |
17422 | -<br/> | |
17423 | -<code class="code"><br/> | |
17424 | -1999-04-15 Dennis Ritchie <dr@att.com><br/> | |
17425 | -<br/> | |
17426 | - * src/basic_file.cc (__basic_file::open): Fix thinko in<br/> | |
17427 | - _G_HAVE_IO_FILE_OPEN bits.<br/> | |
17428 | -</code><br/> | |
17429 | -<br/> | |
17430 | - Notable areas of divergence from what may be previous local practice<br/> | |
17431 | - (particularly for GNU C) include:<br/> | |
17432 | -<br/> | |
17433 | - 01. Pointers and references<br/> | |
17434 | - <code class="code"><br/> | |
17435 | - char* p = "flop";<br/> | |
17436 | - char& c = *p;<br/> | |
17437 | - -NOT-<br/> | |
17438 | - char *p = "flop"; // wrong<br/> | |
17439 | - char &c = *p; // wrong<br/> | |
17440 | - </code><br/> | |
17441 | -<br/> | |
17442 | - Reason: In C++, definitions are mixed with executable code. Here,<br/> | |
17443 | - <code class="code">p</code> is being initialized, not <code class="code">*p</code>. This is near-universal<br/> | |
17444 | - practice among C++ programmers; it is normal for C hackers<br/> | |
17445 | - to switch spontaneously as they gain experience.<br/> | |
17446 | -<br/> | |
17447 | - 02. Operator names and parentheses<br/> | |
17448 | - <code class="code"><br/> | |
17449 | - operator==(type)<br/> | |
17450 | - -NOT-<br/> | |
17451 | - operator == (type) // wrong<br/> | |
17452 | - </code><br/> | |
17453 | -<br/> | |
17454 | - Reason: The <code class="code">==</code> is part of the function name. Separating<br/> | |
17455 | - it makes the declaration look like an expression.<br/> | |
17456 | -<br/> | |
17457 | - 03. Function names and parentheses<br/> | |
17458 | - <code class="code"><br/> | |
17459 | - void mangle()<br/> | |
17460 | - -NOT-<br/> | |
17461 | - void mangle () // wrong<br/> | |
17462 | - </code><br/> | |
17463 | -<br/> | |
17464 | - Reason: no space before parentheses (except after a control-flow<br/> | |
17465 | - keyword) is near-universal practice for C++. It identifies the<br/> | |
17466 | - parentheses as the function-call operator or declarator, as<br/> | |
17467 | - opposed to an expression or other overloaded use of parentheses.<br/> | |
17468 | -<br/> | |
17469 | - 04. Template function indentation<br/> | |
17470 | - <code class="code"><br/> | |
17471 | - template<typename T><br/> | |
17472 | - void<br/> | |
17473 | - template_function(args)<br/> | |
17474 | - { }<br/> | |
17475 | - -NOT-<br/> | |
17476 | - template<class T><br/> | |
17477 | - void template_function(args) {};<br/> | |
17478 | - </code><br/> | |
17479 | -<br/> | |
17480 | - Reason: In class definitions, without indentation whitespace is<br/> | |
17481 | - needed both above and below the declaration to distinguish<br/> | |
17482 | - it visually from other members. (Also, re: "typename"<br/> | |
17483 | - rather than "class".) <code class="code">T</code> often could be <code class="code">int</code>, which is<br/> | |
17484 | - not a class. ("class", here, is an anachronism.)<br/> | |
17485 | -<br/> | |
17486 | - 05. Template class indentation<br/> | |
17487 | - <code class="code"><br/> | |
17488 | - template<typename _CharT, typename _Traits><br/> | |
17489 | - class basic_ios : public ios_base<br/> | |
17490 | - {<br/> | |
17491 | - public:<br/> | |
17492 | - // Types:<br/> | |
17493 | - };<br/> | |
17494 | - -NOT-<br/> | |
17495 | - template<class _CharT, class _Traits><br/> | |
17496 | - class basic_ios : public ios_base<br/> | |
17497 | - {<br/> | |
17498 | - public:<br/> | |
17499 | - // Types:<br/> | |
17500 | - };<br/> | |
17501 | - -NOT-<br/> | |
17502 | - template<class _CharT, class _Traits><br/> | |
17503 | - class basic_ios : public ios_base<br/> | |
17504 | - {<br/> | |
17505 | - public:<br/> | |
17506 | - // Types:<br/> | |
17507 | - };<br/> | |
17508 | - </code><br/> | |
17509 | -<br/> | |
17510 | - 06. Enumerators<br/> | |
17511 | - <code class="code"><br/> | |
17512 | - enum<br/> | |
17513 | - {<br/> | |
17514 | - space = _ISspace,<br/> | |
17515 | - print = _ISprint,<br/> | |
17516 | - cntrl = _IScntrl<br/> | |
17517 | - };<br/> | |
17518 | - -NOT-<br/> | |
17519 | - enum { space = _ISspace, print = _ISprint, cntrl = _IScntrl };<br/> | |
17520 | - </code><br/> | |
17521 | -<br/> | |
17522 | - 07. Member initialization lists<br/> | |
17523 | - All one line, separate from class name.<br/> | |
17524 | -<br/> | |
17525 | - <code class="code"><br/> | |
17526 | - gribble::gribble()<br/> | |
17527 | - : _M_private_data(0), _M_more_stuff(0), _M_helper(0)<br/> | |
17528 | - { }<br/> | |
17529 | - -NOT-<br/> | |
17530 | - gribble::gribble() : _M_private_data(0), _M_more_stuff(0), _M_helper(0)<br/> | |
17531 | - { }<br/> | |
17532 | - </code><br/> | |
17533 | -<br/> | |
17534 | - 08. Try/Catch blocks<br/> | |
17535 | - <code class="code"><br/> | |
17536 | - try<br/> | |
17537 | - {<br/> | |
17538 | - //<br/> | |
17539 | - }<br/> | |
17540 | - catch (...)<br/> | |
17541 | - {<br/> | |
17542 | - //<br/> | |
17543 | - }<br/> | |
17544 | - -NOT-<br/> | |
17545 | - try {<br/> | |
17546 | - //<br/> | |
17547 | - } catch(...) {<br/> | |
17548 | - //<br/> | |
17549 | - }<br/> | |
17550 | - </code><br/> | |
17551 | -<br/> | |
17552 | - 09. Member functions declarations and definitions<br/> | |
17553 | - Keywords such as extern, static, export, explicit, inline, etc<br/> | |
17554 | - go on the line above the function name. Thus<br/> | |
17555 | -<br/> | |
17556 | - <code class="code"><br/> | |
17557 | - virtual int<br/> | |
17558 | - foo()<br/> | |
17559 | - -NOT-<br/> | |
17560 | - virtual int foo()<br/> | |
17561 | - </code><br/> | |
17562 | -<br/> | |
17563 | - Reason: GNU coding conventions dictate return types for functions<br/> | |
17564 | - are on a separate line than the function name and parameter list<br/> | |
17565 | - for definitions. For C++, where we have member functions that can<br/> | |
17566 | - be either inline definitions or declarations, keeping to this<br/> | |
17567 | - standard allows all member function names for a given class to be<br/> | |
17568 | - aligned to the same margin, increasing readability.<br/> | |
17569 | -<br/> | |
17570 | -<br/> | |
17571 | - 10. Invocation of member functions with "this->"<br/> | |
17572 | - For non-uglified names, use <code class="code">this->name</code> to call the function.<br/> | |
17573 | -<br/> | |
17574 | - <code class="code"><br/> | |
17575 | - this->sync()<br/> | |
17576 | - -NOT-<br/> | |
17577 | - sync()<br/> | |
17578 | - </code><br/> | |
17579 | -<br/> | |
17580 | - Reason: Koenig lookup.<br/> | |
17581 | -<br/> | |
17582 | - 11. Namespaces<br/> | |
17583 | - <code class="code"><br/> | |
17584 | - namespace std<br/> | |
17585 | - {<br/> | |
17586 | - blah blah blah;<br/> | |
17587 | - } // namespace std<br/> | |
17588 | -<br/> | |
17589 | - -NOT-<br/> | |
17590 | -<br/> | |
17591 | - namespace std {<br/> | |
17592 | - blah blah blah;<br/> | |
17593 | - } // namespace std<br/> | |
17594 | - </code><br/> | |
17595 | -<br/> | |
17596 | - 12. Spacing under protected and private in class declarations:<br/> | |
17597 | - space above, none below<br/> | |
17598 | - i.e.<br/> | |
17599 | -<br/> | |
17600 | - <code class="code"><br/> | |
17601 | - public:<br/> | |
17602 | - int foo;<br/> | |
17603 | -<br/> | |
17604 | - -NOT-<br/> | |
17605 | - public:<br/> | |
17606 | -<br/> | |
17607 | - int foo;<br/> | |
17608 | - </code><br/> | |
17609 | -<br/> | |
17610 | - 13. Spacing WRT return statements.<br/> | |
17611 | - no extra spacing before returns, no parenthesis<br/> | |
17612 | - i.e.<br/> | |
17613 | -<br/> | |
17614 | - <code class="code"><br/> | |
17615 | - }<br/> | |
17616 | - return __ret;<br/> | |
17617 | -<br/> | |
17618 | - -NOT-<br/> | |
17619 | - }<br/> | |
17620 | -<br/> | |
17621 | - return __ret;<br/> | |
17622 | -<br/> | |
17623 | - -NOT-<br/> | |
17624 | -<br/> | |
17625 | - }<br/> | |
17626 | - return (__ret);<br/> | |
17627 | - </code><br/> | |
17628 | -<br/> | |
17629 | -<br/> | |
17630 | - 14. Location of global variables.<br/> | |
17631 | - All global variables of class type, whether in the "user visible"<br/> | |
17632 | - space (e.g., <code class="code">cin</code>) or the implementation namespace, must be defined<br/> | |
17633 | - as a character array with the appropriate alignment and then later<br/> | |
17634 | - re-initialized to the correct value.<br/> | |
17635 | -<br/> | |
17636 | - This is due to startup issues on certain platforms, such as AIX.<br/> | |
17637 | - For more explanation and examples, see <code class="filename">src/globals.cc</code>. All such<br/> | |
17638 | - variables should be contained in that file, for simplicity.<br/> | |
17639 | -<br/> | |
17640 | - 15. Exception abstractions<br/> | |
17641 | - Use the exception abstractions found in <code class="filename">functexcept.h</code>, which allow<br/> | |
17642 | - C++ programmers to use this library with <code class="literal">-fno-exceptions</code>. (Even if<br/> | |
17643 | - that is rarely advisable, it's a necessary evil for backwards<br/> | |
17644 | - compatibility.)<br/> | |
17645 | -<br/> | |
17646 | - 16. Exception error messages<br/> | |
17647 | - All start with the name of the function where the exception is<br/> | |
17648 | - thrown, and then (optional) descriptive text is added. Example:<br/> | |
17649 | -<br/> | |
17650 | - <code class="code"><br/> | |
17651 | - __throw_logic_error(__N("basic_string::_S_construct NULL not valid"));<br/> | |
17652 | - </code><br/> | |
17653 | -<br/> | |
17654 | - Reason: The verbose terminate handler prints out <code class="code">exception::what()</code>,<br/> | |
17655 | - as well as the typeinfo for the thrown exception. As this is the<br/> | |
17656 | - default terminate handler, by putting location info into the<br/> | |
17657 | - exception string, a very useful error message is printed out for<br/> | |
17658 | - uncaught exceptions. So useful, in fact, that non-programmers can<br/> | |
17659 | - give useful error messages, and programmers can intelligently<br/> | |
17660 | - speculate what went wrong without even using a debugger.<br/> | |
17661 | -<br/> | |
17662 | - 17. The doxygen style guide to comments is a separate document,<br/> | |
17663 | - see index.<br/> | |
17664 | -<br/> | |
17665 | - The library currently has a mixture of GNU-C and modern C++ coding<br/> | |
17666 | - styles. The GNU C usages will be combed out gradually.<br/> | |
17667 | -<br/> | |
17668 | - Name patterns:<br/> | |
17669 | -<br/> | |
17670 | - For nonstandard names appearing in Standard headers, we are constrained<br/> | |
17671 | - to use names that begin with underscores. This is called "uglification".<br/> | |
17672 | - The convention is:<br/> | |
17673 | -<br/> | |
17674 | - Local and argument names: <code class="literal">__[a-z].*</code><br/> | |
17675 | -<br/> | |
17676 | - Examples: <code class="code">__count __ix __s1</code><br/> | |
17677 | -<br/> | |
17678 | - Type names and template formal-argument names: <code class="literal">_[A-Z][^_].*</code><br/> | |
17679 | -<br/> | |
17680 | - Examples: <code class="code">_Helper _CharT _N</code><br/> | |
17681 | -<br/> | |
17682 | - Member data and function names: <code class="literal">_M_.*</code><br/> | |
17683 | -<br/> | |
17684 | - Examples: <code class="code">_M_num_elements _M_initialize ()</code><br/> | |
17685 | -<br/> | |
17686 | - Static data members, constants, and enumerations: <code class="literal">_S_.*</code><br/> | |
17687 | -<br/> | |
17688 | - Examples: <code class="code">_S_max_elements _S_default_value</code><br/> | |
17689 | -<br/> | |
17690 | - Don't use names in the same scope that differ only in the prefix,<br/> | |
17691 | - e.g. _S_top and _M_top. See BADNAMES for a list of forbidden names.<br/> | |
17692 | - (The most tempting of these seem to be and "_T" and "__sz".)<br/> | |
17693 | -<br/> | |
17694 | - Names must never have "__" internally; it would confuse name<br/> | |
17695 | - unmanglers on some targets. Also, never use "__[0-9]", same reason.<br/> | |
17696 | -<br/> | |
17697 | - --------------------------<br/> | |
17698 | -<br/> | |
17699 | - [BY EXAMPLE]<br/> | |
17700 | - <code class="code"><br/> | |
17701 | -<br/> | |
17702 | - #ifndef _HEADER_<br/> | |
17703 | - #define _HEADER_ 1<br/> | |
17704 | -<br/> | |
17705 | - namespace std<br/> | |
17706 | - {<br/> | |
17707 | - class gribble<br/> | |
17708 | - {<br/> | |
17709 | - public:<br/> | |
17710 | - gribble() throw();<br/> | |
17711 | -<br/> | |
17712 | - gribble(const gribble&);<br/> | |
17713 | -<br/> | |
17714 | - explicit<br/> | |
17715 | - gribble(int __howmany);<br/> | |
17716 | -<br/> | |
17717 | - gribble&<br/> | |
17718 | - operator=(const gribble&);<br/> | |
17719 | -<br/> | |
17720 | - virtual<br/> | |
17721 | - ~gribble() throw ();<br/> | |
17722 | -<br/> | |
17723 | - // Start with a capital letter, end with a period.<br/> | |
17724 | - inline void<br/> | |
17725 | - public_member(const char* __arg) const;<br/> | |
17726 | -<br/> | |
17727 | - // In-class function definitions should be restricted to one-liners.<br/> | |
17728 | - int<br/> | |
17729 | - one_line() { return 0 }<br/> | |
17730 | -<br/> | |
17731 | - int<br/> | |
17732 | - two_lines(const char* arg)<br/> | |
17733 | - { return strchr(arg, 'a'); }<br/> | |
17734 | -<br/> | |
17735 | - inline int<br/> | |
17736 | - three_lines(); // inline, but defined below.<br/> | |
17737 | -<br/> | |
17738 | - // Note indentation.<br/> | |
17739 | - template<typename _Formal_argument><br/> | |
17740 | - void<br/> | |
17741 | - public_template() const throw();<br/> | |
17742 | -<br/> | |
17743 | - template<typename _Iterator><br/> | |
17744 | - void<br/> | |
17745 | - other_template();<br/> | |
17746 | -<br/> | |
17747 | - private:<br/> | |
17748 | - class _Helper;<br/> | |
17749 | -<br/> | |
17750 | - int _M_private_data;<br/> | |
17751 | - int _M_more_stuff;<br/> | |
17752 | - _Helper* _M_helper;<br/> | |
17753 | - int _M_private_function();<br/> | |
17754 | -<br/> | |
17755 | - enum _Enum<br/> | |
17756 | - {<br/> | |
17757 | - _S_one,<br/> | |
17758 | - _S_two<br/> | |
17759 | - };<br/> | |
17760 | -<br/> | |
17761 | - static void<br/> | |
17762 | - _S_initialize_library();<br/> | |
17763 | - };<br/> | |
17764 | -<br/> | |
17765 | - // More-or-less-standard language features described by lack, not presence.<br/> | |
17766 | - # ifndef _G_NO_LONGLONG<br/> | |
17767 | - extern long long _G_global_with_a_good_long_name; // avoid globals!<br/> | |
17768 | - # endif<br/> | |
17769 | -<br/> | |
17770 | - // Avoid in-class inline definitions, define separately;<br/> | |
17771 | - // likewise for member class definitions:<br/> | |
17772 | - inline int<br/> | |
17773 | - gribble::public_member() const<br/> | |
17774 | - { int __local = 0; return __local; }<br/> | |
17775 | -<br/> | |
17776 | - class gribble::_Helper<br/> | |
17777 | - {<br/> | |
17778 | - int _M_stuff;<br/> | |
17779 | -<br/> | |
17780 | - friend class gribble;<br/> | |
17781 | - };<br/> | |
17782 | - }<br/> | |
17783 | -<br/> | |
17784 | - // Names beginning with "__": only for arguments and<br/> | |
17785 | - // local variables; never use "__" in a type name, or<br/> | |
17786 | - // within any name; never use "__[0-9]".<br/> | |
17787 | -<br/> | |
17788 | - #endif /* _HEADER_ */<br/> | |
17789 | -<br/> | |
17790 | -<br/> | |
17791 | - namespace std<br/> | |
17792 | - {<br/> | |
17793 | - template<typename T> // notice: "typename", not "class", no space<br/> | |
17794 | - long_return_value_type<with_many, args><br/> | |
17795 | - function_name(char* pointer, // "char *pointer" is wrong.<br/> | |
17796 | - char* argument,<br/> | |
17797 | - const Reference& ref)<br/> | |
17798 | - {<br/> | |
17799 | - // int a_local; /* wrong; see below. */<br/> | |
17800 | - if (test)<br/> | |
17801 | - {<br/> | |
17802 | - nested code<br/> | |
17803 | - }<br/> | |
17804 | -<br/> | |
17805 | - int a_local = 0; // declare variable at first use.<br/> | |
17806 | -<br/> | |
17807 | - // char a, b, *p; /* wrong */<br/> | |
17808 | - char a = 'a';<br/> | |
17809 | - char b = a + 1;<br/> | |
17810 | - char* c = "abc"; // each variable goes on its own line, always.<br/> | |
17811 | -<br/> | |
17812 | - // except maybe here...<br/> | |
17813 | - for (unsigned i = 0, mask = 1; mask; ++i, mask <<= 1) {<br/> | |
17814 | - // ...<br/> | |
17815 | - }<br/> | |
17816 | - }<br/> | |
17817 | -<br/> | |
17818 | - gribble::gribble()<br/> | |
17819 | - : _M_private_data(0), _M_more_stuff(0), _M_helper(0)<br/> | |
17820 | - { }<br/> | |
17821 | -<br/> | |
17822 | - int<br/> | |
17823 | - gribble::three_lines()<br/> | |
17824 | - {<br/> | |
17825 | - // doesn't fit in one line.<br/> | |
17826 | - }<br/> | |
17827 | - } // namespace std<br/> | |
17828 | - </code><br/> | |
17829 | - </p></div></div></div><div class="navfooter"><hr/><table width="100%" summary="Navigation footer"><tr><td align="left"><a accesskey="p" href="source_organization.html">Prev</a> </td><td align="center"><a accesskey="u" href="appendix_contributing.html">Up</a></td><td align="right"> <a accesskey="n" href="source_design_notes.html">Next</a></td></tr><tr><td align="left" valign="top">Directory Layout and Source Conventions </td><td align="center"><a accesskey="h" href="../index.html">Home</a></td><td align="right" valign="top"> Design Notes</td></tr></table></div></body></html> | |
17830 | + </p><div class="literallayout"><p><br /> | |
17831 | + This is the list of names <span class="quote">“<span class="quote">reserved to the<br /> | |
17832 | + implementation</span>”</span> that have been claimed by certain<br /> | |
17833 | + compilers and system headers of interest, and should not be used<br /> | |
17834 | + in the library. It will grow, of course. We generally are<br /> | |
17835 | + interested in names that are not all-caps, except for those like<br /> | |
17836 | + "_T"<br /> | |
17837 | +<br /> | |
17838 | + For Solaris:<br /> | |
17839 | + _B<br /> | |
17840 | + _C<br /> | |
17841 | + _L<br /> | |
17842 | + _N<br /> | |
17843 | + _P<br /> | |
17844 | + _S<br /> | |
17845 | + _U<br /> | |
17846 | + _X<br /> | |
17847 | + _E1<br /> | |
17848 | + ..<br /> | |
17849 | + _E24<br /> | |
17850 | +<br /> | |
17851 | + Irix adds:<br /> | |
17852 | + _A<br /> | |
17853 | + _G<br /> | |
17854 | +<br /> | |
17855 | + MS adds:<br /> | |
17856 | + _T<br /> | |
17857 | +<br /> | |
17858 | + BSD adds:<br /> | |
17859 | + __used<br /> | |
17860 | + __unused<br /> | |
17861 | + __inline<br /> | |
17862 | + _Complex<br /> | |
17863 | + __istype<br /> | |
17864 | + __maskrune<br /> | |
17865 | + __tolower<br /> | |
17866 | + __toupper<br /> | |
17867 | + __wchar_t<br /> | |
17868 | + __wint_t<br /> | |
17869 | + _res<br /> | |
17870 | + _res_ext<br /> | |
17871 | + __tg_*<br /> | |
17872 | +<br /> | |
17873 | + SPU adds:<br /> | |
17874 | + __ea<br /> | |
17875 | +<br /> | |
17876 | + For GCC:<br /> | |
17877 | +<br /> | |
17878 | + [Note that this list is out of date. It applies to the old<br /> | |
17879 | + name-mangling; in G++ 3.0 and higher a different name-mangling is<br /> | |
17880 | + used. In addition, many of the bugs relating to G++ interpreting<br /> | |
17881 | + these names as operators have been fixed.]<br /> | |
17882 | +<br /> | |
17883 | + The full set of __* identifiers (combined from gcc/cp/lex.c and<br /> | |
17884 | + gcc/cplus-dem.c) that are either old or new, but are definitely<br /> | |
17885 | + recognized by the demangler, is:<br /> | |
17886 | +<br /> | |
17887 | + __aa<br /> | |
17888 | + __aad<br /> | |
17889 | + __ad<br /> | |
17890 | + __addr<br /> | |
17891 | + __adv<br /> | |
17892 | + __aer<br /> | |
17893 | + __als<br /> | |
17894 | + __alshift<br /> | |
17895 | + __amd<br /> | |
17896 | + __ami<br /> | |
17897 | + __aml<br /> | |
17898 | + __amu<br /> | |
17899 | + __aor<br /> | |
17900 | + __apl<br /> | |
17901 | + __array<br /> | |
17902 | + __ars<br /> | |
17903 | + __arshift<br /> | |
17904 | + __as<br /> | |
17905 | + __bit_and<br /> | |
17906 | + __bit_ior<br /> | |
17907 | + __bit_not<br /> | |
17908 | + __bit_xor<br /> | |
17909 | + __call<br /> | |
17910 | + __cl<br /> | |
17911 | + __cm<br /> | |
17912 | + __cn<br /> | |
17913 | + __co<br /> | |
17914 | + __component<br /> | |
17915 | + __compound<br /> | |
17916 | + __cond<br /> | |
17917 | + __convert<br /> | |
17918 | + __delete<br /> | |
17919 | + __dl<br /> | |
17920 | + __dv<br /> | |
17921 | + __eq<br /> | |
17922 | + __er<br /> | |
17923 | + __ge<br /> | |
17924 | + __gt<br /> | |
17925 | + __indirect<br /> | |
17926 | + __le<br /> | |
17927 | + __ls<br /> | |
17928 | + __lt<br /> | |
17929 | + __max<br /> | |
17930 | + __md<br /> | |
17931 | + __method_call<br /> | |
17932 | + __mi<br /> | |
17933 | + __min<br /> | |
17934 | + __minus<br /> | |
17935 | + __ml<br /> | |
17936 | + __mm<br /> | |
17937 | + __mn<br /> | |
17938 | + __mult<br /> | |
17939 | + __mx<br /> | |
17940 | + __ne<br /> | |
17941 | + __negate<br /> | |
17942 | + __new<br /> | |
17943 | + __nop<br /> | |
17944 | + __nt<br /> | |
17945 | + __nw<br /> | |
17946 | + __oo<br /> | |
17947 | + __op<br /> | |
17948 | + __or<br /> | |
17949 | + __pl<br /> | |
17950 | + __plus<br /> | |
17951 | + __postdecrement<br /> | |
17952 | + __postincrement<br /> | |
17953 | + __pp<br /> | |
17954 | + __pt<br /> | |
17955 | + __rf<br /> | |
17956 | + __rm<br /> | |
17957 | + __rs<br /> | |
17958 | + __sz<br /> | |
17959 | + __trunc_div<br /> | |
17960 | + __trunc_mod<br /> | |
17961 | + __truth_andif<br /> | |
17962 | + __truth_not<br /> | |
17963 | + __truth_orif<br /> | |
17964 | + __vc<br /> | |
17965 | + __vd<br /> | |
17966 | + __vn<br /> | |
17967 | +<br /> | |
17968 | + SGI badnames:<br /> | |
17969 | + __builtin_alloca<br /> | |
17970 | + __builtin_fsqrt<br /> | |
17971 | + __builtin_sqrt<br /> | |
17972 | + __builtin_fabs<br /> | |
17973 | + __builtin_dabs<br /> | |
17974 | + __builtin_cast_f2i<br /> | |
17975 | + __builtin_cast_i2f<br /> | |
17976 | + __builtin_cast_d2ll<br /> | |
17977 | + __builtin_cast_ll2d<br /> | |
17978 | + __builtin_copy_dhi2i<br /> | |
17979 | + __builtin_copy_i2dhi<br /> | |
17980 | + __builtin_copy_dlo2i<br /> | |
17981 | + __builtin_copy_i2dlo<br /> | |
17982 | + __add_and_fetch<br /> | |
17983 | + __sub_and_fetch<br /> | |
17984 | + __or_and_fetch<br /> | |
17985 | + __xor_and_fetch<br /> | |
17986 | + __and_and_fetch<br /> | |
17987 | + __nand_and_fetch<br /> | |
17988 | + __mpy_and_fetch<br /> | |
17989 | + __min_and_fetch<br /> | |
17990 | + __max_and_fetch<br /> | |
17991 | + __fetch_and_add<br /> | |
17992 | + __fetch_and_sub<br /> | |
17993 | + __fetch_and_or<br /> | |
17994 | + __fetch_and_xor<br /> | |
17995 | + __fetch_and_and<br /> | |
17996 | + __fetch_and_nand<br /> | |
17997 | + __fetch_and_mpy<br /> | |
17998 | + __fetch_and_min<br /> | |
17999 | + __fetch_and_max<br /> | |
18000 | + __lock_test_and_set<br /> | |
18001 | + __lock_release<br /> | |
18002 | + __lock_acquire<br /> | |
18003 | + __compare_and_swap<br /> | |
18004 | + __synchronize<br /> | |
18005 | + __high_multiply<br /> | |
18006 | + __unix<br /> | |
18007 | + __sgi<br /> | |
18008 | + __linux__<br /> | |
18009 | + __i386__<br /> | |
18010 | + __i486__<br /> | |
18011 | + __cplusplus<br /> | |
18012 | + __embedded_cplusplus<br /> | |
18013 | + // long double conversion members mangled as __opr<br /> | |
18014 | + // http://gcc.gnu.org/ml/libstdc++/1999-q4/msg00060.html<br /> | |
18015 | + __opr<br /> | |
18016 | + </p></div></div><div class="section" title="By Example"><div class="titlepage"><div><div><h3 class="title"><a id="coding_style.example"></a>By Example</h3></div></div></div><div class="literallayout"><p><br /> | |
18017 | + This library is written to appropriate C++ coding standards. As such,<br /> | |
18018 | + it is intended to precede the recommendations of the GNU Coding<br /> | |
18019 | + Standard, which can be referenced in full here:<br /> | |
18020 | +<br /> | |
18021 | + <a class="link" href="http://www.gnu.org/prep/standards/standards.html#Formatting" target="_top">http://www.gnu.org/prep/standards/standards.html#Formatting</a><br /> | |
18022 | +<br /> | |
18023 | + The rest of this is also interesting reading, but skip the "Design<br /> | |
18024 | + Advice" part.<br /> | |
18025 | +<br /> | |
18026 | + The GCC coding conventions are here, and are also useful:<br /> | |
18027 | + <a class="link" href="http://gcc.gnu.org/codingconventions.html" target="_top">http://gcc.gnu.org/codingconventions.html</a><br /> | |
18028 | +<br /> | |
18029 | + In addition, because it doesn't seem to be stated explicitly anywhere<br /> | |
18030 | + else, there is an 80 column source limit.<br /> | |
18031 | +<br /> | |
18032 | + <code class="filename">ChangeLog</code> entries for member functions should use the<br /> | |
18033 | + classname::member function name syntax as follows:<br /> | |
18034 | +<br /> | |
18035 | +<code class="code"><br /> | |
18036 | +1999-04-15 Dennis Ritchie <dr@att.com><br /> | |
18037 | +<br /> | |
18038 | + * src/basic_file.cc (__basic_file::open): Fix thinko in<br /> | |
18039 | + _G_HAVE_IO_FILE_OPEN bits.<br /> | |
18040 | +</code><br /> | |
18041 | +<br /> | |
18042 | + Notable areas of divergence from what may be previous local practice<br /> | |
18043 | + (particularly for GNU C) include:<br /> | |
18044 | +<br /> | |
18045 | + 01. Pointers and references<br /> | |
18046 | + <code class="code"><br /> | |
18047 | + char* p = "flop";<br /> | |
18048 | + char& c = *p;<br /> | |
18049 | + -NOT-<br /> | |
18050 | + char *p = "flop"; // wrong<br /> | |
18051 | + char &c = *p; // wrong<br /> | |
18052 | + </code><br /> | |
18053 | +<br /> | |
18054 | + Reason: In C++, definitions are mixed with executable code. Here,<br /> | |
18055 | + <code class="code">p</code> is being initialized, not <code class="code">*p</code>. This is near-universal<br /> | |
18056 | + practice among C++ programmers; it is normal for C hackers<br /> | |
18057 | + to switch spontaneously as they gain experience.<br /> | |
18058 | +<br /> | |
18059 | + 02. Operator names and parentheses<br /> | |
18060 | + <code class="code"><br /> | |
18061 | + operator==(type)<br /> | |
18062 | + -NOT-<br /> | |
18063 | + operator == (type) // wrong<br /> | |
18064 | + </code><br /> | |
18065 | +<br /> | |
18066 | + Reason: The <code class="code">==</code> is part of the function name. Separating<br /> | |
18067 | + it makes the declaration look like an expression.<br /> | |
18068 | +<br /> | |
18069 | + 03. Function names and parentheses<br /> | |
18070 | + <code class="code"><br /> | |
18071 | + void mangle()<br /> | |
18072 | + -NOT-<br /> | |
18073 | + void mangle () // wrong<br /> | |
18074 | + </code><br /> | |
18075 | +<br /> | |
18076 | + Reason: no space before parentheses (except after a control-flow<br /> | |
18077 | + keyword) is near-universal practice for C++. It identifies the<br /> | |
18078 | + parentheses as the function-call operator or declarator, as<br /> | |
18079 | + opposed to an expression or other overloaded use of parentheses.<br /> | |
18080 | +<br /> | |
18081 | + 04. Template function indentation<br /> | |
18082 | + <code class="code"><br /> | |
18083 | + template<typename T><br /> | |
18084 | + void<br /> | |
18085 | + template_function(args)<br /> | |
18086 | + { }<br /> | |
18087 | + -NOT-<br /> | |
18088 | + template<class T><br /> | |
18089 | + void template_function(args) {};<br /> | |
18090 | + </code><br /> | |
18091 | +<br /> | |
18092 | + Reason: In class definitions, without indentation whitespace is<br /> | |
18093 | + needed both above and below the declaration to distinguish<br /> | |
18094 | + it visually from other members. (Also, re: "typename"<br /> | |
18095 | + rather than "class".) <code class="code">T</code> often could be <code class="code">int</code>, which is<br /> | |
18096 | + not a class. ("class", here, is an anachronism.)<br /> | |
18097 | +<br /> | |
18098 | + 05. Template class indentation<br /> | |
18099 | + <code class="code"><br /> | |
18100 | + template<typename _CharT, typename _Traits><br /> | |
18101 | + class basic_ios : public ios_base<br /> | |
18102 | + {<br /> | |
18103 | + public:<br /> | |
18104 | + // Types:<br /> | |
18105 | + };<br /> | |
18106 | + -NOT-<br /> | |
18107 | + template<class _CharT, class _Traits><br /> | |
18108 | + class basic_ios : public ios_base<br /> | |
18109 | + {<br /> | |
18110 | + public:<br /> | |
18111 | + // Types:<br /> | |
18112 | + };<br /> | |
18113 | + -NOT-<br /> | |
18114 | + template<class _CharT, class _Traits><br /> | |
18115 | + class basic_ios : public ios_base<br /> | |
18116 | + {<br /> | |
18117 | + public:<br /> | |
18118 | + // Types:<br /> | |
18119 | + };<br /> | |
18120 | + </code><br /> | |
18121 | +<br /> | |
18122 | + 06. Enumerators<br /> | |
18123 | + <code class="code"><br /> | |
18124 | + enum<br /> | |
18125 | + {<br /> | |
18126 | + space = _ISspace,<br /> | |
18127 | + print = _ISprint,<br /> | |
18128 | + cntrl = _IScntrl<br /> | |
18129 | + };<br /> | |
18130 | + -NOT-<br /> | |
18131 | + enum { space = _ISspace, print = _ISprint, cntrl = _IScntrl };<br /> | |
18132 | + </code><br /> | |
18133 | +<br /> | |
18134 | + 07. Member initialization lists<br /> | |
18135 | + All one line, separate from class name.<br /> | |
18136 | +<br /> | |
18137 | + <code class="code"><br /> | |
18138 | + gribble::gribble()<br /> | |
18139 | + : _M_private_data(0), _M_more_stuff(0), _M_helper(0)<br /> | |
18140 | + { }<br /> | |
18141 | + -NOT-<br /> | |
18142 | + gribble::gribble() : _M_private_data(0), _M_more_stuff(0), _M_helper(0)<br /> | |
18143 | + { }<br /> | |
18144 | + </code><br /> | |
18145 | +<br /> | |
18146 | + 08. Try/Catch blocks<br /> | |
18147 | + <code class="code"><br /> | |
18148 | + try<br /> | |
18149 | + {<br /> | |
18150 | + //<br /> | |
18151 | + }<br /> | |
18152 | + catch (...)<br /> | |
18153 | + {<br /> | |
18154 | + //<br /> | |
18155 | + }<br /> | |
18156 | + -NOT-<br /> | |
18157 | + try {<br /> | |
18158 | + //<br /> | |
18159 | + } catch(...) {<br /> | |
18160 | + //<br /> | |
18161 | + }<br /> | |
18162 | + </code><br /> | |
18163 | +<br /> | |
18164 | + 09. Member functions declarations and definitions<br /> | |
18165 | + Keywords such as extern, static, export, explicit, inline, etc<br /> | |
18166 | + go on the line above the function name. Thus<br /> | |
18167 | +<br /> | |
18168 | + <code class="code"><br /> | |
18169 | + virtual int<br /> | |
18170 | + foo()<br /> | |
18171 | + -NOT-<br /> | |
18172 | + virtual int foo()<br /> | |
18173 | + </code><br /> | |
18174 | +<br /> | |
18175 | + Reason: GNU coding conventions dictate return types for functions<br /> | |
18176 | + are on a separate line than the function name and parameter list<br /> | |
18177 | + for definitions. For C++, where we have member functions that can<br /> | |
18178 | + be either inline definitions or declarations, keeping to this<br /> | |
18179 | + standard allows all member function names for a given class to be<br /> | |
18180 | + aligned to the same margin, increasing readability.<br /> | |
18181 | +<br /> | |
18182 | +<br /> | |
18183 | + 10. Invocation of member functions with "this->"<br /> | |
18184 | + For non-uglified names, use <code class="code">this->name</code> to call the function.<br /> | |
18185 | +<br /> | |
18186 | + <code class="code"><br /> | |
18187 | + this->sync()<br /> | |
18188 | + -NOT-<br /> | |
18189 | + sync()<br /> | |
18190 | + </code><br /> | |
18191 | +<br /> | |
18192 | + Reason: Koenig lookup.<br /> | |
18193 | +<br /> | |
18194 | + 11. Namespaces<br /> | |
18195 | + <code class="code"><br /> | |
18196 | + namespace std<br /> | |
18197 | + {<br /> | |
18198 | + blah blah blah;<br /> | |
18199 | + } // namespace std<br /> | |
18200 | +<br /> | |
18201 | + -NOT-<br /> | |
18202 | +<br /> | |
18203 | + namespace std {<br /> | |
18204 | + blah blah blah;<br /> | |
18205 | + } // namespace std<br /> | |
18206 | + </code><br /> | |
18207 | +<br /> | |
18208 | + 12. Spacing under protected and private in class declarations:<br /> | |
18209 | + space above, none below<br /> | |
18210 | + i.e.<br /> | |
18211 | +<br /> | |
18212 | + <code class="code"><br /> | |
18213 | + public:<br /> | |
18214 | + int foo;<br /> | |
18215 | +<br /> | |
18216 | + -NOT-<br /> | |
18217 | + public:<br /> | |
18218 | +<br /> | |
18219 | + int foo;<br /> | |
18220 | + </code><br /> | |
18221 | +<br /> | |
18222 | + 13. Spacing WRT return statements.<br /> | |
18223 | + no extra spacing before returns, no parenthesis<br /> | |
18224 | + i.e.<br /> | |
18225 | +<br /> | |
18226 | + <code class="code"><br /> | |
18227 | + }<br /> | |
18228 | + return __ret;<br /> | |
18229 | +<br /> | |
18230 | + -NOT-<br /> | |
18231 | + }<br /> | |
18232 | +<br /> | |
18233 | + return __ret;<br /> | |
18234 | +<br /> | |
18235 | + -NOT-<br /> | |
18236 | +<br /> | |
18237 | + }<br /> | |
18238 | + return (__ret);<br /> | |
18239 | + </code><br /> | |
18240 | +<br /> | |
18241 | +<br /> | |
18242 | + 14. Location of global variables.<br /> | |
18243 | + All global variables of class type, whether in the "user visible"<br /> | |
18244 | + space (e.g., <code class="code">cin</code>) or the implementation namespace, must be defined<br /> | |
18245 | + as a character array with the appropriate alignment and then later<br /> | |
18246 | + re-initialized to the correct value.<br /> | |
18247 | +<br /> | |
18248 | + This is due to startup issues on certain platforms, such as AIX.<br /> | |
18249 | + For more explanation and examples, see <code class="filename">src/globals.cc</code>. All such<br /> | |
18250 | + variables should be contained in that file, for simplicity.<br /> | |
18251 | +<br /> | |
18252 | + 15. Exception abstractions<br /> | |
18253 | + Use the exception abstractions found in <code class="filename">functexcept.h</code>, which allow<br /> | |
18254 | + C++ programmers to use this library with <code class="literal">-fno-exceptions</code>. (Even if<br /> | |
18255 | + that is rarely advisable, it's a necessary evil for backwards<br /> | |
18256 | + compatibility.)<br /> | |
18257 | +<br /> | |
18258 | + 16. Exception error messages<br /> | |
18259 | + All start with the name of the function where the exception is<br /> | |
18260 | + thrown, and then (optional) descriptive text is added. Example:<br /> | |
18261 | +<br /> | |
18262 | + <code class="code"><br /> | |
18263 | + __throw_logic_error(__N("basic_string::_S_construct NULL not valid"));<br /> | |
18264 | + </code><br /> | |
18265 | +<br /> | |
18266 | + Reason: The verbose terminate handler prints out <code class="code">exception::what()</code>,<br /> | |
18267 | + as well as the typeinfo for the thrown exception. As this is the<br /> | |
18268 | + default terminate handler, by putting location info into the<br /> | |
18269 | + exception string, a very useful error message is printed out for<br /> | |
18270 | + uncaught exceptions. So useful, in fact, that non-programmers can<br /> | |
18271 | + give useful error messages, and programmers can intelligently<br /> | |
18272 | + speculate what went wrong without even using a debugger.<br /> | |
18273 | +<br /> | |
18274 | + 17. The doxygen style guide to comments is a separate document,<br /> | |
18275 | + see index.<br /> | |
18276 | +<br /> | |
18277 | + The library currently has a mixture of GNU-C and modern C++ coding<br /> | |
18278 | + styles. The GNU C usages will be combed out gradually.<br /> | |
18279 | +<br /> | |
18280 | + Name patterns:<br /> | |
18281 | +<br /> | |
18282 | + For nonstandard names appearing in Standard headers, we are constrained<br /> | |
18283 | + to use names that begin with underscores. This is called "uglification".<br /> | |
18284 | + The convention is:<br /> | |
18285 | +<br /> | |
18286 | + Local and argument names: <code class="literal">__[a-z].*</code><br /> | |
18287 | +<br /> | |
18288 | + Examples: <code class="code">__count __ix __s1</code><br /> | |
18289 | +<br /> | |
18290 | + Type names and template formal-argument names: <code class="literal">_[A-Z][^_].*</code><br /> | |
18291 | +<br /> | |
18292 | + Examples: <code class="code">_Helper _CharT _N</code><br /> | |
18293 | +<br /> | |
18294 | + Member data and function names: <code class="literal">_M_.*</code><br /> | |
18295 | +<br /> | |
18296 | + Examples: <code class="code">_M_num_elements _M_initialize ()</code><br /> | |
18297 | +<br /> | |
18298 | + Static data members, constants, and enumerations: <code class="literal">_S_.*</code><br /> | |
18299 | +<br /> | |
18300 | + Examples: <code class="code">_S_max_elements _S_default_value</code><br /> | |
18301 | +<br /> | |
18302 | + Don't use names in the same scope that differ only in the prefix,<br /> | |
18303 | + e.g. _S_top and _M_top. See BADNAMES for a list of forbidden names.<br /> | |
18304 | + (The most tempting of these seem to be and "_T" and "__sz".)<br /> | |
18305 | +<br /> | |
18306 | + Names must never have "__" internally; it would confuse name<br /> | |
18307 | + unmanglers on some targets. Also, never use "__[0-9]", same reason.<br /> | |
18308 | +<br /> | |
18309 | + --------------------------<br /> | |
18310 | +<br /> | |
18311 | + [BY EXAMPLE]<br /> | |
18312 | + <code class="code"><br /> | |
18313 | +<br /> | |
18314 | + #ifndef _HEADER_<br /> | |
18315 | + #define _HEADER_ 1<br /> | |
18316 | +<br /> | |
18317 | + namespace std<br /> | |
18318 | + {<br /> | |
18319 | + class gribble<br /> | |
18320 | + {<br /> | |
18321 | + public:<br /> | |
18322 | + gribble() throw();<br /> | |
18323 | +<br /> | |
18324 | + gribble(const gribble&);<br /> | |
18325 | +<br /> | |
18326 | + explicit<br /> | |
18327 | + gribble(int __howmany);<br /> | |
18328 | +<br /> | |
18329 | + gribble&<br /> | |
18330 | + operator=(const gribble&);<br /> | |
18331 | +<br /> | |
18332 | + virtual<br /> | |
18333 | + ~gribble() throw ();<br /> | |
18334 | +<br /> | |
18335 | + // Start with a capital letter, end with a period.<br /> | |
18336 | + inline void<br /> | |
18337 | + public_member(const char* __arg) const;<br /> | |
18338 | +<br /> | |
18339 | + // In-class function definitions should be restricted to one-liners.<br /> | |
18340 | + int<br /> | |
18341 | + one_line() { return 0 }<br /> | |
18342 | +<br /> | |
18343 | + int<br /> | |
18344 | + two_lines(const char* arg)<br /> | |
18345 | + { return strchr(arg, 'a'); }<br /> | |
18346 | +<br /> | |
18347 | + inline int<br /> | |
18348 | + three_lines(); // inline, but defined below.<br /> | |
18349 | +<br /> | |
18350 | + // Note indentation.<br /> | |
18351 | + template<typename _Formal_argument><br /> | |
18352 | + void<br /> | |
18353 | + public_template() const throw();<br /> | |
18354 | +<br /> | |
18355 | + template<typename _Iterator><br /> | |
18356 | + void<br /> | |
18357 | + other_template();<br /> | |
18358 | +<br /> | |
18359 | + private:<br /> | |
18360 | + class _Helper;<br /> | |
18361 | +<br /> | |
18362 | + int _M_private_data;<br /> | |
18363 | + int _M_more_stuff;<br /> | |
18364 | + _Helper* _M_helper;<br /> | |
18365 | + int _M_private_function();<br /> | |
18366 | +<br /> | |
18367 | + enum _Enum<br /> | |
18368 | + {<br /> | |
18369 | + _S_one,<br /> | |
18370 | + _S_two<br /> | |
18371 | + };<br /> | |
18372 | +<br /> | |
18373 | + static void<br /> | |
18374 | + _S_initialize_library();<br /> | |
18375 | + };<br /> | |
18376 | +<br /> | |
18377 | + // More-or-less-standard language features described by lack, not presence.<br /> | |
18378 | + # ifndef _G_NO_LONGLONG<br /> | |
18379 | + extern long long _G_global_with_a_good_long_name; // avoid globals!<br /> | |
18380 | + # endif<br /> | |
18381 | +<br /> | |
18382 | + // Avoid in-class inline definitions, define separately;<br /> | |
18383 | + // likewise for member class definitions:<br /> | |
18384 | + inline int<br /> | |
18385 | + gribble::public_member() const<br /> | |
18386 | + { int __local = 0; return __local; }<br /> | |
18387 | +<br /> | |
18388 | + class gribble::_Helper<br /> | |
18389 | + {<br /> | |
18390 | + int _M_stuff;<br /> | |
18391 | +<br /> | |
18392 | + friend class gribble;<br /> | |
18393 | + };<br /> | |
18394 | + }<br /> | |
18395 | +<br /> | |
18396 | + // Names beginning with "__": only for arguments and<br /> | |
18397 | + // local variables; never use "__" in a type name, or<br /> | |
18398 | + // within any name; never use "__[0-9]".<br /> | |
18399 | +<br /> | |
18400 | + #endif /* _HEADER_ */<br /> | |
18401 | +<br /> | |
18402 | +<br /> | |
18403 | + namespace std<br /> | |
18404 | + {<br /> | |
18405 | + template<typename T> // notice: "typename", not "class", no space<br /> | |
18406 | + long_return_value_type<with_many, args><br /> | |
18407 | + function_name(char* pointer, // "char *pointer" is wrong.<br /> | |
18408 | + char* argument,<br /> | |
18409 | + const Reference& ref)<br /> | |
18410 | + {<br /> | |
18411 | + // int a_local; /* wrong; see below. */<br /> | |
18412 | + if (test)<br /> | |
18413 | + {<br /> | |
18414 | + nested code<br /> | |
18415 | + }<br /> | |
18416 | +<br /> | |
18417 | + int a_local = 0; // declare variable at first use.<br /> | |
18418 | +<br /> | |
18419 | + // char a, b, *p; /* wrong */<br /> | |
18420 | + char a = 'a';<br /> | |
18421 | + char b = a + 1;<br /> | |
18422 | + char* c = "abc"; // each variable goes on its own line, always.<br /> | |
18423 | +<br /> | |
18424 | + // except maybe here...<br /> | |
18425 | + for (unsigned i = 0, mask = 1; mask; ++i, mask <<= 1) {<br /> | |
18426 | + // ...<br /> | |
18427 | + }<br /> | |
18428 | + }<br /> | |
18429 | +<br /> | |
18430 | + gribble::gribble()<br /> | |
18431 | + : _M_private_data(0), _M_more_stuff(0), _M_helper(0)<br /> | |
18432 | + { }<br /> | |
18433 | +<br /> | |
18434 | + int<br /> | |
18435 | + gribble::three_lines()<br /> | |
18436 | + {<br /> | |
18437 | + // doesn't fit in one line.<br /> | |
18438 | + }<br /> | |
18439 | + } // namespace std<br /> | |
18440 | + </code><br /> | |
18441 | + </p></div></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="source_organization.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="appendix_contributing.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="source_design_notes.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Directory Layout and Source Conventions </td><td width="20%" align="center"><a accesskey="h" href="../index.html">Home</a></td><td width="40%" align="right" valign="top"> Design Notes</td></tr></table></div></body></html> | |
18442 | Index: libstdc++-v3/doc/html/manual/streambufs.html | |
18443 | =================================================================== | |
9f95000d AM |
18444 | --- libstdc++-v3/doc/html/manual/streambufs.html (.../tags/gcc_4_7_2_release) (wersja 192468) |
18445 | +++ libstdc++-v3/doc/html/manual/streambufs.html (.../branches/gcc-4_7-branch) (wersja 192468) | |
5a87b929 AM |
18446 | @@ -1,15 +1,15 @@ |
18447 | <?xml version="1.0" encoding="UTF-8" standalone="no"?> | |
18448 | -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> | |
18449 | -<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Stream Buffers</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1"/><meta name="keywords" content=" ISO C++ , library "/><meta name="keywords" content=" ISO C++ , runtime , library "/><link rel="home" href="../index.html" title="The GNU C++ Library"/><link rel="up" href="io.html" title="Chapter 13. Input and Output"/><link rel="prev" href="io.html" title="Chapter 13. Input and Output"/><link rel="next" href="stringstreams.html" title="Memory Based Streams"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Stream Buffers</th></tr><tr><td align="left"><a accesskey="p" href="io.html">Prev</a> </td><th width="60%" align="center">Chapter 13. | |
18450 | +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> | |
18451 | +<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Stream Buffers</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1" /><meta name="keywords" content=" ISO C++ , library " /><meta name="keywords" content=" ISO C++ , runtime , library " /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="io.html" title="Chapter 13. Input and Output" /><link rel="prev" href="io.html" title="Chapter 13. Input and Output" /><link rel="next" href="stringstreams.html" title="Memory Based Streams" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Stream Buffers</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="io.html">Prev</a> </td><th width="60%" align="center">Chapter 13. | |
18452 | Input and Output | |
18453 | ||
18454 | -</th><td align="right"> <a accesskey="n" href="stringstreams.html">Next</a></td></tr></table><hr/></div><div class="section" title="Stream Buffers"><div class="titlepage"><div><div><h2 class="title"><a id="std.io.streambufs"/>Stream Buffers</h2></div></div></div><div class="section" title="Derived streambuf Classes"><div class="titlepage"><div><div><h3 class="title"><a id="io.streambuf.derived"/>Derived streambuf Classes</h3></div></div></div><p> | |
18455 | +</th><td width="20%" align="right"> <a accesskey="n" href="stringstreams.html">Next</a></td></tr></table><hr /></div><div class="section" title="Stream Buffers"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="std.io.streambufs"></a>Stream Buffers</h2></div></div></div><div class="section" title="Derived streambuf Classes"><div class="titlepage"><div><div><h3 class="title"><a id="io.streambuf.derived"></a>Derived streambuf Classes</h3></div></div></div><p> | |
18456 | </p><p>Creating your own stream buffers for I/O can be remarkably easy. | |
18457 | If you are interested in doing so, we highly recommend two very | |
18458 | excellent books: | |
18459 | - <a class="link" href="http://www.angelikalanger.com/iostreams.html">Standard C++ | |
18460 | + <a class="link" href="http://www.angelikalanger.com/iostreams.html" target="_top">Standard C++ | |
18461 | IOStreams and Locales</a> by Langer and Kreft, ISBN 0-201-18395-1, and | |
18462 | - <a class="link" href="http://www.josuttis.com/libbook/">The C++ Standard Library</a> | |
18463 | + <a class="link" href="http://www.josuttis.com/libbook/" target="_top">The C++ Standard Library</a> | |
18464 | by Nicolai Josuttis, ISBN 0-201-37926-0. Both are published by | |
18465 | Addison-Wesley, who isn't paying us a cent for saying that, honest. | |
18466 | </p><p>Here is a simple example, io/outbuf1, from the Josuttis text. It | |
18467 | @@ -55,9 +55,9 @@ | |
18468 | } | |
18469 | </pre><p>Try it yourself! More examples can be found in 3.1.x code, in | |
18470 | <code class="code">include/ext/*_filebuf.h</code>, and in this article by James Kanze: | |
18471 | - <a class="link" href="http://kanze.james.neuf.fr/articles/fltrsbf1.html">Filtering | |
18472 | + <a class="link" href="http://kanze.james.neuf.fr/articles/fltrsbf1.html" target="_top">Filtering | |
18473 | Streambufs</a>. | |
18474 | - </p></div><div class="section" title="Buffering"><div class="titlepage"><div><div><h3 class="title"><a id="io.streambuf.buffering"/>Buffering</h3></div></div></div><p>First, are you sure that you understand buffering? Particularly | |
18475 | + </p></div><div class="section" title="Buffering"><div class="titlepage"><div><div><h3 class="title"><a id="io.streambuf.buffering"></a>Buffering</h3></div></div></div><p>First, are you sure that you understand buffering? Particularly | |
18476 | the fact that C++ may not, in fact, have anything to do with it? | |
18477 | </p><p>The rules for buffering can be a little odd, but they aren't any | |
18478 | different from those of C. (Maybe that's why they can be a bit | |
18479 | @@ -131,7 +131,7 @@ | |
18480 | just those at the language/library level. Kernel buffers, disk | |
18481 | buffers, and the like will also have an effect. Inspecting and | |
18482 | changing those are system-dependent. | |
18483 | - </p></div></div><div class="navfooter"><hr/><table width="100%" summary="Navigation footer"><tr><td align="left"><a accesskey="p" href="io.html">Prev</a> </td><td align="center"><a accesskey="u" href="io.html">Up</a></td><td align="right"> <a accesskey="n" href="stringstreams.html">Next</a></td></tr><tr><td align="left" valign="top">Chapter 13. | |
18484 | + </p></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="io.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="io.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="stringstreams.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Chapter 13. | |
18485 | Input and Output | |
18486 | ||
18487 | - </td><td align="center"><a accesskey="h" href="../index.html">Home</a></td><td align="right" valign="top"> Memory Based Streams</td></tr></table></div></body></html> | |
18488 | + </td><td width="20%" align="center"><a accesskey="h" href="../index.html">Home</a></td><td width="40%" align="right" valign="top"> Memory Based Streams</td></tr></table></div></body></html> | |
18489 | Index: libstdc++-v3/doc/html/manual/utilities.html | |
18490 | =================================================================== | |
9f95000d AM |
18491 | --- libstdc++-v3/doc/html/manual/utilities.html (.../tags/gcc_4_7_2_release) (wersja 192468) |
18492 | +++ libstdc++-v3/doc/html/manual/utilities.html (.../branches/gcc-4_7-branch) (wersja 192468) | |
5a87b929 AM |
18493 | @@ -1,17 +1,17 @@ |
18494 | <?xml version="1.0" encoding="UTF-8" standalone="no"?> | |
18495 | -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> | |
18496 | -<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Chapter 6. Utilities</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1"/><meta name="keywords" content=" ISO C++ , library "/><meta name="keywords" content=" ISO C++ , runtime , library "/><link rel="home" href="../index.html" title="The GNU C++ Library"/><link rel="up" href="bk01pt02.html" title="Part II. Standard Contents"/><link rel="prev" href="bk01pt02ch05s02.html" title="Concept Checking"/><link rel="next" href="pairs.html" title="Pairs"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 6. | |
18497 | +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> | |
18498 | +<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Chapter 6. Utilities</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1" /><meta name="keywords" content=" ISO C++ , library " /><meta name="keywords" content=" ISO C++ , runtime , library " /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="bk01pt02.html" title="Part II. Standard Contents" /><link rel="prev" href="bk01pt02ch05s02.html" title="Concept Checking" /><link rel="next" href="pairs.html" title="Pairs" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 6. | |
18499 | Utilities | |
18500 | ||
18501 | -</th></tr><tr><td align="left"><a accesskey="p" href="bk01pt02ch05s02.html">Prev</a> </td><th width="60%" align="center">Part II. | |
18502 | +</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="bk01pt02ch05s02.html">Prev</a> </td><th width="60%" align="center">Part II. | |
18503 | Standard Contents | |
18504 | - </th><td align="right"> <a accesskey="n" href="pairs.html">Next</a></td></tr></table><hr/></div><div class="chapter" title="Chapter 6. Utilities"><div class="titlepage"><div><div><h2 class="title"><a id="std.util"/>Chapter 6. | |
18505 | + </th><td width="20%" align="right"> <a accesskey="n" href="pairs.html">Next</a></td></tr></table><hr /></div><div class="chapter" title="Chapter 6. Utilities"><div class="titlepage"><div><div><h2 class="title"><a id="std.util"></a>Chapter 6. | |
18506 | Utilities | |
18507 | - <a id="id484854" class="indexterm"/> | |
18508 | -</h2></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl><dt><span class="section"><a href="utilities.html#std.util.functors">Functors</a></span></dt><dt><span class="section"><a href="pairs.html">Pairs</a></span></dt><dt><span class="section"><a href="memory.html">Memory</a></span></dt><dd><dl><dt><span class="section"><a href="memory.html#std.util.memory.allocator">Allocators</a></span></dt><dd><dl><dt><span class="section"><a href="memory.html#allocator.req">Requirements</a></span></dt><dt><span class="section"><a href="memory.html#allocator.design_issues">Design Issues</a></span></dt><dt><span class="section"><a href="memory.html#allocator.impl">Implementation</a></span></dt><dd><dl><dt><span class="section"><a href="memory.html#id485345">Interface Design</a></span></dt><dt><span class="section"><a href="memory.html#id485374">Selecting Default Allocation Policy</a></span></dt><dt><span class="section"><a href="memory.html#id485485">Disabling Memory Caching</a></span></dt></dl></dd><dt><span class="section"><a href="memory.html#allocator.using">Using a Specific Allocator</a></span></dt><dt><span class="section"><a href="memory.html#allocator.custom">Custom Allocators</a></span></dt><dt><span class="section"><a href="memory.html#allocator.ext">Extension Allocators</a></span></dt></dl></dd><dt><span class="section"><a href="memory.html#std.util.memory.auto_ptr">auto_ptr</a></span></dt><dd><dl><dt><span class="section"><a href="memory.html#auto_ptr.limitations">Limitations</a></span></dt><dt><span class="section"><a href="memory.html#auto_ptr.using">Use in Containers</a></span></dt></dl></dd><dt><span class="section"><a href="memory.html#std.util.memory.shared_ptr">shared_ptr</a></span></dt><dd><dl><dt><span class="section"><a href="memory.html#shared_ptr.req">Requirements</a></span></dt><dt><span class="section"><a href="memory.html#shared_ptr.design_issues">Design Issues</a></span></dt><dt><span class="section"><a href="memory.html#shared_ptr.impl">Implementation</a></span></dt><dd><dl><dt><span class="section"><a href="memory.html#id486484">Class Hierarchy</a></span></dt><dt><span class="section"><a href="memory.html#id486672">Thread Safety</a></span></dt><dt><span class="section"><a href="memory.html#id486733">Selecting Lock Policy</a></span></dt><dt><span class="section"><a href="memory.html#id486854">Related functions and classes</a></span></dt></dl></dd><dt><span class="section"><a href="memory.html#shared_ptr.using">Use</a></span></dt><dd><dl><dt><span class="section"><a href="memory.html#id499306">Examples</a></span></dt><dt><span class="section"><a href="memory.html#id499336">Unresolved Issues</a></span></dt></dl></dd><dt><span class="section"><a href="memory.html#shared_ptr.ack">Acknowledgments</a></span></dt></dl></dd></dl></dd><dt><span class="section"><a href="traits.html">Traits</a></span></dt></dl></div><div class="section" title="Functors"><div class="titlepage"><div><div><h2 class="title"><a id="std.util.functors"/>Functors</h2></div></div></div><p>If you don't know what functors are, you're not alone. Many people | |
18509 | + <a id="id663342" class="indexterm"></a> | |
18510 | +</h2></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl><dt><span class="section"><a href="utilities.html#std.util.functors">Functors</a></span></dt><dt><span class="section"><a href="pairs.html">Pairs</a></span></dt><dt><span class="section"><a href="memory.html">Memory</a></span></dt><dd><dl><dt><span class="section"><a href="memory.html#std.util.memory.allocator">Allocators</a></span></dt><dd><dl><dt><span class="section"><a href="memory.html#allocator.req">Requirements</a></span></dt><dt><span class="section"><a href="memory.html#allocator.design_issues">Design Issues</a></span></dt><dt><span class="section"><a href="memory.html#allocator.impl">Implementation</a></span></dt><dd><dl><dt><span class="section"><a href="memory.html#id663833">Interface Design</a></span></dt><dt><span class="section"><a href="memory.html#id663862">Selecting Default Allocation Policy</a></span></dt><dt><span class="section"><a href="memory.html#id663973">Disabling Memory Caching</a></span></dt></dl></dd><dt><span class="section"><a href="memory.html#allocator.using">Using a Specific Allocator</a></span></dt><dt><span class="section"><a href="memory.html#allocator.custom">Custom Allocators</a></span></dt><dt><span class="section"><a href="memory.html#allocator.ext">Extension Allocators</a></span></dt></dl></dd><dt><span class="section"><a href="memory.html#std.util.memory.auto_ptr">auto_ptr</a></span></dt><dd><dl><dt><span class="section"><a href="memory.html#auto_ptr.limitations">Limitations</a></span></dt><dt><span class="section"><a href="memory.html#auto_ptr.using">Use in Containers</a></span></dt></dl></dd><dt><span class="section"><a href="memory.html#std.util.memory.shared_ptr">shared_ptr</a></span></dt><dd><dl><dt><span class="section"><a href="memory.html#shared_ptr.req">Requirements</a></span></dt><dt><span class="section"><a href="memory.html#shared_ptr.design_issues">Design Issues</a></span></dt><dt><span class="section"><a href="memory.html#shared_ptr.impl">Implementation</a></span></dt><dd><dl><dt><span class="section"><a href="memory.html#id664972">Class Hierarchy</a></span></dt><dt><span class="section"><a href="memory.html#id665160">Thread Safety</a></span></dt><dt><span class="section"><a href="memory.html#id665221">Selecting Lock Policy</a></span></dt><dt><span class="section"><a href="memory.html#id665342">Related functions and classes</a></span></dt></dl></dd><dt><span class="section"><a href="memory.html#shared_ptr.using">Use</a></span></dt><dd><dl><dt><span class="section"><a href="memory.html#id677792">Examples</a></span></dt><dt><span class="section"><a href="memory.html#id677822">Unresolved Issues</a></span></dt></dl></dd><dt><span class="section"><a href="memory.html#shared_ptr.ack">Acknowledgments</a></span></dt></dl></dd></dl></dd><dt><span class="section"><a href="traits.html">Traits</a></span></dt></dl></div><div class="section" title="Functors"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="std.util.functors"></a>Functors</h2></div></div></div><p>If you don't know what functors are, you're not alone. Many people | |
18511 | get slightly the wrong idea. In the interest of not reinventing | |
18512 | the wheel, we will refer you to the introduction to the functor | |
18513 | concept written by SGI as part of their STL, in | |
18514 | - <a class="link" href="http://www.sgi.com/tech/stl/functors.html">their | |
18515 | + <a class="link" href="http://www.sgi.com/tech/stl/functors.html" target="_top">their | |
18516 | http://www.sgi.com/tech/stl/functors.html</a>. | |
18517 | - </p></div></div><div class="navfooter"><hr/><table width="100%" summary="Navigation footer"><tr><td align="left"><a accesskey="p" href="bk01pt02ch05s02.html">Prev</a> </td><td align="center"><a accesskey="u" href="bk01pt02.html">Up</a></td><td align="right"> <a accesskey="n" href="pairs.html">Next</a></td></tr><tr><td align="left" valign="top">Concept Checking </td><td align="center"><a accesskey="h" href="../index.html">Home</a></td><td align="right" valign="top"> Pairs</td></tr></table></div></body></html> | |
18518 | + </p></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="bk01pt02ch05s02.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="bk01pt02.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="pairs.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Concept Checking </td><td width="20%" align="center"><a accesskey="h" href="../index.html">Home</a></td><td width="40%" align="right" valign="top"> Pairs</td></tr></table></div></body></html> | |
18519 | Index: libstdc++-v3/doc/xsl/customization.xsl.in | |
18520 | =================================================================== | |
9f95000d AM |
18521 | --- libstdc++-v3/doc/xsl/customization.xsl.in (.../tags/gcc_4_7_2_release) (wersja 0) |
18522 | +++ libstdc++-v3/doc/xsl/customization.xsl.in (.../branches/gcc-4_7-branch) (wersja 192468) | |
18523 | @@ -0,0 +1,16 @@ | |
18524 | +<?xml version='1.0'?> | |
18525 | + | |
18526 | +<!-- | |
18527 | + Specialization/customization layer for libstdc++. | |
18528 | + To output both chunked/single page HTML in UTF-8 charset | |
18529 | + | |
18530 | + XSL_STYLE_DIR is set in acinclude.m4 | |
18531 | + | |
18532 | +<xsl:import html="@XSL_STYLE_DIR@/html/docbook.xsl"/> | |
18533 | +--> | |
18534 | + | |
18535 | +<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" | |
18536 | + version="1.0"> | |
18537 | +<xsl:import href="@XSL_STYLE_DIR@/html/docbook.xsl"/> | |
18538 | +<xsl:output method="html" encoding="UTF-8" indent="no"/> | |
18539 | +</xsl:stylesheet> | |
5a87b929 AM |
18540 | |
18541 | Zmiany atrybutów dla: libstdc++-v3/doc/xsl/customization.xsl.in | |
18542 | ___________________________________________________________________ | |
18543 | Added: svn:mime-type | |
18544 | ## -0,0 +1 ## | |
18545 | +application/xml | |
18546 | \ No newline at end of property | |
18547 | Index: libstdc++-v3/doc/Makefile.am | |
18548 | =================================================================== | |
9f95000d AM |
18549 | --- libstdc++-v3/doc/Makefile.am (.../tags/gcc_4_7_2_release) (wersja 192468) |
18550 | +++ libstdc++-v3/doc/Makefile.am (.../branches/gcc-4_7-branch) (wersja 192468) | |
5a87b929 AM |
18551 | @@ -465,9 +465,10 @@ |
18552 | #XSL_STYLE_DIR = /usr/share/xml/docbook/stylesheet/docbook-xsl-ns | |
18553 | #XSL_STYLE_DIR = /usr/share/sgml/docbook/xsl-ns-stylesheets | |
18554 | XSL_FO_STYLE = $(XSL_STYLE_DIR)/fo/docbook.xsl | |
18555 | -XSL_HTML_STYLE = $(XSL_STYLE_DIR)/xhtml-1_1/chunk.xsl | |
18556 | -XSL_HTML_SINGLE_STYLE = $(XSL_STYLE_DIR)/xhtml-1_1/docbook.xsl | |
18557 | +XSL_HTML_STYLE = $(XSL_STYLE_DIR)/xhtml/chunk.xsl | |
18558 | +XSL_HTML_SINGLE_STYLE = $(XSL_STYLE_DIR)/html/docbook.xsl | |
18559 | XSL_EPUB_STYLE = $(XSL_STYLE_DIR)/epub3/chunk.xsl | |
18560 | +XSL_LOCAL_STYLE = ${glibcxx_builddir}/doc/xsl/customization.xsl | |
18561 | ||
18562 | ${docbook_outdir}/epub: | |
18563 | mkdir -p ${docbook_outdir}/epub | |
18564 | @@ -529,21 +530,25 @@ | |
18565 | stamp-html-docbook-data: stamp-html-docbook-images stamp-html-docbook-lwg | |
18566 | $(STAMP) stamp-html-docbook-data | |
18567 | ||
18568 | -# HTML, index plus chapters | |
18569 | +# HTML, "chunked" into index plus chapters as separate pages | |
18570 | stamp-html-docbook: $(xml_sources) ${docbook_outdir}/html | |
18571 | @echo "Generating html files..." | |
18572 | $(XSLTPROC) $(XSLT_PARAM) $(XSLT_FLAGS) -o ${docbook_outdir}/html/ \ | |
18573 | - $(XSL_HTML_STYLE) ${top_srcdir}/doc/xml/spine.xml | |
18574 | + --stringparam chunker.output.encoding UTF-8 \ | |
18575 | + $(XSL_HTML_STYLE) \ | |
18576 | + ${top_srcdir}/doc/xml/spine.xml | |
18577 | $(STAMP) stamp-html-docbook | |
18578 | ||
18579 | doc-html-docbook: stamp-html-docbook-data | |
18580 | ||
18581 | # HTML, all one page | |
18582 | +# NB: Have to generate customization XSL for UTF-8 output. | |
18583 | manual_html = ${docbook_outdir}/html/libstdc++-manual-single.html | |
18584 | stamp-html-single-docbook: $(xml_sources) ${docbook_outdir}/html | |
18585 | @echo "Generating html single file..." | |
18586 | $(XSLTPROC) $(XSLT_PARAM) $(XSLT_FLAGS) -o ${manual_html} \ | |
18587 | - $(XSL_HTML_SINGLE_STYLE) ${top_srcdir}/doc/xml/spine.xml | |
18588 | + ${XSL_LOCAL_STYLE} \ | |
18589 | + ${top_srcdir}/doc/xml/spine.xml | |
18590 | $(STAMP) stamp-html-single-docbook | |
18591 | ||
18592 | doc-html-single-docbook: stamp-html-single-docbook | |
18593 | Index: libstdc++-v3/include/bits/atomic_base.h | |
18594 | =================================================================== | |
9f95000d AM |
18595 | --- libstdc++-v3/include/bits/atomic_base.h (.../tags/gcc_4_7_2_release) (wersja 192468) |
18596 | +++ libstdc++-v3/include/bits/atomic_base.h (.../branches/gcc-4_7-branch) (wersja 192468) | |
5a87b929 AM |
18597 | @@ -73,7 +73,7 @@ |
18598 | ||
18599 | inline void | |
18600 | atomic_signal_fence(memory_order __m) noexcept | |
18601 | - { __atomic_thread_fence(__m); } | |
18602 | + { __atomic_signal_fence(__m); } | |
18603 | ||
18604 | /// kill_dependency | |
18605 | template<typename _Tp> | |
18606 | Index: libstdc++-v3/ChangeLog | |
18607 | =================================================================== | |
9f95000d AM |
18608 | --- libstdc++-v3/ChangeLog (.../tags/gcc_4_7_2_release) (wersja 192468) |
18609 | +++ libstdc++-v3/ChangeLog (.../branches/gcc-4_7-branch) (wersja 192468) | |
5a87b929 AM |
18610 | @@ -1,3 +1,31 @@ |
18611 | +2012-10-10 Andrew MacLeod <amacleod@redhat.com> | |
18612 | + | |
18613 | + PR libstdc++/54861 | |
18614 | + * include/bits/atomic_base.h (atomic_signal_fence): Call | |
18615 | + __atomic_signal_fence instead of __atomic_thread_fence. | |
18616 | + | |
18617 | +2012-09-20 Benjamin Kosnik <bkoz@redhat.com> | |
18618 | + | |
18619 | + PR libstdc++/54102, part 2 | |
18620 | + * doc/Makefile.am (XSL_HTML_STYLE): use xhtml, not html. | |
18621 | + * doc/Makefile.in: Regenerate. | |
18622 | + * doc/html/*: Same. | |
18623 | + | |
18624 | +2012-09-20 Benjamin Kosnik <bkoz@redhat.com> | |
18625 | + | |
18626 | + * doc/html/*: Regenerate. | |
18627 | + | |
18628 | +2012-09-20 Benjamin Kosnik <bkoz@redhat.com> | |
18629 | + | |
18630 | + PR libstdc++/54102 | |
18631 | + * doc/xsl/customization.xsl.in: New. | |
18632 | + * configure.ac: Output local copy of customization xsl. | |
18633 | + * doc/Makefile.am (stamp-html-single-docbook): Use XSL_LOCAL_STYLE. | |
18634 | + (stamp-html-docbook): Set stringparam to UTF-8. | |
18635 | + * Makefile.in: Regenerated. | |
18636 | + * configure: Same. | |
18637 | + * doc/Makefile.in: Same. | |
18638 | + | |
18639 | 2012-09-20 Release Manager | |
18640 | ||
18641 | * GCC 4.7.2 released. | |
18642 | Index: boehm-gc/Makefile.in | |
18643 | =================================================================== | |
9f95000d AM |
18644 | --- boehm-gc/Makefile.in (.../tags/gcc_4_7_2_release) (wersja 192468) |
18645 | +++ boehm-gc/Makefile.in (.../branches/gcc-4_7-branch) (wersja 192468) | |
5a87b929 AM |
18646 | @@ -36,13 +36,10 @@ |
18647 | host_triplet = @host@ | |
18648 | target_triplet = @target@ | |
18649 | subdir = . | |
18650 | -DIST_COMMON = $(am__configure_deps) $(srcdir)/../compile \ | |
18651 | - $(srcdir)/../config.guess $(srcdir)/../config.sub \ | |
18652 | - $(srcdir)/../depcomp $(srcdir)/../install-sh \ | |
18653 | - $(srcdir)/../ltmain.sh $(srcdir)/../missing \ | |
18654 | - $(srcdir)/../mkinstalldirs $(srcdir)/Makefile.am \ | |
18655 | - $(srcdir)/Makefile.in $(srcdir)/threads.mk.in \ | |
18656 | - $(top_srcdir)/configure ChangeLog depcomp | |
18657 | +DIST_COMMON = ChangeLog $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ | |
18658 | + $(top_srcdir)/configure $(am__configure_deps) \ | |
18659 | + $(srcdir)/../mkinstalldirs $(srcdir)/threads.mk.in \ | |
18660 | + $(srcdir)/../depcomp | |
18661 | ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 | |
18662 | am__aclocal_m4_deps = $(top_srcdir)/../config/acx.m4 \ | |
18663 | $(top_srcdir)/../config/depstand.m4 \ | |
18664 | @@ -63,14 +60,6 @@ | |
18665 | CONFIG_CLEAN_VPATH_FILES = | |
18666 | LTLIBRARIES = $(noinst_LTLIBRARIES) | |
18667 | am__DEPENDENCIES_1 = | |
18668 | -am__libgcjgc_la_SOURCES_DIST = allchblk.c alloc.c blacklst.c \ | |
18669 | - checksums.c dbg_mlc.c dyn_load.c finalize.c gc_dlopen.c \ | |
18670 | - gcj_mlc.c headers.c malloc.c mallocx.c mark.c mark_rts.c \ | |
18671 | - misc.c new_hblk.c obj_map.c os_dep.c pcr_interface.c \ | |
18672 | - ptr_chck.c real_malloc.c reclaim.c specific.c stubborn.c \ | |
18673 | - typd_mlc.c backgraph.c win32_threads.c pthread_support.c \ | |
18674 | - pthread_stop_world.c darwin_stop_world.c \ | |
18675 | - powerpc_darwin_mach_dep.s | |
18676 | @POWERPC_DARWIN_TRUE@am__objects_1 = powerpc_darwin_mach_dep.lo | |
18677 | am_libgcjgc_la_OBJECTS = allchblk.lo alloc.lo blacklst.lo checksums.lo \ | |
18678 | dbg_mlc.lo dyn_load.lo finalize.lo gc_dlopen.lo gcj_mlc.lo \ | |
18679 | @@ -80,14 +69,6 @@ | |
18680 | backgraph.lo win32_threads.lo pthread_support.lo \ | |
18681 | pthread_stop_world.lo darwin_stop_world.lo $(am__objects_1) | |
18682 | libgcjgc_la_OBJECTS = $(am_libgcjgc_la_OBJECTS) | |
18683 | -am__libgcjgc_convenience_la_SOURCES_DIST = allchblk.c alloc.c \ | |
18684 | - blacklst.c checksums.c dbg_mlc.c dyn_load.c finalize.c \ | |
18685 | - gc_dlopen.c gcj_mlc.c headers.c malloc.c mallocx.c mark.c \ | |
18686 | - mark_rts.c misc.c new_hblk.c obj_map.c os_dep.c \ | |
18687 | - pcr_interface.c ptr_chck.c real_malloc.c reclaim.c specific.c \ | |
18688 | - stubborn.c typd_mlc.c backgraph.c win32_threads.c \ | |
18689 | - pthread_support.c pthread_stop_world.c darwin_stop_world.c \ | |
18690 | - powerpc_darwin_mach_dep.s | |
18691 | am__objects_2 = allchblk.lo alloc.lo blacklst.lo checksums.lo \ | |
18692 | dbg_mlc.lo dyn_load.lo finalize.lo gc_dlopen.lo gcj_mlc.lo \ | |
18693 | headers.lo malloc.lo mallocx.lo mark.lo mark_rts.lo misc.lo \ | |
18694 | @@ -115,8 +96,6 @@ | |
18695 | LTCCASCOMPILE = $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ | |
18696 | --mode=compile $(CCAS) $(AM_CCASFLAGS) $(CCASFLAGS) | |
18697 | SOURCES = $(libgcjgc_la_SOURCES) $(libgcjgc_convenience_la_SOURCES) | |
18698 | -DIST_SOURCES = $(am__libgcjgc_la_SOURCES_DIST) \ | |
18699 | - $(am__libgcjgc_convenience_la_SOURCES_DIST) | |
18700 | MULTISRCTOP = | |
18701 | MULTIBUILDTOP = | |
18702 | MULTIDIRS = | |
18703 | @@ -133,47 +112,10 @@ | |
18704 | RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ | |
18705 | distclean-recursive maintainer-clean-recursive | |
18706 | AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ | |
18707 | - $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ | |
18708 | - distdir dist dist-all distcheck | |
18709 | + $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS | |
18710 | ETAGS = etags | |
18711 | CTAGS = ctags | |
18712 | DIST_SUBDIRS = $(SUBDIRS) | |
18713 | -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) | |
18714 | -distdir = $(PACKAGE)-$(VERSION) | |
18715 | -top_distdir = $(distdir) | |
18716 | -am__remove_distdir = \ | |
18717 | - { test ! -d "$(distdir)" \ | |
18718 | - || { find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \ | |
18719 | - && rm -fr "$(distdir)"; }; } | |
18720 | -am__relativize = \ | |
18721 | - dir0=`pwd`; \ | |
18722 | - sed_first='s,^\([^/]*\)/.*$$,\1,'; \ | |
18723 | - sed_rest='s,^[^/]*/*,,'; \ | |
18724 | - sed_last='s,^.*/\([^/]*\)$$,\1,'; \ | |
18725 | - sed_butlast='s,/*[^/]*$$,,'; \ | |
18726 | - while test -n "$$dir1"; do \ | |
18727 | - first=`echo "$$dir1" | sed -e "$$sed_first"`; \ | |
18728 | - if test "$$first" != "."; then \ | |
18729 | - if test "$$first" = ".."; then \ | |
18730 | - dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ | |
18731 | - dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ | |
18732 | - else \ | |
18733 | - first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ | |
18734 | - if test "$$first2" = "$$first"; then \ | |
18735 | - dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ | |
18736 | - else \ | |
18737 | - dir2="../$$dir2"; \ | |
18738 | - fi; \ | |
18739 | - dir0="$$dir0"/"$$first"; \ | |
18740 | - fi; \ | |
18741 | - fi; \ | |
18742 | - dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ | |
18743 | - done; \ | |
18744 | - reldir="$$dir2" | |
18745 | -DIST_ARCHIVES = $(distdir).tar.gz | |
18746 | -GZIP_ENV = --best | |
18747 | -distuninstallcheck_listfiles = find . -type f -print | |
18748 | -distcleancheck_listfiles = find . -type f -print | |
18749 | ACLOCAL = @ACLOCAL@ | |
18750 | AMTAR = @AMTAR@ | |
18751 | AM_CPPFLAGS = @AM_CPPFLAGS@ | |
18752 | @@ -314,7 +256,7 @@ | |
18753 | top_build_prefix = @top_build_prefix@ | |
18754 | top_builddir = @top_builddir@ | |
18755 | top_srcdir = @top_srcdir@ | |
18756 | -AUTOMAKE_OPTIONS = foreign subdir-objects | |
18757 | +AUTOMAKE_OPTIONS = foreign subdir-objects no-dist | |
18758 | ACLOCAL_AMFLAGS = -I .. -I ../config | |
18759 | SUBDIRS = include testsuite | |
18760 | noinst_LTLIBRARIES = libgcjgc.la libgcjgc_convenience.la | |
18761 | @@ -672,182 +614,6 @@ | |
18762 | ||
18763 | distclean-tags: | |
18764 | -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags | |
18765 | - | |
18766 | -distdir: $(DISTFILES) | |
18767 | - $(am__remove_distdir) | |
18768 | - test -d "$(distdir)" || mkdir "$(distdir)" | |
18769 | - @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ | |
18770 | - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ | |
18771 | - list='$(DISTFILES)'; \ | |
18772 | - dist_files=`for file in $$list; do echo $$file; done | \ | |
18773 | - sed -e "s|^$$srcdirstrip/||;t" \ | |
18774 | - -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ | |
18775 | - case $$dist_files in \ | |
18776 | - */*) $(MKDIR_P) `echo "$$dist_files" | \ | |
18777 | - sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ | |
18778 | - sort -u` ;; \ | |
18779 | - esac; \ | |
18780 | - for file in $$dist_files; do \ | |
18781 | - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ | |
18782 | - if test -d $$d/$$file; then \ | |
18783 | - dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ | |
18784 | - if test -d "$(distdir)/$$file"; then \ | |
18785 | - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ | |
18786 | - fi; \ | |
18787 | - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ | |
18788 | - cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ | |
18789 | - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ | |
18790 | - fi; \ | |
18791 | - cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ | |
18792 | - else \ | |
18793 | - test -f "$(distdir)/$$file" \ | |
18794 | - || cp -p $$d/$$file "$(distdir)/$$file" \ | |
18795 | - || exit 1; \ | |
18796 | - fi; \ | |
18797 | - done | |
18798 | - @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ | |
18799 | - if test "$$subdir" = .; then :; else \ | |
18800 | - test -d "$(distdir)/$$subdir" \ | |
18801 | - || $(MKDIR_P) "$(distdir)/$$subdir" \ | |
18802 | - || exit 1; \ | |
18803 | - fi; \ | |
18804 | - done | |
18805 | - @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ | |
18806 | - if test "$$subdir" = .; then :; else \ | |
18807 | - dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ | |
18808 | - $(am__relativize); \ | |
18809 | - new_distdir=$$reldir; \ | |
18810 | - dir1=$$subdir; dir2="$(top_distdir)"; \ | |
18811 | - $(am__relativize); \ | |
18812 | - new_top_distdir=$$reldir; \ | |
18813 | - echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ | |
18814 | - echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ | |
18815 | - ($(am__cd) $$subdir && \ | |
18816 | - $(MAKE) $(AM_MAKEFLAGS) \ | |
18817 | - top_distdir="$$new_top_distdir" \ | |
18818 | - distdir="$$new_distdir" \ | |
18819 | - am__remove_distdir=: \ | |
18820 | - am__skip_length_check=: \ | |
18821 | - am__skip_mode_fix=: \ | |
18822 | - distdir) \ | |
18823 | - || exit 1; \ | |
18824 | - fi; \ | |
18825 | - done | |
18826 | - -test -n "$(am__skip_mode_fix)" \ | |
18827 | - || find "$(distdir)" -type d ! -perm -755 \ | |
18828 | - -exec chmod u+rwx,go+rx {} \; -o \ | |
18829 | - ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \ | |
18830 | - ! -type d ! -perm -400 -exec chmod a+r {} \; -o \ | |
18831 | - ! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \ | |
18832 | - || chmod -R a+r "$(distdir)" | |
18833 | -dist-gzip: distdir | |
18834 | - tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz | |
18835 | - $(am__remove_distdir) | |
18836 | - | |
18837 | -dist-bzip2: distdir | |
18838 | - tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2 | |
18839 | - $(am__remove_distdir) | |
18840 | - | |
18841 | -dist-lzma: distdir | |
18842 | - tardir=$(distdir) && $(am__tar) | lzma -9 -c >$(distdir).tar.lzma | |
18843 | - $(am__remove_distdir) | |
18844 | - | |
18845 | -dist-xz: distdir | |
18846 | - tardir=$(distdir) && $(am__tar) | xz -c >$(distdir).tar.xz | |
18847 | - $(am__remove_distdir) | |
18848 | - | |
18849 | -dist-tarZ: distdir | |
18850 | - tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z | |
18851 | - $(am__remove_distdir) | |
18852 | - | |
18853 | -dist-shar: distdir | |
18854 | - shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz | |
18855 | - $(am__remove_distdir) | |
18856 | - | |
18857 | -dist-zip: distdir | |
18858 | - -rm -f $(distdir).zip | |
18859 | - zip -rq $(distdir).zip $(distdir) | |
18860 | - $(am__remove_distdir) | |
18861 | - | |
18862 | -dist dist-all: distdir | |
18863 | - tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz | |
18864 | - $(am__remove_distdir) | |
18865 | - | |
18866 | -# This target untars the dist file and tries a VPATH configuration. Then | |
18867 | -# it guarantees that the distribution is self-contained by making another | |
18868 | -# tarfile. | |
18869 | -distcheck: dist | |
18870 | - case '$(DIST_ARCHIVES)' in \ | |
18871 | - *.tar.gz*) \ | |
18872 | - GZIP=$(GZIP_ENV) gzip -dc $(distdir).tar.gz | $(am__untar) ;;\ | |
18873 | - *.tar.bz2*) \ | |
18874 | - bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\ | |
18875 | - *.tar.lzma*) \ | |
18876 | - lzma -dc $(distdir).tar.lzma | $(am__untar) ;;\ | |
18877 | - *.tar.xz*) \ | |
18878 | - xz -dc $(distdir).tar.xz | $(am__untar) ;;\ | |
18879 | - *.tar.Z*) \ | |
18880 | - uncompress -c $(distdir).tar.Z | $(am__untar) ;;\ | |
18881 | - *.shar.gz*) \ | |
18882 | - GZIP=$(GZIP_ENV) gzip -dc $(distdir).shar.gz | unshar ;;\ | |
18883 | - *.zip*) \ | |
18884 | - unzip $(distdir).zip ;;\ | |
18885 | - esac | |
18886 | - chmod -R a-w $(distdir); chmod a+w $(distdir) | |
18887 | - mkdir $(distdir)/_build | |
18888 | - mkdir $(distdir)/_inst | |
18889 | - chmod a-w $(distdir) | |
18890 | - test -d $(distdir)/_build || exit 0; \ | |
18891 | - dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \ | |
18892 | - && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \ | |
18893 | - && am__cwd=`pwd` \ | |
18894 | - && $(am__cd) $(distdir)/_build \ | |
18895 | - && ../configure --srcdir=.. --prefix="$$dc_install_base" \ | |
18896 | - $(DISTCHECK_CONFIGURE_FLAGS) \ | |
18897 | - && $(MAKE) $(AM_MAKEFLAGS) \ | |
18898 | - && $(MAKE) $(AM_MAKEFLAGS) dvi \ | |
18899 | - && $(MAKE) $(AM_MAKEFLAGS) check \ | |
18900 | - && $(MAKE) $(AM_MAKEFLAGS) install \ | |
18901 | - && $(MAKE) $(AM_MAKEFLAGS) installcheck \ | |
18902 | - && $(MAKE) $(AM_MAKEFLAGS) uninstall \ | |
18903 | - && $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \ | |
18904 | - distuninstallcheck \ | |
18905 | - && chmod -R a-w "$$dc_install_base" \ | |
18906 | - && ({ \ | |
18907 | - (cd ../.. && umask 077 && mkdir "$$dc_destdir") \ | |
18908 | - && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \ | |
18909 | - && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \ | |
18910 | - && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \ | |
18911 | - distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \ | |
18912 | - } || { rm -rf "$$dc_destdir"; exit 1; }) \ | |
18913 | - && rm -rf "$$dc_destdir" \ | |
18914 | - && $(MAKE) $(AM_MAKEFLAGS) dist \ | |
18915 | - && rm -rf $(DIST_ARCHIVES) \ | |
18916 | - && $(MAKE) $(AM_MAKEFLAGS) distcleancheck \ | |
18917 | - && cd "$$am__cwd" \ | |
18918 | - || exit 1 | |
18919 | - $(am__remove_distdir) | |
18920 | - @(echo "$(distdir) archives ready for distribution: "; \ | |
18921 | - list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \ | |
18922 | - sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x' | |
18923 | -distuninstallcheck: | |
18924 | - @$(am__cd) '$(distuninstallcheck_dir)' \ | |
18925 | - && test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \ | |
18926 | - || { echo "ERROR: files left after uninstall:" ; \ | |
18927 | - if test -n "$(DESTDIR)"; then \ | |
18928 | - echo " (check DESTDIR support)"; \ | |
18929 | - fi ; \ | |
18930 | - $(distuninstallcheck_listfiles) ; \ | |
18931 | - exit 1; } >&2 | |
18932 | -distcleancheck: distclean | |
18933 | - @if test '$(srcdir)' = . ; then \ | |
18934 | - echo "ERROR: distcleancheck can only run from a VPATH build" ; \ | |
18935 | - exit 1 ; \ | |
18936 | - fi | |
18937 | - @test `$(distcleancheck_listfiles) | wc -l` -eq 0 \ | |
18938 | - || { echo "ERROR: files left in build directory after distclean:" ; \ | |
18939 | - $(distcleancheck_listfiles) ; \ | |
18940 | - exit 1; } >&2 | |
18941 | check-am: all-am | |
18942 | check: check-recursive | |
18943 | all-am: Makefile $(LTLIBRARIES) all-multi | |
18944 | @@ -960,21 +726,19 @@ | |
18945 | .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ | |
18946 | all all-am all-multi am--refresh check check-am clean \ | |
18947 | clean-generic clean-libtool clean-multi \ | |
18948 | - clean-noinstLTLIBRARIES ctags ctags-recursive dist dist-all \ | |
18949 | - dist-bzip2 dist-gzip dist-lzma dist-shar dist-tarZ dist-xz \ | |
18950 | - dist-zip distcheck distclean distclean-compile \ | |
18951 | - distclean-generic distclean-libtool distclean-multi \ | |
18952 | - distclean-tags distcleancheck distdir distuninstallcheck dvi \ | |
18953 | - dvi-am html html-am info info-am install install-am \ | |
18954 | - install-data install-data-am install-dvi install-dvi-am \ | |
18955 | - install-exec install-exec-am install-html install-html-am \ | |
18956 | - install-info install-info-am install-man install-multi \ | |
18957 | - install-pdf install-pdf-am install-ps install-ps-am \ | |
18958 | - install-strip installcheck installcheck-am installdirs \ | |
18959 | - installdirs-am maintainer-clean maintainer-clean-generic \ | |
18960 | - maintainer-clean-multi mostlyclean mostlyclean-compile \ | |
18961 | - mostlyclean-generic mostlyclean-libtool mostlyclean-multi pdf \ | |
18962 | - pdf-am ps ps-am tags tags-recursive uninstall uninstall-am | |
18963 | + clean-noinstLTLIBRARIES ctags ctags-recursive distclean \ | |
18964 | + distclean-compile distclean-generic distclean-libtool \ | |
18965 | + distclean-multi distclean-tags dvi dvi-am html html-am info \ | |
18966 | + info-am install install-am install-data install-data-am \ | |
18967 | + install-dvi install-dvi-am install-exec install-exec-am \ | |
18968 | + install-html install-html-am install-info install-info-am \ | |
18969 | + install-man install-multi install-pdf install-pdf-am \ | |
18970 | + install-ps install-ps-am install-strip installcheck \ | |
18971 | + installcheck-am installdirs installdirs-am maintainer-clean \ | |
18972 | + maintainer-clean-generic maintainer-clean-multi mostlyclean \ | |
18973 | + mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ | |
18974 | + mostlyclean-multi pdf pdf-am ps ps-am tags tags-recursive \ | |
18975 | + uninstall uninstall-am | |
18976 | ||
18977 | override CFLAGS := $(filter-out $(O0_CFLAGS), $(CFLAGS)) $(O0_CFLAGS) | |
18978 | ||
18979 | Index: boehm-gc/include/Makefile.in | |
18980 | =================================================================== | |
9f95000d AM |
18981 | --- boehm-gc/include/Makefile.in (.../tags/gcc_4_7_2_release) (wersja 192468) |
18982 | +++ boehm-gc/include/Makefile.in (.../branches/gcc-4_7-branch) (wersja 192468) | |
5a87b929 AM |
18983 | @@ -36,9 +36,9 @@ |
18984 | host_triplet = @host@ | |
18985 | target_triplet = @target@ | |
18986 | subdir = include | |
18987 | -DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \ | |
18988 | - $(srcdir)/Makefile.in $(srcdir)/gc_config.h.in \ | |
18989 | - $(srcdir)/gc_ext_config.h.in | |
18990 | +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ | |
18991 | + $(srcdir)/gc_config.h.in $(srcdir)/gc_ext_config.h.in \ | |
18992 | + $(noinst_HEADERS) | |
18993 | ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 | |
18994 | am__aclocal_m4_deps = $(top_srcdir)/../config/acx.m4 \ | |
18995 | $(top_srcdir)/../config/depstand.m4 \ | |
18996 | @@ -55,11 +55,9 @@ | |
18997 | CONFIG_CLEAN_FILES = | |
18998 | CONFIG_CLEAN_VPATH_FILES = | |
18999 | SOURCES = | |
19000 | -DIST_SOURCES = | |
19001 | HEADERS = $(noinst_HEADERS) | |
19002 | ETAGS = etags | |
19003 | CTAGS = ctags | |
19004 | -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) | |
19005 | ACLOCAL = @ACLOCAL@ | |
19006 | AMTAR = @AMTAR@ | |
19007 | AM_CPPFLAGS = @AM_CPPFLAGS@ | |
19008 | @@ -323,37 +321,6 @@ | |
19009 | ||
19010 | distclean-tags: | |
19011 | -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags | |
19012 | - | |
19013 | -distdir: $(DISTFILES) | |
19014 | - @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ | |
19015 | - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ | |
19016 | - list='$(DISTFILES)'; \ | |
19017 | - dist_files=`for file in $$list; do echo $$file; done | \ | |
19018 | - sed -e "s|^$$srcdirstrip/||;t" \ | |
19019 | - -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ | |
19020 | - case $$dist_files in \ | |
19021 | - */*) $(MKDIR_P) `echo "$$dist_files" | \ | |
19022 | - sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ | |
19023 | - sort -u` ;; \ | |
19024 | - esac; \ | |
19025 | - for file in $$dist_files; do \ | |
19026 | - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ | |
19027 | - if test -d $$d/$$file; then \ | |
19028 | - dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ | |
19029 | - if test -d "$(distdir)/$$file"; then \ | |
19030 | - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ | |
19031 | - fi; \ | |
19032 | - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ | |
19033 | - cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ | |
19034 | - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ | |
19035 | - fi; \ | |
19036 | - cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ | |
19037 | - else \ | |
19038 | - test -f "$(distdir)/$$file" \ | |
19039 | - || cp -p $$d/$$file "$(distdir)/$$file" \ | |
19040 | - || exit 1; \ | |
19041 | - fi; \ | |
19042 | - done | |
19043 | check-am: all-am | |
19044 | check: check-am | |
19045 | all-am: Makefile $(HEADERS) gc_config.h gc_ext_config.h | |
19046 | @@ -453,16 +420,15 @@ | |
19047 | ||
19048 | .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ | |
19049 | clean-libtool ctags distclean distclean-generic distclean-hdr \ | |
19050 | - distclean-libtool distclean-tags distdir dvi dvi-am html \ | |
19051 | - html-am info info-am install install-am install-data \ | |
19052 | - install-data-am install-dvi install-dvi-am install-exec \ | |
19053 | - install-exec-am install-html install-html-am install-info \ | |
19054 | - install-info-am install-man install-pdf install-pdf-am \ | |
19055 | - install-ps install-ps-am install-strip installcheck \ | |
19056 | - installcheck-am installdirs maintainer-clean \ | |
19057 | - maintainer-clean-generic mostlyclean mostlyclean-generic \ | |
19058 | - mostlyclean-libtool pdf pdf-am ps ps-am tags uninstall \ | |
19059 | - uninstall-am | |
19060 | + distclean-libtool distclean-tags dvi dvi-am html html-am info \ | |
19061 | + info-am install install-am install-data install-data-am \ | |
19062 | + install-dvi install-dvi-am install-exec install-exec-am \ | |
19063 | + install-html install-html-am install-info install-info-am \ | |
19064 | + install-man install-pdf install-pdf-am install-ps \ | |
19065 | + install-ps-am install-strip installcheck installcheck-am \ | |
19066 | + installdirs maintainer-clean maintainer-clean-generic \ | |
19067 | + mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ | |
19068 | + ps ps-am tags uninstall uninstall-am | |
19069 | ||
19070 | ||
19071 | # Tell versions [3.59,3.63) of GNU make to not export all variables. | |
19072 | Index: boehm-gc/ChangeLog | |
19073 | =================================================================== | |
9f95000d AM |
19074 | --- boehm-gc/ChangeLog (.../tags/gcc_4_7_2_release) (wersja 192468) |
19075 | +++ boehm-gc/ChangeLog (.../branches/gcc-4_7-branch) (wersja 192468) | |
5a87b929 AM |
19076 | @@ -1,3 +1,11 @@ |
19077 | +2012-09-20 Jakub Jelinek <jakub@redhat.com> | |
19078 | + | |
19079 | + PR other/43620 | |
19080 | + * Makefile.am (AUTOMAKE_OPTIONS): Add no-dist. | |
19081 | + * Makefile.in: Regenerated. | |
19082 | + * include/Makefile.in: Regenerated. | |
19083 | + * testsuite/Makefile.in: Regenerated. | |
19084 | + | |
19085 | 2012-09-20 Release Manager | |
19086 | ||
19087 | * GCC 4.7.2 released. | |
19088 | Index: boehm-gc/testsuite/Makefile.in | |
19089 | =================================================================== | |
9f95000d AM |
19090 | --- boehm-gc/testsuite/Makefile.in (.../tags/gcc_4_7_2_release) (wersja 192468) |
19091 | +++ boehm-gc/testsuite/Makefile.in (.../branches/gcc-4_7-branch) (wersja 192468) | |
5a87b929 AM |
19092 | @@ -35,7 +35,7 @@ |
19093 | host_triplet = @host@ | |
19094 | target_triplet = @target@ | |
19095 | subdir = testsuite | |
19096 | -DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in | |
19097 | +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am | |
19098 | ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 | |
19099 | am__aclocal_m4_deps = $(top_srcdir)/../config/acx.m4 \ | |
19100 | $(top_srcdir)/../config/depstand.m4 \ | |
19101 | @@ -53,10 +53,8 @@ | |
19102 | CONFIG_CLEAN_FILES = | |
19103 | CONFIG_CLEAN_VPATH_FILES = | |
19104 | SOURCES = | |
19105 | -DIST_SOURCES = | |
19106 | RUNTESTDEFAULTFLAGS = --tool $$tool --srcdir $$srcdir | |
19107 | RUNTEST = runtest | |
19108 | -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) | |
19109 | ACLOCAL = @ACLOCAL@ | |
19110 | AMTAR = @AMTAR@ | |
19111 | AM_CPPFLAGS = @AM_CPPFLAGS@ | |
19112 | @@ -267,37 +265,6 @@ | |
19113 | -l='$(DEJATOOL)'; for tool in $$l; do \ | |
19114 | rm -f $$tool.sum $$tool.log; \ | |
19115 | done | |
19116 | - | |
19117 | -distdir: $(DISTFILES) | |
19118 | - @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ | |
19119 | - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ | |
19120 | - list='$(DISTFILES)'; \ | |
19121 | - dist_files=`for file in $$list; do echo $$file; done | \ | |
19122 | - sed -e "s|^$$srcdirstrip/||;t" \ | |
19123 | - -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ | |
19124 | - case $$dist_files in \ | |
19125 | - */*) $(MKDIR_P) `echo "$$dist_files" | \ | |
19126 | - sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ | |
19127 | - sort -u` ;; \ | |
19128 | - esac; \ | |
19129 | - for file in $$dist_files; do \ | |
19130 | - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ | |
19131 | - if test -d $$d/$$file; then \ | |
19132 | - dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ | |
19133 | - if test -d "$(distdir)/$$file"; then \ | |
19134 | - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ | |
19135 | - fi; \ | |
19136 | - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ | |
19137 | - cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ | |
19138 | - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ | |
19139 | - fi; \ | |
19140 | - cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ | |
19141 | - else \ | |
19142 | - test -f "$(distdir)/$$file" \ | |
19143 | - || cp -p $$d/$$file "$(distdir)/$$file" \ | |
19144 | - || exit 1; \ | |
19145 | - fi; \ | |
19146 | - done | |
19147 | check-am: all-am | |
19148 | $(MAKE) $(AM_MAKEFLAGS) check-DEJAGNU | |
19149 | check: check-am | |
19150 | @@ -399,8 +366,8 @@ | |
19151 | ||
19152 | .PHONY: all all-am check check-DEJAGNU check-am clean clean-generic \ | |
19153 | clean-libtool distclean distclean-DEJAGNU distclean-generic \ | |
19154 | - distclean-libtool distdir dvi dvi-am html html-am info info-am \ | |
19155 | - install install-am install-data install-data-am install-dvi \ | |
19156 | + distclean-libtool dvi dvi-am html html-am info info-am install \ | |
19157 | + install-am install-data install-data-am install-dvi \ | |
19158 | install-dvi-am install-exec install-exec-am install-html \ | |
19159 | install-html-am install-info install-info-am install-man \ | |
19160 | install-pdf install-pdf-am install-ps install-ps-am \ | |
19161 | Index: boehm-gc/Makefile.am | |
19162 | =================================================================== | |
9f95000d AM |
19163 | --- boehm-gc/Makefile.am (.../tags/gcc_4_7_2_release) (wersja 192468) |
19164 | +++ boehm-gc/Makefile.am (.../branches/gcc-4_7-branch) (wersja 192468) | |
5a87b929 AM |
19165 | @@ -4,7 +4,7 @@ |
19166 | ## files that should be in the distribution are not mentioned in this | |
19167 | ## Makefile.am. | |
19168 | ||
19169 | -AUTOMAKE_OPTIONS = foreign subdir-objects | |
19170 | +AUTOMAKE_OPTIONS = foreign subdir-objects no-dist | |
19171 | ACLOCAL_AMFLAGS = -I .. -I ../config | |
19172 | ||
19173 | SUBDIRS = include testsuite | |
19174 | Index: libjava/classpath/Makefile.in | |
19175 | =================================================================== | |
9f95000d AM |
19176 | --- libjava/classpath/Makefile.in (.../tags/gcc_4_7_2_release) (wersja 192468) |
19177 | +++ libjava/classpath/Makefile.in (.../branches/gcc-4_7-branch) (wersja 192468) | |
5a87b929 AM |
19178 | @@ -35,25 +35,15 @@ |
19179 | host_triplet = @host@ | |
19180 | target_triplet = @target@ | |
19181 | subdir = . | |
19182 | -DIST_COMMON = README $(am__configure_deps) $(srcdir)/../../compile \ | |
19183 | - $(srcdir)/../../config.guess $(srcdir)/../../config.sub \ | |
19184 | - $(srcdir)/../../install-sh $(srcdir)/../../ltmain.sh \ | |
19185 | - $(srcdir)/../../missing $(srcdir)/../../mkinstalldirs \ | |
19186 | - $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ | |
19187 | - $(top_srcdir)/configure \ | |
19188 | +DIST_COMMON = INSTALL NEWS README AUTHORS ChangeLog \ | |
19189 | + $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ | |
19190 | + $(top_srcdir)/configure $(am__configure_deps) \ | |
19191 | + $(srcdir)/../../mkinstalldirs \ | |
19192 | $(top_srcdir)/gnu/classpath/Configuration.java.in \ | |
19193 | $(top_srcdir)/gnu/java/security/Configuration.java.in \ | |
19194 | $(top_srcdir)/resource/META-INF/services/java.util.prefs.PreferencesFactory.in \ | |
19195 | $(top_srcdir)/resource/META-INF/services/javax.sound.sampled.spi.AudioFileReader.in \ | |
19196 | - $(top_srcdir)/resource/META-INF/services/javax.sound.sampled.spi.MixerProvider.in \ | |
19197 | - ../../ABOUT-NLS ../../COPYING ../../COPYING.LIB \ | |
19198 | - ../../ChangeLog ../../README ../../compile ../../config.guess \ | |
19199 | - ../../config.rpath ../../config.sub ../../depcomp \ | |
19200 | - ../../install-sh ../../ltmain.sh ../../missing \ | |
19201 | - ../../mkinstalldirs ../../ylwrap AUTHORS COPYING ChangeLog \ | |
19202 | - INSTALL NEWS TODO compile config.guess config.rpath config.sub \ | |
19203 | - depcomp install-sh ltcf-c.sh ltcf-cxx.sh ltcf-gcj.sh ltconfig \ | |
19204 | - ltmain.sh missing mkinstalldirs | |
19205 | + $(top_srcdir)/resource/META-INF/services/javax.sound.sampled.spi.MixerProvider.in | |
19206 | ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 | |
19207 | am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \ | |
19208 | $(top_srcdir)/../../config/lead-dot.m4 \ | |
19209 | @@ -92,7 +82,6 @@ | |
19210 | resource/META-INF/services/javax.sound.sampled.spi.MixerProvider | |
19211 | CONFIG_CLEAN_VPATH_FILES = | |
19212 | SOURCES = | |
19213 | -DIST_SOURCES = | |
19214 | MULTISRCTOP = | |
19215 | MULTIBUILDTOP = | |
19216 | MULTIDIRS = | |
19217 | @@ -109,46 +98,9 @@ | |
19218 | RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ | |
19219 | distclean-recursive maintainer-clean-recursive | |
19220 | AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ | |
19221 | - $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ | |
19222 | - distdir dist dist-all distcheck | |
19223 | + $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS | |
19224 | ETAGS = etags | |
19225 | CTAGS = ctags | |
19226 | -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) | |
19227 | -distdir = $(PACKAGE)-$(VERSION) | |
19228 | -top_distdir = $(distdir) | |
19229 | -am__remove_distdir = \ | |
19230 | - { test ! -d "$(distdir)" \ | |
19231 | - || { find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \ | |
19232 | - && rm -fr "$(distdir)"; }; } | |
19233 | -am__relativize = \ | |
19234 | - dir0=`pwd`; \ | |
19235 | - sed_first='s,^\([^/]*\)/.*$$,\1,'; \ | |
19236 | - sed_rest='s,^[^/]*/*,,'; \ | |
19237 | - sed_last='s,^.*/\([^/]*\)$$,\1,'; \ | |
19238 | - sed_butlast='s,/*[^/]*$$,,'; \ | |
19239 | - while test -n "$$dir1"; do \ | |
19240 | - first=`echo "$$dir1" | sed -e "$$sed_first"`; \ | |
19241 | - if test "$$first" != "."; then \ | |
19242 | - if test "$$first" = ".."; then \ | |
19243 | - dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ | |
19244 | - dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ | |
19245 | - else \ | |
19246 | - first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ | |
19247 | - if test "$$first2" = "$$first"; then \ | |
19248 | - dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ | |
19249 | - else \ | |
19250 | - dir2="../$$dir2"; \ | |
19251 | - fi; \ | |
19252 | - dir0="$$dir0"/"$$first"; \ | |
19253 | - fi; \ | |
19254 | - fi; \ | |
19255 | - dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ | |
19256 | - done; \ | |
19257 | - reldir="$$dir2" | |
19258 | -DIST_ARCHIVES = $(distdir).tar.gz | |
19259 | -GZIP_ENV = --best | |
19260 | -distuninstallcheck_listfiles = find . -type f -print | |
19261 | -distcleancheck_listfiles = find . -type f -print | |
19262 | ACLOCAL = @ACLOCAL@ | |
19263 | AMTAR = @AMTAR@ | |
19264 | ANTLR = @ANTLR@ | |
19265 | @@ -582,185 +534,6 @@ | |
19266 | ||
19267 | distclean-tags: | |
19268 | -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags | |
19269 | - | |
19270 | -distdir: $(DISTFILES) | |
19271 | - $(am__remove_distdir) | |
19272 | - test -d "$(distdir)" || mkdir "$(distdir)" | |
19273 | - @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ | |
19274 | - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ | |
19275 | - list='$(DISTFILES)'; \ | |
19276 | - dist_files=`for file in $$list; do echo $$file; done | \ | |
19277 | - sed -e "s|^$$srcdirstrip/||;t" \ | |
19278 | - -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ | |
19279 | - case $$dist_files in \ | |
19280 | - */*) $(MKDIR_P) `echo "$$dist_files" | \ | |
19281 | - sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ | |
19282 | - sort -u` ;; \ | |
19283 | - esac; \ | |
19284 | - for file in $$dist_files; do \ | |
19285 | - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ | |
19286 | - if test -d $$d/$$file; then \ | |
19287 | - dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ | |
19288 | - if test -d "$(distdir)/$$file"; then \ | |
19289 | - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ | |
19290 | - fi; \ | |
19291 | - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ | |
19292 | - cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ | |
19293 | - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ | |
19294 | - fi; \ | |
19295 | - cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ | |
19296 | - else \ | |
19297 | - test -f "$(distdir)/$$file" \ | |
19298 | - || cp -p $$d/$$file "$(distdir)/$$file" \ | |
19299 | - || exit 1; \ | |
19300 | - fi; \ | |
19301 | - done | |
19302 | - @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ | |
19303 | - if test "$$subdir" = .; then :; else \ | |
19304 | - test -d "$(distdir)/$$subdir" \ | |
19305 | - || $(MKDIR_P) "$(distdir)/$$subdir" \ | |
19306 | - || exit 1; \ | |
19307 | - fi; \ | |
19308 | - done | |
19309 | - @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ | |
19310 | - if test "$$subdir" = .; then :; else \ | |
19311 | - dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ | |
19312 | - $(am__relativize); \ | |
19313 | - new_distdir=$$reldir; \ | |
19314 | - dir1=$$subdir; dir2="$(top_distdir)"; \ | |
19315 | - $(am__relativize); \ | |
19316 | - new_top_distdir=$$reldir; \ | |
19317 | - echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ | |
19318 | - echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ | |
19319 | - ($(am__cd) $$subdir && \ | |
19320 | - $(MAKE) $(AM_MAKEFLAGS) \ | |
19321 | - top_distdir="$$new_top_distdir" \ | |
19322 | - distdir="$$new_distdir" \ | |
19323 | - am__remove_distdir=: \ | |
19324 | - am__skip_length_check=: \ | |
19325 | - am__skip_mode_fix=: \ | |
19326 | - distdir) \ | |
19327 | - || exit 1; \ | |
19328 | - fi; \ | |
19329 | - done | |
19330 | - $(MAKE) $(AM_MAKEFLAGS) \ | |
19331 | - top_distdir="$(top_distdir)" distdir="$(distdir)" \ | |
19332 | - dist-hook | |
19333 | - -test -n "$(am__skip_mode_fix)" \ | |
19334 | - || find "$(distdir)" -type d ! -perm -755 \ | |
19335 | - -exec chmod u+rwx,go+rx {} \; -o \ | |
19336 | - ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \ | |
19337 | - ! -type d ! -perm -400 -exec chmod a+r {} \; -o \ | |
19338 | - ! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \ | |
19339 | - || chmod -R a+r "$(distdir)" | |
19340 | -dist-gzip: distdir | |
19341 | - tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz | |
19342 | - $(am__remove_distdir) | |
19343 | - | |
19344 | -dist-bzip2: distdir | |
19345 | - tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2 | |
19346 | - $(am__remove_distdir) | |
19347 | - | |
19348 | -dist-lzma: distdir | |
19349 | - tardir=$(distdir) && $(am__tar) | lzma -9 -c >$(distdir).tar.lzma | |
19350 | - $(am__remove_distdir) | |
19351 | - | |
19352 | -dist-xz: distdir | |
19353 | - tardir=$(distdir) && $(am__tar) | xz -c >$(distdir).tar.xz | |
19354 | - $(am__remove_distdir) | |
19355 | - | |
19356 | -dist-tarZ: distdir | |
19357 | - tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z | |
19358 | - $(am__remove_distdir) | |
19359 | - | |
19360 | -dist-shar: distdir | |
19361 | - shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz | |
19362 | - $(am__remove_distdir) | |
19363 | - | |
19364 | -dist-zip: distdir | |
19365 | - -rm -f $(distdir).zip | |
19366 | - zip -rq $(distdir).zip $(distdir) | |
19367 | - $(am__remove_distdir) | |
19368 | - | |
19369 | -dist dist-all: distdir | |
19370 | - tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz | |
19371 | - $(am__remove_distdir) | |
19372 | - | |
19373 | -# This target untars the dist file and tries a VPATH configuration. Then | |
19374 | -# it guarantees that the distribution is self-contained by making another | |
19375 | -# tarfile. | |
19376 | -distcheck: dist | |
19377 | - case '$(DIST_ARCHIVES)' in \ | |
19378 | - *.tar.gz*) \ | |
19379 | - GZIP=$(GZIP_ENV) gzip -dc $(distdir).tar.gz | $(am__untar) ;;\ | |
19380 | - *.tar.bz2*) \ | |
19381 | - bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\ | |
19382 | - *.tar.lzma*) \ | |
19383 | - lzma -dc $(distdir).tar.lzma | $(am__untar) ;;\ | |
19384 | - *.tar.xz*) \ | |
19385 | - xz -dc $(distdir).tar.xz | $(am__untar) ;;\ | |
19386 | - *.tar.Z*) \ | |
19387 | - uncompress -c $(distdir).tar.Z | $(am__untar) ;;\ | |
19388 | - *.shar.gz*) \ | |
19389 | - GZIP=$(GZIP_ENV) gzip -dc $(distdir).shar.gz | unshar ;;\ | |
19390 | - *.zip*) \ | |
19391 | - unzip $(distdir).zip ;;\ | |
19392 | - esac | |
19393 | - chmod -R a-w $(distdir); chmod a+w $(distdir) | |
19394 | - mkdir $(distdir)/_build | |
19395 | - mkdir $(distdir)/_inst | |
19396 | - chmod a-w $(distdir) | |
19397 | - test -d $(distdir)/_build || exit 0; \ | |
19398 | - dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \ | |
19399 | - && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \ | |
19400 | - && am__cwd=`pwd` \ | |
19401 | - && $(am__cd) $(distdir)/_build \ | |
19402 | - && ../configure --srcdir=.. --prefix="$$dc_install_base" \ | |
19403 | - $(DISTCHECK_CONFIGURE_FLAGS) \ | |
19404 | - && $(MAKE) $(AM_MAKEFLAGS) \ | |
19405 | - && $(MAKE) $(AM_MAKEFLAGS) dvi \ | |
19406 | - && $(MAKE) $(AM_MAKEFLAGS) check \ | |
19407 | - && $(MAKE) $(AM_MAKEFLAGS) install \ | |
19408 | - && $(MAKE) $(AM_MAKEFLAGS) installcheck \ | |
19409 | - && $(MAKE) $(AM_MAKEFLAGS) uninstall \ | |
19410 | - && $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \ | |
19411 | - distuninstallcheck \ | |
19412 | - && chmod -R a-w "$$dc_install_base" \ | |
19413 | - && ({ \ | |
19414 | - (cd ../.. && umask 077 && mkdir "$$dc_destdir") \ | |
19415 | - && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \ | |
19416 | - && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \ | |
19417 | - && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \ | |
19418 | - distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \ | |
19419 | - } || { rm -rf "$$dc_destdir"; exit 1; }) \ | |
19420 | - && rm -rf "$$dc_destdir" \ | |
19421 | - && $(MAKE) $(AM_MAKEFLAGS) dist \ | |
19422 | - && rm -rf $(DIST_ARCHIVES) \ | |
19423 | - && $(MAKE) $(AM_MAKEFLAGS) distcleancheck \ | |
19424 | - && cd "$$am__cwd" \ | |
19425 | - || exit 1 | |
19426 | - $(am__remove_distdir) | |
19427 | - @(echo "$(distdir) archives ready for distribution: "; \ | |
19428 | - list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \ | |
19429 | - sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x' | |
19430 | -distuninstallcheck: | |
19431 | - @$(am__cd) '$(distuninstallcheck_dir)' \ | |
19432 | - && test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \ | |
19433 | - || { echo "ERROR: files left after uninstall:" ; \ | |
19434 | - if test -n "$(DESTDIR)"; then \ | |
19435 | - echo " (check DESTDIR support)"; \ | |
19436 | - fi ; \ | |
19437 | - $(distuninstallcheck_listfiles) ; \ | |
19438 | - exit 1; } >&2 | |
19439 | -distcleancheck: distclean | |
19440 | - @if test '$(srcdir)' = . ; then \ | |
19441 | - echo "ERROR: distcleancheck can only run from a VPATH build" ; \ | |
19442 | - exit 1 ; \ | |
19443 | - fi | |
19444 | - @test `$(distcleancheck_listfiles) | wc -l` -eq 0 \ | |
19445 | - || { echo "ERROR: files left in build directory after distclean:" ; \ | |
19446 | - $(distcleancheck_listfiles) ; \ | |
19447 | - exit 1; } >&2 | |
19448 | check-am: all-am | |
19449 | check: check-recursive | |
19450 | all-am: Makefile all-multi | |
19451 | @@ -869,20 +642,17 @@ | |
19452 | .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ | |
19453 | all all-am all-multi am--refresh check check-am clean \ | |
19454 | clean-generic clean-libtool clean-multi ctags ctags-recursive \ | |
19455 | - dist dist-all dist-bzip2 dist-gzip dist-hook dist-lzma \ | |
19456 | - dist-shar dist-tarZ dist-xz dist-zip distcheck distclean \ | |
19457 | - distclean-generic distclean-libtool distclean-multi \ | |
19458 | - distclean-tags distcleancheck distdir distuninstallcheck dvi \ | |
19459 | - dvi-am html html-am info info-am install install-am \ | |
19460 | - install-data install-data-am install-dvi install-dvi-am \ | |
19461 | - install-exec install-exec-am install-html install-html-am \ | |
19462 | - install-info install-info-am install-man install-multi \ | |
19463 | - install-pdf install-pdf-am install-ps install-ps-am \ | |
19464 | - install-strip installcheck installcheck-am installdirs \ | |
19465 | - installdirs-am maintainer-clean maintainer-clean-generic \ | |
19466 | - maintainer-clean-multi mostlyclean mostlyclean-generic \ | |
19467 | - mostlyclean-libtool mostlyclean-multi pdf pdf-am ps ps-am tags \ | |
19468 | - tags-recursive uninstall uninstall-am | |
19469 | + distclean distclean-generic distclean-libtool distclean-multi \ | |
19470 | + distclean-tags dvi dvi-am html html-am info info-am install \ | |
19471 | + install-am install-data install-data-am install-dvi \ | |
19472 | + install-dvi-am install-exec install-exec-am install-html \ | |
19473 | + install-html-am install-info install-info-am install-man \ | |
19474 | + install-multi install-pdf install-pdf-am install-ps \ | |
19475 | + install-ps-am install-strip installcheck installcheck-am \ | |
19476 | + installdirs installdirs-am maintainer-clean \ | |
19477 | + maintainer-clean-generic maintainer-clean-multi mostlyclean \ | |
19478 | + mostlyclean-generic mostlyclean-libtool mostlyclean-multi pdf \ | |
19479 | + pdf-am ps ps-am tags tags-recursive uninstall uninstall-am | |
19480 | ||
19481 | ||
19482 | native: lib | |
19483 | Index: libjava/classpath/scripts/Makefile.in | |
19484 | =================================================================== | |
9f95000d AM |
19485 | --- libjava/classpath/scripts/Makefile.in (.../tags/gcc_4_7_2_release) (wersja 192468) |
19486 | +++ libjava/classpath/scripts/Makefile.in (.../branches/gcc-4_7-branch) (wersja 192468) | |
5a87b929 AM |
19487 | @@ -35,8 +35,8 @@ |
19488 | host_triplet = @host@ | |
19489 | target_triplet = @target@ | |
19490 | subdir = scripts | |
19491 | -DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ | |
19492 | - $(srcdir)/check_jni_methods.sh.in $(srcdir)/classpath.spec.in | |
19493 | +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ | |
19494 | + $(srcdir)/classpath.spec.in $(srcdir)/check_jni_methods.sh.in | |
19495 | ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 | |
19496 | am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \ | |
19497 | $(top_srcdir)/../../config/lead-dot.m4 \ | |
19498 | @@ -69,8 +69,6 @@ | |
19499 | CONFIG_CLEAN_FILES = classpath.spec check_jni_methods.sh | |
19500 | CONFIG_CLEAN_VPATH_FILES = | |
19501 | SOURCES = | |
19502 | -DIST_SOURCES = | |
19503 | -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) | |
19504 | ACLOCAL = @ACLOCAL@ | |
19505 | AMTAR = @AMTAR@ | |
19506 | ANTLR = @ANTLR@ | |
19507 | @@ -331,37 +329,6 @@ | |
19508 | ctags: CTAGS | |
19509 | CTAGS: | |
19510 | ||
19511 | - | |
19512 | -distdir: $(DISTFILES) | |
19513 | - @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ | |
19514 | - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ | |
19515 | - list='$(DISTFILES)'; \ | |
19516 | - dist_files=`for file in $$list; do echo $$file; done | \ | |
19517 | - sed -e "s|^$$srcdirstrip/||;t" \ | |
19518 | - -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ | |
19519 | - case $$dist_files in \ | |
19520 | - */*) $(MKDIR_P) `echo "$$dist_files" | \ | |
19521 | - sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ | |
19522 | - sort -u` ;; \ | |
19523 | - esac; \ | |
19524 | - for file in $$dist_files; do \ | |
19525 | - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ | |
19526 | - if test -d $$d/$$file; then \ | |
19527 | - dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ | |
19528 | - if test -d "$(distdir)/$$file"; then \ | |
19529 | - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ | |
19530 | - fi; \ | |
19531 | - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ | |
19532 | - cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ | |
19533 | - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ | |
19534 | - fi; \ | |
19535 | - cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ | |
19536 | - else \ | |
19537 | - test -f "$(distdir)/$$file" \ | |
19538 | - || cp -p $$d/$$file "$(distdir)/$$file" \ | |
19539 | - || exit 1; \ | |
19540 | - fi; \ | |
19541 | - done | |
19542 | check-am: all-am | |
19543 | check: check-am | |
19544 | all-am: Makefile | |
19545 | @@ -460,13 +427,13 @@ | |
19546 | .MAKE: install-am install-strip | |
19547 | ||
19548 | .PHONY: all all-am check check-am clean clean-generic clean-libtool \ | |
19549 | - distclean distclean-generic distclean-libtool distdir dvi \ | |
19550 | - dvi-am html html-am info info-am install install-am \ | |
19551 | - install-data install-data-am install-dvi install-dvi-am \ | |
19552 | - install-exec install-exec-am install-html install-html-am \ | |
19553 | - install-info install-info-am install-man install-pdf \ | |
19554 | - install-pdf-am install-ps install-ps-am install-strip \ | |
19555 | - installcheck installcheck-am installdirs maintainer-clean \ | |
19556 | + distclean distclean-generic distclean-libtool dvi dvi-am html \ | |
19557 | + html-am info info-am install install-am install-data \ | |
19558 | + install-data-am install-dvi install-dvi-am install-exec \ | |
19559 | + install-exec-am install-html install-html-am install-info \ | |
19560 | + install-info-am install-man install-pdf install-pdf-am \ | |
19561 | + install-ps install-ps-am install-strip installcheck \ | |
19562 | + installcheck-am installdirs maintainer-clean \ | |
19563 | maintainer-clean-generic mostlyclean mostlyclean-generic \ | |
19564 | mostlyclean-libtool pdf pdf-am ps ps-am uninstall uninstall-am | |
19565 | ||
19566 | Index: libjava/classpath/resource/Makefile.in | |
19567 | =================================================================== | |
9f95000d AM |
19568 | --- libjava/classpath/resource/Makefile.in (.../tags/gcc_4_7_2_release) (wersja 192468) |
19569 | +++ libjava/classpath/resource/Makefile.in (.../branches/gcc-4_7-branch) (wersja 192468) | |
5a87b929 AM |
19570 | @@ -36,7 +36,7 @@ |
19571 | host_triplet = @host@ | |
19572 | target_triplet = @target@ | |
19573 | subdir = resource | |
19574 | -DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in | |
19575 | +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am | |
19576 | ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 | |
19577 | am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \ | |
19578 | $(top_srcdir)/../../config/lead-dot.m4 \ | |
19579 | @@ -69,7 +69,6 @@ | |
19580 | CONFIG_CLEAN_FILES = | |
19581 | CONFIG_CLEAN_VPATH_FILES = | |
19582 | SOURCES = | |
19583 | -DIST_SOURCES = | |
19584 | am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; | |
19585 | am__vpath_adj = case $$p in \ | |
19586 | $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ | |
19587 | @@ -93,7 +92,6 @@ | |
19588 | sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | |
19589 | am__installdirs = "$(DESTDIR)$(loggingdir)" "$(DESTDIR)$(securitydir)" | |
19590 | DATA = $(logging_DATA) $(security_DATA) | |
19591 | -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) | |
19592 | ACLOCAL = @ACLOCAL@ | |
19593 | AMTAR = @AMTAR@ | |
19594 | ANTLR = @ANTLR@ | |
19595 | @@ -393,37 +391,6 @@ | |
19596 | ctags: CTAGS | |
19597 | CTAGS: | |
19598 | ||
19599 | - | |
19600 | -distdir: $(DISTFILES) | |
19601 | - @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ | |
19602 | - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ | |
19603 | - list='$(DISTFILES)'; \ | |
19604 | - dist_files=`for file in $$list; do echo $$file; done | \ | |
19605 | - sed -e "s|^$$srcdirstrip/||;t" \ | |
19606 | - -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ | |
19607 | - case $$dist_files in \ | |
19608 | - */*) $(MKDIR_P) `echo "$$dist_files" | \ | |
19609 | - sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ | |
19610 | - sort -u` ;; \ | |
19611 | - esac; \ | |
19612 | - for file in $$dist_files; do \ | |
19613 | - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ | |
19614 | - if test -d $$d/$$file; then \ | |
19615 | - dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ | |
19616 | - if test -d "$(distdir)/$$file"; then \ | |
19617 | - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ | |
19618 | - fi; \ | |
19619 | - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ | |
19620 | - cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ | |
19621 | - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ | |
19622 | - fi; \ | |
19623 | - cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ | |
19624 | - else \ | |
19625 | - test -f "$(distdir)/$$file" \ | |
19626 | - || cp -p $$d/$$file "$(distdir)/$$file" \ | |
19627 | - || exit 1; \ | |
19628 | - fi; \ | |
19629 | - done | |
19630 | check-am: all-am | |
19631 | check: check-am | |
19632 | all-am: Makefile $(DATA) | |
19633 | @@ -525,17 +492,17 @@ | |
19634 | .MAKE: install-am install-strip | |
19635 | ||
19636 | .PHONY: all all-am check check-am clean clean-generic clean-libtool \ | |
19637 | - distclean distclean-generic distclean-libtool distdir dvi \ | |
19638 | - dvi-am html html-am info info-am install install-am \ | |
19639 | - install-data install-data-am install-dvi install-dvi-am \ | |
19640 | - install-exec install-exec-am install-html install-html-am \ | |
19641 | - install-info install-info-am install-loggingDATA install-man \ | |
19642 | - install-pdf install-pdf-am install-ps install-ps-am \ | |
19643 | - install-securityDATA install-strip installcheck \ | |
19644 | - installcheck-am installdirs maintainer-clean \ | |
19645 | - maintainer-clean-generic mostlyclean mostlyclean-generic \ | |
19646 | - mostlyclean-libtool pdf pdf-am ps ps-am uninstall uninstall-am \ | |
19647 | - uninstall-loggingDATA uninstall-securityDATA | |
19648 | + distclean distclean-generic distclean-libtool dvi dvi-am html \ | |
19649 | + html-am info info-am install install-am install-data \ | |
19650 | + install-data-am install-dvi install-dvi-am install-exec \ | |
19651 | + install-exec-am install-html install-html-am install-info \ | |
19652 | + install-info-am install-loggingDATA install-man install-pdf \ | |
19653 | + install-pdf-am install-ps install-ps-am install-securityDATA \ | |
19654 | + install-strip installcheck installcheck-am installdirs \ | |
19655 | + maintainer-clean maintainer-clean-generic mostlyclean \ | |
19656 | + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ | |
19657 | + uninstall uninstall-am uninstall-loggingDATA \ | |
19658 | + uninstall-securityDATA | |
19659 | ||
19660 | ||
19661 | # Tell versions [3.59,3.63) of GNU make to not export all variables. | |
19662 | Index: libjava/classpath/tools/Makefile.in | |
19663 | =================================================================== | |
9f95000d AM |
19664 | --- libjava/classpath/tools/Makefile.in (.../tags/gcc_4_7_2_release) (wersja 192468) |
19665 | +++ libjava/classpath/tools/Makefile.in (.../branches/gcc-4_7-branch) (wersja 192468) | |
5a87b929 AM |
19666 | @@ -44,13 +44,13 @@ |
19667 | @CREATE_WRAPPERS_TRUE@@INSTALL_BINARIES_FALSE@ $(am__EXEEXT_2) | |
19668 | @CREATE_GJDOC_TRUE@@CREATE_WRAPPERS_FALSE@am__append_2 = gjdoc | |
19669 | subdir = tools | |
19670 | -DIST_COMMON = README $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ | |
19671 | - $(srcdir)/gappletviewer.in $(srcdir)/gjar.in \ | |
19672 | - $(srcdir)/gjarsigner.in $(srcdir)/gjavah.in $(srcdir)/gjdoc.in \ | |
19673 | - $(srcdir)/gkeytool.in $(srcdir)/gnative2ascii.in \ | |
19674 | - $(srcdir)/gorbd.in $(srcdir)/grmic.in $(srcdir)/grmid.in \ | |
19675 | - $(srcdir)/grmiregistry.in $(srcdir)/gserialver.in \ | |
19676 | - $(srcdir)/gtnameserv.in | |
19677 | +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ | |
19678 | + $(srcdir)/gappletviewer.in $(srcdir)/gjarsigner.in \ | |
19679 | + $(srcdir)/gkeytool.in $(srcdir)/gjar.in \ | |
19680 | + $(srcdir)/gnative2ascii.in $(srcdir)/gserialver.in \ | |
19681 | + $(srcdir)/grmiregistry.in $(srcdir)/gtnameserv.in \ | |
19682 | + $(srcdir)/gorbd.in $(srcdir)/grmid.in $(srcdir)/grmic.in \ | |
19683 | + $(srcdir)/gjavah.in $(srcdir)/gjdoc.in | |
19684 | ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 | |
19685 | am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \ | |
19686 | $(top_srcdir)/../../config/lead-dot.m4 \ | |
19687 | @@ -96,7 +96,6 @@ | |
19688 | @CREATE_WRAPPERS_TRUE@ $(am__EXEEXT_1) | |
19689 | am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(bindir)" | |
19690 | PROGRAMS = $(bin_PROGRAMS) $(noinst_PROGRAMS) | |
19691 | -am__gappletviewer_SOURCES_DIST = toolwrapper.c | |
19692 | @CREATE_WRAPPERS_TRUE@am_gappletviewer_OBJECTS = \ | |
19693 | @CREATE_WRAPPERS_TRUE@ gappletviewer-toolwrapper.$(OBJEXT) | |
19694 | gappletviewer_OBJECTS = $(am_gappletviewer_OBJECTS) | |
19695 | @@ -104,14 +103,12 @@ | |
19696 | gappletviewer_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \ | |
19697 | $(LIBTOOLFLAGS) --mode=link $(CCLD) $(gappletviewer_CFLAGS) \ | |
19698 | $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ | |
19699 | -am__gjar_SOURCES_DIST = toolwrapper.c | |
19700 | @CREATE_WRAPPERS_TRUE@am_gjar_OBJECTS = gjar-toolwrapper.$(OBJEXT) | |
19701 | gjar_OBJECTS = $(am_gjar_OBJECTS) | |
19702 | gjar_LDADD = $(LDADD) | |
19703 | gjar_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ | |
19704 | --mode=link $(CCLD) $(gjar_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ | |
19705 | $(LDFLAGS) -o $@ | |
19706 | -am__gjarsigner_SOURCES_DIST = toolwrapper.c | |
19707 | @CREATE_WRAPPERS_TRUE@am_gjarsigner_OBJECTS = \ | |
19708 | @CREATE_WRAPPERS_TRUE@ gjarsigner-toolwrapper.$(OBJEXT) | |
19709 | gjarsigner_OBJECTS = $(am_gjarsigner_OBJECTS) | |
19710 | @@ -119,7 +116,6 @@ | |
19711 | gjarsigner_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \ | |
19712 | $(LIBTOOLFLAGS) --mode=link $(CCLD) $(gjarsigner_CFLAGS) \ | |
19713 | $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ | |
19714 | -am__gjavah_SOURCES_DIST = toolwrapper.c | |
19715 | @CREATE_WRAPPERS_TRUE@am_gjavah_OBJECTS = \ | |
19716 | @CREATE_WRAPPERS_TRUE@ gjavah-toolwrapper.$(OBJEXT) | |
19717 | gjavah_OBJECTS = $(am_gjavah_OBJECTS) | |
19718 | @@ -127,14 +123,12 @@ | |
19719 | gjavah_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ | |
19720 | --mode=link $(CCLD) $(gjavah_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ | |
19721 | $(LDFLAGS) -o $@ | |
19722 | -am__gjdoc_SOURCES_DIST = toolwrapper.c | |
19723 | @CREATE_WRAPPERS_TRUE@am_gjdoc_OBJECTS = gjdoc-toolwrapper.$(OBJEXT) | |
19724 | gjdoc_OBJECTS = $(am_gjdoc_OBJECTS) | |
19725 | gjdoc_LDADD = $(LDADD) | |
19726 | gjdoc_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ | |
19727 | --mode=link $(CCLD) $(gjdoc_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ | |
19728 | $(LDFLAGS) -o $@ | |
19729 | -am__gkeytool_SOURCES_DIST = toolwrapper.c | |
19730 | @CREATE_WRAPPERS_TRUE@am_gkeytool_OBJECTS = \ | |
19731 | @CREATE_WRAPPERS_TRUE@ gkeytool-toolwrapper.$(OBJEXT) | |
19732 | gkeytool_OBJECTS = $(am_gkeytool_OBJECTS) | |
19733 | @@ -142,7 +136,6 @@ | |
19734 | gkeytool_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ | |
19735 | --mode=link $(CCLD) $(gkeytool_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ | |
19736 | $(LDFLAGS) -o $@ | |
19737 | -am__gnative2ascii_SOURCES_DIST = toolwrapper.c | |
19738 | @CREATE_WRAPPERS_TRUE@am_gnative2ascii_OBJECTS = \ | |
19739 | @CREATE_WRAPPERS_TRUE@ gnative2ascii-toolwrapper.$(OBJEXT) | |
19740 | gnative2ascii_OBJECTS = $(am_gnative2ascii_OBJECTS) | |
19741 | @@ -150,28 +143,24 @@ | |
19742 | gnative2ascii_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \ | |
19743 | $(LIBTOOLFLAGS) --mode=link $(CCLD) $(gnative2ascii_CFLAGS) \ | |
19744 | $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ | |
19745 | -am__gorbd_SOURCES_DIST = toolwrapper.c | |
19746 | @CREATE_WRAPPERS_TRUE@am_gorbd_OBJECTS = gorbd-toolwrapper.$(OBJEXT) | |
19747 | gorbd_OBJECTS = $(am_gorbd_OBJECTS) | |
19748 | gorbd_LDADD = $(LDADD) | |
19749 | gorbd_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ | |
19750 | --mode=link $(CCLD) $(gorbd_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ | |
19751 | $(LDFLAGS) -o $@ | |
19752 | -am__grmic_SOURCES_DIST = toolwrapper.c | |
19753 | @CREATE_WRAPPERS_TRUE@am_grmic_OBJECTS = grmic-toolwrapper.$(OBJEXT) | |
19754 | grmic_OBJECTS = $(am_grmic_OBJECTS) | |
19755 | grmic_LDADD = $(LDADD) | |
19756 | grmic_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ | |
19757 | --mode=link $(CCLD) $(grmic_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ | |
19758 | $(LDFLAGS) -o $@ | |
19759 | -am__grmid_SOURCES_DIST = toolwrapper.c | |
19760 | @CREATE_WRAPPERS_TRUE@am_grmid_OBJECTS = grmid-toolwrapper.$(OBJEXT) | |
19761 | grmid_OBJECTS = $(am_grmid_OBJECTS) | |
19762 | grmid_LDADD = $(LDADD) | |
19763 | grmid_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ | |
19764 | --mode=link $(CCLD) $(grmid_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ | |
19765 | $(LDFLAGS) -o $@ | |
19766 | -am__grmiregistry_SOURCES_DIST = toolwrapper.c | |
19767 | @CREATE_WRAPPERS_TRUE@am_grmiregistry_OBJECTS = \ | |
19768 | @CREATE_WRAPPERS_TRUE@ grmiregistry-toolwrapper.$(OBJEXT) | |
19769 | grmiregistry_OBJECTS = $(am_grmiregistry_OBJECTS) | |
19770 | @@ -179,7 +168,6 @@ | |
19771 | grmiregistry_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \ | |
19772 | $(LIBTOOLFLAGS) --mode=link $(CCLD) $(grmiregistry_CFLAGS) \ | |
19773 | $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ | |
19774 | -am__gserialver_SOURCES_DIST = toolwrapper.c | |
19775 | @CREATE_WRAPPERS_TRUE@am_gserialver_OBJECTS = \ | |
19776 | @CREATE_WRAPPERS_TRUE@ gserialver-toolwrapper.$(OBJEXT) | |
19777 | gserialver_OBJECTS = $(am_gserialver_OBJECTS) | |
19778 | @@ -187,7 +175,6 @@ | |
19779 | gserialver_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \ | |
19780 | $(LIBTOOLFLAGS) --mode=link $(CCLD) $(gserialver_CFLAGS) \ | |
19781 | $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ | |
19782 | -am__gtnameserv_SOURCES_DIST = toolwrapper.c | |
19783 | @CREATE_WRAPPERS_TRUE@am_gtnameserv_OBJECTS = \ | |
19784 | @CREATE_WRAPPERS_TRUE@ gtnameserv-toolwrapper.$(OBJEXT) | |
19785 | gtnameserv_OBJECTS = $(am_gtnameserv_OBJECTS) | |
19786 | @@ -235,17 +222,9 @@ | |
19787 | $(gkeytool_SOURCES) $(gnative2ascii_SOURCES) $(gorbd_SOURCES) \ | |
19788 | $(grmic_SOURCES) $(grmid_SOURCES) $(grmiregistry_SOURCES) \ | |
19789 | $(gserialver_SOURCES) $(gtnameserv_SOURCES) | |
19790 | -DIST_SOURCES = $(am__gappletviewer_SOURCES_DIST) \ | |
19791 | - $(am__gjar_SOURCES_DIST) $(am__gjarsigner_SOURCES_DIST) \ | |
19792 | - $(am__gjavah_SOURCES_DIST) $(am__gjdoc_SOURCES_DIST) \ | |
19793 | - $(am__gkeytool_SOURCES_DIST) $(am__gnative2ascii_SOURCES_DIST) \ | |
19794 | - $(am__gorbd_SOURCES_DIST) $(am__grmic_SOURCES_DIST) \ | |
19795 | - $(am__grmid_SOURCES_DIST) $(am__grmiregistry_SOURCES_DIST) \ | |
19796 | - $(am__gserialver_SOURCES_DIST) $(am__gtnameserv_SOURCES_DIST) | |
19797 | DATA = $(noinst_DATA) | |
19798 | ETAGS = etags | |
19799 | CTAGS = ctags | |
19800 | -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) | |
19801 | ACLOCAL = @ACLOCAL@ | |
19802 | AMTAR = @AMTAR@ | |
19803 | ANTLR = @ANTLR@ | |
19804 | @@ -1199,40 +1178,6 @@ | |
19805 | ||
19806 | distclean-tags: | |
19807 | -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags | |
19808 | - | |
19809 | -distdir: $(DISTFILES) | |
19810 | - @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ | |
19811 | - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ | |
19812 | - list='$(DISTFILES)'; \ | |
19813 | - dist_files=`for file in $$list; do echo $$file; done | \ | |
19814 | - sed -e "s|^$$srcdirstrip/||;t" \ | |
19815 | - -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ | |
19816 | - case $$dist_files in \ | |
19817 | - */*) $(MKDIR_P) `echo "$$dist_files" | \ | |
19818 | - sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ | |
19819 | - sort -u` ;; \ | |
19820 | - esac; \ | |
19821 | - for file in $$dist_files; do \ | |
19822 | - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ | |
19823 | - if test -d $$d/$$file; then \ | |
19824 | - dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ | |
19825 | - if test -d "$(distdir)/$$file"; then \ | |
19826 | - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ | |
19827 | - fi; \ | |
19828 | - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ | |
19829 | - cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ | |
19830 | - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ | |
19831 | - fi; \ | |
19832 | - cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ | |
19833 | - else \ | |
19834 | - test -f "$(distdir)/$$file" \ | |
19835 | - || cp -p $$d/$$file "$(distdir)/$$file" \ | |
19836 | - || exit 1; \ | |
19837 | - fi; \ | |
19838 | - done | |
19839 | - $(MAKE) $(AM_MAKEFLAGS) \ | |
19840 | - top_distdir="$(top_distdir)" distdir="$(distdir)" \ | |
19841 | - dist-hook | |
19842 | check-am: all-am | |
19843 | check: $(BUILT_SOURCES) | |
19844 | $(MAKE) $(AM_MAKEFLAGS) check-am | |
19845 | @@ -1343,9 +1288,9 @@ | |
19846 | ||
19847 | .PHONY: CTAGS GTAGS all all-am check check-am clean clean-binPROGRAMS \ | |
19848 | clean-generic clean-libtool clean-local clean-noinstPROGRAMS \ | |
19849 | - ctags dist-hook distclean distclean-compile distclean-generic \ | |
19850 | - distclean-libtool distclean-tags distdir dvi dvi-am html \ | |
19851 | - html-am info info-am install install-am install-binPROGRAMS \ | |
19852 | + ctags distclean distclean-compile distclean-generic \ | |
19853 | + distclean-libtool distclean-tags dvi dvi-am html html-am info \ | |
19854 | + info-am install install-am install-binPROGRAMS \ | |
19855 | install-binSCRIPTS install-data install-data-am install-dvi \ | |
19856 | install-dvi-am install-exec install-exec-am install-html \ | |
19857 | install-html-am install-info install-info-am install-man \ | |
19858 | Index: libjava/classpath/configure.ac | |
19859 | =================================================================== | |
9f95000d AM |
19860 | --- libjava/classpath/configure.ac (.../tags/gcc_4_7_2_release) (wersja 192468) |
19861 | +++ libjava/classpath/configure.ac (.../branches/gcc-4_7-branch) (wersja 192468) | |
5a87b929 AM |
19862 | @@ -75,7 +75,7 @@ |
19863 | AC_SUBST(CLASSPATH_CONVENIENCE) | |
19864 | ||
19865 | AC_PREREQ(2.64) | |
19866 | -AM_INIT_AUTOMAKE([1.9.0 gnu std-options tar-ustar -Wno-portability]) | |
19867 | +AM_INIT_AUTOMAKE([1.9.0 gnu std-options tar-ustar no-dist -Wno-portability]) | |
19868 | AC_CONFIG_HEADERS([include/config.h]) | |
19869 | AC_PREFIX_DEFAULT(/usr/local/classpath) | |
19870 | ||
19871 | Index: libjava/classpath/doc/Makefile.in | |
19872 | =================================================================== | |
9f95000d AM |
19873 | --- libjava/classpath/doc/Makefile.in (.../tags/gcc_4_7_2_release) (wersja 192468) |
19874 | +++ libjava/classpath/doc/Makefile.in (.../branches/gcc-4_7-branch) (wersja 192468) | |
5a87b929 AM |
19875 | @@ -35,7 +35,7 @@ |
19876 | host_triplet = @host@ | |
19877 | target_triplet = @target@ | |
19878 | subdir = doc | |
19879 | -DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in texinfo.tex | |
19880 | +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am | |
19881 | ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 | |
19882 | am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \ | |
19883 | $(top_srcdir)/../../config/lead-dot.m4 \ | |
19884 | @@ -68,7 +68,6 @@ | |
19885 | CONFIG_CLEAN_FILES = | |
19886 | CONFIG_CLEAN_VPATH_FILES = | |
19887 | SOURCES = | |
19888 | -DIST_SOURCES = | |
19889 | INFO_DEPS = cp-tools.info | |
19890 | am__TEXINFO_TEX_DIR = $(srcdir)/../../gcc/doc/include | |
19891 | DVIS = cp-tools.dvi | |
19892 | @@ -116,37 +115,10 @@ | |
19893 | RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ | |
19894 | distclean-recursive maintainer-clean-recursive | |
19895 | AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ | |
19896 | - $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ | |
19897 | - distdir | |
19898 | + $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS | |
19899 | ETAGS = etags | |
19900 | CTAGS = ctags | |
19901 | DIST_SUBDIRS = $(SUBDIRS) | |
19902 | -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) | |
19903 | -am__relativize = \ | |
19904 | - dir0=`pwd`; \ | |
19905 | - sed_first='s,^\([^/]*\)/.*$$,\1,'; \ | |
19906 | - sed_rest='s,^[^/]*/*,,'; \ | |
19907 | - sed_last='s,^.*/\([^/]*\)$$,\1,'; \ | |
19908 | - sed_butlast='s,/*[^/]*$$,,'; \ | |
19909 | - while test -n "$$dir1"; do \ | |
19910 | - first=`echo "$$dir1" | sed -e "$$sed_first"`; \ | |
19911 | - if test "$$first" != "."; then \ | |
19912 | - if test "$$first" = ".."; then \ | |
19913 | - dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ | |
19914 | - dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ | |
19915 | - else \ | |
19916 | - first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ | |
19917 | - if test "$$first2" = "$$first"; then \ | |
19918 | - dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ | |
19919 | - else \ | |
19920 | - dir2="../$$dir2"; \ | |
19921 | - fi; \ | |
19922 | - dir0="$$dir0"/"$$first"; \ | |
19923 | - fi; \ | |
19924 | - fi; \ | |
19925 | - dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ | |
19926 | - done; \ | |
19927 | - reldir="$$dir2" | |
19928 | ACLOCAL = @ACLOCAL@ | |
19929 | AMTAR = @AMTAR@ | |
19930 | ANTLR = @ANTLR@ | |
19931 | @@ -756,81 +728,6 @@ | |
19932 | ||
19933 | distclean-tags: | |
19934 | -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags | |
19935 | - | |
19936 | -distdir: $(DISTFILES) | |
19937 | - @list='$(MANS)'; if test -n "$$list"; then \ | |
19938 | - list=`for p in $$list; do \ | |
19939 | - if test -f $$p; then d=; else d="$(srcdir)/"; fi; \ | |
19940 | - if test -f "$$d$$p"; then echo "$$d$$p"; else :; fi; done`; \ | |
19941 | - if test -n "$$list" && \ | |
19942 | - grep 'ab help2man is required to generate this page' $$list >/dev/null; then \ | |
19943 | - echo "error: found man pages containing the \`missing help2man' replacement text:" >&2; \ | |
19944 | - grep -l 'ab help2man is required to generate this page' $$list | sed 's/^/ /' >&2; \ | |
19945 | - echo " to fix them, install help2man, remove and regenerate the man pages;" >&2; \ | |
19946 | - echo " typically \`make maintainer-clean' will remove them" >&2; \ | |
19947 | - exit 1; \ | |
19948 | - else :; fi; \ | |
19949 | - else :; fi | |
19950 | - @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ | |
19951 | - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ | |
19952 | - list='$(DISTFILES)'; \ | |
19953 | - dist_files=`for file in $$list; do echo $$file; done | \ | |
19954 | - sed -e "s|^$$srcdirstrip/||;t" \ | |
19955 | - -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ | |
19956 | - case $$dist_files in \ | |
19957 | - */*) $(MKDIR_P) `echo "$$dist_files" | \ | |
19958 | - sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ | |
19959 | - sort -u` ;; \ | |
19960 | - esac; \ | |
19961 | - for file in $$dist_files; do \ | |
19962 | - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ | |
19963 | - if test -d $$d/$$file; then \ | |
19964 | - dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ | |
19965 | - if test -d "$(distdir)/$$file"; then \ | |
19966 | - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ | |
19967 | - fi; \ | |
19968 | - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ | |
19969 | - cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ | |
19970 | - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ | |
19971 | - fi; \ | |
19972 | - cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ | |
19973 | - else \ | |
19974 | - test -f "$(distdir)/$$file" \ | |
19975 | - || cp -p $$d/$$file "$(distdir)/$$file" \ | |
19976 | - || exit 1; \ | |
19977 | - fi; \ | |
19978 | - done | |
19979 | - @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ | |
19980 | - if test "$$subdir" = .; then :; else \ | |
19981 | - test -d "$(distdir)/$$subdir" \ | |
19982 | - || $(MKDIR_P) "$(distdir)/$$subdir" \ | |
19983 | - || exit 1; \ | |
19984 | - fi; \ | |
19985 | - done | |
19986 | - @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ | |
19987 | - if test "$$subdir" = .; then :; else \ | |
19988 | - dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ | |
19989 | - $(am__relativize); \ | |
19990 | - new_distdir=$$reldir; \ | |
19991 | - dir1=$$subdir; dir2="$(top_distdir)"; \ | |
19992 | - $(am__relativize); \ | |
19993 | - new_top_distdir=$$reldir; \ | |
19994 | - echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ | |
19995 | - echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ | |
19996 | - ($(am__cd) $$subdir && \ | |
19997 | - $(MAKE) $(AM_MAKEFLAGS) \ | |
19998 | - top_distdir="$$new_top_distdir" \ | |
19999 | - distdir="$$new_distdir" \ | |
20000 | - am__remove_distdir=: \ | |
20001 | - am__skip_length_check=: \ | |
20002 | - am__skip_mode_fix=: \ | |
20003 | - distdir) \ | |
20004 | - || exit 1; \ | |
20005 | - fi; \ | |
20006 | - done | |
20007 | - $(MAKE) $(AM_MAKEFLAGS) \ | |
20008 | - top_distdir="$(top_distdir)" distdir="$(distdir)" \ | |
20009 | - dist-info | |
20010 | check-am: all-am | |
20011 | check: check-recursive | |
20012 | all-am: Makefile $(INFO_DEPS) $(MANS) all-local | |
20013 | @@ -1020,18 +917,18 @@ | |
20014 | all all-am all-local check check-am clean clean-aminfo \ | |
20015 | clean-generic clean-libtool ctags ctags-recursive dist-info \ | |
20016 | distclean distclean-generic distclean-libtool distclean-tags \ | |
20017 | - distdir dvi dvi-am html html-am info info-am install \ | |
20018 | - install-am install-data install-data-am install-dvi \ | |
20019 | - install-dvi-am install-exec install-exec-am install-html \ | |
20020 | - install-html-am install-info install-info-am install-man \ | |
20021 | - install-man1 install-pdf install-pdf-am install-ps \ | |
20022 | - install-ps-am install-strip installcheck installcheck-am \ | |
20023 | - installdirs installdirs-am maintainer-clean \ | |
20024 | - maintainer-clean-aminfo maintainer-clean-generic mostlyclean \ | |
20025 | - mostlyclean-aminfo mostlyclean-generic mostlyclean-libtool pdf \ | |
20026 | - pdf-am ps ps-am tags tags-recursive uninstall uninstall-am \ | |
20027 | - uninstall-dvi-am uninstall-html-am uninstall-info-am \ | |
20028 | - uninstall-man uninstall-man1 uninstall-pdf-am uninstall-ps-am | |
20029 | + dvi dvi-am html html-am info info-am install install-am \ | |
20030 | + install-data install-data-am install-dvi install-dvi-am \ | |
20031 | + install-exec install-exec-am install-html install-html-am \ | |
20032 | + install-info install-info-am install-man install-man1 \ | |
20033 | + install-pdf install-pdf-am install-ps install-ps-am \ | |
20034 | + install-strip installcheck installcheck-am installdirs \ | |
20035 | + installdirs-am maintainer-clean maintainer-clean-aminfo \ | |
20036 | + maintainer-clean-generic mostlyclean mostlyclean-aminfo \ | |
20037 | + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ | |
20038 | + tags tags-recursive uninstall uninstall-am uninstall-dvi-am \ | |
20039 | + uninstall-html-am uninstall-info-am uninstall-man \ | |
20040 | + uninstall-man1 uninstall-pdf-am uninstall-ps-am | |
20041 | ||
20042 | ||
20043 | .texinfo.dvi: | |
20044 | Index: libjava/classpath/doc/api/Makefile.in | |
20045 | =================================================================== | |
9f95000d AM |
20046 | --- libjava/classpath/doc/api/Makefile.in (.../tags/gcc_4_7_2_release) (wersja 192468) |
20047 | +++ libjava/classpath/doc/api/Makefile.in (.../branches/gcc-4_7-branch) (wersja 192468) | |
5a87b929 AM |
20048 | @@ -36,7 +36,7 @@ |
20049 | host_triplet = @host@ | |
20050 | target_triplet = @target@ | |
20051 | subdir = doc/api | |
20052 | -DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in | |
20053 | +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am | |
20054 | ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 | |
20055 | am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \ | |
20056 | $(top_srcdir)/../../config/lead-dot.m4 \ | |
20057 | @@ -69,9 +69,7 @@ | |
20058 | CONFIG_CLEAN_FILES = | |
20059 | CONFIG_CLEAN_VPATH_FILES = | |
20060 | SOURCES = | |
20061 | -DIST_SOURCES = | |
20062 | DATA = $(noinst_DATA) | |
20063 | -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) | |
20064 | ACLOCAL = @ACLOCAL@ | |
20065 | AMTAR = @AMTAR@ | |
20066 | ANTLR = @ANTLR@ | |
20067 | @@ -330,37 +328,6 @@ | |
20068 | ctags: CTAGS | |
20069 | CTAGS: | |
20070 | ||
20071 | - | |
20072 | -distdir: $(DISTFILES) | |
20073 | - @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ | |
20074 | - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ | |
20075 | - list='$(DISTFILES)'; \ | |
20076 | - dist_files=`for file in $$list; do echo $$file; done | \ | |
20077 | - sed -e "s|^$$srcdirstrip/||;t" \ | |
20078 | - -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ | |
20079 | - case $$dist_files in \ | |
20080 | - */*) $(MKDIR_P) `echo "$$dist_files" | \ | |
20081 | - sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ | |
20082 | - sort -u` ;; \ | |
20083 | - esac; \ | |
20084 | - for file in $$dist_files; do \ | |
20085 | - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ | |
20086 | - if test -d $$d/$$file; then \ | |
20087 | - dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ | |
20088 | - if test -d "$(distdir)/$$file"; then \ | |
20089 | - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ | |
20090 | - fi; \ | |
20091 | - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ | |
20092 | - cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ | |
20093 | - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ | |
20094 | - fi; \ | |
20095 | - cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ | |
20096 | - else \ | |
20097 | - test -f "$(distdir)/$$file" \ | |
20098 | - || cp -p $$d/$$file "$(distdir)/$$file" \ | |
20099 | - || exit 1; \ | |
20100 | - fi; \ | |
20101 | - done | |
20102 | check-am: all-am | |
20103 | check: check-am | |
20104 | all-am: Makefile $(DATA) | |
20105 | @@ -459,16 +426,16 @@ | |
20106 | .MAKE: install-am install-strip | |
20107 | ||
20108 | .PHONY: all all-am check check-am clean clean-generic clean-libtool \ | |
20109 | - clean-local distclean distclean-generic distclean-libtool \ | |
20110 | - distdir dvi dvi-am html html-am info info-am install \ | |
20111 | - install-am install-data install-data-am install-data-local \ | |
20112 | - install-dvi install-dvi-am install-exec install-exec-am \ | |
20113 | - install-html install-html-am install-info install-info-am \ | |
20114 | - install-man install-pdf install-pdf-am install-ps \ | |
20115 | - install-ps-am install-strip installcheck installcheck-am \ | |
20116 | - installdirs maintainer-clean maintainer-clean-generic \ | |
20117 | - mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ | |
20118 | - ps ps-am uninstall uninstall-am uninstall-local | |
20119 | + clean-local distclean distclean-generic distclean-libtool dvi \ | |
20120 | + dvi-am html html-am info info-am install install-am \ | |
20121 | + install-data install-data-am install-data-local install-dvi \ | |
20122 | + install-dvi-am install-exec install-exec-am install-html \ | |
20123 | + install-html-am install-info install-info-am install-man \ | |
20124 | + install-pdf install-pdf-am install-ps install-ps-am \ | |
20125 | + install-strip installcheck installcheck-am installdirs \ | |
20126 | + maintainer-clean maintainer-clean-generic mostlyclean \ | |
20127 | + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ | |
20128 | + uninstall uninstall-am uninstall-local | |
20129 | ||
20130 | ||
20131 | @CREATE_API_DOCS_TRUE@install-data-local: | |
20132 | Index: libjava/classpath/external/Makefile.in | |
20133 | =================================================================== | |
9f95000d AM |
20134 | --- libjava/classpath/external/Makefile.in (.../tags/gcc_4_7_2_release) (wersja 192468) |
20135 | +++ libjava/classpath/external/Makefile.in (.../branches/gcc-4_7-branch) (wersja 192468) | |
5a87b929 AM |
20136 | @@ -35,7 +35,7 @@ |
20137 | host_triplet = @host@ | |
20138 | target_triplet = @target@ | |
20139 | subdir = external | |
20140 | -DIST_COMMON = README $(srcdir)/Makefile.am $(srcdir)/Makefile.in | |
20141 | +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am | |
20142 | ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 | |
20143 | am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \ | |
20144 | $(top_srcdir)/../../config/lead-dot.m4 \ | |
20145 | @@ -68,7 +68,6 @@ | |
20146 | CONFIG_CLEAN_FILES = | |
20147 | CONFIG_CLEAN_VPATH_FILES = | |
20148 | SOURCES = | |
20149 | -DIST_SOURCES = | |
20150 | RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ | |
20151 | html-recursive info-recursive install-data-recursive \ | |
20152 | install-dvi-recursive install-exec-recursive \ | |
20153 | @@ -79,37 +78,10 @@ | |
20154 | RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ | |
20155 | distclean-recursive maintainer-clean-recursive | |
20156 | AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ | |
20157 | - $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ | |
20158 | - distdir | |
20159 | + $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS | |
20160 | ETAGS = etags | |
20161 | CTAGS = ctags | |
20162 | DIST_SUBDIRS = $(SUBDIRS) | |
20163 | -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) | |
20164 | -am__relativize = \ | |
20165 | - dir0=`pwd`; \ | |
20166 | - sed_first='s,^\([^/]*\)/.*$$,\1,'; \ | |
20167 | - sed_rest='s,^[^/]*/*,,'; \ | |
20168 | - sed_last='s,^.*/\([^/]*\)$$,\1,'; \ | |
20169 | - sed_butlast='s,/*[^/]*$$,,'; \ | |
20170 | - while test -n "$$dir1"; do \ | |
20171 | - first=`echo "$$dir1" | sed -e "$$sed_first"`; \ | |
20172 | - if test "$$first" != "."; then \ | |
20173 | - if test "$$first" = ".."; then \ | |
20174 | - dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ | |
20175 | - dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ | |
20176 | - else \ | |
20177 | - first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ | |
20178 | - if test "$$first2" = "$$first"; then \ | |
20179 | - dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ | |
20180 | - else \ | |
20181 | - dir2="../$$dir2"; \ | |
20182 | - fi; \ | |
20183 | - dir0="$$dir0"/"$$first"; \ | |
20184 | - fi; \ | |
20185 | - fi; \ | |
20186 | - dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ | |
20187 | - done; \ | |
20188 | - reldir="$$dir2" | |
20189 | ACLOCAL = @ACLOCAL@ | |
20190 | AMTAR = @AMTAR@ | |
20191 | ANTLR = @ANTLR@ | |
20192 | @@ -496,65 +468,6 @@ | |
20193 | ||
20194 | distclean-tags: | |
20195 | -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags | |
20196 | - | |
20197 | -distdir: $(DISTFILES) | |
20198 | - @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ | |
20199 | - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ | |
20200 | - list='$(DISTFILES)'; \ | |
20201 | - dist_files=`for file in $$list; do echo $$file; done | \ | |
20202 | - sed -e "s|^$$srcdirstrip/||;t" \ | |
20203 | - -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ | |
20204 | - case $$dist_files in \ | |
20205 | - */*) $(MKDIR_P) `echo "$$dist_files" | \ | |
20206 | - sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ | |
20207 | - sort -u` ;; \ | |
20208 | - esac; \ | |
20209 | - for file in $$dist_files; do \ | |
20210 | - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ | |
20211 | - if test -d $$d/$$file; then \ | |
20212 | - dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ | |
20213 | - if test -d "$(distdir)/$$file"; then \ | |
20214 | - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ | |
20215 | - fi; \ | |
20216 | - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ | |
20217 | - cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ | |
20218 | - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ | |
20219 | - fi; \ | |
20220 | - cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ | |
20221 | - else \ | |
20222 | - test -f "$(distdir)/$$file" \ | |
20223 | - || cp -p $$d/$$file "$(distdir)/$$file" \ | |
20224 | - || exit 1; \ | |
20225 | - fi; \ | |
20226 | - done | |
20227 | - @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ | |
20228 | - if test "$$subdir" = .; then :; else \ | |
20229 | - test -d "$(distdir)/$$subdir" \ | |
20230 | - || $(MKDIR_P) "$(distdir)/$$subdir" \ | |
20231 | - || exit 1; \ | |
20232 | - fi; \ | |
20233 | - done | |
20234 | - @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ | |
20235 | - if test "$$subdir" = .; then :; else \ | |
20236 | - dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ | |
20237 | - $(am__relativize); \ | |
20238 | - new_distdir=$$reldir; \ | |
20239 | - dir1=$$subdir; dir2="$(top_distdir)"; \ | |
20240 | - $(am__relativize); \ | |
20241 | - new_top_distdir=$$reldir; \ | |
20242 | - echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ | |
20243 | - echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ | |
20244 | - ($(am__cd) $$subdir && \ | |
20245 | - $(MAKE) $(AM_MAKEFLAGS) \ | |
20246 | - top_distdir="$$new_top_distdir" \ | |
20247 | - distdir="$$new_distdir" \ | |
20248 | - am__remove_distdir=: \ | |
20249 | - am__skip_length_check=: \ | |
20250 | - am__skip_mode_fix=: \ | |
20251 | - distdir) \ | |
20252 | - || exit 1; \ | |
20253 | - fi; \ | |
20254 | - done | |
20255 | check-am: all-am | |
20256 | check: check-recursive | |
20257 | all-am: Makefile | |
20258 | @@ -657,13 +570,13 @@ | |
20259 | .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ | |
20260 | all all-am check check-am clean clean-generic clean-libtool \ | |
20261 | ctags ctags-recursive distclean distclean-generic \ | |
20262 | - distclean-libtool distclean-tags distdir dvi dvi-am html \ | |
20263 | - html-am info info-am install install-am install-data \ | |
20264 | - install-data-am install-dvi install-dvi-am install-exec \ | |
20265 | - install-exec-am install-html install-html-am install-info \ | |
20266 | - install-info-am install-man install-pdf install-pdf-am \ | |
20267 | - install-ps install-ps-am install-strip installcheck \ | |
20268 | - installcheck-am installdirs installdirs-am maintainer-clean \ | |
20269 | + distclean-libtool distclean-tags dvi dvi-am html html-am info \ | |
20270 | + info-am install install-am install-data install-data-am \ | |
20271 | + install-dvi install-dvi-am install-exec install-exec-am \ | |
20272 | + install-html install-html-am install-info install-info-am \ | |
20273 | + install-man install-pdf install-pdf-am install-ps \ | |
20274 | + install-ps-am install-strip installcheck installcheck-am \ | |
20275 | + installdirs installdirs-am maintainer-clean \ | |
20276 | maintainer-clean-generic mostlyclean mostlyclean-generic \ | |
20277 | mostlyclean-libtool pdf pdf-am ps ps-am tags tags-recursive \ | |
20278 | uninstall uninstall-am | |
20279 | Index: libjava/classpath/external/jsr166/Makefile.in | |
20280 | =================================================================== | |
9f95000d AM |
20281 | --- libjava/classpath/external/jsr166/Makefile.in (.../tags/gcc_4_7_2_release) (wersja 192468) |
20282 | +++ libjava/classpath/external/jsr166/Makefile.in (.../branches/gcc-4_7-branch) (wersja 192468) | |
5a87b929 AM |
20283 | @@ -35,7 +35,7 @@ |
20284 | host_triplet = @host@ | |
20285 | target_triplet = @target@ | |
20286 | subdir = external/jsr166 | |
20287 | -DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in | |
20288 | +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am | |
20289 | ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 | |
20290 | am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \ | |
20291 | $(top_srcdir)/../../config/lead-dot.m4 \ | |
20292 | @@ -68,8 +68,6 @@ | |
20293 | CONFIG_CLEAN_FILES = | |
20294 | CONFIG_CLEAN_VPATH_FILES = | |
20295 | SOURCES = | |
20296 | -DIST_SOURCES = | |
20297 | -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) | |
20298 | ACLOCAL = @ACLOCAL@ | |
20299 | AMTAR = @AMTAR@ | |
20300 | ANTLR = @ANTLR@ | |
20301 | @@ -398,37 +396,6 @@ | |
20302 | ctags: CTAGS | |
20303 | CTAGS: | |
20304 | ||
20305 | - | |
20306 | -distdir: $(DISTFILES) | |
20307 | - @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ | |
20308 | - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ | |
20309 | - list='$(DISTFILES)'; \ | |
20310 | - dist_files=`for file in $$list; do echo $$file; done | \ | |
20311 | - sed -e "s|^$$srcdirstrip/||;t" \ | |
20312 | - -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ | |
20313 | - case $$dist_files in \ | |
20314 | - */*) $(MKDIR_P) `echo "$$dist_files" | \ | |
20315 | - sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ | |
20316 | - sort -u` ;; \ | |
20317 | - esac; \ | |
20318 | - for file in $$dist_files; do \ | |
20319 | - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ | |
20320 | - if test -d $$d/$$file; then \ | |
20321 | - dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ | |
20322 | - if test -d "$(distdir)/$$file"; then \ | |
20323 | - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ | |
20324 | - fi; \ | |
20325 | - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ | |
20326 | - cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ | |
20327 | - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ | |
20328 | - fi; \ | |
20329 | - cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ | |
20330 | - else \ | |
20331 | - test -f "$(distdir)/$$file" \ | |
20332 | - || cp -p $$d/$$file "$(distdir)/$$file" \ | |
20333 | - || exit 1; \ | |
20334 | - fi; \ | |
20335 | - done | |
20336 | check-am: all-am | |
20337 | check: check-am | |
20338 | all-am: Makefile | |
20339 | @@ -527,13 +494,13 @@ | |
20340 | .MAKE: install-am install-strip | |
20341 | ||
20342 | .PHONY: all all-am check check-am clean clean-generic clean-libtool \ | |
20343 | - distclean distclean-generic distclean-libtool distdir dvi \ | |
20344 | - dvi-am html html-am info info-am install install-am \ | |
20345 | - install-data install-data-am install-dvi install-dvi-am \ | |
20346 | - install-exec install-exec-am install-html install-html-am \ | |
20347 | - install-info install-info-am install-man install-pdf \ | |
20348 | - install-pdf-am install-ps install-ps-am install-strip \ | |
20349 | - installcheck installcheck-am installdirs maintainer-clean \ | |
20350 | + distclean distclean-generic distclean-libtool dvi dvi-am html \ | |
20351 | + html-am info info-am install install-am install-data \ | |
20352 | + install-data-am install-dvi install-dvi-am install-exec \ | |
20353 | + install-exec-am install-html install-html-am install-info \ | |
20354 | + install-info-am install-man install-pdf install-pdf-am \ | |
20355 | + install-ps install-ps-am install-strip installcheck \ | |
20356 | + installcheck-am installdirs maintainer-clean \ | |
20357 | maintainer-clean-generic mostlyclean mostlyclean-generic \ | |
20358 | mostlyclean-libtool pdf pdf-am ps ps-am uninstall uninstall-am | |
20359 | ||
20360 | Index: libjava/classpath/external/sax/Makefile.in | |
20361 | =================================================================== | |
9f95000d AM |
20362 | --- libjava/classpath/external/sax/Makefile.in (.../tags/gcc_4_7_2_release) (wersja 192468) |
20363 | +++ libjava/classpath/external/sax/Makefile.in (.../branches/gcc-4_7-branch) (wersja 192468) | |
5a87b929 AM |
20364 | @@ -35,7 +35,7 @@ |
20365 | host_triplet = @host@ | |
20366 | target_triplet = @target@ | |
20367 | subdir = external/sax | |
20368 | -DIST_COMMON = README $(srcdir)/Makefile.am $(srcdir)/Makefile.in | |
20369 | +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am | |
20370 | ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 | |
20371 | am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \ | |
20372 | $(top_srcdir)/../../config/lead-dot.m4 \ | |
20373 | @@ -68,8 +68,6 @@ | |
20374 | CONFIG_CLEAN_FILES = | |
20375 | CONFIG_CLEAN_VPATH_FILES = | |
20376 | SOURCES = | |
20377 | -DIST_SOURCES = | |
20378 | -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) | |
20379 | ACLOCAL = @ACLOCAL@ | |
20380 | AMTAR = @AMTAR@ | |
20381 | ANTLR = @ANTLR@ | |
20382 | @@ -366,37 +364,6 @@ | |
20383 | ctags: CTAGS | |
20384 | CTAGS: | |
20385 | ||
20386 | - | |
20387 | -distdir: $(DISTFILES) | |
20388 | - @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ | |
20389 | - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ | |
20390 | - list='$(DISTFILES)'; \ | |
20391 | - dist_files=`for file in $$list; do echo $$file; done | \ | |
20392 | - sed -e "s|^$$srcdirstrip/||;t" \ | |
20393 | - -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ | |
20394 | - case $$dist_files in \ | |
20395 | - */*) $(MKDIR_P) `echo "$$dist_files" | \ | |
20396 | - sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ | |
20397 | - sort -u` ;; \ | |
20398 | - esac; \ | |
20399 | - for file in $$dist_files; do \ | |
20400 | - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ | |
20401 | - if test -d $$d/$$file; then \ | |
20402 | - dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ | |
20403 | - if test -d "$(distdir)/$$file"; then \ | |
20404 | - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ | |
20405 | - fi; \ | |
20406 | - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ | |
20407 | - cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ | |
20408 | - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ | |
20409 | - fi; \ | |
20410 | - cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ | |
20411 | - else \ | |
20412 | - test -f "$(distdir)/$$file" \ | |
20413 | - || cp -p $$d/$$file "$(distdir)/$$file" \ | |
20414 | - || exit 1; \ | |
20415 | - fi; \ | |
20416 | - done | |
20417 | check-am: all-am | |
20418 | check: check-am | |
20419 | all-am: Makefile | |
20420 | @@ -495,13 +462,13 @@ | |
20421 | .MAKE: install-am install-strip | |
20422 | ||
20423 | .PHONY: all all-am check check-am clean clean-generic clean-libtool \ | |
20424 | - distclean distclean-generic distclean-libtool distdir dvi \ | |
20425 | - dvi-am html html-am info info-am install install-am \ | |
20426 | - install-data install-data-am install-dvi install-dvi-am \ | |
20427 | - install-exec install-exec-am install-html install-html-am \ | |
20428 | - install-info install-info-am install-man install-pdf \ | |
20429 | - install-pdf-am install-ps install-ps-am install-strip \ | |
20430 | - installcheck installcheck-am installdirs maintainer-clean \ | |
20431 | + distclean distclean-generic distclean-libtool dvi dvi-am html \ | |
20432 | + html-am info info-am install install-am install-data \ | |
20433 | + install-data-am install-dvi install-dvi-am install-exec \ | |
20434 | + install-exec-am install-html install-html-am install-info \ | |
20435 | + install-info-am install-man install-pdf install-pdf-am \ | |
20436 | + install-ps install-ps-am install-strip installcheck \ | |
20437 | + installcheck-am installdirs maintainer-clean \ | |
20438 | maintainer-clean-generic mostlyclean mostlyclean-generic \ | |
20439 | mostlyclean-libtool pdf pdf-am ps ps-am uninstall uninstall-am | |
20440 | ||
20441 | Index: libjava/classpath/external/w3c_dom/Makefile.in | |
20442 | =================================================================== | |
9f95000d AM |
20443 | --- libjava/classpath/external/w3c_dom/Makefile.in (.../tags/gcc_4_7_2_release) (wersja 192468) |
20444 | +++ libjava/classpath/external/w3c_dom/Makefile.in (.../branches/gcc-4_7-branch) (wersja 192468) | |
5a87b929 AM |
20445 | @@ -35,7 +35,7 @@ |
20446 | host_triplet = @host@ | |
20447 | target_triplet = @target@ | |
20448 | subdir = external/w3c_dom | |
20449 | -DIST_COMMON = README $(srcdir)/Makefile.am $(srcdir)/Makefile.in | |
20450 | +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am | |
20451 | ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 | |
20452 | am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \ | |
20453 | $(top_srcdir)/../../config/lead-dot.m4 \ | |
20454 | @@ -68,8 +68,6 @@ | |
20455 | CONFIG_CLEAN_FILES = | |
20456 | CONFIG_CLEAN_VPATH_FILES = | |
20457 | SOURCES = | |
20458 | -DIST_SOURCES = | |
20459 | -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) | |
20460 | ACLOCAL = @ACLOCAL@ | |
20461 | AMTAR = @AMTAR@ | |
20462 | ANTLR = @ANTLR@ | |
20463 | @@ -473,37 +471,6 @@ | |
20464 | ctags: CTAGS | |
20465 | CTAGS: | |
20466 | ||
20467 | - | |
20468 | -distdir: $(DISTFILES) | |
20469 | - @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ | |
20470 | - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ | |
20471 | - list='$(DISTFILES)'; \ | |
20472 | - dist_files=`for file in $$list; do echo $$file; done | \ | |
20473 | - sed -e "s|^$$srcdirstrip/||;t" \ | |
20474 | - -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ | |
20475 | - case $$dist_files in \ | |
20476 | - */*) $(MKDIR_P) `echo "$$dist_files" | \ | |
20477 | - sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ | |
20478 | - sort -u` ;; \ | |
20479 | - esac; \ | |
20480 | - for file in $$dist_files; do \ | |
20481 | - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ | |
20482 | - if test -d $$d/$$file; then \ | |
20483 | - dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ | |
20484 | - if test -d "$(distdir)/$$file"; then \ | |
20485 | - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ | |
20486 | - fi; \ | |
20487 | - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ | |
20488 | - cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ | |
20489 | - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ | |
20490 | - fi; \ | |
20491 | - cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ | |
20492 | - else \ | |
20493 | - test -f "$(distdir)/$$file" \ | |
20494 | - || cp -p $$d/$$file "$(distdir)/$$file" \ | |
20495 | - || exit 1; \ | |
20496 | - fi; \ | |
20497 | - done | |
20498 | check-am: all-am | |
20499 | check: check-am | |
20500 | all-am: Makefile | |
20501 | @@ -602,13 +569,13 @@ | |
20502 | .MAKE: install-am install-strip | |
20503 | ||
20504 | .PHONY: all all-am check check-am clean clean-generic clean-libtool \ | |
20505 | - distclean distclean-generic distclean-libtool distdir dvi \ | |
20506 | - dvi-am html html-am info info-am install install-am \ | |
20507 | - install-data install-data-am install-dvi install-dvi-am \ | |
20508 | - install-exec install-exec-am install-html install-html-am \ | |
20509 | - install-info install-info-am install-man install-pdf \ | |
20510 | - install-pdf-am install-ps install-ps-am install-strip \ | |
20511 | - installcheck installcheck-am installdirs maintainer-clean \ | |
20512 | + distclean distclean-generic distclean-libtool dvi dvi-am html \ | |
20513 | + html-am info info-am install install-am install-data \ | |
20514 | + install-data-am install-dvi install-dvi-am install-exec \ | |
20515 | + install-exec-am install-html install-html-am install-info \ | |
20516 | + install-info-am install-man install-pdf install-pdf-am \ | |
20517 | + install-ps install-ps-am install-strip installcheck \ | |
20518 | + installcheck-am installdirs maintainer-clean \ | |
20519 | maintainer-clean-generic mostlyclean mostlyclean-generic \ | |
20520 | mostlyclean-libtool pdf pdf-am ps ps-am uninstall uninstall-am | |
20521 | ||
20522 | Index: libjava/classpath/external/relaxngDatatype/Makefile.in | |
20523 | =================================================================== | |
9f95000d AM |
20524 | --- libjava/classpath/external/relaxngDatatype/Makefile.in (.../tags/gcc_4_7_2_release) (wersja 192468) |
20525 | +++ libjava/classpath/external/relaxngDatatype/Makefile.in (.../branches/gcc-4_7-branch) (wersja 192468) | |
5a87b929 AM |
20526 | @@ -35,7 +35,7 @@ |
20527 | host_triplet = @host@ | |
20528 | target_triplet = @target@ | |
20529 | subdir = external/relaxngDatatype | |
20530 | -DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in | |
20531 | +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am | |
20532 | ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 | |
20533 | am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \ | |
20534 | $(top_srcdir)/../../config/lead-dot.m4 \ | |
20535 | @@ -68,8 +68,6 @@ | |
20536 | CONFIG_CLEAN_FILES = | |
20537 | CONFIG_CLEAN_VPATH_FILES = | |
20538 | SOURCES = | |
20539 | -DIST_SOURCES = | |
20540 | -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) | |
20541 | ACLOCAL = @ACLOCAL@ | |
20542 | AMTAR = @AMTAR@ | |
20543 | ANTLR = @ANTLR@ | |
20544 | @@ -338,37 +336,6 @@ | |
20545 | ctags: CTAGS | |
20546 | CTAGS: | |
20547 | ||
20548 | - | |
20549 | -distdir: $(DISTFILES) | |
20550 | - @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ | |
20551 | - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ | |
20552 | - list='$(DISTFILES)'; \ | |
20553 | - dist_files=`for file in $$list; do echo $$file; done | \ | |
20554 | - sed -e "s|^$$srcdirstrip/||;t" \ | |
20555 | - -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ | |
20556 | - case $$dist_files in \ | |
20557 | - */*) $(MKDIR_P) `echo "$$dist_files" | \ | |
20558 | - sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ | |
20559 | - sort -u` ;; \ | |
20560 | - esac; \ | |
20561 | - for file in $$dist_files; do \ | |
20562 | - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ | |
20563 | - if test -d $$d/$$file; then \ | |
20564 | - dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ | |
20565 | - if test -d "$(distdir)/$$file"; then \ | |
20566 | - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ | |
20567 | - fi; \ | |
20568 | - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ | |
20569 | - cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ | |
20570 | - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ | |
20571 | - fi; \ | |
20572 | - cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ | |
20573 | - else \ | |
20574 | - test -f "$(distdir)/$$file" \ | |
20575 | - || cp -p $$d/$$file "$(distdir)/$$file" \ | |
20576 | - || exit 1; \ | |
20577 | - fi; \ | |
20578 | - done | |
20579 | check-am: all-am | |
20580 | check: check-am | |
20581 | all-am: Makefile | |
20582 | @@ -467,13 +434,13 @@ | |
20583 | .MAKE: install-am install-strip | |
20584 | ||
20585 | .PHONY: all all-am check check-am clean clean-generic clean-libtool \ | |
20586 | - distclean distclean-generic distclean-libtool distdir dvi \ | |
20587 | - dvi-am html html-am info info-am install install-am \ | |
20588 | - install-data install-data-am install-dvi install-dvi-am \ | |
20589 | - install-exec install-exec-am install-html install-html-am \ | |
20590 | - install-info install-info-am install-man install-pdf \ | |
20591 | - install-pdf-am install-ps install-ps-am install-strip \ | |
20592 | - installcheck installcheck-am installdirs maintainer-clean \ | |
20593 | + distclean distclean-generic distclean-libtool dvi dvi-am html \ | |
20594 | + html-am info info-am install install-am install-data \ | |
20595 | + install-data-am install-dvi install-dvi-am install-exec \ | |
20596 | + install-exec-am install-html install-html-am install-info \ | |
20597 | + install-info-am install-man install-pdf install-pdf-am \ | |
20598 | + install-ps install-ps-am install-strip installcheck \ | |
20599 | + installcheck-am installdirs maintainer-clean \ | |
20600 | maintainer-clean-generic mostlyclean mostlyclean-generic \ | |
20601 | mostlyclean-libtool pdf pdf-am ps ps-am uninstall uninstall-am | |
20602 | ||
20603 | Index: libjava/classpath/include/Makefile.in | |
20604 | =================================================================== | |
9f95000d AM |
20605 | --- libjava/classpath/include/Makefile.in (.../tags/gcc_4_7_2_release) (wersja 192468) |
20606 | +++ libjava/classpath/include/Makefile.in (.../branches/gcc-4_7-branch) (wersja 192468) | |
5a87b929 AM |
20607 | @@ -35,7 +35,7 @@ |
20608 | host_triplet = @host@ | |
20609 | target_triplet = @target@ | |
20610 | subdir = include | |
20611 | -DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ | |
20612 | +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ | |
20613 | $(srcdir)/config.h.in | |
20614 | ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 | |
20615 | am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \ | |
20616 | @@ -69,8 +69,6 @@ | |
20617 | CONFIG_CLEAN_FILES = | |
20618 | CONFIG_CLEAN_VPATH_FILES = | |
20619 | SOURCES = | |
20620 | -DIST_SOURCES = | |
20621 | -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) | |
20622 | ACLOCAL = @ACLOCAL@ | |
20623 | AMTAR = @AMTAR@ | |
20624 | ANTLR = @ANTLR@ | |
20625 | @@ -500,37 +498,6 @@ | |
20626 | ctags: CTAGS | |
20627 | CTAGS: | |
20628 | ||
20629 | - | |
20630 | -distdir: $(DISTFILES) | |
20631 | - @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ | |
20632 | - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ | |
20633 | - list='$(DISTFILES)'; \ | |
20634 | - dist_files=`for file in $$list; do echo $$file; done | \ | |
20635 | - sed -e "s|^$$srcdirstrip/||;t" \ | |
20636 | - -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ | |
20637 | - case $$dist_files in \ | |
20638 | - */*) $(MKDIR_P) `echo "$$dist_files" | \ | |
20639 | - sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ | |
20640 | - sort -u` ;; \ | |
20641 | - esac; \ | |
20642 | - for file in $$dist_files; do \ | |
20643 | - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ | |
20644 | - if test -d $$d/$$file; then \ | |
20645 | - dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ | |
20646 | - if test -d "$(distdir)/$$file"; then \ | |
20647 | - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ | |
20648 | - fi; \ | |
20649 | - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ | |
20650 | - cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ | |
20651 | - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ | |
20652 | - fi; \ | |
20653 | - cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ | |
20654 | - else \ | |
20655 | - test -f "$(distdir)/$$file" \ | |
20656 | - || cp -p $$d/$$file "$(distdir)/$$file" \ | |
20657 | - || exit 1; \ | |
20658 | - fi; \ | |
20659 | - done | |
20660 | check-am: all-am | |
20661 | check: check-am | |
20662 | @CREATE_JNI_HEADERS_FALSE@all-local: | |
20663 | @@ -632,8 +599,8 @@ | |
20664 | ||
20665 | .PHONY: all all-am all-local check check-am clean clean-generic \ | |
20666 | clean-libtool distclean distclean-generic distclean-hdr \ | |
20667 | - distclean-libtool distdir dvi dvi-am html html-am info info-am \ | |
20668 | - install install-am install-data install-data-am install-dvi \ | |
20669 | + distclean-libtool dvi dvi-am html html-am info info-am install \ | |
20670 | + install-am install-data install-data-am install-dvi \ | |
20671 | install-dvi-am install-exec install-exec-am install-html \ | |
20672 | install-html-am install-info install-info-am install-man \ | |
20673 | install-pdf install-pdf-am install-ps install-ps-am \ | |
20674 | Index: libjava/classpath/native/jni/Makefile.in | |
20675 | =================================================================== | |
9f95000d AM |
20676 | --- libjava/classpath/native/jni/Makefile.in (.../tags/gcc_4_7_2_release) (wersja 192468) |
20677 | +++ libjava/classpath/native/jni/Makefile.in (.../branches/gcc-4_7-branch) (wersja 192468) | |
5a87b929 AM |
20678 | @@ -35,7 +35,7 @@ |
20679 | host_triplet = @host@ | |
20680 | target_triplet = @target@ | |
20681 | subdir = native/jni | |
20682 | -DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in | |
20683 | +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am | |
20684 | ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 | |
20685 | am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \ | |
20686 | $(top_srcdir)/../../config/lead-dot.m4 \ | |
20687 | @@ -68,7 +68,6 @@ | |
20688 | CONFIG_CLEAN_FILES = | |
20689 | CONFIG_CLEAN_VPATH_FILES = | |
20690 | SOURCES = | |
20691 | -DIST_SOURCES = | |
20692 | RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ | |
20693 | html-recursive info-recursive install-data-recursive \ | |
20694 | install-dvi-recursive install-exec-recursive \ | |
20695 | @@ -79,36 +78,9 @@ | |
20696 | RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ | |
20697 | distclean-recursive maintainer-clean-recursive | |
20698 | AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ | |
20699 | - $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ | |
20700 | - distdir | |
20701 | + $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS | |
20702 | ETAGS = etags | |
20703 | CTAGS = ctags | |
20704 | -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) | |
20705 | -am__relativize = \ | |
20706 | - dir0=`pwd`; \ | |
20707 | - sed_first='s,^\([^/]*\)/.*$$,\1,'; \ | |
20708 | - sed_rest='s,^[^/]*/*,,'; \ | |
20709 | - sed_last='s,^.*/\([^/]*\)$$,\1,'; \ | |
20710 | - sed_butlast='s,/*[^/]*$$,,'; \ | |
20711 | - while test -n "$$dir1"; do \ | |
20712 | - first=`echo "$$dir1" | sed -e "$$sed_first"`; \ | |
20713 | - if test "$$first" != "."; then \ | |
20714 | - if test "$$first" = ".."; then \ | |
20715 | - dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ | |
20716 | - dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ | |
20717 | - else \ | |
20718 | - first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ | |
20719 | - if test "$$first2" = "$$first"; then \ | |
20720 | - dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ | |
20721 | - else \ | |
20722 | - dir2="../$$dir2"; \ | |
20723 | - fi; \ | |
20724 | - dir0="$$dir0"/"$$first"; \ | |
20725 | - fi; \ | |
20726 | - fi; \ | |
20727 | - dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ | |
20728 | - done; \ | |
20729 | - reldir="$$dir2" | |
20730 | ACLOCAL = @ACLOCAL@ | |
20731 | AMTAR = @AMTAR@ | |
20732 | ANTLR = @ANTLR@ | |
20733 | @@ -510,65 +482,6 @@ | |
20734 | ||
20735 | distclean-tags: | |
20736 | -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags | |
20737 | - | |
20738 | -distdir: $(DISTFILES) | |
20739 | - @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ | |
20740 | - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ | |
20741 | - list='$(DISTFILES)'; \ | |
20742 | - dist_files=`for file in $$list; do echo $$file; done | \ | |
20743 | - sed -e "s|^$$srcdirstrip/||;t" \ | |
20744 | - -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ | |
20745 | - case $$dist_files in \ | |
20746 | - */*) $(MKDIR_P) `echo "$$dist_files" | \ | |
20747 | - sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ | |
20748 | - sort -u` ;; \ | |
20749 | - esac; \ | |
20750 | - for file in $$dist_files; do \ | |
20751 | - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ | |
20752 | - if test -d $$d/$$file; then \ | |
20753 | - dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ | |
20754 | - if test -d "$(distdir)/$$file"; then \ | |
20755 | - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ | |
20756 | - fi; \ | |
20757 | - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ | |
20758 | - cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ | |
20759 | - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ | |
20760 | - fi; \ | |
20761 | - cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ | |
20762 | - else \ | |
20763 | - test -f "$(distdir)/$$file" \ | |
20764 | - || cp -p $$d/$$file "$(distdir)/$$file" \ | |
20765 | - || exit 1; \ | |
20766 | - fi; \ | |
20767 | - done | |
20768 | - @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ | |
20769 | - if test "$$subdir" = .; then :; else \ | |
20770 | - test -d "$(distdir)/$$subdir" \ | |
20771 | - || $(MKDIR_P) "$(distdir)/$$subdir" \ | |
20772 | - || exit 1; \ | |
20773 | - fi; \ | |
20774 | - done | |
20775 | - @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ | |
20776 | - if test "$$subdir" = .; then :; else \ | |
20777 | - dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ | |
20778 | - $(am__relativize); \ | |
20779 | - new_distdir=$$reldir; \ | |
20780 | - dir1=$$subdir; dir2="$(top_distdir)"; \ | |
20781 | - $(am__relativize); \ | |
20782 | - new_top_distdir=$$reldir; \ | |
20783 | - echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ | |
20784 | - echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ | |
20785 | - ($(am__cd) $$subdir && \ | |
20786 | - $(MAKE) $(AM_MAKEFLAGS) \ | |
20787 | - top_distdir="$$new_top_distdir" \ | |
20788 | - distdir="$$new_distdir" \ | |
20789 | - am__remove_distdir=: \ | |
20790 | - am__skip_length_check=: \ | |
20791 | - am__skip_mode_fix=: \ | |
20792 | - distdir) \ | |
20793 | - || exit 1; \ | |
20794 | - fi; \ | |
20795 | - done | |
20796 | check-am: all-am | |
20797 | check: check-recursive | |
20798 | all-am: Makefile all-local | |
20799 | @@ -671,16 +584,16 @@ | |
20800 | .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ | |
20801 | all all-am all-local check check-am clean clean-generic \ | |
20802 | clean-libtool ctags ctags-recursive distclean \ | |
20803 | - distclean-generic distclean-libtool distclean-tags distdir dvi \ | |
20804 | - dvi-am html html-am info info-am install install-am \ | |
20805 | - install-data install-data-am install-dvi install-dvi-am \ | |
20806 | - install-exec install-exec-am install-html install-html-am \ | |
20807 | - install-info install-info-am install-man install-pdf \ | |
20808 | - install-pdf-am install-ps install-ps-am install-strip \ | |
20809 | - installcheck installcheck-am installdirs installdirs-am \ | |
20810 | - maintainer-clean maintainer-clean-generic mostlyclean \ | |
20811 | - mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ | |
20812 | - tags tags-recursive uninstall uninstall-am | |
20813 | + distclean-generic distclean-libtool distclean-tags dvi dvi-am \ | |
20814 | + html html-am info info-am install install-am install-data \ | |
20815 | + install-data-am install-dvi install-dvi-am install-exec \ | |
20816 | + install-exec-am install-html install-html-am install-info \ | |
20817 | + install-info-am install-man install-pdf install-pdf-am \ | |
20818 | + install-ps install-ps-am install-strip installcheck \ | |
20819 | + installcheck-am installdirs installdirs-am maintainer-clean \ | |
20820 | + maintainer-clean-generic mostlyclean mostlyclean-generic \ | |
20821 | + mostlyclean-libtool pdf pdf-am ps ps-am tags tags-recursive \ | |
20822 | + uninstall uninstall-am | |
20823 | ||
20824 | ||
20825 | all-local: | |
20826 | Index: libjava/classpath/native/jni/classpath/Makefile.in | |
20827 | =================================================================== | |
9f95000d AM |
20828 | --- libjava/classpath/native/jni/classpath/Makefile.in (.../tags/gcc_4_7_2_release) (wersja 192468) |
20829 | +++ libjava/classpath/native/jni/classpath/Makefile.in (.../branches/gcc-4_7-branch) (wersja 192468) | |
5a87b929 AM |
20830 | @@ -36,7 +36,7 @@ |
20831 | host_triplet = @host@ | |
20832 | target_triplet = @target@ | |
20833 | subdir = native/jni/classpath | |
20834 | -DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in | |
20835 | +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am | |
20836 | ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 | |
20837 | am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \ | |
20838 | $(top_srcdir)/../../config/lead-dot.m4 \ | |
20839 | @@ -86,10 +86,8 @@ | |
20840 | --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ | |
20841 | $(LDFLAGS) -o $@ | |
20842 | SOURCES = $(libclasspath_la_SOURCES) | |
20843 | -DIST_SOURCES = $(libclasspath_la_SOURCES) | |
20844 | ETAGS = etags | |
20845 | CTAGS = ctags | |
20846 | -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) | |
20847 | ACLOCAL = @ACLOCAL@ | |
20848 | AMTAR = @AMTAR@ | |
20849 | ANTLR = @ANTLR@ | |
20850 | @@ -445,37 +443,6 @@ | |
20851 | ||
20852 | distclean-tags: | |
20853 | -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags | |
20854 | - | |
20855 | -distdir: $(DISTFILES) | |
20856 | - @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ | |
20857 | - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ | |
20858 | - list='$(DISTFILES)'; \ | |
20859 | - dist_files=`for file in $$list; do echo $$file; done | \ | |
20860 | - sed -e "s|^$$srcdirstrip/||;t" \ | |
20861 | - -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ | |
20862 | - case $$dist_files in \ | |
20863 | - */*) $(MKDIR_P) `echo "$$dist_files" | \ | |
20864 | - sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ | |
20865 | - sort -u` ;; \ | |
20866 | - esac; \ | |
20867 | - for file in $$dist_files; do \ | |
20868 | - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ | |
20869 | - if test -d $$d/$$file; then \ | |
20870 | - dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ | |
20871 | - if test -d "$(distdir)/$$file"; then \ | |
20872 | - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ | |
20873 | - fi; \ | |
20874 | - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ | |
20875 | - cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ | |
20876 | - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ | |
20877 | - fi; \ | |
20878 | - cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ | |
20879 | - else \ | |
20880 | - test -f "$(distdir)/$$file" \ | |
20881 | - || cp -p $$d/$$file "$(distdir)/$$file" \ | |
20882 | - || exit 1; \ | |
20883 | - fi; \ | |
20884 | - done | |
20885 | check-am: all-am | |
20886 | check: check-am | |
20887 | all-am: Makefile $(LTLIBRARIES) | |
20888 | @@ -581,8 +548,8 @@ | |
20889 | .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ | |
20890 | clean-libtool clean-noinstLTLIBRARIES ctags distclean \ | |
20891 | distclean-compile distclean-generic distclean-libtool \ | |
20892 | - distclean-tags distdir dvi dvi-am html html-am info info-am \ | |
20893 | - install install-am install-data install-data-am install-dvi \ | |
20894 | + distclean-tags dvi dvi-am html html-am info info-am install \ | |
20895 | + install-am install-data install-data-am install-dvi \ | |
20896 | install-dvi-am install-exec install-exec-am install-html \ | |
20897 | install-html-am install-info install-info-am install-man \ | |
20898 | install-pdf install-pdf-am install-ps install-ps-am \ | |
20899 | Index: libjava/classpath/native/jni/gstreamer-peer/Makefile.in | |
20900 | =================================================================== | |
9f95000d AM |
20901 | --- libjava/classpath/native/jni/gstreamer-peer/Makefile.in (.../tags/gcc_4_7_2_release) (wersja 192468) |
20902 | +++ libjava/classpath/native/jni/gstreamer-peer/Makefile.in (.../branches/gcc-4_7-branch) (wersja 192468) | |
5a87b929 AM |
20903 | @@ -36,7 +36,7 @@ |
20904 | host_triplet = @host@ | |
20905 | target_triplet = @target@ | |
20906 | subdir = native/jni/gstreamer-peer | |
20907 | -DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in | |
20908 | +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am | |
20909 | ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 | |
20910 | am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \ | |
20911 | $(top_srcdir)/../../config/lead-dot.m4 \ | |
20912 | @@ -114,10 +114,8 @@ | |
20913 | --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ | |
20914 | $(LDFLAGS) -o $@ | |
20915 | SOURCES = $(libgstreamerpeer_la_SOURCES) | |
20916 | -DIST_SOURCES = $(libgstreamerpeer_la_SOURCES) | |
20917 | ETAGS = etags | |
20918 | CTAGS = ctags | |
20919 | -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) | |
20920 | ACLOCAL = @ACLOCAL@ | |
20921 | AMTAR = @AMTAR@ | |
20922 | ANTLR = @ANTLR@ | |
20923 | @@ -514,37 +512,6 @@ | |
20924 | ||
20925 | distclean-tags: | |
20926 | -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags | |
20927 | - | |
20928 | -distdir: $(DISTFILES) | |
20929 | - @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ | |
20930 | - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ | |
20931 | - list='$(DISTFILES)'; \ | |
20932 | - dist_files=`for file in $$list; do echo $$file; done | \ | |
20933 | - sed -e "s|^$$srcdirstrip/||;t" \ | |
20934 | - -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ | |
20935 | - case $$dist_files in \ | |
20936 | - */*) $(MKDIR_P) `echo "$$dist_files" | \ | |
20937 | - sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ | |
20938 | - sort -u` ;; \ | |
20939 | - esac; \ | |
20940 | - for file in $$dist_files; do \ | |
20941 | - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ | |
20942 | - if test -d $$d/$$file; then \ | |
20943 | - dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ | |
20944 | - if test -d "$(distdir)/$$file"; then \ | |
20945 | - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ | |
20946 | - fi; \ | |
20947 | - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ | |
20948 | - cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ | |
20949 | - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ | |
20950 | - fi; \ | |
20951 | - cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ | |
20952 | - else \ | |
20953 | - test -f "$(distdir)/$$file" \ | |
20954 | - || cp -p $$d/$$file "$(distdir)/$$file" \ | |
20955 | - || exit 1; \ | |
20956 | - fi; \ | |
20957 | - done | |
20958 | check-am: all-am | |
20959 | check: check-am | |
20960 | all-am: Makefile $(LTLIBRARIES) | |
20961 | @@ -653,8 +620,8 @@ | |
20962 | .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ | |
20963 | clean-libtool clean-nativeexeclibLTLIBRARIES ctags distclean \ | |
20964 | distclean-compile distclean-generic distclean-libtool \ | |
20965 | - distclean-tags distdir dvi dvi-am html html-am info info-am \ | |
20966 | - install install-am install-data install-data-am install-dvi \ | |
20967 | + distclean-tags dvi dvi-am html html-am info info-am install \ | |
20968 | + install-am install-data install-data-am install-dvi \ | |
20969 | install-dvi-am install-exec install-exec-am install-html \ | |
20970 | install-html-am install-info install-info-am install-man \ | |
20971 | install-nativeexeclibLTLIBRARIES install-pdf install-pdf-am \ | |
20972 | Index: libjava/classpath/native/jni/midi-dssi/Makefile.in | |
20973 | =================================================================== | |
9f95000d AM |
20974 | --- libjava/classpath/native/jni/midi-dssi/Makefile.in (.../tags/gcc_4_7_2_release) (wersja 192468) |
20975 | +++ libjava/classpath/native/jni/midi-dssi/Makefile.in (.../branches/gcc-4_7-branch) (wersja 192468) | |
5a87b929 AM |
20976 | @@ -36,7 +36,7 @@ |
20977 | host_triplet = @host@ | |
20978 | target_triplet = @target@ | |
20979 | subdir = native/jni/midi-dssi | |
20980 | -DIST_COMMON = README $(srcdir)/Makefile.am $(srcdir)/Makefile.in | |
20981 | +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am | |
20982 | ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 | |
20983 | am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \ | |
20984 | $(top_srcdir)/../../config/lead-dot.m4 \ | |
20985 | @@ -114,10 +114,8 @@ | |
20986 | --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ | |
20987 | $(LDFLAGS) -o $@ | |
20988 | SOURCES = $(libgjsmdssi_la_SOURCES) | |
20989 | -DIST_SOURCES = $(libgjsmdssi_la_SOURCES) | |
20990 | ETAGS = etags | |
20991 | CTAGS = ctags | |
20992 | -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) | |
20993 | ACLOCAL = @ACLOCAL@ | |
20994 | AMTAR = @AMTAR@ | |
20995 | ANTLR = @ANTLR@ | |
20996 | @@ -496,37 +494,6 @@ | |
20997 | ||
20998 | distclean-tags: | |
20999 | -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags | |
21000 | - | |
21001 | -distdir: $(DISTFILES) | |
21002 | - @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ | |
21003 | - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ | |
21004 | - list='$(DISTFILES)'; \ | |
21005 | - dist_files=`for file in $$list; do echo $$file; done | \ | |
21006 | - sed -e "s|^$$srcdirstrip/||;t" \ | |
21007 | - -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ | |
21008 | - case $$dist_files in \ | |
21009 | - */*) $(MKDIR_P) `echo "$$dist_files" | \ | |
21010 | - sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ | |
21011 | - sort -u` ;; \ | |
21012 | - esac; \ | |
21013 | - for file in $$dist_files; do \ | |
21014 | - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ | |
21015 | - if test -d $$d/$$file; then \ | |
21016 | - dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ | |
21017 | - if test -d "$(distdir)/$$file"; then \ | |
21018 | - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ | |
21019 | - fi; \ | |
21020 | - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ | |
21021 | - cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ | |
21022 | - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ | |
21023 | - fi; \ | |
21024 | - cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ | |
21025 | - else \ | |
21026 | - test -f "$(distdir)/$$file" \ | |
21027 | - || cp -p $$d/$$file "$(distdir)/$$file" \ | |
21028 | - || exit 1; \ | |
21029 | - fi; \ | |
21030 | - done | |
21031 | check-am: all-am | |
21032 | check: check-am | |
21033 | all-am: Makefile $(LTLIBRARIES) | |
21034 | @@ -635,8 +602,8 @@ | |
21035 | .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ | |
21036 | clean-libtool clean-nativeexeclibLTLIBRARIES ctags distclean \ | |
21037 | distclean-compile distclean-generic distclean-libtool \ | |
21038 | - distclean-tags distdir dvi dvi-am html html-am info info-am \ | |
21039 | - install install-am install-data install-data-am install-dvi \ | |
21040 | + distclean-tags dvi dvi-am html html-am info info-am install \ | |
21041 | + install-am install-data install-data-am install-dvi \ | |
21042 | install-dvi-am install-exec install-exec-am install-html \ | |
21043 | install-html-am install-info install-info-am install-man \ | |
21044 | install-nativeexeclibLTLIBRARIES install-pdf install-pdf-am \ | |
21045 | Index: libjava/classpath/native/jni/gconf-peer/Makefile.in | |
21046 | =================================================================== | |
9f95000d AM |
21047 | --- libjava/classpath/native/jni/gconf-peer/Makefile.in (.../tags/gcc_4_7_2_release) (wersja 192468) |
21048 | +++ libjava/classpath/native/jni/gconf-peer/Makefile.in (.../branches/gcc-4_7-branch) (wersja 192468) | |
5a87b929 AM |
21049 | @@ -36,7 +36,7 @@ |
21050 | host_triplet = @host@ | |
21051 | target_triplet = @target@ | |
21052 | subdir = native/jni/gconf-peer | |
21053 | -DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in | |
21054 | +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am | |
21055 | ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 | |
21056 | am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \ | |
21057 | $(top_srcdir)/../../config/lead-dot.m4 \ | |
21058 | @@ -112,10 +112,8 @@ | |
21059 | --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ | |
21060 | $(LDFLAGS) -o $@ | |
21061 | SOURCES = $(libgconfpeer_la_SOURCES) | |
21062 | -DIST_SOURCES = $(libgconfpeer_la_SOURCES) | |
21063 | ETAGS = etags | |
21064 | CTAGS = ctags | |
21065 | -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) | |
21066 | ACLOCAL = @ACLOCAL@ | |
21067 | AMTAR = @AMTAR@ | |
21068 | ANTLR = @ANTLR@ | |
21069 | @@ -489,37 +487,6 @@ | |
21070 | ||
21071 | distclean-tags: | |
21072 | -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags | |
21073 | - | |
21074 | -distdir: $(DISTFILES) | |
21075 | - @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ | |
21076 | - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ | |
21077 | - list='$(DISTFILES)'; \ | |
21078 | - dist_files=`for file in $$list; do echo $$file; done | \ | |
21079 | - sed -e "s|^$$srcdirstrip/||;t" \ | |
21080 | - -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ | |
21081 | - case $$dist_files in \ | |
21082 | - */*) $(MKDIR_P) `echo "$$dist_files" | \ | |
21083 | - sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ | |
21084 | - sort -u` ;; \ | |
21085 | - esac; \ | |
21086 | - for file in $$dist_files; do \ | |
21087 | - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ | |
21088 | - if test -d $$d/$$file; then \ | |
21089 | - dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ | |
21090 | - if test -d "$(distdir)/$$file"; then \ | |
21091 | - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ | |
21092 | - fi; \ | |
21093 | - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ | |
21094 | - cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ | |
21095 | - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ | |
21096 | - fi; \ | |
21097 | - cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ | |
21098 | - else \ | |
21099 | - test -f "$(distdir)/$$file" \ | |
21100 | - || cp -p $$d/$$file "$(distdir)/$$file" \ | |
21101 | - || exit 1; \ | |
21102 | - fi; \ | |
21103 | - done | |
21104 | check-am: all-am | |
21105 | check: check-am | |
21106 | all-am: Makefile $(LTLIBRARIES) | |
21107 | @@ -628,8 +595,8 @@ | |
21108 | .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ | |
21109 | clean-libtool clean-nativeexeclibLTLIBRARIES ctags distclean \ | |
21110 | distclean-compile distclean-generic distclean-libtool \ | |
21111 | - distclean-tags distdir dvi dvi-am html html-am info info-am \ | |
21112 | - install install-am install-data install-data-am install-dvi \ | |
21113 | + distclean-tags dvi dvi-am html html-am info info-am install \ | |
21114 | + install-am install-data install-data-am install-dvi \ | |
21115 | install-dvi-am install-exec install-exec-am install-html \ | |
21116 | install-html-am install-info install-info-am install-man \ | |
21117 | install-nativeexeclibLTLIBRARIES install-pdf install-pdf-am \ | |
21118 | Index: libjava/classpath/native/jni/java-io/Makefile.in | |
21119 | =================================================================== | |
9f95000d AM |
21120 | --- libjava/classpath/native/jni/java-io/Makefile.in (.../tags/gcc_4_7_2_release) (wersja 192468) |
21121 | +++ libjava/classpath/native/jni/java-io/Makefile.in (.../branches/gcc-4_7-branch) (wersja 192468) | |
5a87b929 AM |
21122 | @@ -36,7 +36,7 @@ |
21123 | host_triplet = @host@ | |
21124 | target_triplet = @target@ | |
21125 | subdir = native/jni/java-io | |
21126 | -DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in | |
21127 | +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am | |
21128 | ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 | |
21129 | am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \ | |
21130 | $(top_srcdir)/../../config/lead-dot.m4 \ | |
21131 | @@ -111,10 +111,8 @@ | |
21132 | --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ | |
21133 | $(LDFLAGS) -o $@ | |
21134 | SOURCES = $(libjavaio_la_SOURCES) | |
21135 | -DIST_SOURCES = $(libjavaio_la_SOURCES) | |
21136 | ETAGS = etags | |
21137 | CTAGS = ctags | |
21138 | -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) | |
21139 | ACLOCAL = @ACLOCAL@ | |
21140 | AMTAR = @AMTAR@ | |
21141 | ANTLR = @ANTLR@ | |
21142 | @@ -494,37 +492,6 @@ | |
21143 | ||
21144 | distclean-tags: | |
21145 | -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags | |
21146 | - | |
21147 | -distdir: $(DISTFILES) | |
21148 | - @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ | |
21149 | - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ | |
21150 | - list='$(DISTFILES)'; \ | |
21151 | - dist_files=`for file in $$list; do echo $$file; done | \ | |
21152 | - sed -e "s|^$$srcdirstrip/||;t" \ | |
21153 | - -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ | |
21154 | - case $$dist_files in \ | |
21155 | - */*) $(MKDIR_P) `echo "$$dist_files" | \ | |
21156 | - sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ | |
21157 | - sort -u` ;; \ | |
21158 | - esac; \ | |
21159 | - for file in $$dist_files; do \ | |
21160 | - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ | |
21161 | - if test -d $$d/$$file; then \ | |
21162 | - dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ | |
21163 | - if test -d "$(distdir)/$$file"; then \ | |
21164 | - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ | |
21165 | - fi; \ | |
21166 | - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ | |
21167 | - cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ | |
21168 | - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ | |
21169 | - fi; \ | |
21170 | - cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ | |
21171 | - else \ | |
21172 | - test -f "$(distdir)/$$file" \ | |
21173 | - || cp -p $$d/$$file "$(distdir)/$$file" \ | |
21174 | - || exit 1; \ | |
21175 | - fi; \ | |
21176 | - done | |
21177 | check-am: all-am | |
21178 | check: check-am | |
21179 | all-am: Makefile $(LTLIBRARIES) | |
21180 | @@ -633,8 +600,8 @@ | |
21181 | .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ | |
21182 | clean-libtool clean-nativeexeclibLTLIBRARIES ctags distclean \ | |
21183 | distclean-compile distclean-generic distclean-libtool \ | |
21184 | - distclean-tags distdir dvi dvi-am html html-am info info-am \ | |
21185 | - install install-am install-data install-data-am install-dvi \ | |
21186 | + distclean-tags dvi dvi-am html html-am info info-am install \ | |
21187 | + install-am install-data install-data-am install-dvi \ | |
21188 | install-dvi-am install-exec install-exec-am install-html \ | |
21189 | install-html-am install-info install-info-am install-man \ | |
21190 | install-nativeexeclibLTLIBRARIES install-pdf install-pdf-am \ | |
21191 | Index: libjava/classpath/native/jni/native-lib/Makefile.in | |
21192 | =================================================================== | |
9f95000d AM |
21193 | --- libjava/classpath/native/jni/native-lib/Makefile.in (.../tags/gcc_4_7_2_release) (wersja 192468) |
21194 | +++ libjava/classpath/native/jni/native-lib/Makefile.in (.../branches/gcc-4_7-branch) (wersja 192468) | |
5a87b929 AM |
21195 | @@ -36,7 +36,7 @@ |
21196 | host_triplet = @host@ | |
21197 | target_triplet = @target@ | |
21198 | subdir = native/jni/native-lib | |
21199 | -DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in | |
21200 | +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am | |
21201 | ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 | |
21202 | am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \ | |
21203 | $(top_srcdir)/../../config/lead-dot.m4 \ | |
21204 | @@ -86,10 +86,8 @@ | |
21205 | --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ | |
21206 | $(LDFLAGS) -o $@ | |
21207 | SOURCES = $(libclasspathnative_la_SOURCES) | |
21208 | -DIST_SOURCES = $(libclasspathnative_la_SOURCES) | |
21209 | ETAGS = etags | |
21210 | CTAGS = ctags | |
21211 | -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) | |
21212 | ACLOCAL = @ACLOCAL@ | |
21213 | AMTAR = @AMTAR@ | |
21214 | ANTLR = @ANTLR@ | |
21215 | @@ -448,37 +446,6 @@ | |
21216 | ||
21217 | distclean-tags: | |
21218 | -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags | |
21219 | - | |
21220 | -distdir: $(DISTFILES) | |
21221 | - @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ | |
21222 | - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ | |
21223 | - list='$(DISTFILES)'; \ | |
21224 | - dist_files=`for file in $$list; do echo $$file; done | \ | |
21225 | - sed -e "s|^$$srcdirstrip/||;t" \ | |
21226 | - -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ | |
21227 | - case $$dist_files in \ | |
21228 | - */*) $(MKDIR_P) `echo "$$dist_files" | \ | |
21229 | - sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ | |
21230 | - sort -u` ;; \ | |
21231 | - esac; \ | |
21232 | - for file in $$dist_files; do \ | |
21233 | - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ | |
21234 | - if test -d $$d/$$file; then \ | |
21235 | - dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ | |
21236 | - if test -d "$(distdir)/$$file"; then \ | |
21237 | - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ | |
21238 | - fi; \ | |
21239 | - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ | |
21240 | - cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ | |
21241 | - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ | |
21242 | - fi; \ | |
21243 | - cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ | |
21244 | - else \ | |
21245 | - test -f "$(distdir)/$$file" \ | |
21246 | - || cp -p $$d/$$file "$(distdir)/$$file" \ | |
21247 | - || exit 1; \ | |
21248 | - fi; \ | |
21249 | - done | |
21250 | check-am: all-am | |
21251 | check: check-am | |
21252 | all-am: Makefile $(LTLIBRARIES) | |
21253 | @@ -584,8 +551,8 @@ | |
21254 | .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ | |
21255 | clean-libtool clean-noinstLTLIBRARIES ctags distclean \ | |
21256 | distclean-compile distclean-generic distclean-libtool \ | |
21257 | - distclean-tags distdir dvi dvi-am html html-am info info-am \ | |
21258 | - install install-am install-data install-data-am install-dvi \ | |
21259 | + distclean-tags dvi dvi-am html html-am info info-am install \ | |
21260 | + install-am install-data install-data-am install-dvi \ | |
21261 | install-dvi-am install-exec install-exec-am install-html \ | |
21262 | install-html-am install-info install-info-am install-man \ | |
21263 | install-pdf install-pdf-am install-ps install-ps-am \ | |
21264 | Index: libjava/classpath/native/jni/java-util/Makefile.in | |
21265 | =================================================================== | |
9f95000d AM |
21266 | --- libjava/classpath/native/jni/java-util/Makefile.in (.../tags/gcc_4_7_2_release) (wersja 192468) |
21267 | +++ libjava/classpath/native/jni/java-util/Makefile.in (.../branches/gcc-4_7-branch) (wersja 192468) | |
5a87b929 AM |
21268 | @@ -36,7 +36,7 @@ |
21269 | host_triplet = @host@ | |
21270 | target_triplet = @target@ | |
21271 | subdir = native/jni/java-util | |
21272 | -DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in | |
21273 | +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am | |
21274 | ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 | |
21275 | am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \ | |
21276 | $(top_srcdir)/../../config/lead-dot.m4 \ | |
21277 | @@ -108,10 +108,8 @@ | |
21278 | --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ | |
21279 | $(LDFLAGS) -o $@ | |
21280 | SOURCES = $(libjavautil_la_SOURCES) | |
21281 | -DIST_SOURCES = $(libjavautil_la_SOURCES) | |
21282 | ETAGS = etags | |
21283 | CTAGS = ctags | |
21284 | -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) | |
21285 | ACLOCAL = @ACLOCAL@ | |
21286 | AMTAR = @AMTAR@ | |
21287 | ANTLR = @ANTLR@ | |
21288 | @@ -483,37 +481,6 @@ | |
21289 | ||
21290 | distclean-tags: | |
21291 | -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags | |
21292 | - | |
21293 | -distdir: $(DISTFILES) | |
21294 | - @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ | |
21295 | - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ | |
21296 | - list='$(DISTFILES)'; \ | |
21297 | - dist_files=`for file in $$list; do echo $$file; done | \ | |
21298 | - sed -e "s|^$$srcdirstrip/||;t" \ | |
21299 | - -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ | |
21300 | - case $$dist_files in \ | |
21301 | - */*) $(MKDIR_P) `echo "$$dist_files" | \ | |
21302 | - sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ | |
21303 | - sort -u` ;; \ | |
21304 | - esac; \ | |
21305 | - for file in $$dist_files; do \ | |
21306 | - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ | |
21307 | - if test -d $$d/$$file; then \ | |
21308 | - dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ | |
21309 | - if test -d "$(distdir)/$$file"; then \ | |
21310 | - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ | |
21311 | - fi; \ | |
21312 | - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ | |
21313 | - cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ | |
21314 | - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ | |
21315 | - fi; \ | |
21316 | - cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ | |
21317 | - else \ | |
21318 | - test -f "$(distdir)/$$file" \ | |
21319 | - || cp -p $$d/$$file "$(distdir)/$$file" \ | |
21320 | - || exit 1; \ | |
21321 | - fi; \ | |
21322 | - done | |
21323 | check-am: all-am | |
21324 | check: check-am | |
21325 | all-am: Makefile $(LTLIBRARIES) | |
21326 | @@ -622,8 +589,8 @@ | |
21327 | .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ | |
21328 | clean-libtool clean-nativeexeclibLTLIBRARIES ctags distclean \ | |
21329 | distclean-compile distclean-generic distclean-libtool \ | |
21330 | - distclean-tags distdir dvi dvi-am html html-am info info-am \ | |
21331 | - install install-am install-data install-data-am install-dvi \ | |
21332 | + distclean-tags dvi dvi-am html html-am info info-am install \ | |
21333 | + install-am install-data install-data-am install-dvi \ | |
21334 | install-dvi-am install-exec install-exec-am install-html \ | |
21335 | install-html-am install-info install-info-am install-man \ | |
21336 | install-nativeexeclibLTLIBRARIES install-pdf install-pdf-am \ | |
21337 | Index: libjava/classpath/native/jni/java-lang/Makefile.in | |
21338 | =================================================================== | |
9f95000d AM |
21339 | --- libjava/classpath/native/jni/java-lang/Makefile.in (.../tags/gcc_4_7_2_release) (wersja 192468) |
21340 | +++ libjava/classpath/native/jni/java-lang/Makefile.in (.../branches/gcc-4_7-branch) (wersja 192468) | |
5a87b929 AM |
21341 | @@ -36,7 +36,7 @@ |
21342 | host_triplet = @host@ | |
21343 | target_triplet = @target@ | |
21344 | subdir = native/jni/java-lang | |
21345 | -DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in | |
21346 | +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am | |
21347 | ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 | |
21348 | am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \ | |
21349 | $(top_srcdir)/../../config/lead-dot.m4 \ | |
21350 | @@ -123,12 +123,8 @@ | |
21351 | SOURCES = $(libjavalang_la_SOURCES) \ | |
21352 | $(libjavalangmanagement_la_SOURCES) \ | |
21353 | $(libjavalangreflect_la_SOURCES) | |
21354 | -DIST_SOURCES = $(libjavalang_la_SOURCES) \ | |
21355 | - $(libjavalangmanagement_la_SOURCES) \ | |
21356 | - $(libjavalangreflect_la_SOURCES) | |
21357 | ETAGS = etags | |
21358 | CTAGS = ctags | |
21359 | -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) | |
21360 | ACLOCAL = @ACLOCAL@ | |
21361 | AMTAR = @AMTAR@ | |
21362 | ANTLR = @ANTLR@ | |
21363 | @@ -521,37 +517,6 @@ | |
21364 | ||
21365 | distclean-tags: | |
21366 | -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags | |
21367 | - | |
21368 | -distdir: $(DISTFILES) | |
21369 | - @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ | |
21370 | - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ | |
21371 | - list='$(DISTFILES)'; \ | |
21372 | - dist_files=`for file in $$list; do echo $$file; done | \ | |
21373 | - sed -e "s|^$$srcdirstrip/||;t" \ | |
21374 | - -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ | |
21375 | - case $$dist_files in \ | |
21376 | - */*) $(MKDIR_P) `echo "$$dist_files" | \ | |
21377 | - sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ | |
21378 | - sort -u` ;; \ | |
21379 | - esac; \ | |
21380 | - for file in $$dist_files; do \ | |
21381 | - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ | |
21382 | - if test -d $$d/$$file; then \ | |
21383 | - dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ | |
21384 | - if test -d "$(distdir)/$$file"; then \ | |
21385 | - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ | |
21386 | - fi; \ | |
21387 | - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ | |
21388 | - cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ | |
21389 | - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ | |
21390 | - fi; \ | |
21391 | - cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ | |
21392 | - else \ | |
21393 | - test -f "$(distdir)/$$file" \ | |
21394 | - || cp -p $$d/$$file "$(distdir)/$$file" \ | |
21395 | - || exit 1; \ | |
21396 | - fi; \ | |
21397 | - done | |
21398 | check-am: all-am | |
21399 | check: check-am | |
21400 | all-am: Makefile $(LTLIBRARIES) | |
21401 | @@ -660,8 +625,8 @@ | |
21402 | .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ | |
21403 | clean-libtool clean-nativeexeclibLTLIBRARIES ctags distclean \ | |
21404 | distclean-compile distclean-generic distclean-libtool \ | |
21405 | - distclean-tags distdir dvi dvi-am html html-am info info-am \ | |
21406 | - install install-am install-data install-data-am install-dvi \ | |
21407 | + distclean-tags dvi dvi-am html html-am info info-am install \ | |
21408 | + install-am install-data install-data-am install-dvi \ | |
21409 | install-dvi-am install-exec install-exec-am install-html \ | |
21410 | install-html-am install-info install-info-am install-man \ | |
21411 | install-nativeexeclibLTLIBRARIES install-pdf install-pdf-am \ | |
21412 | Index: libjava/classpath/native/jni/midi-alsa/Makefile.in | |
21413 | =================================================================== | |
9f95000d AM |
21414 | --- libjava/classpath/native/jni/midi-alsa/Makefile.in (.../tags/gcc_4_7_2_release) (wersja 192468) |
21415 | +++ libjava/classpath/native/jni/midi-alsa/Makefile.in (.../branches/gcc-4_7-branch) (wersja 192468) | |
5a87b929 AM |
21416 | @@ -36,7 +36,7 @@ |
21417 | host_triplet = @host@ | |
21418 | target_triplet = @target@ | |
21419 | subdir = native/jni/midi-alsa | |
21420 | -DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in | |
21421 | +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am | |
21422 | ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 | |
21423 | am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \ | |
21424 | $(top_srcdir)/../../config/lead-dot.m4 \ | |
21425 | @@ -114,10 +114,8 @@ | |
21426 | --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ | |
21427 | $(LDFLAGS) -o $@ | |
21428 | SOURCES = $(libgjsmalsa_la_SOURCES) | |
21429 | -DIST_SOURCES = $(libgjsmalsa_la_SOURCES) | |
21430 | ETAGS = etags | |
21431 | CTAGS = ctags | |
21432 | -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) | |
21433 | ACLOCAL = @ACLOCAL@ | |
21434 | AMTAR = @AMTAR@ | |
21435 | ANTLR = @ANTLR@ | |
21436 | @@ -496,37 +494,6 @@ | |
21437 | ||
21438 | distclean-tags: | |
21439 | -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags | |
21440 | - | |
21441 | -distdir: $(DISTFILES) | |
21442 | - @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ | |
21443 | - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ | |
21444 | - list='$(DISTFILES)'; \ | |
21445 | - dist_files=`for file in $$list; do echo $$file; done | \ | |
21446 | - sed -e "s|^$$srcdirstrip/||;t" \ | |
21447 | - -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ | |
21448 | - case $$dist_files in \ | |
21449 | - */*) $(MKDIR_P) `echo "$$dist_files" | \ | |
21450 | - sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ | |
21451 | - sort -u` ;; \ | |
21452 | - esac; \ | |
21453 | - for file in $$dist_files; do \ | |
21454 | - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ | |
21455 | - if test -d $$d/$$file; then \ | |
21456 | - dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ | |
21457 | - if test -d "$(distdir)/$$file"; then \ | |
21458 | - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ | |
21459 | - fi; \ | |
21460 | - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ | |
21461 | - cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ | |
21462 | - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ | |
21463 | - fi; \ | |
21464 | - cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ | |
21465 | - else \ | |
21466 | - test -f "$(distdir)/$$file" \ | |
21467 | - || cp -p $$d/$$file "$(distdir)/$$file" \ | |
21468 | - || exit 1; \ | |
21469 | - fi; \ | |
21470 | - done | |
21471 | check-am: all-am | |
21472 | check: check-am | |
21473 | all-am: Makefile $(LTLIBRARIES) | |
21474 | @@ -635,8 +602,8 @@ | |
21475 | .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ | |
21476 | clean-libtool clean-nativeexeclibLTLIBRARIES ctags distclean \ | |
21477 | distclean-compile distclean-generic distclean-libtool \ | |
21478 | - distclean-tags distdir dvi dvi-am html html-am info info-am \ | |
21479 | - install install-am install-data install-data-am install-dvi \ | |
21480 | + distclean-tags dvi dvi-am html html-am info info-am install \ | |
21481 | + install-am install-data install-data-am install-dvi \ | |
21482 | install-dvi-am install-exec install-exec-am install-html \ | |
21483 | install-html-am install-info install-info-am install-man \ | |
21484 | install-nativeexeclibLTLIBRARIES install-pdf install-pdf-am \ | |
21485 | Index: libjava/classpath/native/jni/java-nio/Makefile.in | |
21486 | =================================================================== | |
9f95000d AM |
21487 | --- libjava/classpath/native/jni/java-nio/Makefile.in (.../tags/gcc_4_7_2_release) (wersja 192468) |
21488 | +++ libjava/classpath/native/jni/java-nio/Makefile.in (.../branches/gcc-4_7-branch) (wersja 192468) | |
5a87b929 AM |
21489 | @@ -36,7 +36,7 @@ |
21490 | host_triplet = @host@ | |
21491 | target_triplet = @target@ | |
21492 | subdir = native/jni/java-nio | |
21493 | -DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in | |
21494 | +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am | |
21495 | ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 | |
21496 | am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \ | |
21497 | $(top_srcdir)/../../config/lead-dot.m4 \ | |
21498 | @@ -119,10 +119,8 @@ | |
21499 | --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ | |
21500 | $(LDFLAGS) -o $@ | |
21501 | SOURCES = $(libjavanio_la_SOURCES) | |
21502 | -DIST_SOURCES = $(libjavanio_la_SOURCES) | |
21503 | ETAGS = etags | |
21504 | CTAGS = ctags | |
21505 | -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) | |
21506 | ACLOCAL = @ACLOCAL@ | |
21507 | AMTAR = @AMTAR@ | |
21508 | ANTLR = @ANTLR@ | |
21509 | @@ -519,37 +517,6 @@ | |
21510 | ||
21511 | distclean-tags: | |
21512 | -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags | |
21513 | - | |
21514 | -distdir: $(DISTFILES) | |
21515 | - @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ | |
21516 | - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ | |
21517 | - list='$(DISTFILES)'; \ | |
21518 | - dist_files=`for file in $$list; do echo $$file; done | \ | |
21519 | - sed -e "s|^$$srcdirstrip/||;t" \ | |
21520 | - -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ | |
21521 | - case $$dist_files in \ | |
21522 | - */*) $(MKDIR_P) `echo "$$dist_files" | \ | |
21523 | - sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ | |
21524 | - sort -u` ;; \ | |
21525 | - esac; \ | |
21526 | - for file in $$dist_files; do \ | |
21527 | - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ | |
21528 | - if test -d $$d/$$file; then \ | |
21529 | - dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ | |
21530 | - if test -d "$(distdir)/$$file"; then \ | |
21531 | - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ | |
21532 | - fi; \ | |
21533 | - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ | |
21534 | - cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ | |
21535 | - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ | |
21536 | - fi; \ | |
21537 | - cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ | |
21538 | - else \ | |
21539 | - test -f "$(distdir)/$$file" \ | |
21540 | - || cp -p $$d/$$file "$(distdir)/$$file" \ | |
21541 | - || exit 1; \ | |
21542 | - fi; \ | |
21543 | - done | |
21544 | check-am: all-am | |
21545 | check: check-am | |
21546 | all-am: Makefile $(LTLIBRARIES) | |
21547 | @@ -658,8 +625,8 @@ | |
21548 | .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ | |
21549 | clean-libtool clean-nativeexeclibLTLIBRARIES ctags distclean \ | |
21550 | distclean-compile distclean-generic distclean-libtool \ | |
21551 | - distclean-tags distdir dvi dvi-am html html-am info info-am \ | |
21552 | - install install-am install-data install-data-am install-dvi \ | |
21553 | + distclean-tags dvi dvi-am html html-am info info-am install \ | |
21554 | + install-am install-data install-data-am install-dvi \ | |
21555 | install-dvi-am install-exec install-exec-am install-html \ | |
21556 | install-html-am install-info install-info-am install-man \ | |
21557 | install-nativeexeclibLTLIBRARIES install-pdf install-pdf-am \ | |
21558 | Index: libjava/classpath/native/jni/java-net/Makefile.in | |
21559 | =================================================================== | |
9f95000d AM |
21560 | --- libjava/classpath/native/jni/java-net/Makefile.in (.../tags/gcc_4_7_2_release) (wersja 192468) |
21561 | +++ libjava/classpath/native/jni/java-net/Makefile.in (.../branches/gcc-4_7-branch) (wersja 192468) | |
5a87b929 AM |
21562 | @@ -36,7 +36,7 @@ |
21563 | host_triplet = @host@ | |
21564 | target_triplet = @target@ | |
21565 | subdir = native/jni/java-net | |
21566 | -DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in | |
21567 | +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am | |
21568 | ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 | |
21569 | am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \ | |
21570 | $(top_srcdir)/../../config/lead-dot.m4 \ | |
21571 | @@ -96,10 +96,6 @@ | |
21572 | $(top_builddir)/native/jni/classpath/jcl.lo \ | |
21573 | $(top_builddir)/native/jni/native-lib/libclasspathnative.la \ | |
21574 | $(am__DEPENDENCIES_1) | |
21575 | -am__libjavanet_la_SOURCES_DIST = javanet.c javanet.h \ | |
21576 | - java_net_VMInetAddress.c java_net_VMNetworkInterface.c \ | |
21577 | - java_net_VMURLConnection.c gnu_java_net_VMPlainSocketImpl.c \ | |
21578 | - gnu_java_net_local_LocalSocketImpl.c local.c local.h | |
21579 | @ENABLE_LOCAL_SOCKETS_FALSE@am__objects_1 = gnu_java_net_local_LocalSocketImpl.lo | |
21580 | @ENABLE_LOCAL_SOCKETS_TRUE@am__objects_1 = gnu_java_net_local_LocalSocketImpl.lo \ | |
21581 | @ENABLE_LOCAL_SOCKETS_TRUE@ local.lo | |
21582 | @@ -121,10 +117,8 @@ | |
21583 | --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ | |
21584 | $(LDFLAGS) -o $@ | |
21585 | SOURCES = $(libjavanet_la_SOURCES) | |
21586 | -DIST_SOURCES = $(am__libjavanet_la_SOURCES_DIST) | |
21587 | ETAGS = etags | |
21588 | CTAGS = ctags | |
21589 | -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) | |
21590 | ACLOCAL = @ACLOCAL@ | |
21591 | AMTAR = @AMTAR@ | |
21592 | ANTLR = @ANTLR@ | |
21593 | @@ -518,37 +512,6 @@ | |
21594 | ||
21595 | distclean-tags: | |
21596 | -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags | |
21597 | - | |
21598 | -distdir: $(DISTFILES) | |
21599 | - @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ | |
21600 | - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ | |
21601 | - list='$(DISTFILES)'; \ | |
21602 | - dist_files=`for file in $$list; do echo $$file; done | \ | |
21603 | - sed -e "s|^$$srcdirstrip/||;t" \ | |
21604 | - -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ | |
21605 | - case $$dist_files in \ | |
21606 | - */*) $(MKDIR_P) `echo "$$dist_files" | \ | |
21607 | - sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ | |
21608 | - sort -u` ;; \ | |
21609 | - esac; \ | |
21610 | - for file in $$dist_files; do \ | |
21611 | - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ | |
21612 | - if test -d $$d/$$file; then \ | |
21613 | - dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ | |
21614 | - if test -d "$(distdir)/$$file"; then \ | |
21615 | - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ | |
21616 | - fi; \ | |
21617 | - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ | |
21618 | - cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ | |
21619 | - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ | |
21620 | - fi; \ | |
21621 | - cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ | |
21622 | - else \ | |
21623 | - test -f "$(distdir)/$$file" \ | |
21624 | - || cp -p $$d/$$file "$(distdir)/$$file" \ | |
21625 | - || exit 1; \ | |
21626 | - fi; \ | |
21627 | - done | |
21628 | check-am: all-am | |
21629 | check: check-am | |
21630 | all-am: Makefile $(LTLIBRARIES) | |
21631 | @@ -657,8 +620,8 @@ | |
21632 | .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ | |
21633 | clean-libtool clean-nativeexeclibLTLIBRARIES ctags distclean \ | |
21634 | distclean-compile distclean-generic distclean-libtool \ | |
21635 | - distclean-tags distdir dvi dvi-am html html-am info info-am \ | |
21636 | - install install-am install-data install-data-am install-dvi \ | |
21637 | + distclean-tags dvi dvi-am html html-am info info-am install \ | |
21638 | + install-am install-data install-data-am install-dvi \ | |
21639 | install-dvi-am install-exec install-exec-am install-html \ | |
21640 | install-html-am install-info install-info-am install-man \ | |
21641 | install-nativeexeclibLTLIBRARIES install-pdf install-pdf-am \ | |
21642 | Index: libjava/classpath/native/jni/java-math/Makefile.in | |
21643 | =================================================================== | |
9f95000d AM |
21644 | --- libjava/classpath/native/jni/java-math/Makefile.in (.../tags/gcc_4_7_2_release) (wersja 192468) |
21645 | +++ libjava/classpath/native/jni/java-math/Makefile.in (.../branches/gcc-4_7-branch) (wersja 192468) | |
5a87b929 AM |
21646 | @@ -36,7 +36,7 @@ |
21647 | host_triplet = @host@ | |
21648 | target_triplet = @target@ | |
21649 | subdir = native/jni/java-math | |
21650 | -DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in | |
21651 | +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am | |
21652 | ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 | |
21653 | am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \ | |
21654 | $(top_srcdir)/../../config/lead-dot.m4 \ | |
21655 | @@ -112,10 +112,8 @@ | |
21656 | --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ | |
21657 | $(LDFLAGS) -o $@ | |
21658 | SOURCES = $(libjavamath_la_SOURCES) | |
21659 | -DIST_SOURCES = $(libjavamath_la_SOURCES) | |
21660 | ETAGS = etags | |
21661 | CTAGS = ctags | |
21662 | -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) | |
21663 | ACLOCAL = @ACLOCAL@ | |
21664 | AMTAR = @AMTAR@ | |
21665 | ANTLR = @ANTLR@ | |
21666 | @@ -487,37 +485,6 @@ | |
21667 | ||
21668 | distclean-tags: | |
21669 | -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags | |
21670 | - | |
21671 | -distdir: $(DISTFILES) | |
21672 | - @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ | |
21673 | - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ | |
21674 | - list='$(DISTFILES)'; \ | |
21675 | - dist_files=`for file in $$list; do echo $$file; done | \ | |
21676 | - sed -e "s|^$$srcdirstrip/||;t" \ | |
21677 | - -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ | |
21678 | - case $$dist_files in \ | |
21679 | - */*) $(MKDIR_P) `echo "$$dist_files" | \ | |
21680 | - sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ | |
21681 | - sort -u` ;; \ | |
21682 | - esac; \ | |
21683 | - for file in $$dist_files; do \ | |
21684 | - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ | |
21685 | - if test -d $$d/$$file; then \ | |
21686 | - dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ | |
21687 | - if test -d "$(distdir)/$$file"; then \ | |
21688 | - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ | |
21689 | - fi; \ | |
21690 | - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ | |
21691 | - cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ | |
21692 | - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ | |
21693 | - fi; \ | |
21694 | - cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ | |
21695 | - else \ | |
21696 | - test -f "$(distdir)/$$file" \ | |
21697 | - || cp -p $$d/$$file "$(distdir)/$$file" \ | |
21698 | - || exit 1; \ | |
21699 | - fi; \ | |
21700 | - done | |
21701 | check-am: all-am | |
21702 | check: check-am | |
21703 | all-am: Makefile $(LTLIBRARIES) | |
21704 | @@ -626,8 +593,8 @@ | |
21705 | .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ | |
21706 | clean-libtool clean-nativeexeclibLTLIBRARIES ctags distclean \ | |
21707 | distclean-compile distclean-generic distclean-libtool \ | |
21708 | - distclean-tags distdir dvi dvi-am html html-am info info-am \ | |
21709 | - install install-am install-data install-data-am install-dvi \ | |
21710 | + distclean-tags dvi dvi-am html html-am info info-am install \ | |
21711 | + install-am install-data install-data-am install-dvi \ | |
21712 | install-dvi-am install-exec install-exec-am install-html \ | |
21713 | install-html-am install-info install-info-am install-man \ | |
21714 | install-nativeexeclibLTLIBRARIES install-pdf install-pdf-am \ | |
21715 | Index: libjava/classpath/native/jni/xmlj/Makefile.in | |
21716 | =================================================================== | |
9f95000d AM |
21717 | --- libjava/classpath/native/jni/xmlj/Makefile.in (.../tags/gcc_4_7_2_release) (wersja 192468) |
21718 | +++ libjava/classpath/native/jni/xmlj/Makefile.in (.../branches/gcc-4_7-branch) (wersja 192468) | |
5a87b929 AM |
21719 | @@ -36,7 +36,7 @@ |
21720 | host_triplet = @host@ | |
21721 | target_triplet = @target@ | |
21722 | subdir = native/jni/xmlj | |
21723 | -DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in | |
21724 | +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am | |
21725 | ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 | |
21726 | am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \ | |
21727 | $(top_srcdir)/../../config/lead-dot.m4 \ | |
21728 | @@ -110,10 +110,8 @@ | |
21729 | --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ | |
21730 | $(LDFLAGS) -o $@ | |
21731 | SOURCES = $(libxmlj_la_SOURCES) | |
21732 | -DIST_SOURCES = $(libxmlj_la_SOURCES) | |
21733 | ETAGS = etags | |
21734 | CTAGS = ctags | |
21735 | -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) | |
21736 | ACLOCAL = @ACLOCAL@ | |
21737 | AMTAR = @AMTAR@ | |
21738 | ANTLR = @ANTLR@ | |
21739 | @@ -511,37 +509,6 @@ | |
21740 | ||
21741 | distclean-tags: | |
21742 | -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags | |
21743 | - | |
21744 | -distdir: $(DISTFILES) | |
21745 | - @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ | |
21746 | - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ | |
21747 | - list='$(DISTFILES)'; \ | |
21748 | - dist_files=`for file in $$list; do echo $$file; done | \ | |
21749 | - sed -e "s|^$$srcdirstrip/||;t" \ | |
21750 | - -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ | |
21751 | - case $$dist_files in \ | |
21752 | - */*) $(MKDIR_P) `echo "$$dist_files" | \ | |
21753 | - sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ | |
21754 | - sort -u` ;; \ | |
21755 | - esac; \ | |
21756 | - for file in $$dist_files; do \ | |
21757 | - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ | |
21758 | - if test -d $$d/$$file; then \ | |
21759 | - dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ | |
21760 | - if test -d "$(distdir)/$$file"; then \ | |
21761 | - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ | |
21762 | - fi; \ | |
21763 | - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ | |
21764 | - cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ | |
21765 | - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ | |
21766 | - fi; \ | |
21767 | - cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ | |
21768 | - else \ | |
21769 | - test -f "$(distdir)/$$file" \ | |
21770 | - || cp -p $$d/$$file "$(distdir)/$$file" \ | |
21771 | - || exit 1; \ | |
21772 | - fi; \ | |
21773 | - done | |
21774 | check-am: all-am | |
21775 | check: check-am | |
21776 | all-am: Makefile $(LTLIBRARIES) | |
21777 | @@ -650,8 +617,8 @@ | |
21778 | .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ | |
21779 | clean-libtool clean-nativeexeclibLTLIBRARIES ctags distclean \ | |
21780 | distclean-compile distclean-generic distclean-libtool \ | |
21781 | - distclean-tags distdir dvi dvi-am html html-am info info-am \ | |
21782 | - install install-am install-data install-data-am install-dvi \ | |
21783 | + distclean-tags dvi dvi-am html html-am info info-am install \ | |
21784 | + install-am install-data install-data-am install-dvi \ | |
21785 | install-dvi-am install-exec install-exec-am install-html \ | |
21786 | install-html-am install-info install-info-am install-man \ | |
21787 | install-nativeexeclibLTLIBRARIES install-pdf install-pdf-am \ | |
21788 | Index: libjava/classpath/native/jni/qt-peer/Makefile.in | |
21789 | =================================================================== | |
9f95000d AM |
21790 | --- libjava/classpath/native/jni/qt-peer/Makefile.in (.../tags/gcc_4_7_2_release) (wersja 192468) |
21791 | +++ libjava/classpath/native/jni/qt-peer/Makefile.in (.../branches/gcc-4_7-branch) (wersja 192468) | |
5a87b929 AM |
21792 | @@ -39,7 +39,7 @@ |
21793 | host_triplet = @host@ | |
21794 | target_triplet = @target@ | |
21795 | subdir = native/jni/qt-peer | |
21796 | -DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in | |
21797 | +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am | |
21798 | ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 | |
21799 | am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \ | |
21800 | $(top_srcdir)/../../config/lead-dot.m4 \ | |
21801 | @@ -116,10 +116,8 @@ | |
21802 | --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ | |
21803 | $(LDFLAGS) -o $@ | |
21804 | SOURCES = $(libqtpeer_la_SOURCES) $(nodist_libqtpeer_la_SOURCES) | |
21805 | -DIST_SOURCES = $(libqtpeer_la_SOURCES) | |
21806 | ETAGS = etags | |
21807 | CTAGS = ctags | |
21808 | -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) | |
21809 | ACLOCAL = @ACLOCAL@ | |
21810 | AMTAR = @AMTAR@ | |
21811 | ANTLR = @ANTLR@ | |
21812 | @@ -577,37 +575,6 @@ | |
21813 | ||
21814 | distclean-tags: | |
21815 | -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags | |
21816 | - | |
21817 | -distdir: $(DISTFILES) | |
21818 | - @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ | |
21819 | - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ | |
21820 | - list='$(DISTFILES)'; \ | |
21821 | - dist_files=`for file in $$list; do echo $$file; done | \ | |
21822 | - sed -e "s|^$$srcdirstrip/||;t" \ | |
21823 | - -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ | |
21824 | - case $$dist_files in \ | |
21825 | - */*) $(MKDIR_P) `echo "$$dist_files" | \ | |
21826 | - sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ | |
21827 | - sort -u` ;; \ | |
21828 | - esac; \ | |
21829 | - for file in $$dist_files; do \ | |
21830 | - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ | |
21831 | - if test -d $$d/$$file; then \ | |
21832 | - dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ | |
21833 | - if test -d "$(distdir)/$$file"; then \ | |
21834 | - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ | |
21835 | - fi; \ | |
21836 | - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ | |
21837 | - cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ | |
21838 | - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ | |
21839 | - fi; \ | |
21840 | - cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ | |
21841 | - else \ | |
21842 | - test -f "$(distdir)/$$file" \ | |
21843 | - || cp -p $$d/$$file "$(distdir)/$$file" \ | |
21844 | - || exit 1; \ | |
21845 | - fi; \ | |
21846 | - done | |
21847 | check-am: all-am | |
21848 | check: $(BUILT_SOURCES) | |
21849 | $(MAKE) $(AM_MAKEFLAGS) check-am | |
21850 | @@ -717,8 +684,8 @@ | |
21851 | .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ | |
21852 | clean-libtool clean-noinstLTLIBRARIES ctags distclean \ | |
21853 | distclean-compile distclean-generic distclean-libtool \ | |
21854 | - distclean-tags distdir dvi dvi-am html html-am info info-am \ | |
21855 | - install install-am install-data install-data-am install-dvi \ | |
21856 | + distclean-tags dvi dvi-am html html-am info info-am install \ | |
21857 | + install-am install-data install-data-am install-dvi \ | |
21858 | install-dvi-am install-exec install-exec-am install-html \ | |
21859 | install-html-am install-info install-info-am install-man \ | |
21860 | install-pdf install-pdf-am install-ps install-ps-am \ | |
21861 | Index: libjava/classpath/native/jni/gtk-peer/Makefile.in | |
21862 | =================================================================== | |
9f95000d AM |
21863 | --- libjava/classpath/native/jni/gtk-peer/Makefile.in (.../tags/gcc_4_7_2_release) (wersja 192468) |
21864 | +++ libjava/classpath/native/jni/gtk-peer/Makefile.in (.../branches/gcc-4_7-branch) (wersja 192468) | |
5a87b929 AM |
21865 | @@ -36,7 +36,7 @@ |
21866 | host_triplet = @host@ | |
21867 | target_triplet = @target@ | |
21868 | subdir = native/jni/gtk-peer | |
21869 | -DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in | |
21870 | +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am | |
21871 | ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 | |
21872 | am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \ | |
21873 | $(top_srcdir)/../../config/lead-dot.m4 \ | |
21874 | @@ -150,10 +150,8 @@ | |
21875 | --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ | |
21876 | $(LDFLAGS) -o $@ | |
21877 | SOURCES = $(libgtkpeer_la_SOURCES) | |
21878 | -DIST_SOURCES = $(libgtkpeer_la_SOURCES) | |
21879 | ETAGS = etags | |
21880 | CTAGS = ctags | |
21881 | -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) | |
21882 | ACLOCAL = @ACLOCAL@ | |
21883 | AMTAR = @AMTAR@ | |
21884 | ANTLR = @ANTLR@ | |
21885 | @@ -620,37 +618,6 @@ | |
21886 | ||
21887 | distclean-tags: | |
21888 | -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags | |
21889 | - | |
21890 | -distdir: $(DISTFILES) | |
21891 | - @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ | |
21892 | - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ | |
21893 | - list='$(DISTFILES)'; \ | |
21894 | - dist_files=`for file in $$list; do echo $$file; done | \ | |
21895 | - sed -e "s|^$$srcdirstrip/||;t" \ | |
21896 | - -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ | |
21897 | - case $$dist_files in \ | |
21898 | - */*) $(MKDIR_P) `echo "$$dist_files" | \ | |
21899 | - sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ | |
21900 | - sort -u` ;; \ | |
21901 | - esac; \ | |
21902 | - for file in $$dist_files; do \ | |
21903 | - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ | |
21904 | - if test -d $$d/$$file; then \ | |
21905 | - dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ | |
21906 | - if test -d "$(distdir)/$$file"; then \ | |
21907 | - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ | |
21908 | - fi; \ | |
21909 | - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ | |
21910 | - cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ | |
21911 | - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ | |
21912 | - fi; \ | |
21913 | - cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ | |
21914 | - else \ | |
21915 | - test -f "$(distdir)/$$file" \ | |
21916 | - || cp -p $$d/$$file "$(distdir)/$$file" \ | |
21917 | - || exit 1; \ | |
21918 | - fi; \ | |
21919 | - done | |
21920 | check-am: all-am | |
21921 | check: check-am | |
21922 | all-am: Makefile $(LTLIBRARIES) | |
21923 | @@ -759,8 +726,8 @@ | |
21924 | .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ | |
21925 | clean-libtool clean-nativeexeclibLTLIBRARIES ctags distclean \ | |
21926 | distclean-compile distclean-generic distclean-libtool \ | |
21927 | - distclean-tags distdir dvi dvi-am html html-am info info-am \ | |
21928 | - install install-am install-data install-data-am install-dvi \ | |
21929 | + distclean-tags dvi dvi-am html html-am info info-am install \ | |
21930 | + install-am install-data install-data-am install-dvi \ | |
21931 | install-dvi-am install-exec install-exec-am install-html \ | |
21932 | install-html-am install-info install-info-am install-man \ | |
21933 | install-nativeexeclibLTLIBRARIES install-pdf install-pdf-am \ | |
21934 | Index: libjava/classpath/native/Makefile.in | |
21935 | =================================================================== | |
9f95000d AM |
21936 | --- libjava/classpath/native/Makefile.in (.../tags/gcc_4_7_2_release) (wersja 192468) |
21937 | +++ libjava/classpath/native/Makefile.in (.../branches/gcc-4_7-branch) (wersja 192468) | |
5a87b929 AM |
21938 | @@ -35,7 +35,7 @@ |
21939 | host_triplet = @host@ | |
21940 | target_triplet = @target@ | |
21941 | subdir = native | |
21942 | -DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in | |
21943 | +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am | |
21944 | ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 | |
21945 | am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \ | |
21946 | $(top_srcdir)/../../config/lead-dot.m4 \ | |
21947 | @@ -68,7 +68,6 @@ | |
21948 | CONFIG_CLEAN_FILES = | |
21949 | CONFIG_CLEAN_VPATH_FILES = | |
21950 | SOURCES = | |
21951 | -DIST_SOURCES = | |
21952 | RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ | |
21953 | html-recursive info-recursive install-data-recursive \ | |
21954 | install-dvi-recursive install-exec-recursive \ | |
21955 | @@ -79,36 +78,9 @@ | |
21956 | RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ | |
21957 | distclean-recursive maintainer-clean-recursive | |
21958 | AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ | |
21959 | - $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ | |
21960 | - distdir | |
21961 | + $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS | |
21962 | ETAGS = etags | |
21963 | CTAGS = ctags | |
21964 | -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) | |
21965 | -am__relativize = \ | |
21966 | - dir0=`pwd`; \ | |
21967 | - sed_first='s,^\([^/]*\)/.*$$,\1,'; \ | |
21968 | - sed_rest='s,^[^/]*/*,,'; \ | |
21969 | - sed_last='s,^.*/\([^/]*\)$$,\1,'; \ | |
21970 | - sed_butlast='s,/*[^/]*$$,,'; \ | |
21971 | - while test -n "$$dir1"; do \ | |
21972 | - first=`echo "$$dir1" | sed -e "$$sed_first"`; \ | |
21973 | - if test "$$first" != "."; then \ | |
21974 | - if test "$$first" = ".."; then \ | |
21975 | - dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ | |
21976 | - dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ | |
21977 | - else \ | |
21978 | - first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ | |
21979 | - if test "$$first2" = "$$first"; then \ | |
21980 | - dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ | |
21981 | - else \ | |
21982 | - dir2="../$$dir2"; \ | |
21983 | - fi; \ | |
21984 | - dir0="$$dir0"/"$$first"; \ | |
21985 | - fi; \ | |
21986 | - fi; \ | |
21987 | - dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ | |
21988 | - done; \ | |
21989 | - reldir="$$dir2" | |
21990 | ACLOCAL = @ACLOCAL@ | |
21991 | AMTAR = @AMTAR@ | |
21992 | ANTLR = @ANTLR@ | |
21993 | @@ -498,65 +470,6 @@ | |
21994 | ||
21995 | distclean-tags: | |
21996 | -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags | |
21997 | - | |
21998 | -distdir: $(DISTFILES) | |
21999 | - @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ | |
22000 | - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ | |
22001 | - list='$(DISTFILES)'; \ | |
22002 | - dist_files=`for file in $$list; do echo $$file; done | \ | |
22003 | - sed -e "s|^$$srcdirstrip/||;t" \ | |
22004 | - -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ | |
22005 | - case $$dist_files in \ | |
22006 | - */*) $(MKDIR_P) `echo "$$dist_files" | \ | |
22007 | - sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ | |
22008 | - sort -u` ;; \ | |
22009 | - esac; \ | |
22010 | - for file in $$dist_files; do \ | |
22011 | - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ | |
22012 | - if test -d $$d/$$file; then \ | |
22013 | - dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ | |
22014 | - if test -d "$(distdir)/$$file"; then \ | |
22015 | - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ | |
22016 | - fi; \ | |
22017 | - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ | |
22018 | - cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ | |
22019 | - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ | |
22020 | - fi; \ | |
22021 | - cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ | |
22022 | - else \ | |
22023 | - test -f "$(distdir)/$$file" \ | |
22024 | - || cp -p $$d/$$file "$(distdir)/$$file" \ | |
22025 | - || exit 1; \ | |
22026 | - fi; \ | |
22027 | - done | |
22028 | - @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ | |
22029 | - if test "$$subdir" = .; then :; else \ | |
22030 | - test -d "$(distdir)/$$subdir" \ | |
22031 | - || $(MKDIR_P) "$(distdir)/$$subdir" \ | |
22032 | - || exit 1; \ | |
22033 | - fi; \ | |
22034 | - done | |
22035 | - @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ | |
22036 | - if test "$$subdir" = .; then :; else \ | |
22037 | - dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ | |
22038 | - $(am__relativize); \ | |
22039 | - new_distdir=$$reldir; \ | |
22040 | - dir1=$$subdir; dir2="$(top_distdir)"; \ | |
22041 | - $(am__relativize); \ | |
22042 | - new_top_distdir=$$reldir; \ | |
22043 | - echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ | |
22044 | - echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ | |
22045 | - ($(am__cd) $$subdir && \ | |
22046 | - $(MAKE) $(AM_MAKEFLAGS) \ | |
22047 | - top_distdir="$$new_top_distdir" \ | |
22048 | - distdir="$$new_distdir" \ | |
22049 | - am__remove_distdir=: \ | |
22050 | - am__skip_length_check=: \ | |
22051 | - am__skip_mode_fix=: \ | |
22052 | - distdir) \ | |
22053 | - || exit 1; \ | |
22054 | - fi; \ | |
22055 | - done | |
22056 | check-am: all-am | |
22057 | check: check-recursive | |
22058 | all-am: Makefile | |
22059 | @@ -659,13 +572,13 @@ | |
22060 | .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ | |
22061 | all all-am check check-am clean clean-generic clean-libtool \ | |
22062 | ctags ctags-recursive distclean distclean-generic \ | |
22063 | - distclean-libtool distclean-tags distdir dvi dvi-am html \ | |
22064 | - html-am info info-am install install-am install-data \ | |
22065 | - install-data-am install-dvi install-dvi-am install-exec \ | |
22066 | - install-exec-am install-html install-html-am install-info \ | |
22067 | - install-info-am install-man install-pdf install-pdf-am \ | |
22068 | - install-ps install-ps-am install-strip installcheck \ | |
22069 | - installcheck-am installdirs installdirs-am maintainer-clean \ | |
22070 | + distclean-libtool distclean-tags dvi dvi-am html html-am info \ | |
22071 | + info-am install install-am install-data install-data-am \ | |
22072 | + install-dvi install-dvi-am install-exec install-exec-am \ | |
22073 | + install-html install-html-am install-info install-info-am \ | |
22074 | + install-man install-pdf install-pdf-am install-ps \ | |
22075 | + install-ps-am install-strip installcheck installcheck-am \ | |
22076 | + installdirs installdirs-am maintainer-clean \ | |
22077 | maintainer-clean-generic mostlyclean mostlyclean-generic \ | |
22078 | mostlyclean-libtool pdf pdf-am ps ps-am tags tags-recursive \ | |
22079 | uninstall uninstall-am | |
22080 | Index: libjava/classpath/native/jawt/Makefile.in | |
22081 | =================================================================== | |
9f95000d AM |
22082 | --- libjava/classpath/native/jawt/Makefile.in (.../tags/gcc_4_7_2_release) (wersja 192468) |
22083 | +++ libjava/classpath/native/jawt/Makefile.in (.../branches/gcc-4_7-branch) (wersja 192468) | |
5a87b929 AM |
22084 | @@ -36,7 +36,7 @@ |
22085 | host_triplet = @host@ | |
22086 | target_triplet = @target@ | |
22087 | subdir = native/jawt | |
22088 | -DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in | |
22089 | +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am | |
22090 | ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 | |
22091 | am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \ | |
22092 | $(top_srcdir)/../../config/lead-dot.m4 \ | |
22093 | @@ -112,10 +112,8 @@ | |
22094 | --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ | |
22095 | $(LDFLAGS) -o $@ | |
22096 | SOURCES = $(libjawt_la_SOURCES) | |
22097 | -DIST_SOURCES = $(libjawt_la_SOURCES) | |
22098 | ETAGS = etags | |
22099 | CTAGS = ctags | |
22100 | -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) | |
22101 | ACLOCAL = @ACLOCAL@ | |
22102 | AMTAR = @AMTAR@ | |
22103 | ANTLR = @ANTLR@ | |
22104 | @@ -492,37 +490,6 @@ | |
22105 | ||
22106 | distclean-tags: | |
22107 | -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags | |
22108 | - | |
22109 | -distdir: $(DISTFILES) | |
22110 | - @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ | |
22111 | - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ | |
22112 | - list='$(DISTFILES)'; \ | |
22113 | - dist_files=`for file in $$list; do echo $$file; done | \ | |
22114 | - sed -e "s|^$$srcdirstrip/||;t" \ | |
22115 | - -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ | |
22116 | - case $$dist_files in \ | |
22117 | - */*) $(MKDIR_P) `echo "$$dist_files" | \ | |
22118 | - sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ | |
22119 | - sort -u` ;; \ | |
22120 | - esac; \ | |
22121 | - for file in $$dist_files; do \ | |
22122 | - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ | |
22123 | - if test -d $$d/$$file; then \ | |
22124 | - dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ | |
22125 | - if test -d "$(distdir)/$$file"; then \ | |
22126 | - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ | |
22127 | - fi; \ | |
22128 | - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ | |
22129 | - cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ | |
22130 | - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ | |
22131 | - fi; \ | |
22132 | - cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ | |
22133 | - else \ | |
22134 | - test -f "$(distdir)/$$file" \ | |
22135 | - || cp -p $$d/$$file "$(distdir)/$$file" \ | |
22136 | - || exit 1; \ | |
22137 | - fi; \ | |
22138 | - done | |
22139 | check-am: all-am | |
22140 | check: check-am | |
22141 | all-am: Makefile $(LTLIBRARIES) | |
22142 | @@ -631,8 +598,8 @@ | |
22143 | .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ | |
22144 | clean-libtool clean-nativeexeclibLTLIBRARIES ctags distclean \ | |
22145 | distclean-compile distclean-generic distclean-libtool \ | |
22146 | - distclean-tags distdir dvi dvi-am html html-am info info-am \ | |
22147 | - install install-am install-data install-data-am install-dvi \ | |
22148 | + distclean-tags dvi dvi-am html html-am info info-am install \ | |
22149 | + install-am install-data install-data-am install-dvi \ | |
22150 | install-dvi-am install-exec install-exec-am install-html \ | |
22151 | install-html-am install-info install-info-am install-man \ | |
22152 | install-nativeexeclibLTLIBRARIES install-pdf install-pdf-am \ | |
22153 | Index: libjava/classpath/native/fdlibm/Makefile.in | |
22154 | =================================================================== | |
9f95000d AM |
22155 | --- libjava/classpath/native/fdlibm/Makefile.in (.../tags/gcc_4_7_2_release) (wersja 192468) |
22156 | +++ libjava/classpath/native/fdlibm/Makefile.in (.../branches/gcc-4_7-branch) (wersja 192468) | |
5a87b929 AM |
22157 | @@ -36,7 +36,7 @@ |
22158 | host_triplet = @host@ | |
22159 | target_triplet = @target@ | |
22160 | subdir = native/fdlibm | |
22161 | -DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in | |
22162 | +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am | |
22163 | ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 | |
22164 | am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \ | |
22165 | $(top_srcdir)/../../config/lead-dot.m4 \ | |
22166 | @@ -95,10 +95,8 @@ | |
22167 | --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ | |
22168 | $(LDFLAGS) -o $@ | |
22169 | SOURCES = $(libfdlibm_la_SOURCES) | |
22170 | -DIST_SOURCES = $(libfdlibm_la_SOURCES) | |
22171 | ETAGS = etags | |
22172 | CTAGS = ctags | |
22173 | -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) | |
22174 | ACLOCAL = @ACLOCAL@ | |
22175 | AMTAR = @AMTAR@ | |
22176 | ANTLR = @ANTLR@ | |
22177 | @@ -553,37 +551,6 @@ | |
22178 | ||
22179 | distclean-tags: | |
22180 | -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags | |
22181 | - | |
22182 | -distdir: $(DISTFILES) | |
22183 | - @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ | |
22184 | - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ | |
22185 | - list='$(DISTFILES)'; \ | |
22186 | - dist_files=`for file in $$list; do echo $$file; done | \ | |
22187 | - sed -e "s|^$$srcdirstrip/||;t" \ | |
22188 | - -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ | |
22189 | - case $$dist_files in \ | |
22190 | - */*) $(MKDIR_P) `echo "$$dist_files" | \ | |
22191 | - sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ | |
22192 | - sort -u` ;; \ | |
22193 | - esac; \ | |
22194 | - for file in $$dist_files; do \ | |
22195 | - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ | |
22196 | - if test -d $$d/$$file; then \ | |
22197 | - dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ | |
22198 | - if test -d "$(distdir)/$$file"; then \ | |
22199 | - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ | |
22200 | - fi; \ | |
22201 | - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ | |
22202 | - cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ | |
22203 | - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ | |
22204 | - fi; \ | |
22205 | - cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ | |
22206 | - else \ | |
22207 | - test -f "$(distdir)/$$file" \ | |
22208 | - || cp -p $$d/$$file "$(distdir)/$$file" \ | |
22209 | - || exit 1; \ | |
22210 | - fi; \ | |
22211 | - done | |
22212 | check-am: all-am | |
22213 | check: check-am | |
22214 | all-am: Makefile $(LTLIBRARIES) | |
22215 | @@ -689,8 +656,8 @@ | |
22216 | .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ | |
22217 | clean-libtool clean-noinstLTLIBRARIES ctags distclean \ | |
22218 | distclean-compile distclean-generic distclean-libtool \ | |
22219 | - distclean-tags distdir dvi dvi-am html html-am info info-am \ | |
22220 | - install install-am install-data install-data-am install-dvi \ | |
22221 | + distclean-tags dvi dvi-am html html-am info info-am install \ | |
22222 | + install-am install-data install-data-am install-dvi \ | |
22223 | install-dvi-am install-exec install-exec-am install-html \ | |
22224 | install-html-am install-info install-info-am install-man \ | |
22225 | install-pdf install-pdf-am install-ps install-ps-am \ | |
22226 | Index: libjava/classpath/native/plugin/Makefile.in | |
22227 | =================================================================== | |
9f95000d AM |
22228 | --- libjava/classpath/native/plugin/Makefile.in (.../tags/gcc_4_7_2_release) (wersja 192468) |
22229 | +++ libjava/classpath/native/plugin/Makefile.in (.../branches/gcc-4_7-branch) (wersja 192468) | |
5a87b929 AM |
22230 | @@ -36,7 +36,7 @@ |
22231 | host_triplet = @host@ | |
22232 | target_triplet = @target@ | |
22233 | subdir = native/plugin | |
22234 | -DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in | |
22235 | +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am | |
22236 | ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 | |
22237 | am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \ | |
22238 | $(top_srcdir)/../../config/lead-dot.m4 \ | |
22239 | @@ -112,10 +112,8 @@ | |
22240 | --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \ | |
22241 | $(LDFLAGS) -o $@ | |
22242 | SOURCES = $(libgcjwebplugin_la_SOURCES) | |
22243 | -DIST_SOURCES = $(libgcjwebplugin_la_SOURCES) | |
22244 | ETAGS = etags | |
22245 | CTAGS = ctags | |
22246 | -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) | |
22247 | ACLOCAL = @ACLOCAL@ | |
22248 | AMTAR = @AMTAR@ | |
22249 | ANTLR = @ANTLR@ | |
22250 | @@ -497,37 +495,6 @@ | |
22251 | ||
22252 | distclean-tags: | |
22253 | -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags | |
22254 | - | |
22255 | -distdir: $(DISTFILES) | |
22256 | - @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ | |
22257 | - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ | |
22258 | - list='$(DISTFILES)'; \ | |
22259 | - dist_files=`for file in $$list; do echo $$file; done | \ | |
22260 | - sed -e "s|^$$srcdirstrip/||;t" \ | |
22261 | - -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ | |
22262 | - case $$dist_files in \ | |
22263 | - */*) $(MKDIR_P) `echo "$$dist_files" | \ | |
22264 | - sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ | |
22265 | - sort -u` ;; \ | |
22266 | - esac; \ | |
22267 | - for file in $$dist_files; do \ | |
22268 | - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ | |
22269 | - if test -d $$d/$$file; then \ | |
22270 | - dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ | |
22271 | - if test -d "$(distdir)/$$file"; then \ | |
22272 | - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ | |
22273 | - fi; \ | |
22274 | - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ | |
22275 | - cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ | |
22276 | - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ | |
22277 | - fi; \ | |
22278 | - cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ | |
22279 | - else \ | |
22280 | - test -f "$(distdir)/$$file" \ | |
22281 | - || cp -p $$d/$$file "$(distdir)/$$file" \ | |
22282 | - || exit 1; \ | |
22283 | - fi; \ | |
22284 | - done | |
22285 | check-am: all-am | |
22286 | check: check-am | |
22287 | all-am: Makefile $(LTLIBRARIES) | |
22288 | @@ -636,8 +603,8 @@ | |
22289 | .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ | |
22290 | clean-libtool clean-nativeexeclibLTLIBRARIES ctags distclean \ | |
22291 | distclean-compile distclean-generic distclean-libtool \ | |
22292 | - distclean-tags distdir dvi dvi-am html html-am info info-am \ | |
22293 | - install install-am install-data install-data-am install-dvi \ | |
22294 | + distclean-tags dvi dvi-am html html-am info info-am install \ | |
22295 | + install-am install-data install-data-am install-dvi \ | |
22296 | install-dvi-am install-exec install-exec-am install-html \ | |
22297 | install-html-am install-info install-info-am install-man \ | |
22298 | install-nativeexeclibLTLIBRARIES install-pdf install-pdf-am \ | |
22299 | Index: libjava/classpath/lib/Makefile.in | |
22300 | =================================================================== | |
9f95000d AM |
22301 | --- libjava/classpath/lib/Makefile.in (.../tags/gcc_4_7_2_release) (wersja 192468) |
22302 | +++ libjava/classpath/lib/Makefile.in (.../branches/gcc-4_7-branch) (wersja 192468) | |
5a87b929 AM |
22303 | @@ -36,9 +36,9 @@ |
22304 | host_triplet = @host@ | |
22305 | target_triplet = @target@ | |
22306 | subdir = lib | |
22307 | -DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ | |
22308 | - $(srcdir)/copy-vmresources.sh.in $(srcdir)/gen-classlist.sh.in \ | |
22309 | - $(srcdir)/mkcollections.pl.in | |
22310 | +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ | |
22311 | + $(srcdir)/mkcollections.pl.in $(srcdir)/gen-classlist.sh.in \ | |
22312 | + $(srcdir)/copy-vmresources.sh.in | |
22313 | ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 | |
22314 | am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \ | |
22315 | $(top_srcdir)/../../config/lead-dot.m4 \ | |
22316 | @@ -72,9 +72,7 @@ | |
22317 | copy-vmresources.sh | |
22318 | CONFIG_CLEAN_VPATH_FILES = | |
22319 | SOURCES = | |
22320 | -DIST_SOURCES = | |
22321 | DATA = $(noinst_DATA) | |
22322 | -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) | |
22323 | ACLOCAL = @ACLOCAL@ | |
22324 | AMTAR = @AMTAR@ | |
22325 | ANTLR = @ANTLR@ | |
22326 | @@ -356,40 +354,6 @@ | |
22327 | ctags: CTAGS | |
22328 | CTAGS: | |
22329 | ||
22330 | - | |
22331 | -distdir: $(DISTFILES) | |
22332 | - @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ | |
22333 | - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ | |
22334 | - list='$(DISTFILES)'; \ | |
22335 | - dist_files=`for file in $$list; do echo $$file; done | \ | |
22336 | - sed -e "s|^$$srcdirstrip/||;t" \ | |
22337 | - -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ | |
22338 | - case $$dist_files in \ | |
22339 | - */*) $(MKDIR_P) `echo "$$dist_files" | \ | |
22340 | - sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ | |
22341 | - sort -u` ;; \ | |
22342 | - esac; \ | |
22343 | - for file in $$dist_files; do \ | |
22344 | - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ | |
22345 | - if test -d $$d/$$file; then \ | |
22346 | - dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ | |
22347 | - if test -d "$(distdir)/$$file"; then \ | |
22348 | - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ | |
22349 | - fi; \ | |
22350 | - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ | |
22351 | - cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ | |
22352 | - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ | |
22353 | - fi; \ | |
22354 | - cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ | |
22355 | - else \ | |
22356 | - test -f "$(distdir)/$$file" \ | |
22357 | - || cp -p $$d/$$file "$(distdir)/$$file" \ | |
22358 | - || exit 1; \ | |
22359 | - fi; \ | |
22360 | - done | |
22361 | - $(MAKE) $(AM_MAKEFLAGS) \ | |
22362 | - top_distdir="$(top_distdir)" distdir="$(distdir)" \ | |
22363 | - dist-hook | |
22364 | check-am: all-am | |
22365 | check: check-am | |
22366 | all-am: Makefile $(DATA) | |
22367 | @@ -492,17 +456,16 @@ | |
22368 | .MAKE: install-am install-strip | |
22369 | ||
22370 | .PHONY: all all-am check check-am clean clean-generic clean-libtool \ | |
22371 | - clean-local dist-hook distclean distclean-generic \ | |
22372 | - distclean-libtool distdir dvi dvi-am html html-am info info-am \ | |
22373 | - install install-am install-data install-data-am \ | |
22374 | - install-data-local install-dvi install-dvi-am install-exec \ | |
22375 | - install-exec-am install-html install-html-am install-info \ | |
22376 | - install-info-am install-man install-pdf install-pdf-am \ | |
22377 | - install-ps install-ps-am install-strip installcheck \ | |
22378 | - installcheck-am installdirs maintainer-clean \ | |
22379 | - maintainer-clean-generic mostlyclean mostlyclean-generic \ | |
22380 | - mostlyclean-libtool pdf pdf-am ps ps-am uninstall uninstall-am \ | |
22381 | - uninstall-local | |
22382 | + clean-local distclean distclean-generic distclean-libtool dvi \ | |
22383 | + dvi-am html html-am info info-am install install-am \ | |
22384 | + install-data install-data-am install-data-local install-dvi \ | |
22385 | + install-dvi-am install-exec install-exec-am install-html \ | |
22386 | + install-html-am install-info install-info-am install-man \ | |
22387 | + install-pdf install-pdf-am install-ps install-ps-am \ | |
22388 | + install-strip installcheck installcheck-am installdirs \ | |
22389 | + maintainer-clean maintainer-clean-generic mostlyclean \ | |
22390 | + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ | |
22391 | + uninstall uninstall-am uninstall-local | |
22392 | ||
22393 | ||
22394 | sinclude $(JAVA_DEPEND) | |
22395 | Index: libjava/classpath/ChangeLog.gcj | |
22396 | =================================================================== | |
9f95000d AM |
22397 | --- libjava/classpath/ChangeLog.gcj (.../tags/gcc_4_7_2_release) (wersja 192468) |
22398 | +++ libjava/classpath/ChangeLog.gcj (.../branches/gcc-4_7-branch) (wersja 192468) | |
5a87b929 AM |
22399 | @@ -1,3 +1,42 @@ |
22400 | +2012-09-20 Jakub Jelinek <jakub@redhat.com> | |
22401 | + | |
22402 | + PR other/43620 | |
22403 | + * configure.ac (AM_INIT_AUTOMAKE): Add no-dist. | |
22404 | + * Makefile.in: Regenerated. | |
22405 | + * doc/Makefile.in: Regenerated. | |
22406 | + * doc/api/Makefile.in: Regenerated. | |
22407 | + * examples/Makefile.in: Regenerated. | |
22408 | + * external/Makefile.in: Regenerated. | |
22409 | + * external/jsr166/Makefile.in: Regenerated. | |
22410 | + * external/relaxngDatatype/Makefile.in: Regenerated. | |
22411 | + * external/sax/Makefile.in: Regenerated. | |
22412 | + * external/w3c_dom/Makefile.in: Regenerated. | |
22413 | + * include/Makefile.in: Regenerated. | |
22414 | + * lib/Makefile.in: Regenerated. | |
22415 | + * native/Makefile.in: Regenerated. | |
22416 | + * native/fdlibm/Makefile.in: Regenerated. | |
22417 | + * native/jawt/Makefile.in: Regenerated. | |
22418 | + * native/jni/Makefile.in: Regenerated. | |
22419 | + * native/jni/classpath/Makefile.in: Regenerated. | |
22420 | + * native/jni/gconf-peer/Makefile.in: Regenerated. | |
22421 | + * native/jni/gstreamer-peer/Makefile.in: Regenerated. | |
22422 | + * native/jni/gtk-peer/Makefile.in: Regenerated. | |
22423 | + * native/jni/java-io/Makefile.in: Regenerated. | |
22424 | + * native/jni/java-lang/Makefile.in: Regenerated. | |
22425 | + * native/jni/java-math/Makefile.in: Regenerated. | |
22426 | + * native/jni/java-net/Makefile.in: Regenerated. | |
22427 | + * native/jni/java-nio/Makefile.in: Regenerated. | |
22428 | + * native/jni/java-util/Makefile.in: Regenerated. | |
22429 | + * native/jni/midi-alsa/Makefile.in: Regenerated. | |
22430 | + * native/jni/midi-dssi/Makefile.in: Regenerated. | |
22431 | + * native/jni/native-lib/Makefile.in: Regenerated. | |
22432 | + * native/jni/qt-peer/Makefile.in: Regenerated. | |
22433 | + * native/jni/xmlj/Makefile.in: Regenerated. | |
22434 | + * native/plugin/Makefile.in: Regenerated. | |
22435 | + * resource/Makefile.in: Regenerated. | |
22436 | + * scripts/Makefile.in: Regenerated. | |
22437 | + * tools/Makefile.in: Regenerated. | |
22438 | + | |
22439 | 2012-01-01 Jakub Jelinek <jakub@redhat.com> | |
22440 | ||
22441 | * gnu/java/rmi/registry/RegistryImpl.java (version): Update | |
22442 | Index: libjava/classpath/examples/Makefile.in | |
22443 | =================================================================== | |
9f95000d AM |
22444 | --- libjava/classpath/examples/Makefile.in (.../tags/gcc_4_7_2_release) (wersja 192468) |
22445 | +++ libjava/classpath/examples/Makefile.in (.../branches/gcc-4_7-branch) (wersja 192468) | |
5a87b929 AM |
22446 | @@ -36,8 +36,8 @@ |
22447 | host_triplet = @host@ | |
22448 | target_triplet = @target@ | |
22449 | subdir = examples | |
22450 | -DIST_COMMON = README $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ | |
22451 | - $(srcdir)/Makefile.java2d.in $(srcdir)/Makefile.jawt.in | |
22452 | +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ | |
22453 | + $(srcdir)/Makefile.jawt.in $(srcdir)/Makefile.java2d.in | |
22454 | ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 | |
22455 | am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \ | |
22456 | $(top_srcdir)/../../config/lead-dot.m4 \ | |
22457 | @@ -70,7 +70,6 @@ | |
22458 | CONFIG_CLEAN_FILES = Makefile.jawt Makefile.java2d | |
22459 | CONFIG_CLEAN_VPATH_FILES = | |
22460 | SOURCES = | |
22461 | -DIST_SOURCES = | |
22462 | am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; | |
22463 | am__vpath_adj = case $$p in \ | |
22464 | $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ | |
22465 | @@ -94,7 +93,6 @@ | |
22466 | sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | |
22467 | am__installdirs = "$(DESTDIR)$(exampledir)" | |
22468 | DATA = $(example_DATA) | |
22469 | -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) | |
22470 | ACLOCAL = @ACLOCAL@ | |
22471 | AMTAR = @AMTAR@ | |
22472 | ANTLR = @ANTLR@ | |
22473 | @@ -419,40 +417,6 @@ | |
22474 | ctags: CTAGS | |
22475 | CTAGS: | |
22476 | ||
22477 | - | |
22478 | -distdir: $(DISTFILES) | |
22479 | - @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ | |
22480 | - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ | |
22481 | - list='$(DISTFILES)'; \ | |
22482 | - dist_files=`for file in $$list; do echo $$file; done | \ | |
22483 | - sed -e "s|^$$srcdirstrip/||;t" \ | |
22484 | - -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ | |
22485 | - case $$dist_files in \ | |
22486 | - */*) $(MKDIR_P) `echo "$$dist_files" | \ | |
22487 | - sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ | |
22488 | - sort -u` ;; \ | |
22489 | - esac; \ | |
22490 | - for file in $$dist_files; do \ | |
22491 | - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ | |
22492 | - if test -d $$d/$$file; then \ | |
22493 | - dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ | |
22494 | - if test -d "$(distdir)/$$file"; then \ | |
22495 | - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ | |
22496 | - fi; \ | |
22497 | - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ | |
22498 | - cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ | |
22499 | - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ | |
22500 | - fi; \ | |
22501 | - cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ | |
22502 | - else \ | |
22503 | - test -f "$(distdir)/$$file" \ | |
22504 | - || cp -p $$d/$$file "$(distdir)/$$file" \ | |
22505 | - || exit 1; \ | |
22506 | - fi; \ | |
22507 | - done | |
22508 | - $(MAKE) $(AM_MAKEFLAGS) \ | |
22509 | - top_distdir="$(top_distdir)" distdir="$(distdir)" \ | |
22510 | - dist-hook | |
22511 | check-am: all-am | |
22512 | check: $(BUILT_SOURCES) | |
22513 | $(MAKE) $(AM_MAKEFLAGS) check-am | |
22514 | @@ -557,17 +521,17 @@ | |
22515 | .MAKE: all check install install-am install-strip | |
22516 | ||
22517 | .PHONY: all all-am check check-am clean clean-generic clean-libtool \ | |
22518 | - clean-local dist-hook distclean distclean-generic \ | |
22519 | - distclean-libtool distdir dvi dvi-am html html-am info info-am \ | |
22520 | - install install-am install-data install-data-am \ | |
22521 | - install-data-local install-dvi install-dvi-am \ | |
22522 | - install-exampleDATA install-exec install-exec-am install-html \ | |
22523 | - install-html-am install-info install-info-am install-man \ | |
22524 | - install-pdf install-pdf-am install-ps install-ps-am \ | |
22525 | - install-strip installcheck installcheck-am installdirs \ | |
22526 | - maintainer-clean maintainer-clean-generic mostlyclean \ | |
22527 | - mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ | |
22528 | - uninstall uninstall-am uninstall-exampleDATA uninstall-local | |
22529 | + clean-local distclean distclean-generic distclean-libtool dvi \ | |
22530 | + dvi-am html html-am info info-am install install-am \ | |
22531 | + install-data install-data-am install-data-local install-dvi \ | |
22532 | + install-dvi-am install-exampleDATA install-exec \ | |
22533 | + install-exec-am install-html install-html-am install-info \ | |
22534 | + install-info-am install-man install-pdf install-pdf-am \ | |
22535 | + install-ps install-ps-am install-strip installcheck \ | |
22536 | + installcheck-am installdirs maintainer-clean \ | |
22537 | + maintainer-clean-generic mostlyclean mostlyclean-generic \ | |
22538 | + mostlyclean-libtool pdf pdf-am ps ps-am uninstall uninstall-am \ | |
22539 | + uninstall-exampleDATA uninstall-local | |
22540 | ||
22541 | ||
22542 | # Make sure all sources and icons are also installed so users can use them. | |
22543 | Index: libgcc/config.host | |
22544 | =================================================================== | |
9f95000d AM |
22545 | --- libgcc/config.host (.../tags/gcc_4_7_2_release) (wersja 192468) |
22546 | +++ libgcc/config.host (.../branches/gcc-4_7-branch) (wersja 192468) | |
5a87b929 AM |
22547 | @@ -213,7 +213,7 @@ |
22548 | esac | |
22549 | ;; | |
22550 | *-*-openbsd*) | |
22551 | - tmake_file="$tmake_file t-crtstuff-pic t-libgcc-pic" | |
22552 | + tmake_file="$tmake_file t-crtstuff-pic t-libgcc-pic t-eh-dw2-dip" | |
22553 | case ${target_thread_file} in | |
22554 | posix) | |
22555 | tmake_file="$tmake_file t-openbsd-thread" | |
22556 | Index: libgcc/unwind-dw2-fde-dip.c | |
22557 | =================================================================== | |
9f95000d AM |
22558 | --- libgcc/unwind-dw2-fde-dip.c (.../tags/gcc_4_7_2_release) (wersja 192468) |
22559 | +++ libgcc/unwind-dw2-fde-dip.c (.../branches/gcc-4_7-branch) (wersja 192468) | |
5a87b929 AM |
22560 | @@ -33,7 +33,7 @@ |
22561 | ||
22562 | #include "tconfig.h" | |
22563 | #include "tsystem.h" | |
22564 | -#ifndef inhibit_libc | |
22565 | +#if !defined(inhibit_libc) && !defined(__OpenBSD__) | |
22566 | #include <elf.h> /* Get DT_CONFIG. */ | |
22567 | #endif | |
22568 | #include "coretypes.h" | |
22569 | @@ -60,6 +60,12 @@ | |
22570 | #endif | |
22571 | ||
22572 | #if !defined(inhibit_libc) && defined(HAVE_LD_EH_FRAME_HDR) \ | |
22573 | + && defined(__OpenBSD__) | |
22574 | +# define ElfW(type) Elf_##type | |
22575 | +# define USE_PT_GNU_EH_FRAME | |
22576 | +#endif | |
22577 | + | |
22578 | +#if !defined(inhibit_libc) && defined(HAVE_LD_EH_FRAME_HDR) \ | |
22579 | && defined(TARGET_DL_ITERATE_PHDR) \ | |
22580 | && defined(__sun__) && defined(__svr4__) | |
22581 | # define USE_PT_GNU_EH_FRAME | |
22582 | Index: libgcc/ChangeLog | |
22583 | =================================================================== | |
9f95000d AM |
22584 | --- libgcc/ChangeLog (.../tags/gcc_4_7_2_release) (wersja 192468) |
22585 | +++ libgcc/ChangeLog (.../branches/gcc-4_7-branch) (wersja 192468) | |
5a87b929 AM |
22586 | @@ -1,3 +1,10 @@ |
22587 | +2012-10-06 Mark Kettenis <kettenis@openbsd.org> | |
22588 | + | |
22589 | + * config.host (*-*-openbsd*): Add t-eh-dw2-dip to tmake_file. | |
22590 | + * unwind-dw2-fde-dip.c: Don't include <elf.h> on OpenBSD. | |
22591 | + (USE_PT_GNU_EH_FRAME): Define for OpenBSD. | |
22592 | + (ElfW): Likewise. | |
22593 | + | |
22594 | 2012-09-20 Release Manager | |
22595 | ||
22596 | * GCC 4.7.2 released. | |
22597 | Index: gcc/doc/invoke.texi | |
22598 | =================================================================== | |
9f95000d AM |
22599 | --- gcc/doc/invoke.texi (.../tags/gcc_4_7_2_release) (wersja 192468) |
22600 | +++ gcc/doc/invoke.texi (.../branches/gcc-4_7-branch) (wersja 192468) | |
5a87b929 AM |
22601 | @@ -626,7 +626,7 @@ |
22602 | -mincoming-stack-boundary=@var{num} @gol | |
22603 | -mcld -mcx16 -msahf -mmovbe -mcrc32 @gol | |
22604 | -mrecip -mrecip=@var{opt} @gol | |
22605 | --mvzeroupper @gol | |
22606 | +-mvzeroupper -mprefer-avx128 @gol | |
22607 | -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -msse4 -mavx @gol | |
22608 | -mavx2 -maes -mpclmul -mfsgsbase -mrdrnd -mf16c -mfma @gol | |
22609 | -msse4a -m3dnow -mpopcnt -mabm -mbmi -mtbm -mfma4 -mxop -mlzcnt @gol | |
22610 | @@ -11139,10 +11139,12 @@ | |
22611 | ||
22612 | @item -mshort-calls | |
22613 | @opindex mshort-calls | |
22614 | +This option has been deprecated and will be removed in GCC 4.8. | |
22615 | +See @code{-mrelax} for a replacement. | |
22616 | + | |
22617 | Use @code{RCALL}/@code{RJMP} instructions even on devices with | |
22618 | 16@tie{}KiB or more of program memory, i.e.@: on devices that | |
22619 | have the @code{CALL} and @code{JMP} instructions. | |
22620 | -See also the @code{-mrelax} command line option. | |
22621 | ||
22622 | @item -msp8 | |
22623 | @opindex msp8 | |
22624 | @@ -13679,6 +13681,11 @@ | |
22625 | AVX to SSE transition penalty as well as remove unnecessary zeroupper | |
22626 | intrinsics. | |
22627 | ||
22628 | +@item -mprefer-avx128 | |
22629 | +@opindex mprefer-avx128 | |
22630 | +This option instructs GCC to use 128-bit AVX instructions instead of | |
22631 | +256-bit AVX instructions in the auto-vectorizer. | |
22632 | + | |
22633 | @item -mcx16 | |
22634 | @opindex mcx16 | |
22635 | This option will enable GCC to use CMPXCHG16B instruction in generated code. | |
22636 | Index: gcc/DATESTAMP | |
22637 | =================================================================== | |
9f95000d AM |
22638 | --- gcc/DATESTAMP (.../tags/gcc_4_7_2_release) (wersja 192468) |
22639 | +++ gcc/DATESTAMP (.../branches/gcc-4_7-branch) (wersja 192468) | |
5a87b929 AM |
22640 | @@ -1 +1 @@ |
22641 | -20120920 | |
22642 | +20121015 | |
ce0877b9 | 22643 | Index: gcc/DEV-PHASE |
4c31f8e7 | 22644 | =================================================================== |
9f95000d AM |
22645 | --- gcc/DEV-PHASE (.../tags/gcc_4_7_2_release) (wersja 192468) |
22646 | +++ gcc/DEV-PHASE (.../branches/gcc-4_7-branch) (wersja 192468) | |
5a87b929 AM |
22647 | @@ -0,0 +1 @@ |
22648 | +prerelease | |
22649 | Index: gcc/ChangeLog | |
22650 | =================================================================== | |
9f95000d AM |
22651 | --- gcc/ChangeLog (.../tags/gcc_4_7_2_release) (wersja 192468) |
22652 | +++ gcc/ChangeLog (.../branches/gcc-4_7-branch) (wersja 192468) | |
5a87b929 AM |
22653 | @@ -1,3 +1,170 @@ |
22654 | +2012-10-15 Richard Guenther <rguenther@suse.de> | |
22655 | + | |
22656 | + PR tree-optimization/54920 | |
22657 | + * tree-ssa-pre.c (create_expression_by_pieces): Properly | |
22658 | + allocate temporary storage for all NARY elements. | |
22659 | + | |
22660 | +2012-10-08 Georg-Johann Lay <avr@gjlay.de> | |
22661 | + | |
22662 | + PR target/54854 | |
22663 | + * doc/invoke.texi (AVR Options): Deprecate -mshort-calls. | |
22664 | + | |
22665 | +2012-10-05 Mark Kettenis <kettenis@openbsd.org> | |
22666 | + | |
22667 | + * config.gcc (*-*-openbsd4.[3-9]|*-*-openbsd[5-9]*): Set | |
22668 | + default_use_cxa_atexit to yes. | |
22669 | + | |
22670 | +2012-10-05 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> | |
22671 | + | |
22672 | + * config/pa/pa.md: Adjust unamed HImode add insn pattern. | |
22673 | + | |
22674 | +2012-10-05 Jan Hubicka <jh@suse.cz> | |
22675 | + Jakub Jelinek <jakub@redhat.com> | |
22676 | + | |
22677 | + PR tree-optimization/33763 | |
22678 | + * tree-inline.c (expand_call_inline): Silently ignore always_inline | |
22679 | + attribute for redefined extern inline functions. | |
22680 | + | |
22681 | +2012-10-03 H.J. Lu <hongjiu.lu@intel.com> | |
22682 | + | |
22683 | + Backported from mainline | |
22684 | + 2012-10-03 Andrew W. Nosenko <andrew.w.nosenko@gmail.com> | |
22685 | + | |
22686 | + * config/i386/driver-i386.c (host_detect_local_cpu): Fix logic | |
22687 | + in SSE and YMM state support check for -march=native. | |
22688 | + | |
22689 | +2012-10-03 Alexandre Oliva <aoliva@redhat.com> | |
22690 | + | |
22691 | + PR debug/53135 | |
22692 | + * dwarf2out.c (value_format): Use block4 for dw_val_class_loc | |
22693 | + when needed. | |
22694 | + | |
22695 | +2012-10-02 H.J. Lu <hongjiu.lu@intel.com> | |
22696 | + | |
22697 | + Backported from mainline | |
22698 | + 2012-10-02 H.J. Lu <hongjiu.lu@intel.com> | |
22699 | + | |
22700 | + PR target/54785 | |
22701 | + * doc/invoke.texi: Document -mprefer-avx128. | |
22702 | + | |
22703 | +2012-10-02 H.J. Lu <hongjiu.lu@intel.com> | |
22704 | + | |
22705 | + Backported from mainline | |
22706 | + 2012-10-02 H.J. Lu <hongjiu.lu@intel.com> | |
22707 | + | |
22708 | + PR target/54741 | |
22709 | + * config/i386/driver-i386.c (XCR_XFEATURE_ENABLED_MASK): New. | |
22710 | + (XSTATE_FP): Likewise. | |
22711 | + (XSTATE_SSE): Likewise. | |
22712 | + (XSTATE_YMM): Likewise. | |
22713 | + (host_detect_local_cpu): Disable AVX, AVX2, FMA, FMA4 and XOP if | |
22714 | + SSE and YMM states aren't supported. | |
22715 | + | |
22716 | +2012-10-01 Tom de Vries <tom@codesourcery.com> | |
22717 | + | |
22718 | + * var-tracking.c (set_dv_changed): Add an 'inline' function specifier to | |
22719 | + the prototype. | |
22720 | + | |
22721 | +2012-10-01 Andreas Krebbel <Andreas.Krebbel@de.ibm.com> | |
22722 | + | |
22723 | + PR target/54746 | |
22724 | + * config/s390/s390.c (s390_option_override): Add missing break. | |
22725 | + | |
22726 | +2012-09-29 Andreas Tobler <andreast@fgznet.ch> | |
22727 | + | |
22728 | + Backport from mainline | |
22729 | + 2012-09-29 Andreas Tobler <andreast@fgznet.ch> | |
22730 | + | |
22731 | + * config.gcc: Replace 'host' with 'target' when configuring for | |
22732 | + powerpc64*-*-freebsd. | |
22733 | + | |
22734 | +2012-09-28 Meador Inge <meadori@codesourcery.com> | |
22735 | + | |
22736 | + Backport from mainline | |
22737 | + 2012-09-27 Meador Inge <meadori@codesourcery.com> | |
22738 | + | |
22739 | + * gcc-ar.c (main): Handle the returning of the sub-process error | |
22740 | + code correctly. | |
22741 | + | |
22742 | +2012-09-28 Georg-Johann Lay <avr@gjlay.de> | |
22743 | + | |
22744 | + Backport from 2012-09-28 trunk r191821. | |
22745 | + * config/avr/avr.c (avr_pgm_check_var_decl): Fix non-error diagnostic. | |
22746 | + | |
22747 | +2012-09-27 Jakub Jelinek <jakub@redhat.com> | |
22748 | + | |
22749 | + PR target/54703 | |
22750 | + * simplify-rtx.c (simplify_binary_operation_1): Perform | |
22751 | + (x - (x & y)) -> (x & ~y) optimization only for integral | |
22752 | + modes. | |
22753 | + | |
22754 | +2012-09-24 Eric Botcazou <ebotcazou@adacore.com> | |
22755 | + | |
22756 | + * tree-streamer-in.c (unpack_ts_type_common_value_fields): Stream in | |
22757 | + TYPE_NONALIASED_COMPONENT flag. | |
22758 | + * tree-streamer-out.c (pack_ts_type_common_value_fields): Stream out | |
22759 | + TYPE_NONALIASED_COMPONENT flag. | |
22760 | + | |
22761 | +2012-09-21 Richard Guenther <rguenther@suse.de> | |
22762 | + | |
22763 | + PR middle-end/54638 | |
22764 | + Backport from mainline | |
22765 | + 2012-04-19 Richard Guenther <rguenther@suse.de> | |
22766 | + | |
22767 | + * ira-int.h (ira_allocno_object_iter_cond): Avoid out-of-bound | |
22768 | + array access. | |
22769 | + | |
22770 | +2012-09-20 Joseph Myers <joseph@codesourcery.com> | |
22771 | + | |
22772 | + PR c/54552 | |
22773 | + * c-typeck.c (c_cast_expr): When casting to a type requiring | |
22774 | + C_MAYBE_CONST_EXPR to be created, pass the inner expression to | |
22775 | + c_fully_fold first. | |
22776 | + | |
22777 | +2012-09-20 Joseph Myers <joseph@codesourcery.com> | |
22778 | + | |
22779 | + PR c/54103 | |
22780 | + * c-typeck.c (build_unary_op): Pass original argument of | |
22781 | + TRUTH_NOT_EXPR to c_objc_common_truthvalue_conversion, then remove | |
22782 | + any C_MAYBE_CONST_EXPR, if it has integer operands. | |
22783 | + (build_binary_op): Pass original arguments of TRUTH_ANDIF_EXPR, | |
22784 | + TRUTH_ORIF_EXPR, TRUTH_AND_EXPR, TRUTH_OR_EXPR and TRUTH_XOR_EXPR | |
22785 | + to c_objc_common_truthvalue_conversion, then remove any | |
22786 | + C_MAYBE_CONST_EXPR, if they have integer operands. Use | |
22787 | + c_objc_common_truthvalue_conversion not | |
22788 | + c_common_truthvalue_conversion. | |
22789 | + (c_objc_common_truthvalue_conversion): Build NE_EXPR directly and | |
22790 | + call note_integer_operands for arguments with integer operands | |
22791 | + that are not integer constants. | |
22792 | + | |
22793 | +2012-09-20 Jakub Jelinek <jakub@redhat.com> | |
22794 | + | |
22795 | + Backported from mainline | |
22796 | + 2012-09-17 Jakub Jelinek <jakub@redhat.com> | |
22797 | + | |
22798 | + PR tree-optimization/54563 | |
22799 | + * tree-ssa-math-opts.c (execute_cse_sincos): Call | |
22800 | + gimple_purge_dead_eh_edges if last call has been changed. | |
22801 | + | |
22802 | + 2012-09-14 Jakub Jelinek <jakub@redhat.com> | |
22803 | + | |
22804 | + PR target/54564 | |
22805 | + * config/i386/sse.md (fmai_vmfmadd_<mode>): Use (match_dup 1) | |
22806 | + instead of (match_dup 0) as second argument to vec_merge. | |
22807 | + (*fmai_fmadd_<mode>, *fmai_fmsub_<mode>): Likewise. | |
22808 | + Remove third alternative. | |
22809 | + (*fmai_fnmadd_<mode>, *fmai_fnmsub_<mode>): Likewise. Negate | |
22810 | + operand 2 instead of operand 1, but put it as first argument | |
22811 | + of fma. | |
22812 | + * config/i386/fmaintrin.h (_mm_fnmadd_sd, _mm_fnmadd_ss, | |
22813 | + _mm_fnmsub_sd, _mm_fnmsub_ss): Negate the second argument instead | |
22814 | + of the first. | |
22815 | + | |
22816 | +2012-09-20 Jakub Jelinek <jakub@redhat.com> | |
22817 | + | |
22818 | + * BASE-VER: Set to 4.7.3. | |
22819 | + * DEV-PHASE: Set to prerelease. | |
22820 | + | |
22821 | 2012-09-20 Release Manager | |
22822 | ||
22823 | * GCC 4.7.2 released. | |
22824 | Index: gcc/testsuite/gcc.target/arm/arm.exp | |
22825 | =================================================================== | |
9f95000d AM |
22826 | --- gcc/testsuite/gcc.target/arm/arm.exp (.../tags/gcc_4_7_2_release) (wersja 192468) |
22827 | +++ gcc/testsuite/gcc.target/arm/arm.exp (.../branches/gcc-4_7-branch) (wersja 192468) | |
5a87b929 AM |
22828 | @@ -30,6 +30,11 @@ |
22829 | set DEFAULT_CFLAGS " -ansi -pedantic-errors" | |
22830 | } | |
22831 | ||
22832 | +# This variable should only apply to tests called in this exp file. | |
22833 | +global dg_runtest_extra_prunes | |
22834 | +set dg_runtest_extra_prunes "" | |
22835 | +lappend dg_runtest_extra_prunes "warning: switch -m(cpu|arch)=.* conflicts with -m(cpu|arch)=.* switch" | |
22836 | + | |
22837 | # Initialize `dg'. | |
22838 | dg-init | |
22839 | ||
22840 | @@ -39,3 +44,5 @@ | |
22841 | ||
22842 | # All done. | |
22843 | dg-finish | |
22844 | + | |
22845 | +set dg_runtest_extra_prunes "" | |
22846 | Index: gcc/testsuite/gcc.target/i386/pr54703.c | |
22847 | =================================================================== | |
22848 | --- gcc/testsuite/gcc.target/i386/pr54703.c (.../tags/gcc_4_7_2_release) (wersja 0) | |
9f95000d | 22849 | +++ gcc/testsuite/gcc.target/i386/pr54703.c (.../branches/gcc-4_7-branch) (wersja 192468) |
5a87b929 AM |
22850 | @@ -0,0 +1,36 @@ |
22851 | +/* PR target/54703 */ | |
22852 | +/* { dg-do run { target sse2_runtime } } */ | |
22853 | +/* { dg-options "-O -msse2" } */ | |
22854 | +/* { dg-additional-options "-mavx -mtune=bdver1" { target avx_runtime } } */ | |
22855 | + | |
22856 | +extern void abort (void); | |
22857 | +typedef double V __attribute__((vector_size(16))); | |
22858 | + | |
22859 | +union { | |
22860 | + unsigned long long m[2]; | |
22861 | + V v; | |
22862 | +} u = { { 0xffffffffff000000ULL, 0xffffffffff000000ULL } }; | |
22863 | + | |
22864 | +static inline V | |
22865 | +foo (V x) | |
22866 | +{ | |
22867 | + V y = __builtin_ia32_andpd (x, u.v); | |
22868 | + V z = __builtin_ia32_subpd (x, y); | |
22869 | + return __builtin_ia32_mulpd (y, z); | |
22870 | +} | |
22871 | + | |
22872 | +void | |
22873 | +test (V *x) | |
22874 | +{ | |
22875 | + V a = { 2.1, 2.1 }; | |
22876 | + *x = foo (foo (a)); | |
22877 | +} | |
22878 | + | |
22879 | +int | |
22880 | +main () | |
22881 | +{ | |
22882 | + test (&u.v); | |
22883 | + if (u.m[0] != 0x3acbf487f0a30550ULL || u.m[1] != u.m[0]) | |
22884 | + abort (); | |
22885 | + return 0; | |
22886 | +} | |
22887 | Index: gcc/testsuite/lib/gcc-dg.exp | |
22888 | =================================================================== | |
9f95000d AM |
22889 | --- gcc/testsuite/lib/gcc-dg.exp (.../tags/gcc_4_7_2_release) (wersja 192468) |
22890 | +++ gcc/testsuite/lib/gcc-dg.exp (.../branches/gcc-4_7-branch) (wersja 192468) | |
5a87b929 AM |
22891 | @@ -211,9 +211,13 @@ |
22892 | proc gcc-dg-prune { system text } { | |
22893 | global additional_prunes | |
22894 | ||
22895 | + # Extra prune rules that will apply to tests defined in a .exp file. | |
22896 | + # Always remember to clear it in .exp file after executed all tests. | |
22897 | + global dg_runtest_extra_prunes | |
22898 | + | |
22899 | set text [prune_gcc_output $text] | |
22900 | ||
22901 | - foreach p $additional_prunes { | |
22902 | + foreach p "$additional_prunes $dg_runtest_extra_prunes" { | |
22903 | if { [string length $p] > 0 } { | |
22904 | # Following regexp matches a complete line containing $p. | |
22905 | regsub -all "(^|\n)\[^\n\]*$p\[^\n\]*" $text "" text | |
22906 | @@ -672,6 +676,7 @@ | |
22907 | set additional_files "" | |
22908 | set additional_sources "" | |
22909 | set additional_prunes "" | |
22910 | + set dg_runtest_extra_prunes "" | |
22911 | set shouldfail 0 | |
22912 | if [info exists compiler_conditional_xfail_data] { | |
22913 | unset compiler_conditional_xfail_data | |
22914 | @@ -745,7 +750,7 @@ | |
22915 | # Process the dg- directive, including adding the regular expression | |
22916 | # to the new message entry in dg-messages. | |
22917 | set msgcnt [llength ${dg-messages}] | |
22918 | - catch { eval $msgproc $dgargs } | |
22919 | + eval $msgproc $dgargs | |
22920 | ||
22921 | # If the target expression wasn't satisfied there is no new message. | |
22922 | if { [llength ${dg-messages}] == $msgcnt } { | |
22923 | @@ -809,3 +814,4 @@ | |
22924 | } | |
22925 | ||
22926 | set additional_prunes "" | |
22927 | +set dg_runtest_extra_prunes "" | |
22928 | Index: gcc/testsuite/lib/target-supports.exp | |
22929 | =================================================================== | |
9f95000d AM |
22930 | --- gcc/testsuite/lib/target-supports.exp (.../tags/gcc_4_7_2_release) (wersja 192468) |
22931 | +++ gcc/testsuite/lib/target-supports.exp (.../branches/gcc-4_7-branch) (wersja 192468) | |
5a87b929 AM |
22932 | @@ -2993,7 +2993,7 @@ |
22933 | set et_vect_widen_mult_qi_to_hi_saved 0 | |
22934 | } | |
22935 | if { [istarget powerpc*-*-*] | |
22936 | - || ([istarget arm*-*-*] && [check_effective_target_arm_neon]) } { | |
22937 | + || ([istarget arm*-*-*] && [check_effective_target_arm_neon_ok]) } { | |
22938 | set et_vect_widen_mult_qi_to_hi_saved 1 | |
22939 | } | |
22940 | } | |
22941 | @@ -3027,7 +3027,7 @@ | |
22942 | || [istarget ia64-*-*] | |
22943 | || [istarget i?86-*-*] | |
22944 | || [istarget x86_64-*-*] | |
22945 | - || ([istarget arm*-*-*] && [check_effective_target_arm_neon]) } { | |
22946 | + || ([istarget arm*-*-*] && [check_effective_target_arm_neon_ok]) } { | |
22947 | set et_vect_widen_mult_hi_to_si_saved 1 | |
22948 | } | |
22949 | } | |
22950 | @@ -3048,7 +3048,7 @@ | |
22951 | } else { | |
22952 | set et_vect_widen_mult_qi_to_hi_pattern_saved 0 | |
22953 | if { [istarget powerpc*-*-*] | |
22954 | - || ([istarget arm*-*-*] && [check_effective_target_arm_neon]) } { | |
22955 | + || ([istarget arm*-*-*] && [check_effective_target_arm_neon_ok]) } { | |
22956 | set et_vect_widen_mult_qi_to_hi_pattern_saved 1 | |
22957 | } | |
22958 | } | |
22959 | @@ -3073,7 +3073,7 @@ | |
22960 | || [istarget ia64-*-*] | |
22961 | || [istarget i?86-*-*] | |
22962 | || [istarget x86_64-*-*] | |
22963 | - || ([istarget arm*-*-*] && [check_effective_target_arm_neon]) } { | |
22964 | + || ([istarget arm*-*-*] && [check_effective_target_arm_neon_ok]) } { | |
22965 | set et_vect_widen_mult_hi_to_si_pattern_saved 1 | |
22966 | } | |
22967 | } | |
22968 | @@ -3203,7 +3203,7 @@ | |
22969 | || [istarget i?86-*-*] | |
22970 | || [istarget x86_64-*-*] | |
22971 | || [istarget spu-*-*] | |
22972 | - || ([istarget arm*-*-*] && [check_effective_target_arm_neon] | |
22973 | + || ([istarget arm*-*-*] && [check_effective_target_arm_neon_ok] | |
22974 | && [check_effective_target_arm_little_endian]) } { | |
22975 | set et_vect_pack_trunc_saved 1 | |
22976 | } | |
22977 | @@ -3229,7 +3229,7 @@ | |
22978 | || [istarget x86_64-*-*] | |
22979 | || [istarget spu-*-*] | |
22980 | || [istarget ia64-*-*] | |
22981 | - || ([istarget arm*-*-*] && [check_effective_target_arm_neon] | |
22982 | + || ([istarget arm*-*-*] && [check_effective_target_arm_neon_ok] | |
22983 | && [check_effective_target_arm_little_endian]) } { | |
22984 | set et_vect_unpack_saved 1 | |
22985 | } | |
22986 | @@ -3646,7 +3646,7 @@ | |
22987 | global et_vect_multiple_sizes_saved | |
22988 | ||
22989 | set et_vect_multiple_sizes_saved 0 | |
22990 | - if { ([istarget arm*-*-*] && [check_effective_target_arm_neon]) } { | |
22991 | + if { ([istarget arm*-*-*] && [check_effective_target_arm_neon_ok]) } { | |
22992 | set et_vect_multiple_sizes_saved 1 | |
22993 | } | |
22994 | if { ([istarget x86_64-*-*] || [istarget i?86-*-*]) } { | |
22995 | Index: gcc/testsuite/gfortran.dg/class_allocate_13.f90 | |
22996 | =================================================================== | |
22997 | --- gcc/testsuite/gfortran.dg/class_allocate_13.f90 (.../tags/gcc_4_7_2_release) (wersja 0) | |
9f95000d | 22998 | +++ gcc/testsuite/gfortran.dg/class_allocate_13.f90 (.../branches/gcc-4_7-branch) (wersja 192468) |
5a87b929 AM |
22999 | @@ -0,0 +1,31 @@ |
23000 | +! { dg-do run } | |
23001 | +! | |
23002 | +! PR 54784: [4.7/4.8 Regression] [OOP] wrong code in polymorphic allocation with SOURCE | |
23003 | +! | |
23004 | +! Contributed by Jeremy Kozdon <jkozdon@gmail.com> | |
23005 | + | |
23006 | +program bug | |
23007 | + implicit none | |
23008 | + | |
23009 | + type :: block | |
23010 | + real, allocatable :: fields | |
23011 | + end type | |
23012 | + | |
23013 | + type :: list | |
23014 | + class(block),allocatable :: B | |
23015 | + end type | |
23016 | + | |
23017 | + type :: domain | |
23018 | + type(list),dimension(2) :: L | |
23019 | + end type | |
23020 | + | |
23021 | + type(domain) :: d | |
23022 | + type(block) :: b1 | |
23023 | + | |
23024 | + allocate(b1%fields,source=5.) | |
23025 | + | |
23026 | + allocate(d%L(2)%B,source=b1) ! wrong code | |
23027 | + | |
23028 | + if (d%L(2)%B%fields/=5.) call abort() | |
23029 | + | |
23030 | +end program | |
23031 | Index: gcc/testsuite/gcc.c-torture/compile/pr54103-2.c | |
23032 | =================================================================== | |
23033 | --- gcc/testsuite/gcc.c-torture/compile/pr54103-2.c (.../tags/gcc_4_7_2_release) (wersja 0) | |
9f95000d | 23034 | +++ gcc/testsuite/gcc.c-torture/compile/pr54103-2.c (.../branches/gcc-4_7-branch) (wersja 192468) |
5a87b929 AM |
23035 | @@ -0,0 +1,5 @@ |
23036 | +void | |
23037 | +f (void) | |
23038 | +{ | |
23039 | + 0 / 0 || 0 ? : 0; | |
23040 | +} | |
23041 | Index: gcc/testsuite/gcc.c-torture/compile/pr54103-4.c | |
23042 | =================================================================== | |
23043 | --- gcc/testsuite/gcc.c-torture/compile/pr54103-4.c (.../tags/gcc_4_7_2_release) (wersja 0) | |
9f95000d | 23044 | +++ gcc/testsuite/gcc.c-torture/compile/pr54103-4.c (.../branches/gcc-4_7-branch) (wersja 192468) |
5a87b929 AM |
23045 | @@ -0,0 +1,5 @@ |
23046 | +void | |
23047 | +f (void) | |
23048 | +{ | |
23049 | + 0 / 0 && 1 ? : 0; | |
23050 | +} | |
23051 | Index: gcc/testsuite/gcc.c-torture/compile/pr54103-6.c | |
23052 | =================================================================== | |
23053 | --- gcc/testsuite/gcc.c-torture/compile/pr54103-6.c (.../tags/gcc_4_7_2_release) (wersja 0) | |
9f95000d | 23054 | +++ gcc/testsuite/gcc.c-torture/compile/pr54103-6.c (.../branches/gcc-4_7-branch) (wersja 192468) |
5a87b929 AM |
23055 | @@ -0,0 +1,5 @@ |
23056 | +void | |
23057 | +f (void) | |
23058 | +{ | |
23059 | + 0 || 65536*65536 ? : 0; | |
23060 | +} | |
23061 | Index: gcc/testsuite/gcc.c-torture/compile/pr54552-1.c | |
23062 | =================================================================== | |
23063 | --- gcc/testsuite/gcc.c-torture/compile/pr54552-1.c (.../tags/gcc_4_7_2_release) (wersja 0) | |
9f95000d | 23064 | +++ gcc/testsuite/gcc.c-torture/compile/pr54552-1.c (.../branches/gcc-4_7-branch) (wersja 192468) |
5a87b929 AM |
23065 | @@ -0,0 +1,8 @@ |
23066 | +void | |
23067 | +f (void) | |
23068 | +{ | |
23069 | + unsigned n = 10; | |
23070 | + | |
23071 | + typedef double T[n]; | |
23072 | + (double (*)[n])((unsigned char (*)[sizeof (T)]){ 0 }); | |
23073 | +} | |
23074 | Index: gcc/testsuite/gcc.c-torture/compile/pr54103-1.c | |
23075 | =================================================================== | |
23076 | --- gcc/testsuite/gcc.c-torture/compile/pr54103-1.c (.../tags/gcc_4_7_2_release) (wersja 0) | |
9f95000d | 23077 | +++ gcc/testsuite/gcc.c-torture/compile/pr54103-1.c (.../branches/gcc-4_7-branch) (wersja 192468) |
5a87b929 AM |
23078 | @@ -0,0 +1,5 @@ |
23079 | +void | |
23080 | +f (void) | |
23081 | +{ | |
23082 | + 0 || 0 / 0 ? : 0; | |
23083 | +} | |
23084 | Index: gcc/testsuite/gcc.c-torture/compile/pr54103-3.c | |
23085 | =================================================================== | |
23086 | --- gcc/testsuite/gcc.c-torture/compile/pr54103-3.c (.../tags/gcc_4_7_2_release) (wersja 0) | |
9f95000d | 23087 | +++ gcc/testsuite/gcc.c-torture/compile/pr54103-3.c (.../branches/gcc-4_7-branch) (wersja 192468) |
5a87b929 AM |
23088 | @@ -0,0 +1,5 @@ |
23089 | +void | |
23090 | +f (void) | |
23091 | +{ | |
23092 | + 1 && 0 / 0 ? : 0; | |
23093 | +} | |
23094 | Index: gcc/testsuite/gcc.c-torture/compile/pr54103-5.c | |
23095 | =================================================================== | |
23096 | --- gcc/testsuite/gcc.c-torture/compile/pr54103-5.c (.../tags/gcc_4_7_2_release) (wersja 0) | |
9f95000d | 23097 | +++ gcc/testsuite/gcc.c-torture/compile/pr54103-5.c (.../branches/gcc-4_7-branch) (wersja 192468) |
5a87b929 AM |
23098 | @@ -0,0 +1,5 @@ |
23099 | +void | |
23100 | +f (void) | |
23101 | +{ | |
23102 | + !(0 / 0); | |
23103 | +} | |
23104 | Index: gcc/testsuite/gnat.dg/oconst6.ads | |
23105 | =================================================================== | |
9f95000d AM |
23106 | --- gcc/testsuite/gnat.dg/oconst6.ads (.../tags/gcc_4_7_2_release) (wersja 192468) |
23107 | +++ gcc/testsuite/gnat.dg/oconst6.ads (.../branches/gcc-4_7-branch) (wersja 192468) | |
5a87b929 AM |
23108 | @@ -1,18 +0,0 @@ |
23109 | --- { dg-do compile } | |
23110 | --- { dg-final { scan-assembler-not "elabs" } } | |
23111 | - | |
23112 | -package OCONST6 is | |
23113 | - | |
23114 | - type Sequence is array (1 .. 1) of Natural; | |
23115 | - | |
23116 | - type Message is record | |
23117 | - Data : Sequence; | |
23118 | - end record; | |
23119 | - | |
23120 | - for Message'Alignment use 1; | |
23121 | - pragma PACK (Message); | |
23122 | - | |
23123 | - ACK : Message := (Data => (others => 1)); | |
23124 | - | |
23125 | -end; | |
23126 | - | |
23127 | Index: gcc/testsuite/gnat.dg/opt20.adb | |
23128 | =================================================================== | |
9f95000d AM |
23129 | --- gcc/testsuite/gnat.dg/opt20.adb (.../tags/gcc_4_7_2_release) (wersja 192468) |
23130 | +++ gcc/testsuite/gnat.dg/opt20.adb (.../branches/gcc-4_7-branch) (wersja 192468) | |
5a87b929 AM |
23131 | @@ -1,3 +1,6 @@ |
23132 | +-- { dg-do compile } | |
23133 | +-- { dg-options "-O2 -gnatpn" } | |
23134 | + | |
23135 | with Ada.Characters.Handling; use Ada.Characters.Handling; | |
23136 | ||
23137 | package body Opt20 is | |
23138 | Index: gcc/testsuite/gnat.dg/opt20.ads | |
23139 | =================================================================== | |
9f95000d AM |
23140 | --- gcc/testsuite/gnat.dg/opt20.ads (.../tags/gcc_4_7_2_release) (wersja 192468) |
23141 | +++ gcc/testsuite/gnat.dg/opt20.ads (.../branches/gcc-4_7-branch) (wersja 192468) | |
5a87b929 AM |
23142 | @@ -1,6 +1,3 @@ |
23143 | --- { dg-do compile } | |
23144 | --- { dg-options "-O2 -gnatpn" } | |
23145 | - | |
23146 | with Opt20_Pkg; use Opt20_Pkg; | |
23147 | ||
23148 | package Opt20 is | |
23149 | Index: gcc/testsuite/gnat.dg/addr1.adb | |
23150 | =================================================================== | |
9f95000d AM |
23151 | --- gcc/testsuite/gnat.dg/addr1.adb (.../tags/gcc_4_7_2_release) (wersja 192468) |
23152 | +++ gcc/testsuite/gnat.dg/addr1.adb (.../branches/gcc-4_7-branch) (wersja 192468) | |
5a87b929 AM |
23153 | @@ -1,3 +1,5 @@ |
23154 | +-- { dg-do compile } | |
23155 | + | |
23156 | with System; | |
23157 | package body addr1 is | |
23158 | task type T is | |
23159 | Index: gcc/testsuite/gnat.dg/addr1.ads | |
23160 | =================================================================== | |
9f95000d AM |
23161 | --- gcc/testsuite/gnat.dg/addr1.ads (.../tags/gcc_4_7_2_release) (wersja 192468) |
23162 | +++ gcc/testsuite/gnat.dg/addr1.ads (.../branches/gcc-4_7-branch) (wersja 192468) | |
5a87b929 AM |
23163 | @@ -1,5 +1,3 @@ |
23164 | --- { dg-do compile } | |
23165 | - | |
23166 | package addr1 is | |
23167 | pragma Elaborate_Body; | |
23168 | end; | |
23169 | Index: gcc/testsuite/gnat.dg/discr23.ads | |
23170 | =================================================================== | |
9f95000d AM |
23171 | --- gcc/testsuite/gnat.dg/discr23.ads (.../tags/gcc_4_7_2_release) (wersja 192468) |
23172 | +++ gcc/testsuite/gnat.dg/discr23.ads (.../branches/gcc-4_7-branch) (wersja 192468) | |
5a87b929 AM |
23173 | @@ -1,5 +1,3 @@ |
23174 | --- { dg-do compile } | |
23175 | - | |
23176 | package Discr23 is | |
23177 | ||
23178 | procedure Dummy; | |
23179 | Index: gcc/testsuite/gnat.dg/concat2.adb | |
23180 | =================================================================== | |
9f95000d AM |
23181 | --- gcc/testsuite/gnat.dg/concat2.adb (.../tags/gcc_4_7_2_release) (wersja 192468) |
23182 | +++ gcc/testsuite/gnat.dg/concat2.adb (.../branches/gcc-4_7-branch) (wersja 192468) | |
5a87b929 AM |
23183 | @@ -1,3 +1,6 @@ |
23184 | +-- { dg-do compile } | |
23185 | +-- { dg-options "-O" } | |
23186 | + | |
23187 | with Text_IO; use Text_IO; | |
23188 | ||
23189 | package body Concat2 is | |
23190 | @@ -15,4 +18,3 @@ | |
23191 | end; | |
23192 | ||
23193 | end Concat2; | |
23194 | - | |
23195 | Index: gcc/testsuite/gnat.dg/concat2.ads | |
23196 | =================================================================== | |
9f95000d AM |
23197 | --- gcc/testsuite/gnat.dg/concat2.ads (.../tags/gcc_4_7_2_release) (wersja 192468) |
23198 | +++ gcc/testsuite/gnat.dg/concat2.ads (.../branches/gcc-4_7-branch) (wersja 192468) | |
5a87b929 AM |
23199 | @@ -1,6 +1,3 @@ |
23200 | --- { dg-do compile } | |
23201 | --- { dg-options "-O" } | |
23202 | - | |
23203 | package Concat2 is | |
23204 | ||
23205 | procedure Browse; | |
23206 | Index: gcc/testsuite/gnat.dg/vect8.adb | |
23207 | =================================================================== | |
9f95000d AM |
23208 | --- gcc/testsuite/gnat.dg/vect8.adb (.../tags/gcc_4_7_2_release) (wersja 192468) |
23209 | +++ gcc/testsuite/gnat.dg/vect8.adb (.../branches/gcc-4_7-branch) (wersja 192468) | |
5a87b929 AM |
23210 | @@ -1,3 +1,6 @@ |
23211 | +-- { dg-do compile } | |
23212 | +-- { dg-options "-w" } | |
23213 | + | |
23214 | package body Vect8 is | |
23215 | ||
23216 | function Foo (V : Vec) return Vec is | |
23217 | Index: gcc/testsuite/gnat.dg/vect8.ads | |
23218 | =================================================================== | |
9f95000d AM |
23219 | --- gcc/testsuite/gnat.dg/vect8.ads (.../tags/gcc_4_7_2_release) (wersja 192468) |
23220 | +++ gcc/testsuite/gnat.dg/vect8.ads (.../branches/gcc-4_7-branch) (wersja 192468) | |
5a87b929 AM |
23221 | @@ -1,5 +1,3 @@ |
23222 | --- { dg-do compile } | |
23223 | - | |
23224 | package Vect8 is | |
23225 | ||
23226 | type Vec is array (1 .. 2) of Long_Float; | |
23227 | Index: gcc/testsuite/gnat.dg/array16.adb | |
23228 | =================================================================== | |
9f95000d AM |
23229 | --- gcc/testsuite/gnat.dg/array16.adb (.../tags/gcc_4_7_2_release) (wersja 192468) |
23230 | +++ gcc/testsuite/gnat.dg/array16.adb (.../branches/gcc-4_7-branch) (wersja 192468) | |
5a87b929 AM |
23231 | @@ -1,3 +1,6 @@ |
23232 | +-- { dg-do compile } | |
23233 | +-- { dg-options "-O -gnatn -fdump-tree-optimized" } | |
23234 | + | |
23235 | package body Array16 is | |
23236 | ||
23237 | function F1 (A : access My_T1) return My_T1 is | |
23238 | @@ -20,3 +23,6 @@ | |
23239 | end; | |
23240 | ||
23241 | end Array16; | |
23242 | + | |
23243 | +-- { dg-final { scan-tree-dump-not "secondary_stack" "optimized" } } | |
23244 | +-- { dg-final { cleanup-tree-dump "optimized" } } | |
23245 | Index: gcc/testsuite/gnat.dg/array16.ads | |
23246 | =================================================================== | |
9f95000d AM |
23247 | --- gcc/testsuite/gnat.dg/array16.ads (.../tags/gcc_4_7_2_release) (wersja 192468) |
23248 | +++ gcc/testsuite/gnat.dg/array16.ads (.../branches/gcc-4_7-branch) (wersja 192468) | |
5a87b929 AM |
23249 | @@ -1,6 +1,3 @@ |
23250 | --- { dg-do compile } | |
23251 | --- { dg-options "-O -gnatn -fdump-tree-optimized" } | |
23252 | - | |
23253 | with Array16_Pkg; | |
23254 | ||
23255 | package Array16 is | |
23256 | @@ -26,6 +23,3 @@ | |
23257 | procedure Proc (A : access My_T1; B : access My_T2); | |
23258 | ||
23259 | end Array16; | |
23260 | - | |
23261 | --- { dg-final { scan-tree-dump-not "secondary_stack" "optimized" } } | |
23262 | --- { dg-final { cleanup-tree-dump "optimized" } } | |
23263 | Index: gcc/testsuite/gnat.dg/nested_float_packed.ads | |
23264 | =================================================================== | |
9f95000d AM |
23265 | --- gcc/testsuite/gnat.dg/nested_float_packed.ads (.../tags/gcc_4_7_2_release) (wersja 192468) |
23266 | +++ gcc/testsuite/gnat.dg/nested_float_packed.ads (.../branches/gcc-4_7-branch) (wersja 192468) | |
5a87b929 AM |
23267 | @@ -1,5 +1,3 @@ |
23268 | --- { dg-do compile } | |
23269 | - | |
23270 | package Nested_Float_Packed is | |
23271 | ||
23272 | type Float_Type is record | |
23273 | @@ -20,5 +18,3 @@ | |
23274 | Data_Block : array (Range_Type) | |
23275 | of Data_Type := (others => Default_Data); | |
23276 | end; | |
23277 | - | |
23278 | - | |
23279 | Index: gcc/testsuite/gnat.dg/lto15.adb | |
23280 | =================================================================== | |
9f95000d AM |
23281 | --- gcc/testsuite/gnat.dg/lto15.adb (.../tags/gcc_4_7_2_release) (wersja 192468) |
23282 | +++ gcc/testsuite/gnat.dg/lto15.adb (.../branches/gcc-4_7-branch) (wersja 192468) | |
5a87b929 AM |
23283 | @@ -1,5 +1,6 @@ |
23284 | -- { dg-do compile } | |
23285 | -- { dg-options "-O -flto -g" } | |
23286 | +-- { dg-require-effective-target lto } | |
23287 | ||
23288 | package body Lto15 is | |
23289 | ||
23290 | Index: gcc/testsuite/gnat.dg/specs/oconst6.ads | |
23291 | =================================================================== | |
23292 | --- gcc/testsuite/gnat.dg/specs/oconst6.ads (.../tags/gcc_4_7_2_release) (wersja 0) | |
9f95000d | 23293 | +++ gcc/testsuite/gnat.dg/specs/oconst6.ads (.../branches/gcc-4_7-branch) (wersja 192468) |
5a87b929 AM |
23294 | @@ -0,0 +1,18 @@ |
23295 | +-- { dg-do compile } | |
23296 | +-- { dg-final { scan-assembler-not "elabs" } } | |
23297 | + | |
23298 | +package OCONST6 is | |
23299 | + | |
23300 | + type Sequence is array (1 .. 1) of Natural; | |
23301 | + | |
23302 | + type Message is record | |
23303 | + Data : Sequence; | |
23304 | + end record; | |
23305 | + | |
23306 | + for Message'Alignment use 1; | |
23307 | + pragma PACK (Message); | |
23308 | + | |
23309 | + ACK : Message := (Data => (others => 1)); | |
23310 | + | |
23311 | +end; | |
23312 | + | |
23313 | Index: gcc/testsuite/gnat.dg/atomic5.adb | |
23314 | =================================================================== | |
9f95000d AM |
23315 | --- gcc/testsuite/gnat.dg/atomic5.adb (.../tags/gcc_4_7_2_release) (wersja 192468) |
23316 | +++ gcc/testsuite/gnat.dg/atomic5.adb (.../branches/gcc-4_7-branch) (wersja 192468) | |
5a87b929 AM |
23317 | @@ -1,3 +1,5 @@ |
23318 | +-- { dg-do compile } | |
23319 | + | |
23320 | package body Atomic5 is | |
23321 | ||
23322 | function Create return R is | |
23323 | Index: gcc/testsuite/gnat.dg/atomic5.ads | |
23324 | =================================================================== | |
9f95000d AM |
23325 | --- gcc/testsuite/gnat.dg/atomic5.ads (.../tags/gcc_4_7_2_release) (wersja 192468) |
23326 | +++ gcc/testsuite/gnat.dg/atomic5.ads (.../branches/gcc-4_7-branch) (wersja 192468) | |
5a87b929 AM |
23327 | @@ -1,5 +1,3 @@ |
23328 | --- { dg-do compile } | |
23329 | - | |
23330 | with Unchecked_Conversion; | |
23331 | ||
23332 | package Atomic5 is | |
23333 | Index: gcc/testsuite/gnat.dg/discr29.adb | |
23334 | =================================================================== | |
9f95000d AM |
23335 | --- gcc/testsuite/gnat.dg/discr29.adb (.../tags/gcc_4_7_2_release) (wersja 192468) |
23336 | +++ gcc/testsuite/gnat.dg/discr29.adb (.../branches/gcc-4_7-branch) (wersja 192468) | |
5a87b929 AM |
23337 | @@ -1,3 +1,5 @@ |
23338 | +-- { dg-do compile } | |
23339 | + | |
23340 | package body Discr29 is | |
23341 | ||
23342 | procedure Proc (R : out Rec3) is | |
23343 | Index: gcc/testsuite/gnat.dg/discr29.ads | |
23344 | =================================================================== | |
9f95000d AM |
23345 | --- gcc/testsuite/gnat.dg/discr29.ads (.../tags/gcc_4_7_2_release) (wersja 192468) |
23346 | +++ gcc/testsuite/gnat.dg/discr29.ads (.../branches/gcc-4_7-branch) (wersja 192468) | |
5a87b929 AM |
23347 | @@ -1,5 +1,3 @@ |
23348 | --- { dg-do compile } | |
23349 | - | |
23350 | package Discr29 is | |
23351 | ||
23352 | type Rec1 is record | |
23353 | Index: gcc/testsuite/gcc.dg/c90-const-expr-8.c | |
23354 | =================================================================== | |
9f95000d AM |
23355 | --- gcc/testsuite/gcc.dg/c90-const-expr-8.c (.../tags/gcc_4_7_2_release) (wersja 192468) |
23356 | +++ gcc/testsuite/gcc.dg/c90-const-expr-8.c (.../branches/gcc-4_7-branch) (wersja 192468) | |
5a87b929 AM |
23357 | @@ -22,6 +22,6 @@ |
23358 | E5 = 0 * -INT_MIN, /* { dg-warning "12:integer overflow in expression" } */ | |
23359 | /* { dg-error "3:overflow in constant expression" "constant" { target *-*-* } 22 } */ | |
23360 | E6 = 0 * !-INT_MIN, /* { dg-warning "13:integer overflow in expression" } */ | |
23361 | - /* { dg-error "3:not an integer constant" "constant" { target *-*-* } 24 } */ | |
23362 | + /* { dg-error "8:not an integer constant" "constant" { target *-*-* } 24 } */ | |
23363 | E7 = INT_MIN % -1 /* Not an overflow. */ | |
23364 | }; | |
23365 | Index: gcc/testsuite/gcc.dg/torture/pr53922.c | |
23366 | =================================================================== | |
9f95000d AM |
23367 | --- gcc/testsuite/gcc.dg/torture/pr53922.c (.../tags/gcc_4_7_2_release) (wersja 192468) |
23368 | +++ gcc/testsuite/gcc.dg/torture/pr53922.c (.../branches/gcc-4_7-branch) (wersja 192468) | |
5a87b929 AM |
23369 | @@ -1,5 +1,6 @@ |
23370 | /* { dg-do run } */ | |
23371 | /* { dg-require-weak "" } */ | |
23372 | +/* { dg-skip-if "No undefined weak" { hppa*-*-hpux* && { ! lp64 } } { "*" } { "" } } */ | |
23373 | ||
23374 | int x(int a) | |
23375 | { | |
23376 | Index: gcc/testsuite/gcc.dg/torture/pr54920.c | |
23377 | =================================================================== | |
23378 | --- gcc/testsuite/gcc.dg/torture/pr54920.c (.../tags/gcc_4_7_2_release) (wersja 0) | |
9f95000d | 23379 | +++ gcc/testsuite/gcc.dg/torture/pr54920.c (.../branches/gcc-4_7-branch) (wersja 192468) |
5a87b929 AM |
23380 | @@ -0,0 +1,13 @@ |
23381 | +/* { dg-do compile } */ | |
23382 | + | |
23383 | +typedef short __v8hi __attribute__ ((__vector_size__ (16))); | |
23384 | +typedef long long __m128i __attribute__ ((__vector_size__ (16))); | |
23385 | +int a; | |
23386 | +__m128i b; | |
23387 | + | |
23388 | +void | |
23389 | +fn1 () | |
23390 | +{ | |
23391 | + while (1) | |
23392 | + b = (__m128i) (__v8hi) { a, 0, 0, 0, 0, 0 }; | |
23393 | +} | |
23394 | Index: gcc/testsuite/gcc.dg/pr45259.c | |
23395 | =================================================================== | |
9f95000d AM |
23396 | --- gcc/testsuite/gcc.dg/pr45259.c (.../tags/gcc_4_7_2_release) (wersja 192468) |
23397 | +++ gcc/testsuite/gcc.dg/pr45259.c (.../branches/gcc-4_7-branch) (wersja 192468) | |
5a87b929 AM |
23398 | @@ -1,6 +1,7 @@ |
23399 | /* PR debug/45259 */ | |
23400 | /* { dg-do compile } */ | |
23401 | -/* { dg-options "-g -O2 -fpic -w" { target fpic } } */ | |
23402 | +/* { dg-options "-g -O2 -w -fpic" { target fpic } } */ | |
23403 | +/* { dg-options "-g -O2 -w" { target { ! fpic } } } */ | |
23404 | ||
23405 | struct S { void (*bar) (long); }; | |
23406 | struct T { struct S *t; }; | |
23407 | Index: gcc/testsuite/gcc.dg/vect/no-vfa-vect-79.c | |
23408 | =================================================================== | |
9f95000d AM |
23409 | --- gcc/testsuite/gcc.dg/vect/no-vfa-vect-79.c (.../tags/gcc_4_7_2_release) (wersja 192468) |
23410 | +++ gcc/testsuite/gcc.dg/vect/no-vfa-vect-79.c (.../branches/gcc-4_7-branch) (wersja 192468) | |
5a87b929 AM |
23411 | @@ -46,6 +46,6 @@ |
23412 | If/when the aliasing problems are resolved, unalignment may | |
23413 | prevent vectorization on some targets. */ | |
23414 | /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { xfail *-*-* } } } */ | |
23415 | -/* { dg-final { scan-tree-dump-times "can't determine dependence" 1 "vect" { xfail vect_multiple_sizes } } } */ | |
23416 | +/* { dg-final { scan-tree-dump-times "can't determine dependence" 1 "vect" { target { ! vect_multiple_sizes } } } } */ | |
23417 | /* { dg-final { scan-tree-dump-times "can't determine dependence" 2 "vect" { target vect_multiple_sizes } } } */ | |
23418 | /* { dg-final { cleanup-tree-dump "vect" } } */ | |
23419 | Index: gcc/testsuite/gcc.dg/vect/no-vfa-vect-102a.c | |
23420 | =================================================================== | |
9f95000d AM |
23421 | --- gcc/testsuite/gcc.dg/vect/no-vfa-vect-102a.c (.../tags/gcc_4_7_2_release) (wersja 192468) |
23422 | +++ gcc/testsuite/gcc.dg/vect/no-vfa-vect-102a.c (.../branches/gcc-4_7-branch) (wersja 192468) | |
5a87b929 AM |
23423 | @@ -53,7 +53,7 @@ |
23424 | } | |
23425 | ||
23426 | /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 0 "vect" } } */ | |
23427 | -/* { dg-final { scan-tree-dump-times "possible dependence between data-refs" 1 "vect" { xfail vect_multiple_sizes } } } */ | |
23428 | +/* { dg-final { scan-tree-dump-times "possible dependence between data-refs" 1 "vect" { target { ! vect_multiple_sizes } } } } */ | |
23429 | /* { dg-final { scan-tree-dump-times "possible dependence between data-refs" 2 "vect" { target vect_multiple_sizes } } } */ | |
23430 | /* { dg-final { cleanup-tree-dump "vect" } } */ | |
23431 | ||
23432 | Index: gcc/testsuite/gcc.dg/vect/vect-outer-3a-big-array.c | |
23433 | =================================================================== | |
9f95000d AM |
23434 | --- gcc/testsuite/gcc.dg/vect/vect-outer-3a-big-array.c (.../tags/gcc_4_7_2_release) (wersja 192468) |
23435 | +++ gcc/testsuite/gcc.dg/vect/vect-outer-3a-big-array.c (.../branches/gcc-4_7-branch) (wersja 192468) | |
5a87b929 AM |
23436 | @@ -49,6 +49,6 @@ |
23437 | } | |
23438 | ||
23439 | /* { dg-final { scan-tree-dump-times "OUTER LOOP VECTORIZED" 1 "vect" { xfail vect_no_align } } } */ | |
23440 | -/* { dg-final { scan-tree-dump-times "step doesn't divide the vector-size" 2 "vect" { xfail vect_multiple_sizes } } } */ | |
23441 | +/* { dg-final { scan-tree-dump-times "step doesn't divide the vector-size" 2 "vect" { target { ! vect_multiple_sizes } } } } */ | |
23442 | /* { dg-final { scan-tree-dump-times "step doesn't divide the vector-size" 3 "vect" { target vect_multiple_sizes } } } */ | |
23443 | /* { dg-final { cleanup-tree-dump "vect" } } */ | |
23444 | Index: gcc/testsuite/gcc.dg/vect/vect-outer-1a.c | |
23445 | =================================================================== | |
9f95000d AM |
23446 | --- gcc/testsuite/gcc.dg/vect/vect-outer-1a.c (.../tags/gcc_4_7_2_release) (wersja 192468) |
23447 | +++ gcc/testsuite/gcc.dg/vect/vect-outer-1a.c (.../branches/gcc-4_7-branch) (wersja 192468) | |
5a87b929 AM |
23448 | @@ -20,6 +20,6 @@ |
23449 | } | |
23450 | ||
23451 | /* { dg-final { scan-tree-dump-times "OUTER LOOP VECTORIZED" 1 "vect" { xfail *-*-* } } } */ | |
23452 | -/* { dg-final { scan-tree-dump-times "strided access in outer loop" 1 "vect" { xfail vect_multiple_sizes } } } */ | |
23453 | +/* { dg-final { scan-tree-dump-times "strided access in outer loop" 1 "vect" { target { ! vect_multiple_sizes } } } } */ | |
23454 | /* { dg-final { scan-tree-dump-times "strided access in outer loop" 2 "vect" { target vect_multiple_sizes } } } */ | |
23455 | /* { dg-final { cleanup-tree-dump "vect" } } */ | |
23456 | Index: gcc/testsuite/gcc.dg/vect/fast-math-pr35982.c | |
23457 | =================================================================== | |
9f95000d AM |
23458 | --- gcc/testsuite/gcc.dg/vect/fast-math-pr35982.c (.../tags/gcc_4_7_2_release) (wersja 192468) |
23459 | +++ gcc/testsuite/gcc.dg/vect/fast-math-pr35982.c (.../branches/gcc-4_7-branch) (wersja 192468) | |
5a87b929 AM |
23460 | @@ -21,5 +21,5 @@ |
23461 | } | |
23462 | ||
23463 | /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { target { vect_extract_even_odd || vect_strided2 } } } } */ | |
23464 | -/* { dg-final { scan-tree-dump-times "vectorized 0 loops" 1 "vect" { xfail { vect_extract_even_odd || vect_strided2 } } } } */ | |
23465 | +/* { dg-final { scan-tree-dump-times "vectorized 0 loops" 1 "vect" { target { ! { vect_extract_even_odd || vect_strided2 } } } } } */ | |
23466 | /* { dg-final { cleanup-tree-dump "vect" } } */ | |
23467 | Index: gcc/testsuite/gcc.dg/vect/vect-outer-1b.c | |
23468 | =================================================================== | |
9f95000d AM |
23469 | --- gcc/testsuite/gcc.dg/vect/vect-outer-1b.c (.../tags/gcc_4_7_2_release) (wersja 192468) |
23470 | +++ gcc/testsuite/gcc.dg/vect/vect-outer-1b.c (.../branches/gcc-4_7-branch) (wersja 192468) | |
5a87b929 AM |
23471 | @@ -22,6 +22,6 @@ |
23472 | } | |
23473 | ||
23474 | /* { dg-final { scan-tree-dump-times "OUTER LOOP VECTORIZED" 1 "vect" { xfail *-*-* } } } */ | |
23475 | -/* { dg-final { scan-tree-dump-times "strided access in outer loop" 1 "vect" { xfail vect_multiple_sizes } } } */ | |
23476 | +/* { dg-final { scan-tree-dump-times "strided access in outer loop" 1 "vect" { target { ! vect_multiple_sizes } } } } */ | |
23477 | /* { dg-final { scan-tree-dump-times "strided access in outer loop" 2 "vect" { target vect_multiple_sizes } } } */ | |
23478 | /* { dg-final { cleanup-tree-dump "vect" } } */ | |
23479 | Index: gcc/testsuite/gcc.dg/vect/vect-outer-1a-big-array.c | |
23480 | =================================================================== | |
9f95000d AM |
23481 | --- gcc/testsuite/gcc.dg/vect/vect-outer-1a-big-array.c (.../tags/gcc_4_7_2_release) (wersja 192468) |
23482 | +++ gcc/testsuite/gcc.dg/vect/vect-outer-1a-big-array.c (.../branches/gcc-4_7-branch) (wersja 192468) | |
5a87b929 AM |
23483 | @@ -20,6 +20,6 @@ |
23484 | } | |
23485 | ||
23486 | /* { dg-final { scan-tree-dump-times "OUTER LOOP VECTORIZED" 1 "vect" { xfail *-*-* } } } */ | |
23487 | -/* { dg-final { scan-tree-dump-times "strided access in outer loop" 1 "vect" { xfail vect_multiple_sizes } } } */ | |
23488 | +/* { dg-final { scan-tree-dump-times "strided access in outer loop" 1 "vect" { target { ! vect_multiple_sizes } } } } */ | |
23489 | /* { dg-final { scan-tree-dump-times "strided access in outer loop" 2 "vect" { target vect_multiple_sizes } } } */ | |
23490 | /* { dg-final { cleanup-tree-dump "vect" } } */ | |
23491 | Index: gcc/testsuite/gcc.dg/vect/vect-outer-2b.c | |
23492 | =================================================================== | |
9f95000d AM |
23493 | --- gcc/testsuite/gcc.dg/vect/vect-outer-2b.c (.../tags/gcc_4_7_2_release) (wersja 192468) |
23494 | +++ gcc/testsuite/gcc.dg/vect/vect-outer-2b.c (.../branches/gcc-4_7-branch) (wersja 192468) | |
5a87b929 AM |
23495 | @@ -37,6 +37,6 @@ |
23496 | return 0; | |
23497 | } | |
23498 | ||
23499 | -/* { dg-final { scan-tree-dump-times "strided access in outer loop" 1 "vect" { xfail vect_multiple_sizes } } } */ | |
23500 | +/* { dg-final { scan-tree-dump-times "strided access in outer loop" 1 "vect" { target { ! vect_multiple_sizes } } } } */ | |
23501 | /* { dg-final { scan-tree-dump-times "strided access in outer loop" 2 "vect" { target vect_multiple_sizes } } } */ | |
23502 | /* { dg-final { cleanup-tree-dump "vect" } } */ | |
23503 | Index: gcc/testsuite/gcc.dg/vect/vect-outer-3a.c | |
23504 | =================================================================== | |
9f95000d AM |
23505 | --- gcc/testsuite/gcc.dg/vect/vect-outer-3a.c (.../tags/gcc_4_7_2_release) (wersja 192468) |
23506 | +++ gcc/testsuite/gcc.dg/vect/vect-outer-3a.c (.../branches/gcc-4_7-branch) (wersja 192468) | |
5a87b929 AM |
23507 | @@ -49,6 +49,6 @@ |
23508 | } | |
23509 | ||
23510 | /* { dg-final { scan-tree-dump-times "OUTER LOOP VECTORIZED" 1 "vect" { xfail vect_no_align } } } */ | |
23511 | -/* { dg-final { scan-tree-dump-times "step doesn't divide the vector-size" 2 "vect" { xfail vect_multiple_sizes } } } */ | |
23512 | +/* { dg-final { scan-tree-dump-times "step doesn't divide the vector-size" 2 "vect" { target { ! vect_multiple_sizes } } } } */ | |
23513 | /* { dg-final { scan-tree-dump-times "step doesn't divide the vector-size" 3 "vect" { target vect_multiple_sizes } } } */ | |
23514 | /* { dg-final { cleanup-tree-dump "vect" } } */ | |
23515 | Index: gcc/testsuite/gcc.dg/vect/no-vfa-vect-37.c | |
23516 | =================================================================== | |
9f95000d AM |
23517 | --- gcc/testsuite/gcc.dg/vect/no-vfa-vect-37.c (.../tags/gcc_4_7_2_release) (wersja 192468) |
23518 | +++ gcc/testsuite/gcc.dg/vect/no-vfa-vect-37.c (.../branches/gcc-4_7-branch) (wersja 192468) | |
5a87b929 AM |
23519 | @@ -58,6 +58,6 @@ |
23520 | If/when the aliasing problems are resolved, unalignment may | |
23521 | prevent vectorization on some targets. */ | |
23522 | /* { dg-final { scan-tree-dump-times "vectorized 2 loops" 1 "vect" { xfail *-*-* } } } */ | |
23523 | -/* { dg-final { scan-tree-dump-times "can't determine dependence" 2 "vect" { xfail vect_multiple_sizes } } } */ | |
23524 | +/* { dg-final { scan-tree-dump-times "can't determine dependence" 2 "vect" { target { ! vect_multiple_sizes } } } } */ | |
23525 | /* { dg-final { scan-tree-dump-times "can't determine dependence" 4 "vect" { target vect_multiple_sizes } } } */ | |
23526 | /* { dg-final { cleanup-tree-dump "vect" } } */ | |
23527 | Index: gcc/testsuite/gcc.dg/vect/vect-outer-3b.c | |
23528 | =================================================================== | |
9f95000d AM |
23529 | --- gcc/testsuite/gcc.dg/vect/vect-outer-3b.c (.../tags/gcc_4_7_2_release) (wersja 192468) |
23530 | +++ gcc/testsuite/gcc.dg/vect/vect-outer-3b.c (.../branches/gcc-4_7-branch) (wersja 192468) | |
5a87b929 AM |
23531 | @@ -49,6 +49,6 @@ |
23532 | } | |
23533 | ||
23534 | /* { dg-final { scan-tree-dump-times "OUTER LOOP VECTORIZED" 1 "vect" { xfail *-*-* } } } */ | |
23535 | -/* { dg-final { scan-tree-dump-times "strided access in outer loop" 2 "vect" { xfail vect_multiple_sizes } } } */ | |
23536 | +/* { dg-final { scan-tree-dump-times "strided access in outer loop" 2 "vect" { target { ! vect_multiple_sizes } } } } */ | |
23537 | /* { dg-final { scan-tree-dump-times "strided access in outer loop" 4 "vect" { target vect_multiple_sizes } } } */ | |
23538 | /* { dg-final { cleanup-tree-dump "vect" } } */ | |
23539 | Index: gcc/testsuite/gcc.dg/vect/vect-outer-1-big-array.c | |
23540 | =================================================================== | |
9f95000d AM |
23541 | --- gcc/testsuite/gcc.dg/vect/vect-outer-1-big-array.c (.../tags/gcc_4_7_2_release) (wersja 192468) |
23542 | +++ gcc/testsuite/gcc.dg/vect/vect-outer-1-big-array.c (.../branches/gcc-4_7-branch) (wersja 192468) | |
5a87b929 AM |
23543 | @@ -22,6 +22,6 @@ |
23544 | } | |
23545 | ||
23546 | /* { dg-final { scan-tree-dump-times "OUTER LOOP VECTORIZED" 1 "vect" { xfail *-*-* } } } */ | |
23547 | -/* { dg-final { scan-tree-dump-times "strided access in outer loop" 1 "vect" { xfail vect_multiple_sizes } } } */ | |
23548 | +/* { dg-final { scan-tree-dump-times "strided access in outer loop" 1 "vect" { target { ! vect_multiple_sizes } } } } */ | |
23549 | /* { dg-final { scan-tree-dump-times "strided access in outer loop" 2 "vect" { target vect_multiple_sizes } } } */ | |
23550 | /* { dg-final { cleanup-tree-dump "vect" } } */ | |
23551 | Index: gcc/testsuite/gcc.dg/vect/no-vfa-vect-101.c | |
23552 | =================================================================== | |
9f95000d AM |
23553 | --- gcc/testsuite/gcc.dg/vect/no-vfa-vect-101.c (.../tags/gcc_4_7_2_release) (wersja 192468) |
23554 | +++ gcc/testsuite/gcc.dg/vect/no-vfa-vect-101.c (.../branches/gcc-4_7-branch) (wersja 192468) | |
5a87b929 AM |
23555 | @@ -45,7 +45,7 @@ |
23556 | } | |
23557 | ||
23558 | /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 0 "vect" } } */ | |
23559 | -/* { dg-final { scan-tree-dump-times "can't determine dependence" 1 "vect" { xfail vect_multiple_sizes } } } */ | |
23560 | +/* { dg-final { scan-tree-dump-times "can't determine dependence" 1 "vect" { target { ! vect_multiple_sizes } } } } */ | |
23561 | /* { dg-final { scan-tree-dump-times "can't determine dependence" 2 "vect" { target vect_multiple_sizes } } } */ | |
23562 | /* { dg-final { cleanup-tree-dump "vect" } } */ | |
23563 | ||
23564 | Index: gcc/testsuite/gcc.dg/vect/no-vfa-vect-102.c | |
23565 | =================================================================== | |
9f95000d AM |
23566 | --- gcc/testsuite/gcc.dg/vect/no-vfa-vect-102.c (.../tags/gcc_4_7_2_release) (wersja 192468) |
23567 | +++ gcc/testsuite/gcc.dg/vect/no-vfa-vect-102.c (.../branches/gcc-4_7-branch) (wersja 192468) | |
5a87b929 AM |
23568 | @@ -53,7 +53,7 @@ |
23569 | } | |
23570 | ||
23571 | /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 0 "vect" } } */ | |
23572 | -/* { dg-final { scan-tree-dump-times "possible dependence between data-refs" 1 "vect" { xfail vect_multiple_sizes } } } */ | |
23573 | +/* { dg-final { scan-tree-dump-times "possible dependence between data-refs" 1 "vect" { target { ! vect_multiple_sizes } } } } */ | |
23574 | /* { dg-final { scan-tree-dump-times "possible dependence between data-refs" 2 "vect" { target vect_multiple_sizes } } } */ | |
23575 | /* { dg-final { cleanup-tree-dump "vect" } } */ | |
23576 | ||
23577 | Index: gcc/testsuite/gcc.dg/vect/vect-reduc-dot-s8b.c | |
23578 | =================================================================== | |
9f95000d AM |
23579 | --- gcc/testsuite/gcc.dg/vect/vect-reduc-dot-s8b.c (.../tags/gcc_4_7_2_release) (wersja 192468) |
23580 | +++ gcc/testsuite/gcc.dg/vect/vect-reduc-dot-s8b.c (.../branches/gcc-4_7-branch) (wersja 192468) | |
5a87b929 AM |
23581 | @@ -58,7 +58,7 @@ |
23582 | } | |
23583 | ||
23584 | /* { dg-final { scan-tree-dump-times "vect_recog_dot_prod_pattern: detected" 1 "vect" { xfail *-*-* } } } */ | |
23585 | -/* { dg-final { scan-tree-dump-times "vect_recog_widen_mult_pattern: detected" 1 "vect" { xfail vect_multiple_sizes } } } */ | |
23586 | +/* { dg-final { scan-tree-dump-times "vect_recog_widen_mult_pattern: detected" 1 "vect" { target { ! vect_multiple_sizes } } } } */ | |
23587 | /* { dg-final { scan-tree-dump-times "vect_recog_widen_mult_pattern: detected" 2 "vect" { target vect_multiple_sizes } } } */ | |
23588 | ||
23589 | /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { xfail *-*-* } } } */ | |
23590 | Index: gcc/testsuite/gcc.dg/vect/pr52298.c | |
23591 | =================================================================== | |
9f95000d AM |
23592 | --- gcc/testsuite/gcc.dg/vect/pr52298.c (.../tags/gcc_4_7_2_release) (wersja 192468) |
23593 | +++ gcc/testsuite/gcc.dg/vect/pr52298.c (.../branches/gcc-4_7-branch) (wersja 192468) | |
5a87b929 AM |
23594 | @@ -1,4 +1,3 @@ |
23595 | -/* { dg-do run } */ | |
23596 | /* { dg-options "-O1 -ftree-vectorize -fno-tree-pre -fno-tree-loop-im" } */ | |
23597 | ||
23598 | extern void abort (void); | |
23599 | Index: gcc/testsuite/gcc.dg/vect/vect-outer-1.c | |
23600 | =================================================================== | |
9f95000d AM |
23601 | --- gcc/testsuite/gcc.dg/vect/vect-outer-1.c (.../tags/gcc_4_7_2_release) (wersja 192468) |
23602 | +++ gcc/testsuite/gcc.dg/vect/vect-outer-1.c (.../branches/gcc-4_7-branch) (wersja 192468) | |
5a87b929 AM |
23603 | @@ -22,6 +22,6 @@ |
23604 | } | |
23605 | ||
23606 | /* { dg-final { scan-tree-dump-times "OUTER LOOP VECTORIZED" 1 "vect" { xfail *-*-* } } } */ | |
23607 | -/* { dg-final { scan-tree-dump-times "strided access in outer loop" 1 "vect" { xfail vect_multiple_sizes } } } */ | |
23608 | +/* { dg-final { scan-tree-dump-times "strided access in outer loop" 1 "vect" { target { ! vect_multiple_sizes } } } } */ | |
23609 | /* { dg-final { scan-tree-dump-times "strided access in outer loop" 2 "vect" { target vect_multiple_sizes } } } */ | |
23610 | /* { dg-final { cleanup-tree-dump "vect" } } */ | |
23611 | Index: gcc/testsuite/gcc.dg/vect/vect-outer-1b-big-array.c | |
23612 | =================================================================== | |
9f95000d AM |
23613 | --- gcc/testsuite/gcc.dg/vect/vect-outer-1b-big-array.c (.../tags/gcc_4_7_2_release) (wersja 192468) |
23614 | +++ gcc/testsuite/gcc.dg/vect/vect-outer-1b-big-array.c (.../branches/gcc-4_7-branch) (wersja 192468) | |
5a87b929 AM |
23615 | @@ -22,6 +22,6 @@ |
23616 | } | |
23617 | ||
23618 | /* { dg-final { scan-tree-dump-times "OUTER LOOP VECTORIZED" 1 "vect" { xfail *-*-* } } } */ | |
23619 | -/* { dg-final { scan-tree-dump-times "strided access in outer loop" 1 "vect" { xfail vect_multiple_sizes } } } */ | |
23620 | +/* { dg-final { scan-tree-dump-times "strided access in outer loop" 1 "vect" { target { ! vect_multiple_sizes } } } } */ | |
23621 | /* { dg-final { scan-tree-dump-times "strided access in outer loop" 2 "vect" { target vect_multiple_sizes } } } */ | |
23622 | /* { dg-final { cleanup-tree-dump "vect" } } */ | |
23623 | Index: gcc/testsuite/gcc.dg/vect/vect-104.c | |
23624 | =================================================================== | |
9f95000d AM |
23625 | --- gcc/testsuite/gcc.dg/vect/vect-104.c (.../tags/gcc_4_7_2_release) (wersja 192468) |
23626 | +++ gcc/testsuite/gcc.dg/vect/vect-104.c (.../branches/gcc-4_7-branch) (wersja 192468) | |
5a87b929 AM |
23627 | @@ -64,7 +64,7 @@ |
23628 | } | |
23629 | ||
23630 | /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 0 "vect" } } */ | |
23631 | -/* { dg-final { scan-tree-dump-times "possible dependence between data-refs" 1 "vect" { xfail vect_multiple_sizes } } } */ | |
23632 | +/* { dg-final { scan-tree-dump-times "possible dependence between data-refs" 1 "vect" { target { ! vect_multiple_sizes } } } } */ | |
23633 | /* { dg-final { scan-tree-dump-times "possible dependence between data-refs" 2 "vect" { target vect_multiple_sizes } } } */ | |
23634 | /* { dg-final { cleanup-tree-dump "vect" } } */ | |
23635 | ||
23636 | Index: gcc/testsuite/ChangeLog | |
23637 | =================================================================== | |
9f95000d AM |
23638 | --- gcc/testsuite/ChangeLog (.../tags/gcc_4_7_2_release) (wersja 192468) |
23639 | +++ gcc/testsuite/ChangeLog (.../branches/gcc-4_7-branch) (wersja 192468) | |
5a87b929 AM |
23640 | @@ -1,3 +1,147 @@ |
23641 | +2012-10-15 Richard Guenther <rguenther@suse.de> | |
23642 | + | |
23643 | + PR tree-optimization/54920 | |
23644 | + * gcc.dg/torture/pr54920.c: New testcase. | |
23645 | + | |
23646 | +2012-10-14 Janus Weil <janus@gcc.gnu.org> | |
23647 | + | |
23648 | + PR fortran/54784 | |
23649 | + * gfortran.dg/class_allocate_13.f90: New. | |
23650 | + | |
23651 | +2012-10-08 Terry Guo <terry.guo@arm.com> | |
23652 | + | |
23653 | + Backported from mainline | |
23654 | + 2012-09-19 Terry Guo <terry.guo@arm.com> | |
23655 | + | |
23656 | + * lib/gcc-dg.exp (dg_runtest_extra_prunes): New variable to define | |
23657 | + extra prune rules that will be applied to all tests in a .exp file. | |
23658 | + (gcc-dg-prune): Use rules defined by the above variable. | |
23659 | + * gcc.target/arm/arm.exp (dg_runtest_extra_prunes): Skip all the | |
23660 | + harmless warnings on architecture switch conflict. | |
23661 | + | |
23662 | +2012-10-08 Jakub Jelinek <jakub@redhat.com> | |
23663 | + | |
23664 | + PR c++/54858 | |
23665 | + * g++.dg/template/pr54858.C: New test. | |
23666 | + | |
23667 | +2012-10-05 Jakub Jelinek <jakub@redhat.com> | |
23668 | + | |
23669 | + PR tree-optimization/33763 | |
23670 | + * c-c++-common/pr33763.c: New test. | |
23671 | + | |
23672 | +2012-10-03 Jakub Jelinek <jakub@redhat.com> | |
23673 | + | |
23674 | + PR c++/54777 | |
23675 | + * g++.dg/cpp0x/constexpr-ref4.C: New test. | |
23676 | + | |
23677 | +2012-09-30 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> | |
23678 | + | |
23679 | + PR target/54083 | |
23680 | + * gcc.dg/torture/pr53922.c: Skip on 32-bit hppa-*-hpux*. | |
23681 | + | |
23682 | +2012-09-27 Jakub Jelinek <jakub@redhat.com> | |
23683 | + | |
23684 | + PR target/54703 | |
23685 | + * gcc.target/i386/pr54703.c: New test. | |
23686 | + | |
23687 | +2012-09-24 Janis Johnson <janisjo@codesourcery.com> | |
23688 | + | |
23689 | + Backport from mainline: | |
23690 | + | |
23691 | + 2012-07-24 Janis Johnson <janisjo@codesourcery.com> | |
23692 | + * lib/gcc-dg.exp (process-message): Don't ignore errors. | |
23693 | + | |
23694 | + 2012-07-25 Janis Johnson <janisjo@codesourcery.com> | |
23695 | + * g++.dg/cpp0x/nullptr21.c: Remove printfs, make self-checking. | |
23696 | + | |
23697 | + 2012-07-26 Janis Johnson <janisjo@codesourcery.com> | |
23698 | + * gcc.dg/pr45259.c: Only -fpic depends on fpic support. | |
23699 | + | |
23700 | + 2012-09-18 Janis Johnson <janisjo@codesourcery.com> | |
23701 | + * gcc.dg/vect/pr52298.c: Remove "dg-do run". | |
23702 | + | |
23703 | + 2012-09-18 Janis Johnson <janisjo@codesourcery.com> | |
23704 | + * lib/target-supports.exp | |
23705 | + (check_effective_target_vect_widen_mult_qi_to_hi, | |
23706 | + check_effective_target_vect_widen_mult_hi_to_si, | |
23707 | + check_effective_target_vect_widen_mult_qi_to_hi_pattern, | |
23708 | + check_effective_target_vect_widen_mult_hi_to_si_pattern, | |
23709 | + check_effective_target_vect_pack_trunc, | |
23710 | + check_effective_target_vect_unpack, | |
23711 | + check_effective_target_vect_multiple_sizes): Check arm_neon_ok | |
23712 | + instead of arm_none. | |
23713 | + | |
23714 | + 2012-09-18 Janis Johnson <janisjo@codesourcery.com> | |
23715 | + * gcc.dg/vect/no-vfa-vect-101.c: Skip a check for an irrelevant | |
23716 | + target instead of xfailing it. | |
23717 | + * gcc.dg/vect/no-vfa-vect-102.c: Likewise. | |
23718 | + * gcc.dg/vect/no-vfa-vect-102a.c: Likewise. | |
23719 | + * gcc.dg/vect/no-vfa-vect-37.c: Likewise. | |
23720 | + * gcc.dg/vect/no-vfa-vect-79.c: Likewise. | |
23721 | + * gcc.dg/vect/vect-104.c: Likewise. | |
23722 | + * gcc.dg/vect/vect-outer-1-big-array.c: Likewise. | |
23723 | + * gcc.dg/vect/vect-outer-1.c: Likewise. | |
23724 | + * gcc.dg/vect/vect-outer-1a-big-array.c: Likewise. | |
23725 | + * gcc.dg/vect/vect-outer-1a.c: Likewise. | |
23726 | + * gcc.dg/vect/vect-outer-1b-big-array.c: Likewise. | |
23727 | + * gcc.dg/vect/vect-outer-1b.c: Likewise. | |
23728 | + * gcc.dg/vect/vect-outer-2b.c: Likewise. | |
23729 | + * gcc.dg/vect/vect-outer-3a-big-array.c: Likewise. | |
23730 | + * gcc.dg/vect/vect-outer-3a.c: Likewise. | |
23731 | + * gcc.dg/vect/vect-outer-3b.c: Likewise. | |
23732 | + * gcc.dg/vect/vect-reduc-dot-s8b.c: Likewise. | |
23733 | + | |
23734 | + 2012-09-18 Janis Johnson <janisjo@codesourcery.com> | |
23735 | + * gcc.dg/vect/fast-math-pr35982.c: Skip check instead of xfail. | |
23736 | + | |
23737 | +2012-09-22 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> | |
23738 | + | |
23739 | + Backport from mainline: | |
23740 | + 2012-09-16 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> | |
23741 | + | |
23742 | + PR testsuite/54007 | |
23743 | + * gnat.dg/lto15.adb: Require lto. | |
23744 | + | |
23745 | +2012-09-20 Eric Botcazou <ebotcazou@adacore.com> | |
23746 | + | |
23747 | + * gnat.dg/opt20.ads: Move dg directive to... | |
23748 | + * gnat.dg/opt20.adb: ...here. | |
23749 | + * gnat.dg/addr1.ad[sb]: Likewise. | |
23750 | + * gnat.dg/concat2.ad[sb]: Likewise. | |
23751 | + * gnat.dg/array16.ad[sb]: Likewise. | |
23752 | + * gnat.dg/atomic5.ad[sb]: Likewise. | |
23753 | + * gnat.dg/discr29.ad[sb]: Likewise. | |
23754 | + * gnat.dg/noreturn5.ad[sb]: Likewise. | |
23755 | + * gnat.dg/vect8.ad[sb]: Likewise. Add dg-options. | |
23756 | + * gnat.dg/discr23.ads: Remove dg directive. | |
23757 | + * gnat.dg/nested_float_packed.ads: Likewise. | |
23758 | + * gnat.dg/oconst6.ads: Move to... | |
23759 | + * gnat.dg/specs/oconst6.ads: ...here. | |
23760 | + | |
23761 | +2012-09-20 Joseph Myers <joseph@codesourcery.com> | |
23762 | + | |
23763 | + PR c/54552 | |
23764 | + * gcc.c-torture/compile/pr54552-1.c: New test. | |
23765 | + | |
23766 | +2012-09-20 Joseph Myers <joseph@codesourcery.com> | |
23767 | + | |
23768 | + PR c/54103 | |
23769 | + * gcc.c-torture/compile/pr54103-1.c, | |
23770 | + gcc.c-torture/compile/pr54103-2.c, | |
23771 | + gcc.c-torture/compile/pr54103-3.c, | |
23772 | + gcc.c-torture/compile/pr54103-4.c, | |
23773 | + gcc.c-torture/compile/pr54103-5.c, | |
23774 | + gcc.c-torture/compile/pr54103-6.c: New tests. | |
23775 | + * gcc.dg/c90-const-expr-8.c: Update expected column number. | |
23776 | + | |
23777 | +2012-09-20 Jakub Jelinek <jakub@redhat.com> | |
23778 | + | |
23779 | + Backported from mainline | |
23780 | + 2012-09-17 Jakub Jelinek <jakub@redhat.com> | |
23781 | + | |
23782 | + PR tree-optimization/54563 | |
23783 | + * g++.dg/torture/pr54563.C: New test. | |
23784 | + | |
23785 | 2012-09-20 Release Manager | |
23786 | ||
23787 | * GCC 4.7.2 released. | |
23788 | Index: gcc/testsuite/g++.dg/cpp0x/nullptr21.C | |
23789 | =================================================================== | |
9f95000d AM |
23790 | --- gcc/testsuite/g++.dg/cpp0x/nullptr21.C (.../tags/gcc_4_7_2_release) (wersja 192468) |
23791 | +++ gcc/testsuite/g++.dg/cpp0x/nullptr21.C (.../branches/gcc-4_7-branch) (wersja 192468) | |
5a87b929 AM |
23792 | @@ -3,42 +3,53 @@ |
23793 | ||
23794 | // Test throw and catch | |
23795 | ||
23796 | -#include <cstdio> | |
23797 | +extern "C" void abort (void); | |
23798 | ||
23799 | typedef decltype(nullptr) nullptr_t; | |
23800 | ||
23801 | +int result[2]; | |
23802 | + | |
23803 | +void __attribute__((noinline)) | |
23804 | +foo (int i, int j) | |
23805 | +{ | |
23806 | + result[i] = j; | |
23807 | +} | |
23808 | + | |
23809 | int main() | |
23810 | { | |
23811 | try { | |
23812 | throw nullptr; | |
23813 | } catch (void*) { | |
23814 | - printf("Test 1 Fail"); | |
23815 | + foo (0, 1); | |
23816 | } catch (bool) { | |
23817 | - printf("Test 1 Fail"); | |
23818 | + foo (0, 2); | |
23819 | } catch (int) { | |
23820 | - printf("Test 1 Fail"); | |
23821 | + foo (0, 3); | |
23822 | } catch (long int) { | |
23823 | - printf("Test 1 Fail"); | |
23824 | + foo (0, 4); | |
23825 | } catch (nullptr_t) { | |
23826 | - printf("Test 1 OK"); | |
23827 | + foo (0, 5); | |
23828 | } catch (...) { | |
23829 | - printf("Test 1 Fail"); | |
23830 | - } // { dg-output "Test 1 OK" } | |
23831 | + foo (0, 6); | |
23832 | + } | |
23833 | ||
23834 | nullptr_t mynull = 0; | |
23835 | try { | |
23836 | throw mynull; | |
23837 | } catch (void*) { | |
23838 | - printf("Test 2 Fail"); | |
23839 | + foo (1, 1); | |
23840 | } catch (bool) { | |
23841 | - printf("Test 2 Fail"); | |
23842 | + foo (1, 2); | |
23843 | } catch (int) { | |
23844 | - printf("Test 2 Fail"); | |
23845 | + foo (1, 3); | |
23846 | } catch (long int) { | |
23847 | - printf("Test 2 Fail"); | |
23848 | + foo (1, 4); | |
23849 | } catch (nullptr_t) { | |
23850 | - printf("Test 2 OK"); | |
23851 | + foo (1, 5); | |
23852 | } catch (...) { | |
23853 | - printf("Test 2 Fail"); | |
23854 | - } // { dg-output "Test 2 OK" } | |
23855 | + foo (1, 6); | |
23856 | + } | |
23857 | + | |
23858 | + if (result[0] != 5 || result[1] != 5) | |
23859 | + abort (); | |
23860 | } | |
23861 | Index: gcc/testsuite/g++.dg/cpp0x/constexpr-ref4.C | |
23862 | =================================================================== | |
23863 | --- gcc/testsuite/g++.dg/cpp0x/constexpr-ref4.C (.../tags/gcc_4_7_2_release) (wersja 0) | |
9f95000d | 23864 | +++ gcc/testsuite/g++.dg/cpp0x/constexpr-ref4.C (.../branches/gcc-4_7-branch) (wersja 192468) |
5a87b929 AM |
23865 | @@ -0,0 +1,18 @@ |
23866 | +// PR c++/54777 | |
23867 | +// { dg-options -std=c++0x } | |
23868 | + | |
23869 | +struct S | |
23870 | +{ | |
23871 | + int s[1]; | |
23872 | + constexpr const int &foo (unsigned i) { return (i < 1 ? 0 : throw 1), s[i]; } | |
23873 | + constexpr const int &bar (unsigned i) { return i < 1 ? s[i] : (throw 0, s[i]); } | |
23874 | +}; | |
23875 | + | |
23876 | +int | |
23877 | +main () | |
23878 | +{ | |
23879 | + constexpr S a {}; | |
23880 | + constexpr int i = a.foo (0); | |
23881 | + constexpr int j = a.bar (0); | |
23882 | + static_assert (i == j, "Ouch"); | |
23883 | +} | |
23884 | Index: gcc/testsuite/g++.dg/torture/pr54563.C | |
23885 | =================================================================== | |
23886 | --- gcc/testsuite/g++.dg/torture/pr54563.C (.../tags/gcc_4_7_2_release) (wersja 0) | |
9f95000d | 23887 | +++ gcc/testsuite/g++.dg/torture/pr54563.C (.../branches/gcc-4_7-branch) (wersja 192468) |
5a87b929 AM |
23888 | @@ -0,0 +1,14 @@ |
23889 | +// PR tree-optimization/54563 | |
23890 | +// { dg-do compile } | |
23891 | + | |
23892 | +extern "C" float powf (float, float); | |
23893 | +struct S { ~S (); }; | |
23894 | +double bar (); | |
23895 | +double x; | |
23896 | + | |
23897 | +void | |
23898 | +foo () | |
23899 | +{ | |
23900 | + S s; | |
23901 | + x = powf (bar (), 2.); | |
23902 | +} | |
23903 | Index: gcc/testsuite/g++.dg/template/pr54858.C | |
23904 | =================================================================== | |
23905 | --- gcc/testsuite/g++.dg/template/pr54858.C (.../tags/gcc_4_7_2_release) (wersja 0) | |
9f95000d | 23906 | +++ gcc/testsuite/g++.dg/template/pr54858.C (.../branches/gcc-4_7-branch) (wersja 192468) |
5a87b929 AM |
23907 | @@ -0,0 +1,21 @@ |
23908 | +// PR c++/54858 | |
23909 | +// { dg-do compile } | |
23910 | + | |
23911 | +template <int> struct A {}; | |
23912 | +template <typename T, T *> struct B {}; | |
23913 | +template <typename D> struct C | |
23914 | +{ | |
23915 | + A<0> c0; B<A<0>, &C::c0> d0; // { dg-error "could not convert template argument" } | |
23916 | + A<0> c1; B<A<0>, &C::c1> d1; // { dg-error "could not convert template argument" } | |
23917 | + A<0> c2; B<A<0>, &C::c2> d2; // { dg-error "could not convert template argument" } | |
23918 | + A<0> c3; B<A<0>, &C::c3> d3; // { dg-error "could not convert template argument" } | |
23919 | + A<0> c4; B<A<0>, &C::c4> d4; // { dg-error "could not convert template argument" } | |
23920 | + A<0> c5; B<A<0>, &C::c5> d5; // { dg-error "could not convert template argument" } | |
23921 | + A<0> c6; B<A<0>, &C::c6> d6; // { dg-error "could not convert template argument" } | |
23922 | + A<0> c7; B<A<0>, &C::c7> d7; // { dg-error "could not convert template argument" } | |
23923 | + A<0> c8; B<A<0>, &C::c8> d8; // { dg-error "could not convert template argument" } | |
23924 | + A<0> c9; B<A<0>, &C::c9> d9; // { dg-error "could not convert template argument" } | |
23925 | + A<0> ca; B<A<0>, &C::ca> da; // { dg-error "could not convert template argument" } | |
23926 | + A<0> cb; B<A<0>, &C::cb> db; // { dg-error "could not convert template argument" } | |
23927 | +}; | |
23928 | +C<int> e; | |
23929 | Index: gcc/testsuite/c-c++-common/pr33763.c | |
23930 | =================================================================== | |
23931 | --- gcc/testsuite/c-c++-common/pr33763.c (.../tags/gcc_4_7_2_release) (wersja 0) | |
9f95000d | 23932 | +++ gcc/testsuite/c-c++-common/pr33763.c (.../branches/gcc-4_7-branch) (wersja 192468) |
5a87b929 AM |
23933 | @@ -0,0 +1,60 @@ |
23934 | +/* PR tree-optimization/33763 */ | |
23935 | +/* { dg-do compile } */ | |
23936 | +/* { dg-options "-O2" } */ | |
23937 | + | |
23938 | +typedef struct | |
23939 | +{ | |
23940 | + void *a; | |
23941 | + void *b; | |
23942 | +} T; | |
23943 | +extern void *foo (const char *, const char *); | |
23944 | +extern void *bar (void *, const char *, T); | |
23945 | +extern int baz (const char *, int); | |
23946 | + | |
23947 | +extern inline __attribute__ ((always_inline, gnu_inline)) int | |
23948 | +baz (const char *x, int y) | |
23949 | +{ | |
23950 | + return 2; | |
23951 | +} | |
23952 | + | |
23953 | +int | |
23954 | +baz (const char *x, int y) | |
23955 | +{ | |
23956 | + return 1; | |
23957 | +} | |
23958 | + | |
23959 | +int xa, xb; | |
23960 | + | |
23961 | +static void * | |
23962 | +inl (const char *x, const char *y) | |
23963 | +{ | |
23964 | + T t = { &xa, &xb }; | |
23965 | + int *f = (int *) __builtin_malloc (sizeof (int)); | |
23966 | + const char *z; | |
23967 | + int o = 0; | |
23968 | + void *r = 0; | |
23969 | + | |
23970 | + for (z = y; *z; z++) | |
23971 | + { | |
23972 | + if (*z == 'r') | |
23973 | + o |= 1; | |
23974 | + if (*z == 'w') | |
23975 | + o |= 2; | |
23976 | + } | |
23977 | + if (o == 1) | |
23978 | + *f = baz (x, 0); | |
23979 | + if (o == 2) | |
23980 | + *f = baz (x, 1); | |
23981 | + if (o == 3) | |
23982 | + *f = baz (x, 2); | |
23983 | + | |
23984 | + if (o && *f > 0) | |
23985 | + r = bar (f, "w", t); | |
23986 | + return r; | |
23987 | +} | |
23988 | + | |
23989 | +void * | |
23990 | +foo (const char *x, const char *y) | |
23991 | +{ | |
23992 | + return inl (x, y); | |
23993 | +} | |
23994 | Index: gcc/cp/tree.c | |
23995 | =================================================================== | |
9f95000d AM |
23996 | --- gcc/cp/tree.c (.../tags/gcc_4_7_2_release) (wersja 192468) |
23997 | +++ gcc/cp/tree.c (.../branches/gcc-4_7-branch) (wersja 192468) | |
5a87b929 AM |
23998 | @@ -1,7 +1,7 @@ |
23999 | /* Language-dependent node constructors for parse phase of GNU compiler. | |
24000 | Copyright (C) 1987, 1988, 1992, 1993, 1994, 1995, 1996, 1997, 1998, | |
24001 | - 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2007, 2008, 2009, 2010, 2011 | |
24002 | - Free Software Foundation, Inc. | |
24003 | + 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2007, 2008, 2009, 2010, 2011, | |
24004 | + 2012 Free Software Foundation, Inc. | |
24005 | Hacked by Michael Tiemann (tiemann@cygnus.com) | |
24006 | ||
24007 | This file is part of GCC. | |
24008 | @@ -2366,6 +2366,7 @@ | |
24009 | ||
24010 | case VAR_DECL: | |
24011 | case CONST_DECL: | |
24012 | + case FIELD_DECL: | |
24013 | case FUNCTION_DECL: | |
24014 | case TEMPLATE_DECL: | |
24015 | case IDENTIFIER_NODE: | |
24016 | Index: gcc/cp/ChangeLog | |
24017 | =================================================================== | |
9f95000d AM |
24018 | --- gcc/cp/ChangeLog (.../tags/gcc_4_7_2_release) (wersja 192468) |
24019 | +++ gcc/cp/ChangeLog (.../branches/gcc-4_7-branch) (wersja 192468) | |
5a87b929 AM |
24020 | @@ -1,3 +1,15 @@ |
24021 | +2012-10-08 Jakub Jelinek <jakub@redhat.com> | |
24022 | + | |
24023 | + PR c++/54858 | |
24024 | + * tree.c (cp_tree_equal): Handle FIELD_DECL. | |
24025 | + | |
24026 | +2012-10-03 Jakub Jelinek <jakub@redhat.com> | |
24027 | + | |
24028 | + PR c++/54777 | |
24029 | + * semantics.c (cxx_eval_constant_expression) <case COMPOUND_EXPR>: If | |
24030 | + not ignoring the second operand, pass the original second operand | |
24031 | + and not one with stripped nops to cxx_eval_constant_expression. | |
24032 | + | |
24033 | 2012-09-20 Release Manager | |
24034 | ||
24035 | * GCC 4.7.2 released. | |
24036 | Index: gcc/cp/semantics.c | |
24037 | =================================================================== | |
9f95000d AM |
24038 | --- gcc/cp/semantics.c (.../tags/gcc_4_7_2_release) (wersja 192468) |
24039 | +++ gcc/cp/semantics.c (.../branches/gcc-4_7-branch) (wersja 192468) | |
5a87b929 AM |
24040 | @@ -7682,6 +7682,7 @@ |
24041 | /* Check that the LHS is constant and then discard it. */ | |
24042 | cxx_eval_constant_expression (call, op0, allow_non_constant, | |
24043 | false, non_constant_p); | |
24044 | + op1 = TREE_OPERAND (t, 1); | |
24045 | r = cxx_eval_constant_expression (call, op1, allow_non_constant, | |
24046 | addr, non_constant_p); | |
24047 | } | |
24048 | Index: gcc/ira-int.h | |
24049 | =================================================================== | |
9f95000d AM |
24050 | --- gcc/ira-int.h (.../tags/gcc_4_7_2_release) (wersja 192468) |
24051 | +++ gcc/ira-int.h (.../branches/gcc-4_7-branch) (wersja 192468) | |
5a87b929 AM |
24052 | @@ -1138,8 +1138,13 @@ |
24053 | ira_allocno_object_iter_cond (ira_allocno_object_iterator *i, ira_allocno_t a, | |
24054 | ira_object_t *o) | |
24055 | { | |
24056 | - *o = ALLOCNO_OBJECT (a, i->n); | |
24057 | - return i->n++ < ALLOCNO_NUM_OBJECTS (a); | |
24058 | + int n = i->n++; | |
24059 | + if (n < ALLOCNO_NUM_OBJECTS (a)) | |
24060 | + { | |
24061 | + *o = ALLOCNO_OBJECT (a, n); | |
24062 | + return true; | |
24063 | + } | |
24064 | + return false; | |
24065 | } | |
24066 | ||
24067 | /* Loop over all objects associated with allocno A. In each | |
24068 | Index: gcc/tree-ssa-math-opts.c | |
24069 | =================================================================== | |
9f95000d AM |
24070 | --- gcc/tree-ssa-math-opts.c (.../tags/gcc_4_7_2_release) (wersja 192468) |
24071 | +++ gcc/tree-ssa-math-opts.c (.../branches/gcc-4_7-branch) (wersja 192468) | |
5a87b929 AM |
24072 | @@ -1,5 +1,5 @@ |
24073 | /* Global, SSA-based optimizations using mathematical identities. | |
24074 | - Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010, 2011 | |
24075 | + Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 | |
24076 | Free Software Foundation, Inc. | |
24077 | ||
24078 | This file is part of GCC. | |
24079 | @@ -1387,12 +1387,18 @@ | |
24080 | FOR_EACH_BB (bb) | |
24081 | { | |
24082 | gimple_stmt_iterator gsi; | |
24083 | + bool cleanup_eh = false; | |
24084 | ||
24085 | for (gsi = gsi_after_labels (bb); !gsi_end_p (gsi); gsi_next (&gsi)) | |
24086 | { | |
24087 | gimple stmt = gsi_stmt (gsi); | |
24088 | tree fndecl; | |
24089 | ||
24090 | + /* Only the last stmt in a bb could throw, no need to call | |
24091 | + gimple_purge_dead_eh_edges if we change something in the middle | |
24092 | + of a basic block. */ | |
24093 | + cleanup_eh = false; | |
24094 | + | |
24095 | if (is_gimple_call (stmt) | |
24096 | && gimple_call_lhs (stmt) | |
24097 | && (fndecl = gimple_call_fndecl (stmt)) | |
24098 | @@ -1430,6 +1436,7 @@ | |
24099 | gimple_set_location (new_stmt, loc); | |
24100 | unlink_stmt_vdef (stmt); | |
24101 | gsi_replace (&gsi, new_stmt, true); | |
24102 | + cleanup_eh = true; | |
24103 | } | |
24104 | break; | |
24105 | ||
24106 | @@ -1450,6 +1457,7 @@ | |
24107 | gimple_set_location (new_stmt, loc); | |
24108 | unlink_stmt_vdef (stmt); | |
24109 | gsi_replace (&gsi, new_stmt, true); | |
24110 | + cleanup_eh = true; | |
24111 | } | |
24112 | break; | |
24113 | ||
24114 | @@ -1465,6 +1473,7 @@ | |
24115 | gimple_set_location (new_stmt, loc); | |
24116 | unlink_stmt_vdef (stmt); | |
24117 | gsi_replace (&gsi, new_stmt, true); | |
24118 | + cleanup_eh = true; | |
24119 | } | |
24120 | break; | |
24121 | ||
24122 | @@ -1472,6 +1481,8 @@ | |
24123 | } | |
24124 | } | |
24125 | } | |
24126 | + if (cleanup_eh) | |
24127 | + cfg_changed |= gimple_purge_dead_eh_edges (bb); | |
24128 | } | |
24129 | ||
24130 | statistics_counter_event (cfun, "sincos statements inserted", | |
24131 | Index: gcc/dwarf2out.c | |
24132 | =================================================================== | |
9f95000d AM |
24133 | --- gcc/dwarf2out.c (.../tags/gcc_4_7_2_release) (wersja 192468) |
24134 | +++ gcc/dwarf2out.c (.../branches/gcc-4_7-branch) (wersja 192468) | |
5a87b929 AM |
24135 | @@ -8012,6 +8012,8 @@ |
24136 | return DW_FORM_block1; | |
24137 | case 2: | |
24138 | return DW_FORM_block2; | |
24139 | + case 4: | |
24140 | + return DW_FORM_block4; | |
24141 | default: | |
24142 | gcc_unreachable (); | |
24143 | } | |
24144 | Index: gcc/go/ChangeLog | |
24145 | =================================================================== | |
9f95000d AM |
24146 | --- gcc/go/ChangeLog (.../tags/gcc_4_7_2_release) (wersja 192468) |
24147 | +++ gcc/go/ChangeLog (.../branches/gcc-4_7-branch) (wersja 192468) | |
5a87b929 AM |
24148 | @@ -1,3 +1,7 @@ |
24149 | +2012-09-20 Ian Lance Taylor <iant@google.com> | |
24150 | + | |
24151 | + * Make-lang.in (go/gogo.o): Depend on filenames.h. | |
24152 | + | |
24153 | 2012-09-20 Release Manager | |
24154 | ||
24155 | * GCC 4.7.2 released. | |
24156 | Index: gcc/go/Make-lang.in | |
24157 | =================================================================== | |
9f95000d AM |
24158 | --- gcc/go/Make-lang.in (.../tags/gcc_4_7_2_release) (wersja 192468) |
24159 | +++ gcc/go/Make-lang.in (.../branches/gcc-4_7-branch) (wersja 192468) | |
5a87b929 AM |
24160 | @@ -289,10 +289,11 @@ |
24161 | convert.h output.h $(DIAGNOSTIC_H) $(GO_TYPES_H) \ | |
24162 | $(GO_EXPRESSIONS_H) $(GO_STATEMENTS_H) $(GO_RUNTIME_H) \ | |
24163 | go/gofrontend/backend.h $(GO_GOGO_H) | |
24164 | -go/gogo.o: go/gofrontend/gogo.cc $(GO_SYSTEM_H) $(GO_C_H) \ | |
24165 | - go/gofrontend/go-dump.h $(GO_LEX_H) $(GO_TYPES_H) $(GO_STATEMENTS_H) \ | |
24166 | - $(GO_EXPRESSIONS_H) go/gofrontend/dataflow.h $(GO_RUNTIME_H) \ | |
24167 | - $(GO_IMPORT_H) $(GO_EXPORT_H) go/gofrontend/backend.h $(GO_GOGO_H) | |
24168 | +go/gogo.o: go/gofrontend/gogo.cc $(GO_SYSTEM_H) \ | |
24169 | + $(srcdir)/../include/filenames.h $(GO_C_H) go/gofrontend/go-dump.h \ | |
24170 | + $(GO_LEX_H) $(GO_TYPES_H) $(GO_STATEMENTS_H) $(GO_EXPRESSIONS_H) \ | |
24171 | + go/gofrontend/dataflow.h $(GO_RUNTIME_H) $(GO_IMPORT_H) \ | |
24172 | + $(GO_EXPORT_H) go/gofrontend/backend.h $(GO_GOGO_H) | |
24173 | go/import.o: go/gofrontend/import.cc $(GO_SYSTEM_H) \ | |
24174 | $(srcdir)/../include/filenames.h $(srcdir)/../include/simple-object.h \ | |
24175 | $(GO_C_H) $(GO_GOGO_H) $(GO_LEX_H) $(GO_TYPES_H) $(GO_EXPORT_H) \ | |
24176 | Index: gcc/go/gofrontend/gogo.cc | |
24177 | =================================================================== | |
9f95000d AM |
24178 | --- gcc/go/gofrontend/gogo.cc (.../tags/gcc_4_7_2_release) (wersja 192468) |
24179 | +++ gcc/go/gofrontend/gogo.cc (.../branches/gcc-4_7-branch) (wersja 192468) | |
5a87b929 AM |
24180 | @@ -6,6 +6,8 @@ |
24181 | ||
24182 | #include "go-system.h" | |
24183 | ||
24184 | +#include "filenames.h" | |
24185 | + | |
24186 | #include "go-c.h" | |
24187 | #include "go-dump.h" | |
24188 | #include "lex.h" | |
24189 | @@ -385,6 +387,57 @@ | |
24190 | bool is_local_name_exported, | |
24191 | Location location) | |
24192 | { | |
24193 | + if (filename.empty()) | |
24194 | + { | |
24195 | + error_at(location, "import path is empty"); | |
24196 | + return; | |
24197 | + } | |
24198 | + | |
24199 | + const char *pf = filename.data(); | |
24200 | + const char *pend = pf + filename.length(); | |
24201 | + while (pf < pend) | |
24202 | + { | |
24203 | + unsigned int c; | |
24204 | + int adv = Lex::fetch_char(pf, &c); | |
24205 | + if (adv == 0) | |
24206 | + { | |
24207 | + error_at(location, "import path contains invalid UTF-8 sequence"); | |
24208 | + return; | |
24209 | + } | |
24210 | + if (c == '\0') | |
24211 | + { | |
24212 | + error_at(location, "import path contains NUL"); | |
24213 | + return; | |
24214 | + } | |
24215 | + if (c < 0x20 || c == 0x7f) | |
24216 | + { | |
24217 | + error_at(location, "import path contains control character"); | |
24218 | + return; | |
24219 | + } | |
24220 | + if (c == '\\') | |
24221 | + { | |
24222 | + error_at(location, "import path contains backslash; use slash"); | |
24223 | + return; | |
24224 | + } | |
24225 | + if (Lex::is_unicode_space(c)) | |
24226 | + { | |
24227 | + error_at(location, "import path contains space character"); | |
24228 | + return; | |
24229 | + } | |
24230 | + if (c < 0x7f && strchr("!\"#$%&'()*,:;<=>?[]^`{|}", c) != NULL) | |
24231 | + { | |
24232 | + error_at(location, "import path contains invalid character '%c'", c); | |
24233 | + return; | |
24234 | + } | |
24235 | + pf += adv; | |
24236 | + } | |
24237 | + | |
24238 | + if (IS_ABSOLUTE_PATH(filename.c_str())) | |
24239 | + { | |
24240 | + error_at(location, "import path cannot be absolute path"); | |
24241 | + return; | |
24242 | + } | |
24243 | + | |
24244 | if (filename == "unsafe") | |
24245 | { | |
24246 | this->import_unsafe(local_name, is_local_name_exported, location); | |
24247 | @@ -1003,7 +1056,15 @@ | |
24248 | Named_object* no = this->current_bindings()->add_type(name, NULL, type, | |
24249 | location); | |
24250 | if (!this->in_global_scope() && no->is_type()) | |
24251 | - no->type_value()->set_in_function(this->functions_.back().function); | |
24252 | + { | |
24253 | + Named_object* f = this->functions_.back().function; | |
24254 | + unsigned int index; | |
24255 | + if (f->is_function()) | |
24256 | + index = f->func_value()->new_local_type_index(); | |
24257 | + else | |
24258 | + index = 0; | |
24259 | + no->type_value()->set_in_function(f, index); | |
24260 | + } | |
24261 | } | |
24262 | ||
24263 | // Add a named type. | |
24264 | @@ -1025,7 +1086,12 @@ | |
24265 | if (!this->in_global_scope() && no->is_type_declaration()) | |
24266 | { | |
24267 | Named_object* f = this->functions_.back().function; | |
24268 | - no->type_declaration_value()->set_in_function(f); | |
24269 | + unsigned int index; | |
24270 | + if (f->is_function()) | |
24271 | + index = f->func_value()->new_local_type_index(); | |
24272 | + else | |
24273 | + index = 0; | |
24274 | + no->type_declaration_value()->set_in_function(f, index); | |
24275 | } | |
24276 | return no; | |
24277 | } | |
24278 | @@ -2806,7 +2872,8 @@ | |
24279 | Build_method_tables::type(Type* type) | |
24280 | { | |
24281 | Named_type* nt = type->named_type(); | |
24282 | - if (nt != NULL) | |
24283 | + Struct_type* st = type->struct_type(); | |
24284 | + if (nt != NULL || st != NULL) | |
24285 | { | |
24286 | for (std::vector<Interface_type*>::const_iterator p = | |
24287 | this->interfaces_.begin(); | |
24288 | @@ -2816,11 +2883,24 @@ | |
24289 | // We ask whether a pointer to the named type implements the | |
24290 | // interface, because a pointer can implement more methods | |
24291 | // than a value. | |
24292 | - if ((*p)->implements_interface(Type::make_pointer_type(nt), NULL)) | |
24293 | + if (nt != NULL) | |
24294 | { | |
24295 | - nt->interface_method_table(this->gogo_, *p, false); | |
24296 | - nt->interface_method_table(this->gogo_, *p, true); | |
24297 | + if ((*p)->implements_interface(Type::make_pointer_type(nt), | |
24298 | + NULL)) | |
24299 | + { | |
24300 | + nt->interface_method_table(this->gogo_, *p, false); | |
24301 | + nt->interface_method_table(this->gogo_, *p, true); | |
24302 | + } | |
24303 | } | |
24304 | + else | |
24305 | + { | |
24306 | + if ((*p)->implements_interface(Type::make_pointer_type(st), | |
24307 | + NULL)) | |
24308 | + { | |
24309 | + st->interface_method_table(this->gogo_, *p, false); | |
24310 | + st->interface_method_table(this->gogo_, *p, true); | |
24311 | + } | |
24312 | + } | |
24313 | } | |
24314 | } | |
24315 | return TRAVERSE_CONTINUE; | |
24316 | @@ -2989,9 +3069,10 @@ | |
24317 | Function::Function(Function_type* type, Function* enclosing, Block* block, | |
24318 | Location location) | |
24319 | : type_(type), enclosing_(enclosing), results_(NULL), | |
24320 | - closure_var_(NULL), block_(block), location_(location), fndecl_(NULL), | |
24321 | - defer_stack_(NULL), results_are_named_(false), calls_recover_(false), | |
24322 | - is_recover_thunk_(false), has_recover_thunk_(false) | |
24323 | + closure_var_(NULL), block_(block), location_(location), labels_(), | |
24324 | + local_type_count_(0), fndecl_(NULL), defer_stack_(NULL), | |
24325 | + results_are_named_(false), calls_recover_(false), is_recover_thunk_(false), | |
24326 | + has_recover_thunk_(false) | |
24327 | { | |
24328 | } | |
24329 | ||
24330 | @@ -4157,7 +4238,7 @@ | |
24331 | else if (type->is_call_multiple_result_type()) | |
24332 | { | |
24333 | error_at(this->location_, | |
24334 | - "single variable set to multiple value function call"); | |
24335 | + "single variable set to multiple-value function call"); | |
24336 | type = Type::make_error_type(); | |
24337 | } | |
24338 | ||
24339 | @@ -4599,9 +4680,10 @@ | |
24340 | go_assert(this->classification_ == NAMED_OBJECT_TYPE_DECLARATION); | |
24341 | Type_declaration* td = this->u_.type_declaration; | |
24342 | td->define_methods(named_type); | |
24343 | - Named_object* in_function = td->in_function(); | |
24344 | + unsigned int index; | |
24345 | + Named_object* in_function = td->in_function(&index); | |
24346 | if (in_function != NULL) | |
24347 | - named_type->set_in_function(in_function); | |
24348 | + named_type->set_in_function(in_function, index); | |
24349 | delete td; | |
24350 | this->classification_ = NAMED_OBJECT_TYPE; | |
24351 | this->u_.type_value = named_type; | |
24352 | Index: gcc/go/gofrontend/gogo.h | |
24353 | =================================================================== | |
9f95000d AM |
24354 | --- gcc/go/gofrontend/gogo.h (.../tags/gcc_4_7_2_release) (wersja 192468) |
24355 | +++ gcc/go/gofrontend/gogo.h (.../branches/gcc-4_7-branch) (wersja 192468) | |
5a87b929 AM |
24356 | @@ -574,7 +574,7 @@ |
24357 | // Build an interface method table for a type: a list of function | |
24358 | // pointers, one for each interface method. This returns a decl. | |
24359 | tree | |
24360 | - interface_method_table_for_type(const Interface_type*, Named_type*, | |
24361 | + interface_method_table_for_type(const Interface_type*, Type*, | |
24362 | bool is_pointer); | |
24363 | ||
24364 | // Return a tree which allocate SIZE bytes to hold values of type | |
24365 | @@ -963,6 +963,11 @@ | |
24366 | void | |
24367 | check_labels() const; | |
24368 | ||
24369 | + // Note that a new local type has been added. Return its index. | |
24370 | + unsigned int | |
24371 | + new_local_type_index() | |
24372 | + { return this->local_type_count_++; } | |
24373 | + | |
24374 | // Whether this function calls the predeclared recover function. | |
24375 | bool | |
24376 | calls_recover() const | |
24377 | @@ -1084,6 +1089,8 @@ | |
24378 | Location location_; | |
24379 | // Labels defined or referenced in the function. | |
24380 | Labels labels_; | |
24381 | + // The number of local types defined in this function. | |
24382 | + unsigned int local_type_count_; | |
24383 | // The function decl. | |
24384 | tree fndecl_; | |
24385 | // The defer stack variable. A pointer to this variable is used to | |
24386 | @@ -1638,8 +1645,8 @@ | |
24387 | { | |
24388 | public: | |
24389 | Type_declaration(Location location) | |
24390 | - : location_(location), in_function_(NULL), methods_(), | |
24391 | - issued_warning_(false) | |
24392 | + : location_(location), in_function_(NULL), in_function_index_(0), | |
24393 | + methods_(), issued_warning_(false) | |
24394 | { } | |
24395 | ||
24396 | // Return the location. | |
24397 | @@ -1650,13 +1657,19 @@ | |
24398 | // Return the function in which this type is declared. This will | |
24399 | // return NULL for a type declared in global scope. | |
24400 | Named_object* | |
24401 | - in_function() | |
24402 | - { return this->in_function_; } | |
24403 | + in_function(unsigned int* pindex) | |
24404 | + { | |
24405 | + *pindex = this->in_function_index_; | |
24406 | + return this->in_function_; | |
24407 | + } | |
24408 | ||
24409 | // Set the function in which this type is declared. | |
24410 | void | |
24411 | - set_in_function(Named_object* f) | |
24412 | - { this->in_function_ = f; } | |
24413 | + set_in_function(Named_object* f, unsigned int index) | |
24414 | + { | |
24415 | + this->in_function_ = f; | |
24416 | + this->in_function_index_ = index; | |
24417 | + } | |
24418 | ||
24419 | // Add a method to this type. This is used when methods are defined | |
24420 | // before the type. | |
24421 | @@ -1689,6 +1702,8 @@ | |
24422 | // If this type is declared in a function, a pointer back to the | |
24423 | // function in which it is defined. | |
24424 | Named_object* in_function_; | |
24425 | + // The index of this type in IN_FUNCTION_. | |
24426 | + unsigned int in_function_index_; | |
24427 | // Methods defined before the type is defined. | |
24428 | Methods methods_; | |
24429 | // True if we have issued a warning about a use of this type | |
24430 | Index: gcc/go/gofrontend/types.h | |
24431 | =================================================================== | |
9f95000d AM |
24432 | --- gcc/go/gofrontend/types.h (.../tags/gcc_4_7_2_release) (wersja 192468) |
24433 | +++ gcc/go/gofrontend/types.h (.../branches/gcc-4_7-branch) (wersja 192468) | |
5a87b929 AM |
24434 | @@ -983,6 +983,19 @@ |
24435 | method_function(const Methods*, const std::string& name, | |
24436 | bool* is_ambiguous); | |
24437 | ||
24438 | + // A mapping from interfaces to the associated interface method | |
24439 | + // tables for this type. This maps to a decl. | |
24440 | + typedef Unordered_map_hash(const Interface_type*, tree, Type_hash_identical, | |
24441 | + Type_identical) Interface_method_tables; | |
24442 | + | |
24443 | + // Return a pointer to the interface method table for TYPE for the | |
24444 | + // interface INTERFACE. | |
24445 | + static tree | |
24446 | + interface_method_table(Gogo* gogo, Type* type, | |
24447 | + const Interface_type *interface, bool is_pointer, | |
24448 | + Interface_method_tables** method_tables, | |
24449 | + Interface_method_tables** pointer_tables); | |
24450 | + | |
24451 | // Return a composite literal for the type descriptor entry for a | |
24452 | // type. | |
24453 | static Expression* | |
24454 | @@ -1994,7 +2007,8 @@ | |
24455 | public: | |
24456 | Struct_type(Struct_field_list* fields, Location location) | |
24457 | : Type(TYPE_STRUCT), | |
24458 | - fields_(fields), location_(location), all_methods_(NULL) | |
24459 | + fields_(fields), location_(location), all_methods_(NULL), | |
24460 | + interface_method_tables_(NULL), pointer_interface_method_tables_(NULL) | |
24461 | { } | |
24462 | ||
24463 | // Return the field NAME. This only looks at local fields, not at | |
24464 | @@ -2076,6 +2090,14 @@ | |
24465 | Method* | |
24466 | method_function(const std::string& name, bool* is_ambiguous) const; | |
24467 | ||
24468 | + // Return a pointer to the interface method table for this type for | |
24469 | + // the interface INTERFACE. If IS_POINTER is true, set the type | |
24470 | + // descriptor to a pointer to this type, otherwise set it to this | |
24471 | + // type. | |
24472 | + tree | |
24473 | + interface_method_table(Gogo*, const Interface_type* interface, | |
24474 | + bool is_pointer); | |
24475 | + | |
24476 | // Traverse just the field types of a struct type. | |
24477 | int | |
24478 | traverse_field_types(Traverse* traverse) | |
24479 | @@ -2156,6 +2178,13 @@ | |
24480 | Location location_; | |
24481 | // If this struct is unnamed, a list of methods. | |
24482 | Methods* all_methods_; | |
24483 | + // A mapping from interfaces to the associated interface method | |
24484 | + // tables for this type. Only used if this struct is unnamed. | |
24485 | + Interface_method_tables* interface_method_tables_; | |
24486 | + // A mapping from interfaces to the associated interface method | |
24487 | + // tables for pointers to this type. Only used if this struct is | |
24488 | + // unnamed. | |
24489 | + Interface_method_tables* pointer_interface_method_tables_; | |
24490 | }; | |
24491 | ||
24492 | // The type of an array. | |
24493 | @@ -2623,8 +2652,8 @@ | |
24494 | public: | |
24495 | Named_type(Named_object* named_object, Type* type, Location location) | |
24496 | : Type(TYPE_NAMED), | |
24497 | - named_object_(named_object), in_function_(NULL), type_(type), | |
24498 | - local_methods_(NULL), all_methods_(NULL), | |
24499 | + named_object_(named_object), in_function_(NULL), in_function_index_(0), | |
24500 | + type_(type), local_methods_(NULL), all_methods_(NULL), | |
24501 | interface_method_tables_(NULL), pointer_interface_method_tables_(NULL), | |
24502 | location_(location), named_btype_(NULL), dependencies_(), | |
24503 | is_visible_(true), is_error_(false), is_placeholder_(false), | |
24504 | @@ -2651,13 +2680,19 @@ | |
24505 | // Return the function in which this type is defined. This will | |
24506 | // return NULL for a type defined in global scope. | |
24507 | const Named_object* | |
24508 | - in_function() const | |
24509 | - { return this->in_function_; } | |
24510 | + in_function(unsigned int *pindex) const | |
24511 | + { | |
24512 | + *pindex = this->in_function_index_; | |
24513 | + return this->in_function_; | |
24514 | + } | |
24515 | ||
24516 | // Set the function in which this type is defined. | |
24517 | void | |
24518 | - set_in_function(Named_object* f) | |
24519 | - { this->in_function_ = f; } | |
24520 | + set_in_function(Named_object* f, unsigned int index) | |
24521 | + { | |
24522 | + this->in_function_ = f; | |
24523 | + this->in_function_index_ = index; | |
24524 | + } | |
24525 | ||
24526 | // Return the name of the type. | |
24527 | const std::string& | |
24528 | @@ -2855,16 +2890,13 @@ | |
24529 | void | |
24530 | create_placeholder(Gogo*); | |
24531 | ||
24532 | - // A mapping from interfaces to the associated interface method | |
24533 | - // tables for this type. This maps to a decl. | |
24534 | - typedef Unordered_map_hash(const Interface_type*, tree, Type_hash_identical, | |
24535 | - Type_identical) Interface_method_tables; | |
24536 | - | |
24537 | // A pointer back to the Named_object for this type. | |
24538 | Named_object* named_object_; | |
24539 | // If this type is defined in a function, a pointer back to the | |
24540 | // function in which it is defined. | |
24541 | Named_object* in_function_; | |
24542 | + // The index of this type in IN_FUNCTION_. | |
24543 | + unsigned int in_function_index_; | |
24544 | // The actual type. | |
24545 | Type* type_; | |
24546 | // The list of methods defined for this type. Any named type can | |
24547 | Index: gcc/go/gofrontend/parse.cc | |
24548 | =================================================================== | |
9f95000d AM |
24549 | --- gcc/go/gofrontend/parse.cc (.../tags/gcc_4_7_2_release) (wersja 192468) |
24550 | +++ gcc/go/gofrontend/parse.cc (.../branches/gcc-4_7-branch) (wersja 192468) | |
5a87b929 AM |
24551 | @@ -1631,12 +1631,16 @@ |
24552 | ||
24553 | // Note that INIT was already parsed with the old name bindings, so | |
24554 | // we don't have to worry that it will accidentally refer to the | |
24555 | - // newly declared variables. | |
24556 | + // newly declared variables. But we do have to worry about a mix of | |
24557 | + // newly declared variables and old variables if the old variables | |
24558 | + // appear in the initializations. | |
24559 | ||
24560 | Expression_list::const_iterator pexpr; | |
24561 | if (init != NULL) | |
24562 | pexpr = init->begin(); | |
24563 | bool any_new = false; | |
24564 | + Expression_list* vars = new Expression_list(); | |
24565 | + Expression_list* vals = new Expression_list(); | |
24566 | for (Typed_identifier_list::const_iterator p = til->begin(); | |
24567 | p != til->end(); | |
24568 | ++p) | |
24569 | @@ -1644,7 +1648,7 @@ | |
24570 | if (init != NULL) | |
24571 | go_assert(pexpr != init->end()); | |
24572 | this->init_var(*p, type, init == NULL ? NULL : *pexpr, is_coloneq, | |
24573 | - false, &any_new); | |
24574 | + false, &any_new, vars, vals); | |
24575 | if (init != NULL) | |
24576 | ++pexpr; | |
24577 | } | |
24578 | @@ -1652,6 +1656,7 @@ | |
24579 | go_assert(pexpr == init->end()); | |
24580 | if (is_coloneq && !any_new) | |
24581 | error_at(location, "variables redeclared but no variable is new"); | |
24582 | + this->finish_init_vars(vars, vals, location); | |
24583 | } | |
24584 | ||
24585 | // See if we need to initialize a list of variables from a function | |
24586 | @@ -1674,13 +1679,15 @@ | |
24587 | Named_object* first_var = NULL; | |
24588 | unsigned int index = 0; | |
24589 | bool any_new = false; | |
24590 | + Expression_list* ivars = new Expression_list(); | |
24591 | + Expression_list* ivals = new Expression_list(); | |
24592 | for (Typed_identifier_list::const_iterator pv = vars->begin(); | |
24593 | pv != vars->end(); | |
24594 | ++pv, ++index) | |
24595 | { | |
24596 | Expression* init = Expression::make_call_result(call, index); | |
24597 | Named_object* no = this->init_var(*pv, type, init, is_coloneq, false, | |
24598 | - &any_new); | |
24599 | + &any_new, ivars, ivals); | |
24600 | ||
24601 | if (this->gogo_->in_global_scope() && no->is_variable()) | |
24602 | { | |
24603 | @@ -1700,6 +1707,8 @@ | |
24604 | if (is_coloneq && !any_new) | |
24605 | error_at(location, "variables redeclared but no variable is new"); | |
24606 | ||
24607 | + this->finish_init_vars(ivars, ivals, location); | |
24608 | + | |
24609 | return true; | |
24610 | } | |
24611 | ||
24612 | @@ -1725,7 +1734,7 @@ | |
24613 | Typed_identifier_list::const_iterator p = vars->begin(); | |
24614 | Expression* init = type == NULL ? index : NULL; | |
24615 | Named_object* val_no = this->init_var(*p, type, init, is_coloneq, | |
24616 | - type == NULL, &any_new); | |
24617 | + type == NULL, &any_new, NULL, NULL); | |
24618 | if (type == NULL && any_new && val_no->is_variable()) | |
24619 | val_no->var_value()->set_type_from_init_tuple(); | |
24620 | Expression* val_var = Expression::make_var_reference(val_no, location); | |
24621 | @@ -1735,7 +1744,7 @@ | |
24622 | if (var_type == NULL) | |
24623 | var_type = Type::lookup_bool_type(); | |
24624 | Named_object* no = this->init_var(*p, var_type, NULL, is_coloneq, false, | |
24625 | - &any_new); | |
24626 | + &any_new, NULL, NULL); | |
24627 | Expression* present_var = Expression::make_var_reference(no, location); | |
24628 | ||
24629 | if (is_coloneq && !any_new) | |
24630 | @@ -1790,7 +1799,7 @@ | |
24631 | Typed_identifier_list::const_iterator p = vars->begin(); | |
24632 | Expression* init = type == NULL ? receive : NULL; | |
24633 | Named_object* val_no = this->init_var(*p, type, init, is_coloneq, | |
24634 | - type == NULL, &any_new); | |
24635 | + type == NULL, &any_new, NULL, NULL); | |
24636 | if (type == NULL && any_new && val_no->is_variable()) | |
24637 | val_no->var_value()->set_type_from_init_tuple(); | |
24638 | Expression* val_var = Expression::make_var_reference(val_no, location); | |
24639 | @@ -1800,7 +1809,7 @@ | |
24640 | if (var_type == NULL) | |
24641 | var_type = Type::lookup_bool_type(); | |
24642 | Named_object* no = this->init_var(*p, var_type, NULL, is_coloneq, false, | |
24643 | - &any_new); | |
24644 | + &any_new, NULL, NULL); | |
24645 | Expression* received_var = Expression::make_var_reference(no, location); | |
24646 | ||
24647 | if (is_coloneq && !any_new) | |
24648 | @@ -1857,7 +1866,7 @@ | |
24649 | if (var_type == NULL) | |
24650 | var_type = type_guard->type(); | |
24651 | Named_object* val_no = this->init_var(*p, var_type, NULL, is_coloneq, false, | |
24652 | - &any_new); | |
24653 | + &any_new, NULL, NULL); | |
24654 | Expression* val_var = Expression::make_var_reference(val_no, location); | |
24655 | ||
24656 | ++p; | |
24657 | @@ -1865,7 +1874,7 @@ | |
24658 | if (var_type == NULL) | |
24659 | var_type = Type::lookup_bool_type(); | |
24660 | Named_object* no = this->init_var(*p, var_type, NULL, is_coloneq, false, | |
24661 | - &any_new); | |
24662 | + &any_new, NULL, NULL); | |
24663 | Expression* ok_var = Expression::make_var_reference(no, location); | |
24664 | ||
24665 | Expression* texpr = type_guard->expr(); | |
24666 | @@ -1904,7 +1913,8 @@ | |
24667 | ||
24668 | Named_object* | |
24669 | Parse::init_var(const Typed_identifier& tid, Type* type, Expression* init, | |
24670 | - bool is_coloneq, bool type_from_init, bool* is_new) | |
24671 | + bool is_coloneq, bool type_from_init, bool* is_new, | |
24672 | + Expression_list* vars, Expression_list* vals) | |
24673 | { | |
24674 | Location location = tid.location(); | |
24675 | ||
24676 | @@ -1946,9 +1956,9 @@ | |
24677 | // like v, ok := x.(int). | |
24678 | if (!type_from_init && init != NULL) | |
24679 | { | |
24680 | - Expression *v = Expression::make_var_reference(no, location); | |
24681 | - Statement *s = Statement::make_assignment(v, init, location); | |
24682 | - this->gogo_->add_statement(s); | |
24683 | + go_assert(vars != NULL && vals != NULL); | |
24684 | + vars->push_back(Expression::make_var_reference(no, location)); | |
24685 | + vals->push_back(init); | |
24686 | } | |
24687 | return no; | |
24688 | } | |
24689 | @@ -1983,6 +1993,36 @@ | |
24690 | return this->gogo_->add_variable(buf, var); | |
24691 | } | |
24692 | ||
24693 | +// Finish the variable initialization by executing any assignments to | |
24694 | +// existing variables when using :=. These must be done as a tuple | |
24695 | +// assignment in case of something like n, a, b := 1, b, a. | |
24696 | + | |
24697 | +void | |
24698 | +Parse::finish_init_vars(Expression_list* vars, Expression_list* vals, | |
24699 | + Location location) | |
24700 | +{ | |
24701 | + if (vars->empty()) | |
24702 | + { | |
24703 | + delete vars; | |
24704 | + delete vals; | |
24705 | + } | |
24706 | + else if (vars->size() == 1) | |
24707 | + { | |
24708 | + go_assert(!this->gogo_->in_global_scope()); | |
24709 | + this->gogo_->add_statement(Statement::make_assignment(vars->front(), | |
24710 | + vals->front(), | |
24711 | + location)); | |
24712 | + delete vars; | |
24713 | + delete vals; | |
24714 | + } | |
24715 | + else | |
24716 | + { | |
24717 | + go_assert(!this->gogo_->in_global_scope()); | |
24718 | + this->gogo_->add_statement(Statement::make_tuple_assignment(vars, vals, | |
24719 | + location)); | |
24720 | + } | |
24721 | +} | |
24722 | + | |
24723 | // SimpleVarDecl = identifier ":=" Expression . | |
24724 | ||
24725 | // We've already seen the identifier. | |
24726 | @@ -2723,7 +2763,11 @@ | |
24727 | } | |
24728 | else | |
24729 | { | |
24730 | - error_at(this->location(), "expected %<,%> or %<}%>"); | |
24731 | + if (token->is_op(OPERATOR_SEMICOLON)) | |
24732 | + error_at(this->location(), | |
24733 | + "need trailing comma before newline in composite literal"); | |
24734 | + else | |
24735 | + error_at(this->location(), "expected %<,%> or %<}%>"); | |
24736 | ||
24737 | this->gogo_->mark_locals_used(); | |
24738 | int depth = 0; | |
24739 | @@ -3311,6 +3355,61 @@ | |
24740 | bool* is_type_switch) | |
24741 | { | |
24742 | const Token* token = this->peek_token(); | |
24743 | + | |
24744 | + // There is a complex parse for <- chan. The choices are | |
24745 | + // Convert x to type <- chan int: | |
24746 | + // (<- chan int)(x) | |
24747 | + // Receive from (x converted to type chan <- chan int): | |
24748 | + // (<- chan <- chan int (x)) | |
24749 | + // Convert x to type <- chan (<- chan int). | |
24750 | + // (<- chan <- chan int)(x) | |
24751 | + if (token->is_op(OPERATOR_CHANOP)) | |
24752 | + { | |
24753 | + Location location = token->location(); | |
24754 | + if (this->advance_token()->is_keyword(KEYWORD_CHAN)) | |
24755 | + { | |
24756 | + Expression* expr = this->primary_expr(false, may_be_composite_lit, | |
24757 | + NULL); | |
24758 | + if (expr->is_error_expression()) | |
24759 | + return expr; | |
24760 | + else if (!expr->is_type_expression()) | |
24761 | + return Expression::make_receive(expr, location); | |
24762 | + else | |
24763 | + { | |
24764 | + if (expr->type()->is_error_type()) | |
24765 | + return expr; | |
24766 | + | |
24767 | + // We picked up "chan TYPE", but it is not a type | |
24768 | + // conversion. | |
24769 | + Channel_type* ct = expr->type()->channel_type(); | |
24770 | + if (ct == NULL) | |
24771 | + { | |
24772 | + // This is probably impossible. | |
24773 | + error_at(location, "expected channel type"); | |
24774 | + return Expression::make_error(location); | |
24775 | + } | |
24776 | + else if (ct->may_receive()) | |
24777 | + { | |
24778 | + // <- chan TYPE. | |
24779 | + Type* t = Type::make_channel_type(false, true, | |
24780 | + ct->element_type()); | |
24781 | + return Expression::make_type(t, location); | |
24782 | + } | |
24783 | + else | |
24784 | + { | |
24785 | + // <- chan <- TYPE. Because we skipped the leading | |
24786 | + // <-, we parsed this as chan <- TYPE. With the | |
24787 | + // leading <-, we parse it as <- chan (<- TYPE). | |
24788 | + Type *t = this->reassociate_chan_direction(ct, location); | |
24789 | + return Expression::make_type(t, location); | |
24790 | + } | |
24791 | + } | |
24792 | + } | |
24793 | + | |
24794 | + this->unget_token(Token::make_operator_token(OPERATOR_CHANOP, location)); | |
24795 | + token = this->peek_token(); | |
24796 | + } | |
24797 | + | |
24798 | if (token->is_op(OPERATOR_PLUS) | |
24799 | || token->is_op(OPERATOR_MINUS) | |
24800 | || token->is_op(OPERATOR_NOT) | |
24801 | @@ -3323,14 +3422,6 @@ | |
24802 | Operator op = token->op(); | |
24803 | this->advance_token(); | |
24804 | ||
24805 | - if (op == OPERATOR_CHANOP | |
24806 | - && this->peek_token()->is_keyword(KEYWORD_CHAN)) | |
24807 | - { | |
24808 | - // This is "<- chan" which must be the start of a type. | |
24809 | - this->unget_token(Token::make_operator_token(op, location)); | |
24810 | - return Expression::make_type(this->type(), location); | |
24811 | - } | |
24812 | - | |
24813 | Expression* expr = this->unary_expr(false, may_be_composite_lit, NULL); | |
24814 | if (expr->is_error_expression()) | |
24815 | ; | |
24816 | @@ -3350,6 +3441,32 @@ | |
24817 | is_type_switch); | |
24818 | } | |
24819 | ||
24820 | +// This is called for the obscure case of | |
24821 | +// (<- chan <- chan int)(x) | |
24822 | +// In unary_expr we remove the leading <- and parse the remainder, | |
24823 | +// which gives us | |
24824 | +// chan <- (chan int) | |
24825 | +// When we add the leading <- back in, we really want | |
24826 | +// <- chan (<- chan int) | |
24827 | +// This means that we need to reassociate. | |
24828 | + | |
24829 | +Type* | |
24830 | +Parse::reassociate_chan_direction(Channel_type *ct, Location location) | |
24831 | +{ | |
24832 | + Channel_type* ele = ct->element_type()->channel_type(); | |
24833 | + if (ele == NULL) | |
24834 | + { | |
24835 | + error_at(location, "parse error"); | |
24836 | + return Type::make_error_type(); | |
24837 | + } | |
24838 | + Type* sub = ele; | |
24839 | + if (ele->may_send()) | |
24840 | + sub = Type::make_channel_type(false, true, ele->element_type()); | |
24841 | + else | |
24842 | + sub = this->reassociate_chan_direction(ele, location); | |
24843 | + return Type::make_channel_type(false, true, sub); | |
24844 | +} | |
24845 | + | |
24846 | // Statement = | |
24847 | // Declaration | LabeledStmt | SimpleStmt | | |
24848 | // GoStmt | ReturnStmt | BreakStmt | ContinueStmt | GotoStmt | | |
24849 | @@ -5036,7 +5153,8 @@ | |
24850 | bool any_new = false; | |
24851 | ||
24852 | const Typed_identifier* pti = &til->front(); | |
24853 | - Named_object* no = this->init_var(*pti, NULL, expr, true, true, &any_new); | |
24854 | + Named_object* no = this->init_var(*pti, NULL, expr, true, true, &any_new, | |
24855 | + NULL, NULL); | |
24856 | if (any_new && no->is_variable()) | |
24857 | no->var_value()->set_type_from_range_index(); | |
24858 | p_range_clause->index = Expression::make_var_reference(no, location); | |
24859 | @@ -5047,7 +5165,7 @@ | |
24860 | { | |
24861 | pti = &til->back(); | |
24862 | bool is_new = false; | |
24863 | - no = this->init_var(*pti, NULL, expr, true, true, &is_new); | |
24864 | + no = this->init_var(*pti, NULL, expr, true, true, &is_new, NULL, NULL); | |
24865 | if (is_new && no->is_variable()) | |
24866 | no->var_value()->set_type_from_range_value(); | |
24867 | if (is_new) | |
24868 | @@ -5337,7 +5455,8 @@ | |
24869 | ||
24870 | if (!token->is_string()) | |
24871 | { | |
24872 | - error_at(this->location(), "missing import package name"); | |
24873 | + error_at(this->location(), "import statement not a string"); | |
24874 | + this->advance_token(); | |
24875 | return; | |
24876 | } | |
24877 | ||
24878 | Index: gcc/go/gofrontend/statements.cc | |
24879 | =================================================================== | |
9f95000d AM |
24880 | --- gcc/go/gofrontend/statements.cc (.../tags/gcc_4_7_2_release) (wersja 192468) |
24881 | +++ gcc/go/gofrontend/statements.cc (.../branches/gcc-4_7-branch) (wersja 192468) | |
5a87b929 AM |
24882 | @@ -3313,16 +3313,10 @@ |
24883 | p != this->cases_->end(); | |
24884 | ++p) | |
24885 | { | |
24886 | - Expression* this_cond; | |
24887 | - if (val_temp == NULL) | |
24888 | - this_cond = *p; | |
24889 | - else | |
24890 | - { | |
24891 | - Expression* ref = Expression::make_temporary_reference(val_temp, | |
24892 | - loc); | |
24893 | - this_cond = Expression::make_binary(OPERATOR_EQEQ, ref, *p, loc); | |
24894 | - } | |
24895 | - | |
24896 | + Expression* ref = Expression::make_temporary_reference(val_temp, | |
24897 | + loc); | |
24898 | + Expression* this_cond = Expression::make_binary(OPERATOR_EQEQ, ref, | |
24899 | + *p, loc); | |
24900 | if (cond == NULL) | |
24901 | cond = this_cond; | |
24902 | else | |
24903 | @@ -3846,6 +3840,16 @@ | |
24904 | return new Constant_switch_statement(this->val_, this->clauses_, | |
24905 | this->break_label_, loc); | |
24906 | ||
24907 | + if (this->val_ != NULL | |
24908 | + && !this->val_->type()->is_comparable() | |
24909 | + && !Type::are_compatible_for_comparison(true, this->val_->type(), | |
24910 | + Type::make_nil_type(), NULL)) | |
24911 | + { | |
24912 | + error_at(this->val_->location(), | |
24913 | + "cannot switch on value whose type that may not be compared"); | |
24914 | + return Statement::make_error_statement(loc); | |
24915 | + } | |
24916 | + | |
24917 | Block* b = new Block(enclosing, loc); | |
24918 | ||
24919 | if (this->clauses_->empty()) | |
24920 | @@ -3856,15 +3860,12 @@ | |
24921 | return Statement::make_statement(val, true); | |
24922 | } | |
24923 | ||
24924 | - Temporary_statement* val_temp; | |
24925 | - if (this->val_ == NULL) | |
24926 | - val_temp = NULL; | |
24927 | - else | |
24928 | - { | |
24929 | - // var val_temp VAL_TYPE = VAL | |
24930 | - val_temp = Statement::make_temporary(NULL, this->val_, loc); | |
24931 | - b->add_statement(val_temp); | |
24932 | - } | |
24933 | + // var val_temp VAL_TYPE = VAL | |
24934 | + Expression* val = this->val_; | |
24935 | + if (val == NULL) | |
24936 | + val = Expression::make_boolean(true, loc); | |
24937 | + Temporary_statement* val_temp = Statement::make_temporary(NULL, val, loc); | |
24938 | + b->add_statement(val_temp); | |
24939 | ||
24940 | this->clauses_->lower(b, val_temp, this->break_label()); | |
24941 | ||
24942 | Index: gcc/go/gofrontend/gogo-tree.cc | |
24943 | =================================================================== | |
9f95000d AM |
24944 | --- gcc/go/gofrontend/gogo-tree.cc (.../tags/gcc_4_7_2_release) (wersja 192468) |
24945 | +++ gcc/go/gofrontend/gogo-tree.cc (.../branches/gcc-4_7-branch) (wersja 192468) | |
5a87b929 AM |
24946 | @@ -1002,9 +1002,19 @@ |
24947 | } | |
24948 | if (this->is_type()) | |
24949 | { | |
24950 | - const Named_object* in_function = this->type_value()->in_function(); | |
24951 | + unsigned int index; | |
24952 | + const Named_object* in_function = this->type_value()->in_function(&index); | |
24953 | if (in_function != NULL) | |
24954 | - decl_name += '$' + Gogo::unpack_hidden_name(in_function->name()); | |
24955 | + { | |
24956 | + decl_name += '$' + Gogo::unpack_hidden_name(in_function->name()); | |
24957 | + if (index > 0) | |
24958 | + { | |
24959 | + char buf[30]; | |
24960 | + snprintf(buf, sizeof buf, "%u", index); | |
24961 | + decl_name += '$'; | |
24962 | + decl_name += buf; | |
24963 | + } | |
24964 | + } | |
24965 | } | |
24966 | return get_identifier_from_string(decl_name); | |
24967 | } | |
24968 | @@ -2133,8 +2143,7 @@ | |
24969 | ||
24970 | tree | |
24971 | Gogo::interface_method_table_for_type(const Interface_type* interface, | |
24972 | - Named_type* type, | |
24973 | - bool is_pointer) | |
24974 | + Type* type, bool is_pointer) | |
24975 | { | |
24976 | const Typed_identifier_list* interface_methods = interface->methods(); | |
24977 | go_assert(!interface_methods->empty()); | |
24978 | @@ -2163,7 +2172,9 @@ | |
24979 | // interface. If the interface has hidden methods, and the named | |
24980 | // type is defined in a different package, then the interface | |
24981 | // conversion table will be defined by that other package. | |
24982 | - if (has_hidden_methods && type->named_object()->package() != NULL) | |
24983 | + if (has_hidden_methods | |
24984 | + && type->named_type() != NULL | |
24985 | + && type->named_type()->named_object()->package() != NULL) | |
24986 | { | |
24987 | tree array_type = build_array_type(const_ptr_type_node, NULL); | |
24988 | tree decl = build_decl(BUILTINS_LOCATION, VAR_DECL, id, array_type); | |
24989 | @@ -2191,13 +2202,20 @@ | |
24990 | Linemap::predeclared_location()); | |
24991 | elt->value = fold_convert(const_ptr_type_node, tdp); | |
24992 | ||
24993 | + Named_type* nt = type->named_type(); | |
24994 | + Struct_type* st = type->struct_type(); | |
24995 | + go_assert(nt != NULL || st != NULL); | |
24996 | size_t i = 1; | |
24997 | for (Typed_identifier_list::const_iterator p = interface_methods->begin(); | |
24998 | p != interface_methods->end(); | |
24999 | ++p, ++i) | |
25000 | { | |
25001 | bool is_ambiguous; | |
25002 | - Method* m = type->method_function(p->name(), &is_ambiguous); | |
25003 | + Method* m; | |
25004 | + if (nt != NULL) | |
25005 | + m = nt->method_function(p->name(), &is_ambiguous); | |
25006 | + else | |
25007 | + m = st->method_function(p->name(), &is_ambiguous); | |
25008 | go_assert(m != NULL); | |
25009 | ||
25010 | Named_object* no = m->named_object(); | |
25011 | Index: gcc/go/gofrontend/lex.cc | |
25012 | =================================================================== | |
9f95000d AM |
25013 | --- gcc/go/gofrontend/lex.cc (.../tags/gcc_4_7_2_release) (wersja 192468) |
25014 | +++ gcc/go/gofrontend/lex.cc (.../branches/gcc-4_7-branch) (wersja 192468) | |
5a87b929 AM |
25015 | @@ -722,7 +722,16 @@ |
25016 | unsigned int ci; | |
25017 | bool issued_error; | |
25018 | this->lineoff_ = p - this->linebuf_; | |
25019 | - this->advance_one_utf8_char(p, &ci, &issued_error); | |
25020 | + const char *pnext = this->advance_one_utf8_char(p, &ci, | |
25021 | + &issued_error); | |
25022 | + | |
25023 | + // Ignore byte order mark at start of file. | |
25024 | + if (ci == 0xfeff) | |
25025 | + { | |
25026 | + p = pnext; | |
25027 | + break; | |
25028 | + } | |
25029 | + | |
25030 | if (Lex::is_unicode_letter(ci)) | |
25031 | return this->gather_identifier(); | |
25032 | ||
25033 | @@ -831,6 +840,14 @@ | |
25034 | *issued_error = true; | |
25035 | return p + 1; | |
25036 | } | |
25037 | + | |
25038 | + // Warn about byte order mark, except at start of file. | |
25039 | + if (*value == 0xfeff && (this->lineno_ != 1 || this->lineoff_ != 0)) | |
25040 | + { | |
25041 | + error_at(this->location(), "Unicode (UTF-8) BOM in middle of file"); | |
25042 | + *issued_error = true; | |
25043 | + } | |
25044 | + | |
25045 | return p + adv; | |
25046 | } | |
25047 | ||
25048 | @@ -1295,6 +1312,12 @@ | |
25049 | // Turn it into the "replacement character". | |
25050 | v = 0xfffd; | |
25051 | } | |
25052 | + if (v >= 0xd800 && v < 0xe000) | |
25053 | + { | |
25054 | + warning_at(location, 0, | |
25055 | + "unicode code point 0x%x is invalid surrogate pair", v); | |
25056 | + v = 0xfffd; | |
25057 | + } | |
25058 | if (v <= 0xffff) | |
25059 | { | |
25060 | buf[0] = 0xe0 + (v >> 12); | |
25061 | @@ -1705,6 +1728,27 @@ | |
25062 | unsigned int stride; | |
25063 | }; | |
25064 | ||
25065 | +// A table of whitespace characters--Unicode code points classified as | |
25066 | +// "Space", "C" locale whitespace characters, the "next line" control | |
25067 | +// character (0085), the line separator (2028), the paragraph | |
25068 | +// separator (2029), and the "zero-width non-break space" (feff). | |
25069 | + | |
25070 | +static const Unicode_range unicode_space[] = | |
25071 | +{ | |
25072 | + { 0x0009, 0x000d, 1 }, | |
25073 | + { 0x0020, 0x0020, 1 }, | |
25074 | + { 0x0085, 0x0085, 1 }, | |
25075 | + { 0x00a0, 0x00a0, 1 }, | |
25076 | + { 0x1680, 0x1680, 1 }, | |
25077 | + { 0x180e, 0x180e, 1 }, | |
25078 | + { 0x2000, 0x200a, 1 }, | |
25079 | + { 0x2028, 0x2029, 1 }, | |
25080 | + { 0x202f, 0x202f, 1 }, | |
25081 | + { 0x205f, 0x205f, 1 }, | |
25082 | + { 0x3000, 0x3000, 1 }, | |
25083 | + { 0xfeff, 0xfeff, 1 }, | |
25084 | +}; | |
25085 | + | |
25086 | // A table of Unicode digits--Unicode code points classified as | |
25087 | // "Digit". | |
25088 | ||
25089 | @@ -2294,6 +2338,15 @@ | |
25090 | } | |
25091 | } | |
25092 | ||
25093 | +// Return whether C is a space character. | |
25094 | + | |
25095 | +bool | |
25096 | +Lex::is_unicode_space(unsigned int c) | |
25097 | +{ | |
25098 | + return Lex::is_in_unicode_range(c, unicode_space, | |
25099 | + ARRAY_SIZE(unicode_space)); | |
25100 | +} | |
25101 | + | |
25102 | // Return whether C is a Unicode digit--a Unicode code point | |
25103 | // classified as "Digit". | |
25104 | ||
25105 | Index: gcc/go/gofrontend/types.cc | |
25106 | =================================================================== | |
9f95000d AM |
25107 | --- gcc/go/gofrontend/types.cc (.../tags/gcc_4_7_2_release) (wersja 192468) |
25108 | +++ gcc/go/gofrontend/types.cc (.../branches/gcc-4_7-branch) (wersja 192468) | |
5a87b929 AM |
25109 | @@ -430,7 +430,7 @@ |
25110 | ||
25111 | case TYPE_CALL_MULTIPLE_RESULT: | |
25112 | if (reason != NULL) | |
25113 | - *reason = "invalid use of multiple value function call"; | |
25114 | + *reason = "invalid use of multiple-value function call"; | |
25115 | return false; | |
25116 | ||
25117 | default: | |
25118 | @@ -588,6 +588,9 @@ | |
25119 | p != fields->end(); | |
25120 | ++p) | |
25121 | { | |
25122 | + if (Gogo::is_sink_name(p->field_name())) | |
25123 | + continue; | |
25124 | + | |
25125 | if (!p->type()->is_comparable()) | |
25126 | { | |
25127 | if (reason != NULL) | |
25128 | @@ -633,8 +636,8 @@ | |
25129 | if (rhs->is_call_multiple_result_type()) | |
25130 | { | |
25131 | if (reason != NULL) | |
25132 | - reason->assign(_("multiple value function call in " | |
25133 | - "single value context")); | |
25134 | + reason->assign(_("multiple-value function call in " | |
25135 | + "single-value context")); | |
25136 | return false; | |
25137 | } | |
25138 | } | |
25139 | @@ -1295,7 +1298,8 @@ | |
25140 | return "__go_td_" + this->mangled_name(gogo); | |
25141 | ||
25142 | Named_object* no = nt->named_object(); | |
25143 | - const Named_object* in_function = nt->in_function(); | |
25144 | + unsigned int index; | |
25145 | + const Named_object* in_function = nt->in_function(&index); | |
25146 | std::string ret = "__go_tdn_"; | |
25147 | if (nt->is_builtin()) | |
25148 | go_assert(in_function == NULL); | |
25149 | @@ -1310,6 +1314,13 @@ | |
25150 | { | |
25151 | ret.append(Gogo::unpack_hidden_name(in_function->name())); | |
25152 | ret.append(1, '.'); | |
25153 | + if (index > 0) | |
25154 | + { | |
25155 | + char buf[30]; | |
25156 | + snprintf(buf, sizeof buf, "%u", index); | |
25157 | + ret.append(buf); | |
25158 | + ret.append(1, '.'); | |
25159 | + } | |
25160 | } | |
25161 | } | |
25162 | ||
25163 | @@ -1746,9 +1757,19 @@ | |
25164 | { | |
25165 | // This name is already hidden or not as appropriate. | |
25166 | base_name = name->name(); | |
25167 | - const Named_object* in_function = name->in_function(); | |
25168 | + unsigned int index; | |
25169 | + const Named_object* in_function = name->in_function(&index); | |
25170 | if (in_function != NULL) | |
25171 | - base_name += '$' + Gogo::unpack_hidden_name(in_function->name()); | |
25172 | + { | |
25173 | + base_name += '$' + Gogo::unpack_hidden_name(in_function->name()); | |
25174 | + if (index > 0) | |
25175 | + { | |
25176 | + char buf[30]; | |
25177 | + snprintf(buf, sizeof buf, "%u", index); | |
25178 | + base_name += '$'; | |
25179 | + base_name += buf; | |
25180 | + } | |
25181 | + } | |
25182 | } | |
25183 | std::string hash_name = base_name + "$hash"; | |
25184 | std::string equal_name = base_name + "$equal"; | |
25185 | @@ -1989,10 +2010,19 @@ | |
25186 | ? gogo->pkgpath() | |
25187 | : package->pkgpath()); | |
25188 | n.assign(pkgpath); | |
25189 | - if (name->in_function() != NULL) | |
25190 | + unsigned int index; | |
25191 | + const Named_object* in_function = name->in_function(&index); | |
25192 | + if (in_function != NULL) | |
25193 | { | |
25194 | n.append(1, '.'); | |
25195 | - n.append(Gogo::unpack_hidden_name(name->in_function()->name())); | |
25196 | + n.append(Gogo::unpack_hidden_name(in_function->name())); | |
25197 | + if (index > 0) | |
25198 | + { | |
25199 | + char buf[30]; | |
25200 | + snprintf(buf, sizeof buf, "%u", index); | |
25201 | + n.append(1, '.'); | |
25202 | + n.append(buf); | |
25203 | + } | |
25204 | } | |
25205 | s = Expression::make_string(n, bloc); | |
25206 | vals->push_back(Expression::make_unary(OPERATOR_AND, s, bloc)); | |
25207 | @@ -4276,6 +4306,9 @@ | |
25208 | pf != fields->end(); | |
25209 | ++pf) | |
25210 | { | |
25211 | + if (Gogo::is_sink_name(pf->field_name())) | |
25212 | + return false; | |
25213 | + | |
25214 | if (!pf->type()->compare_is_identity(gogo)) | |
25215 | return false; | |
25216 | ||
25217 | @@ -4530,6 +4563,20 @@ | |
25218 | return Type::method_function(this->all_methods_, name, is_ambiguous); | |
25219 | } | |
25220 | ||
25221 | +// Return a pointer to the interface method table for this type for | |
25222 | +// the interface INTERFACE. IS_POINTER is true if this is for a | |
25223 | +// pointer to THIS. | |
25224 | + | |
25225 | +tree | |
25226 | +Struct_type::interface_method_table(Gogo* gogo, | |
25227 | + const Interface_type* interface, | |
25228 | + bool is_pointer) | |
25229 | +{ | |
25230 | + return Type::interface_method_table(gogo, this, interface, is_pointer, | |
25231 | + &this->interface_method_tables_, | |
25232 | + &this->pointer_interface_method_tables_); | |
25233 | +} | |
25234 | + | |
25235 | // Convert struct fields to the backend representation. This is not | |
25236 | // declared in types.h so that types.h doesn't have to #include | |
25237 | // backend.h. | |
25238 | @@ -4749,6 +4796,9 @@ | |
25239 | pf != fields->end(); | |
25240 | ++pf) | |
25241 | { | |
25242 | + if (Gogo::is_sink_name(pf->field_name())) | |
25243 | + continue; | |
25244 | + | |
25245 | if (first) | |
25246 | first = false; | |
25247 | else | |
25248 | @@ -4840,6 +4890,9 @@ | |
25249 | pf != fields->end(); | |
25250 | ++pf, ++field_index) | |
25251 | { | |
25252 | + if (Gogo::is_sink_name(pf->field_name())) | |
25253 | + continue; | |
25254 | + | |
25255 | // Compare one field in both P1 and P2. | |
25256 | Expression* f1 = Expression::make_temporary_reference(p1, bloc); | |
25257 | f1 = Expression::make_unary(OPERATOR_MULT, f1, bloc); | |
25258 | @@ -4875,14 +4928,15 @@ | |
25259 | void | |
25260 | Struct_type::do_reflection(Gogo* gogo, std::string* ret) const | |
25261 | { | |
25262 | - ret->append("struct { "); | |
25263 | + ret->append("struct {"); | |
25264 | ||
25265 | for (Struct_field_list::const_iterator p = this->fields_->begin(); | |
25266 | p != this->fields_->end(); | |
25267 | ++p) | |
25268 | { | |
25269 | if (p != this->fields_->begin()) | |
25270 | - ret->append("; "); | |
25271 | + ret->push_back(';'); | |
25272 | + ret->push_back(' '); | |
25273 | if (p->is_anonymous()) | |
25274 | ret->push_back('?'); | |
25275 | else | |
25276 | @@ -4915,7 +4969,10 @@ | |
25277 | } | |
25278 | } | |
25279 | ||
25280 | - ret->append(" }"); | |
25281 | + if (!this->fields_->empty()) | |
25282 | + ret->push_back(' '); | |
25283 | + | |
25284 | + ret->push_back('}'); | |
25285 | } | |
25286 | ||
25287 | // Mangled name. | |
25288 | @@ -6815,7 +6872,8 @@ | |
25289 | std::string n = Gogo::message_name(p->name()); | |
25290 | size_t len = 100 + n.length(); | |
25291 | char* buf = new char[len]; | |
25292 | - snprintf(buf, len, _("method %s%s%s requires a pointer"), | |
25293 | + snprintf(buf, len, | |
25294 | + _("method %s%s%s requires a pointer receiver"), | |
25295 | open_quote, n.c_str(), close_quote); | |
25296 | reason->assign(buf); | |
25297 | delete[] buf; | |
25298 | @@ -7151,7 +7209,17 @@ | |
25299 | { | |
25300 | if (!p->name().empty()) | |
25301 | { | |
25302 | - std::string n = Gogo::unpack_hidden_name(p->name()); | |
25303 | + std::string n; | |
25304 | + if (!Gogo::is_hidden_name(p->name())) | |
25305 | + n = p->name(); | |
25306 | + else | |
25307 | + { | |
25308 | + n = "."; | |
25309 | + std::string pkgpath = Gogo::hidden_name_pkgpath(p->name()); | |
25310 | + n.append(Gogo::pkgpath_for_symbol(pkgpath)); | |
25311 | + n.append(1, '.'); | |
25312 | + n.append(Gogo::unpack_hidden_name(p->name())); | |
25313 | + } | |
25314 | char buf[20]; | |
25315 | snprintf(buf, sizeof buf, "%u_", | |
25316 | static_cast<unsigned int>(n.length())); | |
25317 | @@ -7704,32 +7772,9 @@ | |
25318 | Named_type::interface_method_table(Gogo* gogo, const Interface_type* interface, | |
25319 | bool is_pointer) | |
25320 | { | |
25321 | - go_assert(!interface->is_empty()); | |
25322 | - | |
25323 | - Interface_method_tables** pimt = (is_pointer | |
25324 | - ? &this->interface_method_tables_ | |
25325 | - : &this->pointer_interface_method_tables_); | |
25326 | - | |
25327 | - if (*pimt == NULL) | |
25328 | - *pimt = new Interface_method_tables(5); | |
25329 | - | |
25330 | - std::pair<const Interface_type*, tree> val(interface, NULL_TREE); | |
25331 | - std::pair<Interface_method_tables::iterator, bool> ins = (*pimt)->insert(val); | |
25332 | - | |
25333 | - if (ins.second) | |
25334 | - { | |
25335 | - // This is a new entry in the hash table. | |
25336 | - go_assert(ins.first->second == NULL_TREE); | |
25337 | - ins.first->second = gogo->interface_method_table_for_type(interface, | |
25338 | - this, | |
25339 | - is_pointer); | |
25340 | - } | |
25341 | - | |
25342 | - tree decl = ins.first->second; | |
25343 | - if (decl == error_mark_node) | |
25344 | - return error_mark_node; | |
25345 | - go_assert(decl != NULL_TREE && TREE_CODE(decl) == VAR_DECL); | |
25346 | - return build_fold_addr_expr(decl); | |
25347 | + return Type::interface_method_table(gogo, this, interface, is_pointer, | |
25348 | + &this->interface_method_tables_, | |
25349 | + &this->pointer_interface_method_tables_); | |
25350 | } | |
25351 | ||
25352 | // Return whether a named type has any hidden fields. | |
25353 | @@ -8358,8 +8403,17 @@ | |
25354 | } | |
25355 | if (this->in_function_ != NULL) | |
25356 | { | |
25357 | + ret->push_back('\t'); | |
25358 | ret->append(Gogo::unpack_hidden_name(this->in_function_->name())); | |
25359 | ret->push_back('$'); | |
25360 | + if (this->in_function_index_ > 0) | |
25361 | + { | |
25362 | + char buf[30]; | |
25363 | + snprintf(buf, sizeof buf, "%u", this->in_function_index_); | |
25364 | + ret->append(buf); | |
25365 | + ret->push_back('$'); | |
25366 | + } | |
25367 | + ret->push_back('\t'); | |
25368 | } | |
25369 | ret->append(Gogo::unpack_hidden_name(this->named_object_->name())); | |
25370 | } | |
25371 | @@ -8389,6 +8443,13 @@ | |
25372 | { | |
25373 | name.append(Gogo::unpack_hidden_name(this->in_function_->name())); | |
25374 | name.append(1, '$'); | |
25375 | + if (this->in_function_index_ > 0) | |
25376 | + { | |
25377 | + char buf[30]; | |
25378 | + snprintf(buf, sizeof buf, "%u", this->in_function_index_); | |
25379 | + name.append(buf); | |
25380 | + name.append(1, '$'); | |
25381 | + } | |
25382 | } | |
25383 | } | |
25384 | name.append(Gogo::unpack_hidden_name(no->name())); | |
25385 | @@ -8899,6 +8960,42 @@ | |
25386 | return m; | |
25387 | } | |
25388 | ||
25389 | +// Return a pointer to the interface method table for TYPE for the | |
25390 | +// interface INTERFACE. | |
25391 | + | |
25392 | +tree | |
25393 | +Type::interface_method_table(Gogo* gogo, Type* type, | |
25394 | + const Interface_type *interface, | |
25395 | + bool is_pointer, | |
25396 | + Interface_method_tables** method_tables, | |
25397 | + Interface_method_tables** pointer_tables) | |
25398 | +{ | |
25399 | + go_assert(!interface->is_empty()); | |
25400 | + | |
25401 | + Interface_method_tables** pimt = is_pointer ? method_tables : pointer_tables; | |
25402 | + | |
25403 | + if (*pimt == NULL) | |
25404 | + *pimt = new Interface_method_tables(5); | |
25405 | + | |
25406 | + std::pair<const Interface_type*, tree> val(interface, NULL_TREE); | |
25407 | + std::pair<Interface_method_tables::iterator, bool> ins = (*pimt)->insert(val); | |
25408 | + | |
25409 | + if (ins.second) | |
25410 | + { | |
25411 | + // This is a new entry in the hash table. | |
25412 | + go_assert(ins.first->second == NULL_TREE); | |
25413 | + ins.first->second = gogo->interface_method_table_for_type(interface, | |
25414 | + type, | |
25415 | + is_pointer); | |
25416 | + } | |
25417 | + | |
25418 | + tree decl = ins.first->second; | |
25419 | + if (decl == error_mark_node) | |
25420 | + return error_mark_node; | |
25421 | + go_assert(decl != NULL_TREE && TREE_CODE(decl) == VAR_DECL); | |
25422 | + return build_fold_addr_expr(decl); | |
25423 | +} | |
25424 | + | |
25425 | // Look for field or method NAME for TYPE. Return an Expression for | |
25426 | // the field or method bound to EXPR. If there is no such field or | |
25427 | // method, give an appropriate error and return an error expression. | |
25428 | @@ -8990,7 +9087,7 @@ | |
25429 | Gogo::message_name(name).c_str(), ambig1.c_str(), | |
25430 | ambig2.c_str()); | |
25431 | else if (found_pointer_method) | |
25432 | - error_at(location, "method requires a pointer"); | |
25433 | + error_at(location, "method requires a pointer receiver"); | |
25434 | else if (nt == NULL && st == NULL && it == NULL) | |
25435 | error_at(location, | |
25436 | ("reference to field %qs in object which " | |
25437 | Index: gcc/go/gofrontend/parse.h | |
25438 | =================================================================== | |
9f95000d AM |
25439 | --- gcc/go/gofrontend/parse.h (.../tags/gcc_4_7_2_release) (wersja 192468) |
25440 | +++ gcc/go/gofrontend/parse.h (.../branches/gcc-4_7-branch) (wersja 192468) | |
5a87b929 AM |
25441 | @@ -14,6 +14,7 @@ |
25442 | class Type; | |
25443 | class Typed_identifier; | |
25444 | class Typed_identifier_list; | |
25445 | +class Channel_type; | |
25446 | class Function_type; | |
25447 | class Block; | |
25448 | class Expression; | |
25449 | @@ -205,8 +206,11 @@ | |
25450 | Expression*, bool is_coloneq, | |
25451 | Location); | |
25452 | Named_object* init_var(const Typed_identifier&, Type*, Expression*, | |
25453 | - bool is_coloneq, bool type_from_init, bool* is_new); | |
25454 | + bool is_coloneq, bool type_from_init, bool* is_new, | |
25455 | + Expression_list* vars, Expression_list* vals); | |
25456 | Named_object* create_dummy_global(Type*, Expression*, Location); | |
25457 | + void finish_init_vars(Expression_list* vars, Expression_list* vals, | |
25458 | + Location); | |
25459 | void simple_var_decl_or_assignment(const std::string&, Location, | |
25460 | bool may_be_composite_lit, | |
25461 | Range_clause*, Type_switch*); | |
25462 | @@ -229,6 +233,7 @@ | |
25463 | bool expression_may_start_here(); | |
25464 | Expression* unary_expr(bool may_be_sink, bool may_be_composite_lit, | |
25465 | bool* is_type_switch); | |
25466 | + Type* reassociate_chan_direction(Channel_type*, Location); | |
25467 | Expression* qualified_expr(Expression*, Location); | |
25468 | Expression* id_to_expression(const std::string&, Location); | |
25469 | void statement(Label*); | |
25470 | Index: gcc/go/gofrontend/expressions.cc | |
25471 | =================================================================== | |
9f95000d AM |
25472 | --- gcc/go/gofrontend/expressions.cc (.../tags/gcc_4_7_2_release) (wersja 192468) |
25473 | +++ gcc/go/gofrontend/expressions.cc (.../branches/gcc-4_7-branch) (wersja 192468) | |
5a87b929 AM |
25474 | @@ -301,19 +301,25 @@ |
25475 | // object type: a list of function pointers for each interface | |
25476 | // method. | |
25477 | Named_type* rhs_named_type = rhs_type->named_type(); | |
25478 | + Struct_type* rhs_struct_type = rhs_type->struct_type(); | |
25479 | bool is_pointer = false; | |
25480 | - if (rhs_named_type == NULL) | |
25481 | + if (rhs_named_type == NULL && rhs_struct_type == NULL) | |
25482 | { | |
25483 | rhs_named_type = rhs_type->deref()->named_type(); | |
25484 | + rhs_struct_type = rhs_type->deref()->struct_type(); | |
25485 | is_pointer = true; | |
25486 | } | |
25487 | tree method_table; | |
25488 | - if (rhs_named_type == NULL) | |
25489 | - method_table = null_pointer_node; | |
25490 | - else | |
25491 | + if (rhs_named_type != NULL) | |
25492 | method_table = | |
25493 | rhs_named_type->interface_method_table(gogo, lhs_interface_type, | |
25494 | is_pointer); | |
25495 | + else if (rhs_struct_type != NULL) | |
25496 | + method_table = | |
25497 | + rhs_struct_type->interface_method_table(gogo, lhs_interface_type, | |
25498 | + is_pointer); | |
25499 | + else | |
25500 | + method_table = null_pointer_node; | |
25501 | first_field_value = fold_convert_loc(location.gcc_location(), | |
25502 | const_ptr_type_node, method_table); | |
25503 | } | |
25504 | @@ -5184,6 +5190,9 @@ | |
25505 | pf != fields->end(); | |
25506 | ++pf, ++field_index) | |
25507 | { | |
25508 | + if (Gogo::is_sink_name(pf->field_name())) | |
25509 | + continue; | |
25510 | + | |
25511 | if (field_index > 0) | |
25512 | { | |
25513 | if (left_temp == NULL) | |
25514 | @@ -5450,7 +5459,8 @@ | |
25515 | && (this->left_->type()->integer_type() == NULL | |
25516 | || (subcontext.type->integer_type() == NULL | |
25517 | && subcontext.type->float_type() == NULL | |
25518 | - && subcontext.type->complex_type() == NULL))) | |
25519 | + && subcontext.type->complex_type() == NULL | |
25520 | + && subcontext.type->interface_type() == NULL))) | |
25521 | this->report_error(("invalid context-determined non-integer type " | |
25522 | "for shift operand")); | |
25523 | ||
25524 | @@ -6682,38 +6692,6 @@ | |
25525 | this->set_args(new_args); | |
25526 | } | |
25527 | ||
25528 | -// A traversal class which looks for a call expression. | |
25529 | - | |
25530 | -class Find_call_expression : public Traverse | |
25531 | -{ | |
25532 | - public: | |
25533 | - Find_call_expression() | |
25534 | - : Traverse(traverse_expressions), | |
25535 | - found_(false) | |
25536 | - { } | |
25537 | - | |
25538 | - int | |
25539 | - expression(Expression**); | |
25540 | - | |
25541 | - bool | |
25542 | - found() | |
25543 | - { return this->found_; } | |
25544 | - | |
25545 | - private: | |
25546 | - bool found_; | |
25547 | -}; | |
25548 | - | |
25549 | -int | |
25550 | -Find_call_expression::expression(Expression** pexpr) | |
25551 | -{ | |
25552 | - if ((*pexpr)->call_expression() != NULL) | |
25553 | - { | |
25554 | - this->found_ = true; | |
25555 | - return TRAVERSE_EXIT; | |
25556 | - } | |
25557 | - return TRAVERSE_CONTINUE; | |
25558 | -} | |
25559 | - | |
25560 | // Lower a builtin call expression. This turns new and make into | |
25561 | // specific expressions. We also convert to a constant if we can. | |
25562 | ||
25563 | @@ -6734,20 +6712,6 @@ | |
25564 | ||
25565 | if (this->is_constant()) | |
25566 | { | |
25567 | - // We can only lower len and cap if there are no function calls | |
25568 | - // in the arguments. Otherwise we have to make the call. | |
25569 | - if (this->code_ == BUILTIN_LEN || this->code_ == BUILTIN_CAP) | |
25570 | - { | |
25571 | - Expression* arg = this->one_arg(); | |
25572 | - if (arg != NULL && !arg->is_constant()) | |
25573 | - { | |
25574 | - Find_call_expression find_call; | |
25575 | - Expression::traverse(&arg, &find_call); | |
25576 | - if (find_call.found()) | |
25577 | - return this; | |
25578 | - } | |
25579 | - } | |
25580 | - | |
25581 | Numeric_constant nc; | |
25582 | if (this->numeric_constant_value(&nc)) | |
25583 | return nc.expression(loc); | |
25584 | @@ -7064,9 +7028,43 @@ | |
25585 | return args->front(); | |
25586 | } | |
25587 | ||
25588 | -// Return whether this is constant: len of a string, or len or cap of | |
25589 | -// a fixed array, or unsafe.Sizeof, unsafe.Offsetof, unsafe.Alignof. | |
25590 | +// A traversal class which looks for a call or receive expression. | |
25591 | ||
25592 | +class Find_call_expression : public Traverse | |
25593 | +{ | |
25594 | + public: | |
25595 | + Find_call_expression() | |
25596 | + : Traverse(traverse_expressions), | |
25597 | + found_(false) | |
25598 | + { } | |
25599 | + | |
25600 | + int | |
25601 | + expression(Expression**); | |
25602 | + | |
25603 | + bool | |
25604 | + found() | |
25605 | + { return this->found_; } | |
25606 | + | |
25607 | + private: | |
25608 | + bool found_; | |
25609 | +}; | |
25610 | + | |
25611 | +int | |
25612 | +Find_call_expression::expression(Expression** pexpr) | |
25613 | +{ | |
25614 | + if ((*pexpr)->call_expression() != NULL | |
25615 | + || (*pexpr)->receive_expression() != NULL) | |
25616 | + { | |
25617 | + this->found_ = true; | |
25618 | + return TRAVERSE_EXIT; | |
25619 | + } | |
25620 | + return TRAVERSE_CONTINUE; | |
25621 | +} | |
25622 | + | |
25623 | +// Return whether this is constant: len of a string constant, or len | |
25624 | +// or cap of an array, or unsafe.Sizeof, unsafe.Offsetof, | |
25625 | +// unsafe.Alignof. | |
25626 | + | |
25627 | bool | |
25628 | Builtin_call_expression::do_is_constant() const | |
25629 | { | |
25630 | @@ -7088,6 +7086,17 @@ | |
25631 | && !arg_type->points_to()->is_slice_type()) | |
25632 | arg_type = arg_type->points_to(); | |
25633 | ||
25634 | + // The len and cap functions are only constant if there are no | |
25635 | + // function calls or channel operations in the arguments. | |
25636 | + // Otherwise we have to make the call. | |
25637 | + if (!arg->is_constant()) | |
25638 | + { | |
25639 | + Find_call_expression find_call; | |
25640 | + Expression::traverse(&arg, &find_call); | |
25641 | + if (find_call.found()) | |
25642 | + return false; | |
25643 | + } | |
25644 | + | |
25645 | if (arg_type->array_type() != NULL | |
25646 | && arg_type->array_type()->length() != NULL) | |
25647 | return true; | |
25648 | @@ -7474,7 +7483,7 @@ | |
25649 | if (args != NULL && args->size() == 2) | |
25650 | { | |
25651 | Type* t1 = args->front()->type(); | |
25652 | - Type* t2 = args->front()->type(); | |
25653 | + Type* t2 = args->back()->type(); | |
25654 | if (!t1->is_abstract()) | |
25655 | arg_type = t1; | |
25656 | else if (!t2->is_abstract()) | |
25657 | Index: gcc/go/gofrontend/lex.h | |
25658 | =================================================================== | |
9f95000d AM |
25659 | --- gcc/go/gofrontend/lex.h (.../tags/gcc_4_7_2_release) (wersja 192468) |
25660 | +++ gcc/go/gofrontend/lex.h (.../branches/gcc-4_7-branch) (wersja 192468) | |
5a87b929 AM |
25661 | @@ -375,6 +375,10 @@ |
25662 | static int | |
25663 | fetch_char(const char* str, unsigned int *value); | |
25664 | ||
25665 | + // Return whether C is a Unicode or "C" locale space character. | |
25666 | + static bool | |
25667 | + is_unicode_space(unsigned int c); | |
25668 | + | |
25669 | private: | |
25670 | ssize_t | |
25671 | get_line(); | |
25672 | Index: gcc/ada/ChangeLog | |
25673 | =================================================================== | |
9f95000d AM |
25674 | --- gcc/ada/ChangeLog (.../tags/gcc_4_7_2_release) (wersja 192468) |
25675 | +++ gcc/ada/ChangeLog (.../branches/gcc-4_7-branch) (wersja 192468) | |
5a87b929 AM |
25676 | @@ -1,3 +1,11 @@ |
25677 | +2012-10-02 Eric Botcazou <ebotcazou@adacore.com> | |
25678 | + | |
25679 | + * gcc-interfaces/decl.c (elaborate_expression_1): Use the variable for | |
25680 | + bounds of loop iteraration scheme only for locally defined subtypes. | |
25681 | + | |
25682 | + * gcc-interface/trans.c (build_return_expr): Apply the NRV optimization | |
25683 | + only for BLKmode. | |
25684 | + | |
25685 | 2012-09-20 Release Manager | |
25686 | ||
25687 | * GCC 4.7.2 released. | |
25688 | Index: gcc/ada/gcc-interface/decl.c | |
25689 | =================================================================== | |
9f95000d AM |
25690 | --- gcc/ada/gcc-interface/decl.c (.../tags/gcc_4_7_2_release) (wersja 192468) |
25691 | +++ gcc/ada/gcc-interface/decl.c (.../branches/gcc-4_7-branch) (wersja 192468) | |
5a87b929 AM |
25692 | @@ -6346,6 +6346,7 @@ |
25693 | use_variable = expr_variable_p | |
25694 | && (expr_global_p | |
25695 | || (!optimize | |
25696 | + && definition | |
25697 | && Is_Itype (gnat_entity) | |
25698 | && Nkind (Associated_Node_For_Itype (gnat_entity)) | |
25699 | == N_Loop_Parameter_Specification)); | |
25700 | Index: gcc/ada/gcc-interface/trans.c | |
25701 | =================================================================== | |
9f95000d AM |
25702 | --- gcc/ada/gcc-interface/trans.c (.../tags/gcc_4_7_2_release) (wersja 192468) |
25703 | +++ gcc/ada/gcc-interface/trans.c (.../branches/gcc-4_7-branch) (wersja 192468) | |
5a87b929 AM |
25704 | @@ -3123,6 +3123,7 @@ |
25705 | if (optimize | |
25706 | && AGGREGATE_TYPE_P (operation_type) | |
25707 | && !TYPE_IS_FAT_POINTER_P (operation_type) | |
25708 | + && TYPE_MODE (operation_type) == BLKmode | |
25709 | && aggregate_value_p (operation_type, current_function_decl)) | |
25710 | { | |
25711 | /* Recognize the temporary created for a return value with variable | |
25712 | Index: gcc/fortran/ChangeLog | |
25713 | =================================================================== | |
9f95000d AM |
25714 | --- gcc/fortran/ChangeLog (.../tags/gcc_4_7_2_release) (wersja 192468) |
25715 | +++ gcc/fortran/ChangeLog (.../branches/gcc-4_7-branch) (wersja 192468) | |
5a87b929 AM |
25716 | @@ -1,3 +1,9 @@ |
25717 | +2012-10-14 Janus Weil <janus@gcc.gnu.org> | |
25718 | + | |
25719 | + PR fortran/54784 | |
25720 | + * trans-stmt.c (gfc_trans_allocate): Correctly determine the reference | |
25721 | + to the _data component for polymorphic allocation with SOURCE. | |
25722 | + | |
25723 | 2012-09-20 Release Manager | |
25724 | ||
25725 | * GCC 4.7.2 released. | |
25726 | Index: gcc/fortran/trans-stmt.c | |
25727 | =================================================================== | |
9f95000d AM |
25728 | --- gcc/fortran/trans-stmt.c (.../tags/gcc_4_7_2_release) (wersja 192468) |
25729 | +++ gcc/fortran/trans-stmt.c (.../branches/gcc-4_7-branch) (wersja 192468) | |
5a87b929 AM |
25730 | @@ -5087,7 +5087,7 @@ |
25731 | gfc_actual_arglist *actual; | |
25732 | gfc_expr *ppc; | |
25733 | gfc_code *ppc_code; | |
25734 | - gfc_ref *dataref; | |
25735 | + gfc_ref *ref, *dataref; | |
25736 | ||
25737 | /* Do a polymorphic deep copy. */ | |
25738 | actual = gfc_get_actual_arglist (); | |
25739 | @@ -5099,13 +5099,15 @@ | |
25740 | actual->next->expr->ts.type = BT_CLASS; | |
25741 | gfc_add_data_component (actual->next->expr); | |
25742 | ||
25743 | - dataref = actual->next->expr->ref; | |
25744 | + dataref = NULL; | |
25745 | /* Make sure we go up through the reference chain to | |
25746 | the _data reference, where the arrayspec is found. */ | |
25747 | - while (dataref->next && dataref->next->type != REF_ARRAY) | |
25748 | - dataref = dataref->next; | |
25749 | + for (ref = actual->next->expr->ref; ref; ref = ref->next) | |
25750 | + if (ref->type == REF_COMPONENT | |
25751 | + && strcmp (ref->u.c.component->name, "_data") == 0) | |
25752 | + dataref = ref; | |
25753 | ||
25754 | - if (dataref->u.c.component->as) | |
25755 | + if (dataref && dataref->u.c.component->as) | |
25756 | { | |
25757 | int dim; | |
25758 | gfc_expr *temp; | |
25759 | Index: gcc/BASE-VER | |
25760 | =================================================================== | |
9f95000d AM |
25761 | --- gcc/BASE-VER (.../tags/gcc_4_7_2_release) (wersja 192468) |
25762 | +++ gcc/BASE-VER (.../branches/gcc-4_7-branch) (wersja 192468) | |
5a87b929 AM |
25763 | @@ -1 +1 @@ |
25764 | -4.7.2 | |
25765 | +4.7.3 | |
25766 | Index: gcc/gcc-ar.c | |
25767 | =================================================================== | |
9f95000d AM |
25768 | --- gcc/gcc-ar.c (.../tags/gcc_4_7_2_release) (wersja 192468) |
25769 | +++ gcc/gcc-ar.c (.../branches/gcc-4_7-branch) (wersja 192468) | |
5a87b929 AM |
25770 | @@ -42,6 +42,7 @@ |
25771 | const char *err_msg; | |
25772 | const char **nargv; | |
25773 | bool is_ar = !strcmp (PERSONALITY, "ar"); | |
25774 | + int exit_code = FATAL_EXIT_CODE; | |
25775 | ||
25776 | exe_name = PERSONALITY; | |
25777 | #ifdef CROSS_DIRECTORY_STRUCTURE | |
25778 | @@ -96,6 +97,20 @@ | |
25779 | NULL,NULL, &status, &err); | |
25780 | if (err_msg) | |
25781 | fprintf(stderr, "Error running %s: %s\n", exe_name, err_msg); | |
25782 | + else if (status) | |
25783 | + { | |
25784 | + if (WIFSIGNALED (status)) | |
25785 | + { | |
25786 | + int sig = WTERMSIG (status); | |
25787 | + fprintf (stderr, "%s terminated with signal %d [%s]%s\n", | |
25788 | + exe_name, sig, strsignal(sig), | |
25789 | + WCOREDUMP(status) ? ", core dumped" : ""); | |
25790 | + } | |
25791 | + else if (WIFEXITED (status)) | |
25792 | + exit_code = WEXITSTATUS (status); | |
25793 | + } | |
25794 | + else | |
25795 | + exit_code = SUCCESS_EXIT_CODE; | |
25796 | ||
25797 | - return err; | |
25798 | + return exit_code; | |
25799 | } | |
25800 | Index: gcc/c-typeck.c | |
25801 | =================================================================== | |
9f95000d AM |
25802 | --- gcc/c-typeck.c (.../tags/gcc_4_7_2_release) (wersja 192468) |
25803 | +++ gcc/c-typeck.c (.../branches/gcc-4_7-branch) (wersja 192468) | |
5a87b929 AM |
25804 | @@ -3642,7 +3642,13 @@ |
25805 | "wrong type argument to unary exclamation mark"); | |
25806 | return error_mark_node; | |
25807 | } | |
25808 | - arg = c_objc_common_truthvalue_conversion (location, arg); | |
25809 | + if (int_operands) | |
25810 | + { | |
25811 | + arg = c_objc_common_truthvalue_conversion (location, xarg); | |
25812 | + arg = remove_c_maybe_const_expr (arg); | |
25813 | + } | |
25814 | + else | |
25815 | + arg = c_objc_common_truthvalue_conversion (location, arg); | |
25816 | ret = invert_truthvalue_loc (location, arg); | |
25817 | /* If the TRUTH_NOT_EXPR has been folded, reset the location. */ | |
25818 | if (EXPR_P (ret) && EXPR_HAS_LOCATION (ret)) | |
25819 | @@ -4862,8 +4868,11 @@ | |
25820 | ret = build_c_cast (loc, type, expr); | |
25821 | if (type_expr) | |
25822 | { | |
25823 | + bool inner_expr_const = true; | |
25824 | + ret = c_fully_fold (ret, require_constant_value, &inner_expr_const); | |
25825 | ret = build2 (C_MAYBE_CONST_EXPR, TREE_TYPE (ret), type_expr, ret); | |
25826 | - C_MAYBE_CONST_EXPR_NON_CONST (ret) = !type_expr_const; | |
25827 | + C_MAYBE_CONST_EXPR_NON_CONST (ret) = !(type_expr_const | |
25828 | + && inner_expr_const); | |
25829 | SET_EXPR_LOCATION (ret, loc); | |
25830 | } | |
25831 | ||
25832 | @@ -9896,8 +9905,20 @@ | |
25833 | but that does not mean the operands should be | |
25834 | converted to ints! */ | |
25835 | result_type = integer_type_node; | |
25836 | - op0 = c_common_truthvalue_conversion (location, op0); | |
25837 | - op1 = c_common_truthvalue_conversion (location, op1); | |
25838 | + if (op0_int_operands) | |
25839 | + { | |
25840 | + op0 = c_objc_common_truthvalue_conversion (location, orig_op0); | |
25841 | + op0 = remove_c_maybe_const_expr (op0); | |
25842 | + } | |
25843 | + else | |
25844 | + op0 = c_objc_common_truthvalue_conversion (location, op0); | |
25845 | + if (op1_int_operands) | |
25846 | + { | |
25847 | + op1 = c_objc_common_truthvalue_conversion (location, orig_op1); | |
25848 | + op1 = remove_c_maybe_const_expr (op1); | |
25849 | + } | |
25850 | + else | |
25851 | + op1 = c_objc_common_truthvalue_conversion (location, op1); | |
25852 | converted = 1; | |
25853 | boolean_op = true; | |
25854 | } | |
25855 | @@ -10609,13 +10630,18 @@ | |
25856 | ||
25857 | int_const = (TREE_CODE (expr) == INTEGER_CST && !TREE_OVERFLOW (expr)); | |
25858 | int_operands = EXPR_INT_CONST_OPERANDS (expr); | |
25859 | - if (int_operands) | |
25860 | - expr = remove_c_maybe_const_expr (expr); | |
25861 | + if (int_operands && TREE_CODE (expr) != INTEGER_CST) | |
25862 | + { | |
25863 | + expr = remove_c_maybe_const_expr (expr); | |
25864 | + expr = build2 (NE_EXPR, integer_type_node, expr, | |
25865 | + convert (TREE_TYPE (expr), integer_zero_node)); | |
25866 | + expr = note_integer_operands (expr); | |
25867 | + } | |
25868 | + else | |
25869 | + /* ??? Should we also give an error for vectors rather than leaving | |
25870 | + those to give errors later? */ | |
25871 | + expr = c_common_truthvalue_conversion (location, expr); | |
25872 | ||
25873 | - /* ??? Should we also give an error for vectors rather than leaving | |
25874 | - those to give errors later? */ | |
25875 | - expr = c_common_truthvalue_conversion (location, expr); | |
25876 | - | |
25877 | if (TREE_CODE (expr) == INTEGER_CST && int_operands && !int_const) | |
25878 | { | |
25879 | if (TREE_OVERFLOW (expr)) | |
25880 | Index: gcc/tree-ssa-pre.c | |
25881 | =================================================================== | |
9f95000d AM |
25882 | --- gcc/tree-ssa-pre.c (.../tags/gcc_4_7_2_release) (wersja 192468) |
25883 | +++ gcc/tree-ssa-pre.c (.../branches/gcc-4_7-branch) (wersja 192468) | |
5a87b929 AM |
25884 | @@ -3063,7 +3063,7 @@ |
25885 | case NARY: | |
25886 | { | |
25887 | vn_nary_op_t nary = PRE_EXPR_NARY (expr); | |
25888 | - tree genop[4]; | |
25889 | + tree *genop = XALLOCAVEC (tree, nary->length); | |
25890 | unsigned i; | |
25891 | for (i = 0; i < nary->length; ++i) | |
25892 | { | |
25893 | Index: gcc/simplify-rtx.c | |
25894 | =================================================================== | |
9f95000d AM |
25895 | --- gcc/simplify-rtx.c (.../tags/gcc_4_7_2_release) (wersja 192468) |
25896 | +++ gcc/simplify-rtx.c (.../branches/gcc-4_7-branch) (wersja 192468) | |
5a87b929 AM |
25897 | @@ -1,7 +1,7 @@ |
25898 | /* RTL simplification functions for GNU compiler. | |
25899 | Copyright (C) 1987, 1988, 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998, | |
25900 | 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, | |
25901 | - 2011 Free Software Foundation, Inc. | |
25902 | + 2011, 2012 Free Software Foundation, Inc. | |
25903 | ||
25904 | This file is part of GCC. | |
25905 | ||
25906 | @@ -2239,7 +2239,7 @@ | |
25907 | neg_const_int (mode, op1)); | |
25908 | ||
25909 | /* (x - (x & y)) -> (x & ~y) */ | |
25910 | - if (GET_CODE (op1) == AND) | |
25911 | + if (INTEGRAL_MODE_P (mode) && GET_CODE (op1) == AND) | |
25912 | { | |
25913 | if (rtx_equal_p (op0, XEXP (op1, 0))) | |
25914 | { | |
25915 | Index: gcc/lto/lto.c | |
25916 | =================================================================== | |
9f95000d AM |
25917 | --- gcc/lto/lto.c (.../tags/gcc_4_7_2_release) (wersja 192468) |
25918 | +++ gcc/lto/lto.c (.../branches/gcc-4_7-branch) (wersja 192468) | |
5a87b929 AM |
25919 | @@ -761,6 +761,7 @@ |
25920 | variant list state before fixup is broken. */ | |
25921 | tree tem, mv; | |
25922 | ||
25923 | +#ifdef ENABLE_CHECKING | |
25924 | /* Remove us from our main variant list if we are not the | |
25925 | variant leader. */ | |
25926 | if (TYPE_MAIN_VARIANT (t) != t) | |
25927 | @@ -768,10 +769,9 @@ | |
25928 | tem = TYPE_MAIN_VARIANT (t); | |
25929 | while (tem && TYPE_NEXT_VARIANT (tem) != t) | |
25930 | tem = TYPE_NEXT_VARIANT (tem); | |
25931 | - if (tem) | |
25932 | - TYPE_NEXT_VARIANT (tem) = TYPE_NEXT_VARIANT (t); | |
25933 | - TYPE_NEXT_VARIANT (t) = NULL_TREE; | |
25934 | + gcc_assert (!tem && !TYPE_NEXT_VARIANT (t)); | |
25935 | } | |
25936 | +#endif | |
25937 | ||
25938 | /* Query our new main variant. */ | |
25939 | mv = GIMPLE_REGISTER_TYPE (TYPE_MAIN_VARIANT (t)); | |
25940 | Index: gcc/lto/ChangeLog | |
25941 | =================================================================== | |
9f95000d AM |
25942 | --- gcc/lto/ChangeLog (.../tags/gcc_4_7_2_release) (wersja 192468) |
25943 | +++ gcc/lto/ChangeLog (.../branches/gcc-4_7-branch) (wersja 192468) | |
5a87b929 AM |
25944 | @@ -1,3 +1,12 @@ |
25945 | +2012-09-20 Richard Guenther <rguenther@suse.de> | |
25946 | + | |
25947 | + Backport from mainline | |
25948 | + 2012-09-11 Jan Hubicka <jh@suse.cz> | |
25949 | + | |
25950 | + PR lto/54312 | |
25951 | + * lto.c (uniquify_nodes): Remove quadratic loop checking if the | |
25952 | + type is variant leader. | |
25953 | + | |
25954 | 2012-09-20 Release Manager | |
25955 | ||
25956 | * GCC 4.7.2 released. | |
25957 | Index: gcc/tree-streamer-out.c | |
25958 | =================================================================== | |
9f95000d AM |
25959 | --- gcc/tree-streamer-out.c (.../tags/gcc_4_7_2_release) (wersja 192468) |
25960 | +++ gcc/tree-streamer-out.c (.../branches/gcc-4_7-branch) (wersja 192468) | |
5a87b929 AM |
25961 | @@ -279,6 +279,8 @@ |
25962 | bp_pack_value (bp, TYPE_NEEDS_CONSTRUCTING (expr), 1); | |
25963 | if (RECORD_OR_UNION_TYPE_P (expr)) | |
25964 | bp_pack_value (bp, TYPE_TRANSPARENT_AGGR (expr), 1); | |
25965 | + else if (TREE_CODE (expr) == ARRAY_TYPE) | |
25966 | + bp_pack_value (bp, TYPE_NONALIASED_COMPONENT (expr), 1); | |
25967 | bp_pack_value (bp, TYPE_PACKED (expr), 1); | |
25968 | bp_pack_value (bp, TYPE_RESTRICT (expr), 1); | |
25969 | bp_pack_value (bp, TYPE_CONTAINS_PLACEHOLDER_INTERNAL (expr), 2); | |
25970 | Index: gcc/po/es.po | |
25971 | =================================================================== | |
9f95000d AM |
25972 | --- gcc/po/es.po (.../tags/gcc_4_7_2_release) (wersja 192468) |
25973 | +++ gcc/po/es.po (.../branches/gcc-4_7-branch) (wersja 192468) | |
5a87b929 AM |
25974 | @@ -1,4 +1,4 @@ |
25975 | -# Mensajes en español para gcc-4.7.1. | |
25976 | +# Mensajes en español para gcc-4.7.2. | |
25977 | # Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 Free Software Foundation, Inc. | |
25978 | # This file is distributed under the same license as the gcc package. | |
25979 | # Cristian Othón Martínez Vera <cfuga@cfuga.mx>, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 | |
25980 | @@ -7,10 +7,10 @@ | |
25981 | # | |
25982 | msgid "" | |
25983 | msgstr "" | |
25984 | -"Project-Id-Version: gcc 4.7.1\n" | |
25985 | +"Project-Id-Version: gcc 4.7.2\n" | |
25986 | "Report-Msgid-Bugs-To: http://gcc.gnu.org/bugs.html\n" | |
25987 | -"POT-Creation-Date: 2012-06-13 21:42+0000\n" | |
25988 | -"PO-Revision-Date: 2012-06-22 13:49-0500\n" | |
25989 | +"POT-Creation-Date: 2012-09-19 14:50+0000\n" | |
25990 | +"PO-Revision-Date: 2012-09-24 13:50-0500\n" | |
25991 | "Last-Translator: Cristian Othón Martínez Vera <cfuga@cfuga.mx>\n" | |
25992 | "Language-Team: Spanish <es@li.org>\n" | |
25993 | "Language: es\n" | |
25994 | @@ -28,7 +28,7 @@ | |
25995 | msgid "({anonymous})" | |
25996 | msgstr "({anónimo})" | |
25997 | ||
25998 | -#: c-parser.c:946 cp/parser.c:22268 | |
25999 | +#: c-parser.c:946 cp/parser.c:22263 | |
26000 | #, gcc-internal-format | |
26001 | msgid "expected end of line" | |
26002 | msgstr "se esperaba fin de línea" | |
26003 | @@ -38,8 +38,8 @@ | |
26004 | #: c-parser.c:7308 c-parser.c:7343 c-parser.c:7374 c-parser.c:7421 | |
26005 | #: c-parser.c:7602 c-parser.c:8369 c-parser.c:8439 c-parser.c:8482 | |
26006 | #: c-parser.c:9760 c-parser.c:9775 c-parser.c:9784 c-parser.c:9929 | |
26007 | -#: c-parser.c:9968 c-parser.c:2500 c-parser.c:7595 cp/parser.c:21791 | |
26008 | -#: cp/parser.c:22214 | |
26009 | +#: c-parser.c:9968 c-parser.c:2500 c-parser.c:7595 cp/parser.c:21786 | |
26010 | +#: cp/parser.c:22209 | |
26011 | #, gcc-internal-format | |
26012 | msgid "expected %<;%>" | |
26013 | msgstr "se esperaba %<;%>" | |
26014 | @@ -51,13 +51,13 @@ | |
26015 | #: c-parser.c:6703 c-parser.c:6727 c-parser.c:7893 c-parser.c:7965 | |
26016 | #: c-parser.c:8791 c-parser.c:8812 c-parser.c:8862 c-parser.c:9015 | |
26017 | #: c-parser.c:9094 c-parser.c:9178 c-parser.c:9892 c-parser.c:10716 | |
26018 | -#: c-parser.c:8935 c-parser.c:8960 cp/parser.c:22217 | |
26019 | +#: c-parser.c:8935 c-parser.c:8960 cp/parser.c:22212 | |
26020 | #, gcc-internal-format | |
26021 | msgid "expected %<(%>" | |
26022 | msgstr "se esperaba %<(%>" | |
26023 | ||
26024 | #: c-parser.c:1845 c-parser.c:6389 c-parser.c:6427 c-parser.c:6555 | |
26025 | -#: cp/parser.c:21789 cp/parser.c:22232 | |
26026 | +#: cp/parser.c:21784 cp/parser.c:22227 | |
26027 | #, gcc-internal-format | |
26028 | msgid "expected %<,%>" | |
26029 | msgstr "se esperaba %<,%>" | |
26030 | @@ -73,14 +73,14 @@ | |
26031 | #: c-parser.c:7687 c-parser.c:7708 c-parser.c:7916 c-parser.c:7969 | |
26032 | #: c-parser.c:8341 c-parser.c:8794 c-parser.c:8815 c-parser.c:8893 | |
26033 | #: c-parser.c:9022 c-parser.c:9159 c-parser.c:9242 c-parser.c:9820 | |
26034 | -#: c-parser.c:9937 c-parser.c:9979 c-parser.c:10725 cp/parser.c:22262 | |
26035 | +#: c-parser.c:9937 c-parser.c:9979 c-parser.c:10725 cp/parser.c:22257 | |
26036 | #, gcc-internal-format | |
26037 | msgid "expected %<)%>" | |
26038 | msgstr "se esperaba %<)%>" | |
26039 | ||
26040 | #: c-parser.c:3095 c-parser.c:3904 c-parser.c:3938 c-parser.c:5224 | |
26041 | #: c-parser.c:6491 c-parser.c:6760 c-parser.c:6866 c-parser.c:10628 | |
26042 | -#: c-parser.c:10630 cp/parser.c:22226 | |
26043 | +#: c-parser.c:10630 cp/parser.c:22221 | |
26044 | #, gcc-internal-format | |
26045 | msgid "expected %<]%>" | |
26046 | msgstr "se esperaba %<]%>" | |
26047 | @@ -89,25 +89,25 @@ | |
26048 | msgid "expected %<;%>, %<,%> or %<)%>" | |
26049 | msgstr "se esperaba %<;%>, %<,%> o %<)%>" | |
26050 | ||
26051 | -#: c-parser.c:3767 c-parser.c:9776 cp/parser.c:22220 cp/parser.c:24037 | |
26052 | +#: c-parser.c:3767 c-parser.c:9776 cp/parser.c:22215 cp/parser.c:24032 | |
26053 | #, gcc-internal-format | |
26054 | msgid "expected %<}%>" | |
26055 | msgstr "se esperaba %<}%>" | |
26056 | ||
26057 | #: c-parser.c:4057 c-parser.c:7936 c-parser.c:10222 c-parser.c:2318 | |
26058 | -#: c-parser.c:2521 c-parser.c:7490 cp/parser.c:14425 cp/parser.c:22223 | |
26059 | +#: c-parser.c:2521 c-parser.c:7490 cp/parser.c:14425 cp/parser.c:22218 | |
26060 | #, gcc-internal-format | |
26061 | msgid "expected %<{%>" | |
26062 | msgstr "se esperaba %<{%>" | |
26063 | ||
26064 | #: c-parser.c:4276 c-parser.c:4285 c-parser.c:5128 c-parser.c:5469 | |
26065 | #: c-parser.c:7701 c-parser.c:8076 c-parser.c:8133 c-parser.c:9148 | |
26066 | -#: cp/parser.c:22256 cp/parser.c:23258 | |
26067 | +#: cp/parser.c:22251 cp/parser.c:23253 | |
26068 | #, gcc-internal-format | |
26069 | msgid "expected %<:%>" | |
26070 | msgstr "se esperaba %<:%>" | |
26071 | ||
26072 | -#: c-parser.c:4824 cp/parser.c:22150 | |
26073 | +#: c-parser.c:4824 cp/parser.c:22145 | |
26074 | #, gcc-internal-format | |
26075 | msgid "expected %<while%>" | |
26076 | msgstr "se esperaba %<while%>" | |
26077 | @@ -116,34 +116,34 @@ | |
26078 | msgid "expected %<.%>" | |
26079 | msgstr "se esperaba %<.%>" | |
26080 | ||
26081 | -#: c-parser.c:7161 c-parser.c:7193 c-parser.c:7433 cp/parser.c:23821 | |
26082 | -#: cp/parser.c:23895 | |
26083 | +#: c-parser.c:7161 c-parser.c:7193 c-parser.c:7433 cp/parser.c:23816 | |
26084 | +#: cp/parser.c:23890 | |
26085 | #, gcc-internal-format | |
26086 | msgid "expected %<@end%>" | |
26087 | msgstr "se esperaba %<@end%>" | |
26088 | ||
26089 | -#: c-parser.c:7850 cp/parser.c:22241 | |
26090 | +#: c-parser.c:7850 cp/parser.c:22236 | |
26091 | #, gcc-internal-format | |
26092 | msgid "expected %<>%>" | |
26093 | msgstr "se esperaba %<>%>" | |
26094 | ||
26095 | -#: c-parser.c:9246 cp/parser.c:22265 | |
26096 | +#: c-parser.c:9246 cp/parser.c:22260 | |
26097 | #, gcc-internal-format | |
26098 | msgid "expected %<,%> or %<)%>" | |
26099 | msgstr "se esperaba %<,%> o %<)%>" | |
26100 | ||
26101 | #: c-parser.c:9499 c-parser.c:9530 c-parser.c:9766 c-parser.c:9918 | |
26102 | -#: c-parser.c:3961 cp/parser.c:22244 | |
26103 | +#: c-parser.c:3961 cp/parser.c:22239 | |
26104 | #, gcc-internal-format | |
26105 | msgid "expected %<=%>" | |
26106 | msgstr "se esperaba %<=%>" | |
26107 | ||
26108 | -#: c-parser.c:10279 c-parser.c:10269 cp/parser.c:26674 | |
26109 | +#: c-parser.c:10279 c-parser.c:10269 cp/parser.c:26669 | |
26110 | #, gcc-internal-format | |
26111 | msgid "expected %<#pragma omp section%> or %<}%>" | |
26112 | msgstr "se esperaba %<#pragma omp section%> o %<}%>" | |
26113 | ||
26114 | -#: c-parser.c:10616 cp/parser.c:22229 | |
26115 | +#: c-parser.c:10616 cp/parser.c:22224 | |
26116 | #, gcc-internal-format | |
26117 | msgid "expected %<[%>" | |
26118 | msgstr "se esperaba %<[%>" | |
26119 | @@ -321,12 +321,12 @@ | |
26120 | #. TARGET_PRINT_OPERAND must handle them. | |
26121 | #. We can't handle floating point constants; | |
26122 | #. PRINT_OPERAND must handle them. | |
26123 | -#: final.c:3615 config/i386/i386.c:13086 config/pdp11/pdp11.c:1689 | |
26124 | +#: final.c:3615 config/i386/i386.c:13180 config/pdp11/pdp11.c:1689 | |
26125 | #, c-format | |
26126 | msgid "floating constant misused" | |
26127 | msgstr "constante de coma flotante mal usada" | |
26128 | ||
26129 | -#: final.c:3673 config/i386/i386.c:13184 config/pdp11/pdp11.c:1730 | |
26130 | +#: final.c:3673 config/i386/i386.c:13278 config/pdp11/pdp11.c:1730 | |
26131 | #, c-format | |
26132 | msgid "invalid expression as operand" | |
26133 | msgstr "expresión inválida como operando" | |
26134 | @@ -1409,20 +1409,20 @@ | |
26135 | msgid "insn does not satisfy its constraints:" | |
26136 | msgstr "la insn no satisface sus restricciones:" | |
26137 | ||
26138 | -#: targhooks.c:1404 | |
26139 | +#: targhooks.c:1411 | |
26140 | #, c-format | |
26141 | msgid "created and used with differing settings of '%s'" | |
26142 | msgstr "creado y usado con diferentes opciones de '%s'" | |
26143 | ||
26144 | -#: targhooks.c:1406 | |
26145 | +#: targhooks.c:1413 | |
26146 | msgid "out of memory" | |
26147 | msgstr "memoria agotada" | |
26148 | ||
26149 | -#: targhooks.c:1421 | |
26150 | +#: targhooks.c:1428 | |
26151 | msgid "created and used with different settings of -fpic" | |
26152 | msgstr "creado y usado con diferentes opciones de -fpic" | |
26153 | ||
26154 | -#: targhooks.c:1423 | |
26155 | +#: targhooks.c:1430 | |
26156 | msgid "created and used with different settings of -fpie" | |
26157 | msgstr "creado y usado con diferentes opciones de -fpie" | |
26158 | ||
26159 | @@ -2022,195 +2022,195 @@ | |
26160 | msgid "The maximum number of RTL nodes that can be recorded as combiner's last value" | |
26161 | msgstr "El número máximo de nodos RTL que se pueden grabar como el último valor del combinador" | |
26162 | ||
26163 | -#: params.def:644 | |
26164 | +#: params.def:645 | |
26165 | msgid "The upper bound for sharing integer constants" | |
26166 | msgstr "El límite superior para compartir constantes enteras" | |
26167 | ||
26168 | -#: params.def:663 | |
26169 | +#: params.def:664 | |
26170 | msgid "Minimum number of virtual mappings to consider switching to full virtual renames" | |
26171 | msgstr "El número mínimo de mapeos virtuales para considerar el cambio a renombrados virtuales completos" | |
26172 | ||
26173 | -#: params.def:668 | |
26174 | +#: params.def:669 | |
26175 | msgid "Ratio between virtual mappings and virtual symbols to do full virtual renames" | |
26176 | msgstr "Tasa entre mapeos virtuales y símbolos virtuales para hacer renombrados virtuales completos" | |
26177 | ||
26178 | -#: params.def:673 | |
26179 | +#: params.def:674 | |
26180 | msgid "The lower bound for a buffer to be considered for stack smashing protection" | |
26181 | msgstr "El límite inferior para considerar un almacenamiento temporal para protección contra destrucción de pila" | |
26182 | ||
26183 | -#: params.def:691 | |
26184 | +#: params.def:692 | |
26185 | msgid "Maximum number of statements allowed in a block that needs to be duplicated when threading jumps" | |
26186 | msgstr "Número máximo de sentencias permitidas en un bloque que necesitan ser duplicadas al hacer hilos de saltos" | |
26187 | ||
26188 | -#: params.def:700 | |
26189 | +#: params.def:701 | |
26190 | msgid "Maximum number of fields in a structure before pointer analysis treats the structure as a single variable" | |
26191 | msgstr "El número máximo de campos en una estructura antes de que el análisis de punteros trate a la estructura como una sola variable" | |
26192 | ||
26193 | -#: params.def:705 | |
26194 | +#: params.def:706 | |
26195 | msgid "The maximum number of instructions ready to be issued to be considered by the scheduler during the first scheduling pass" | |
26196 | msgstr "El número máximo de instrucciones listas para ser ejecutadas para ser consideradas por el calendarizador durante el primer paso de calendarización" | |
26197 | ||
26198 | -#: params.def:711 | |
26199 | +#: params.def:712 | |
26200 | msgid "Maximum number of active local stores in RTL dead store elimination" | |
26201 | msgstr "Número máximo de almacenamientos locales activos en la eliminación de almacenamiento muerto RTL" | |
26202 | ||
26203 | -#: params.def:721 | |
26204 | +#: params.def:722 | |
26205 | msgid "The number of insns executed before prefetch is completed" | |
26206 | msgstr "El número de insns ejecutadas antes de completar la precarga" | |
26207 | ||
26208 | -#: params.def:728 | |
26209 | +#: params.def:729 | |
26210 | msgid "The number of prefetches that can run at the same time" | |
26211 | msgstr "El número de precargas que se pueden ejecutar simultánamente" | |
26212 | ||
26213 | -#: params.def:735 | |
26214 | +#: params.def:736 | |
26215 | msgid "The size of L1 cache" | |
26216 | msgstr "El tamaño del caché L1" | |
26217 | ||
26218 | -#: params.def:742 | |
26219 | +#: params.def:743 | |
26220 | msgid "The size of L1 cache line" | |
26221 | msgstr "El tamaño de la línea del caché L1" | |
26222 | ||
26223 | -#: params.def:749 | |
26224 | +#: params.def:750 | |
26225 | msgid "The size of L2 cache" | |
26226 | msgstr "El tamaño del caché L2" | |
26227 | ||
26228 | -#: params.def:760 | |
26229 | +#: params.def:761 | |
26230 | msgid "Whether to use canonical types" | |
26231 | msgstr "Decide si se usan tipos canónicos" | |
26232 | ||
26233 | -#: params.def:765 | |
26234 | +#: params.def:766 | |
26235 | msgid "Maximum length of partial antic set when performing tree pre optimization" | |
26236 | msgstr "Longitud máxima del conjunto antic parcial al realizar pre optimización de árbol" | |
26237 | ||
26238 | -#: params.def:775 | |
26239 | +#: params.def:776 | |
26240 | msgid "Maximum size of a SCC before SCCVN stops processing a function" | |
26241 | msgstr "Tamaño máxmo de un SCC antes de que SCCVN detenga el procesamiento de una función" | |
26242 | ||
26243 | -#: params.def:780 | |
26244 | +#: params.def:781 | |
26245 | msgid "Max loops number for regional RA" | |
26246 | msgstr "Número de bucles máximo para el RA regional" | |
26247 | ||
26248 | -#: params.def:785 | |
26249 | +#: params.def:786 | |
26250 | msgid "Max size of conflict table in MB" | |
26251 | msgstr "Tamaño máximo de la tabla de conflictos en MB" | |
26252 | ||
26253 | -#: params.def:790 | |
26254 | +#: params.def:791 | |
26255 | msgid "The number of registers in each class kept unused by loop invariant motion" | |
26256 | msgstr "El número de registros conservados sin uso en cada clase por el movimiento invariante del bucle" | |
26257 | ||
26258 | -#: params.def:798 | |
26259 | +#: params.def:799 | |
26260 | msgid "The maximum ratio between array size and switch branches for a switch conversion to take place" | |
26261 | msgstr "La tasa máxima entre el tamaño de la matriz y las ramificaciones switch para que tome lugar una conversión switch" | |
26262 | ||
26263 | -#: params.def:806 | |
26264 | +#: params.def:807 | |
26265 | msgid "size of tiles for loop blocking" | |
26266 | msgstr "tamaño de bloques para el bloqueo de bucles" | |
26267 | ||
26268 | -#: params.def:813 | |
26269 | +#: params.def:814 | |
26270 | msgid "maximum number of parameters in a SCoP" | |
26271 | msgstr "número máximo de parámetros en un SCoP" | |
26272 | ||
26273 | -#: params.def:820 | |
26274 | +#: params.def:821 | |
26275 | msgid "maximum number of basic blocks per function to be analyzed by Graphite" | |
26276 | msgstr "número máximo de bloques básicos por función para analizar con Graphite" | |
26277 | ||
26278 | -#: params.def:826 | |
26279 | +#: params.def:827 | |
26280 | msgid "Maximum number of datarefs in loop for building loop data dependencies" | |
26281 | msgstr "Número máximo de referencia de datos en bucles para construir dependencia de datos de bucles" | |
26282 | ||
26283 | -#: params.def:833 | |
26284 | +#: params.def:834 | |
26285 | msgid "Max basic blocks number in loop for loop invariant motion" | |
26286 | msgstr "Número máximo de bloques básicos en el bucle para el movimiento invariante de bucle" | |
26287 | ||
26288 | -#: params.def:839 | |
26289 | +#: params.def:840 | |
26290 | msgid "Maximum number of instructions in basic block to be considered for SLP vectorization" | |
26291 | msgstr "El número máximo de instrucciones en bloque básico que se consideran para vectorización SLP" | |
26292 | ||
26293 | -#: params.def:844 | |
26294 | +#: params.def:845 | |
26295 | msgid "Min. ratio of insns to prefetches to enable prefetching for a loop with an unknown trip count" | |
26296 | msgstr "Tasa mínima de insns a precargar para activar la precarga para un bucle con una cuenta de viajes desconocida" | |
26297 | ||
26298 | -#: params.def:850 | |
26299 | +#: params.def:851 | |
26300 | msgid "Min. ratio of insns to mem ops to enable prefetching in a loop" | |
26301 | msgstr "Tasa mínima de insns a ops de mem para activar la precarga en un bucle" | |
26302 | ||
26303 | -#: params.def:857 | |
26304 | +#: params.def:858 | |
26305 | msgid "Max. size of var tracking hash tables" | |
26306 | msgstr "Tamaño máximo de las tablas de dispersión de rastreo de variables" | |
26307 | ||
26308 | -#: params.def:865 | |
26309 | +#: params.def:866 | |
26310 | msgid "Max. recursion depth for expanding var tracking expressions" | |
26311 | msgstr "Profundidad máxima de recursión para expandir expresiones de rastreo de variables" | |
26312 | ||
26313 | -#: params.def:872 | |
26314 | +#: params.def:873 | |
26315 | msgid "The minimum UID to be used for a nondebug insn" | |
26316 | msgstr "El UID mínimo a usar para una insn que no es de depuración" | |
26317 | ||
26318 | -#: params.def:877 | |
26319 | +#: params.def:878 | |
26320 | msgid "Maximum allowed growth of size of new parameters ipa-sra replaces a pointer to an aggregate with" | |
26321 | msgstr "El crecimiento máximo permitido de tamaño de los parámetros nuevos ipa-sra que reemplazan un puntero a un agregado con" | |
26322 | ||
26323 | -#: params.def:883 | |
26324 | +#: params.def:884 | |
26325 | msgid "Size in bytes after which thread-local aggregates should be instrumented with the logging functions instead of save/restore pairs" | |
26326 | msgstr "Tamaño en bytes después del cual los agregados thread-local se deben instrumentar con las funciones de registro en lugar de pares save/restore" | |
26327 | ||
26328 | -#: params.def:890 | |
26329 | +#: params.def:891 | |
26330 | msgid "Maximum size of a list of values associated with each parameter for interprocedural constant propagation" | |
26331 | msgstr "Tamaño máximo de una lista de valores asociada con cada parámetro para propagación constante entre procedimientos" | |
26332 | ||
26333 | -#: params.def:896 | |
26334 | +#: params.def:897 | |
26335 | msgid "Threshold ipa-cp opportunity evaluation that is still considered beneficial to clone." | |
26336 | msgstr "Rango de evaluación de oportunidad ipa-cp que aún se considera benéfico para clonar." | |
26337 | ||
26338 | -#: params.def:904 | |
26339 | +#: params.def:905 | |
26340 | msgid "Number of partitions the program should be split to" | |
26341 | msgstr "Número de particiones en las que se debe dividir el programa" | |
26342 | ||
26343 | -#: params.def:909 | |
26344 | +#: params.def:910 | |
26345 | msgid "Minimal size of a partition for LTO (in estimated instructions)" | |
26346 | msgstr "Tamaño minimal de una partición para LTO (en instrucciones estimadas)" | |
26347 | ||
26348 | -#: params.def:916 | |
26349 | +#: params.def:917 | |
26350 | msgid "Maximum number of namespaces to search for alternatives when name lookup fails" | |
26351 | msgstr "Número máximo de espacios de nombres a buscar por alternativas cuando falla la búsqueda de nombre" | |
26352 | ||
26353 | -#: params.def:923 | |
26354 | +#: params.def:924 | |
26355 | msgid "Maximum number of conditional store pairs that can be sunk" | |
26356 | msgstr "El número máximo de pares de almacenamiento condicional que se pueden hundir" | |
26357 | ||
26358 | -#: params.def:931 | |
26359 | +#: params.def:932 | |
26360 | msgid "The smallest number of different values for which it is best to use a jump-table instead of a tree of conditional branches, if 0, use the default for the machine" | |
26361 | msgstr "El número más pequeño de valores diferentes para los cuales es mejor usar una tabla-salto en lugar de un árbol de ramificaciones condicionales; si es 0, usa el valor por defecto para la máquina" | |
26362 | ||
26363 | -#: params.def:939 | |
26364 | +#: params.def:940 | |
26365 | msgid "Allow new data races on loads to be introduced" | |
26366 | msgstr "Permite que se introduzcan carreras de datos nuevos en loads" | |
26367 | ||
26368 | -#: params.def:944 | |
26369 | +#: params.def:945 | |
26370 | msgid "Allow new data races on stores to be introduced" | |
26371 | msgstr "Permite que se introduzcan carreras de datos nuevos en stores" | |
26372 | ||
26373 | -#: params.def:949 | |
26374 | +#: params.def:950 | |
26375 | msgid "Allow new data races on packed data loads to be introduced" | |
26376 | msgstr "Permite que se introduzcan carreras de datos nuevos en loads de datos packed" | |
26377 | ||
26378 | -#: params.def:954 | |
26379 | +#: params.def:955 | |
26380 | msgid "Allow new data races on packed data stores to be introduced" | |
26381 | msgstr "Permite que se introduzcan carreras de datos nuevos en stores de datos packed" | |
26382 | ||
26383 | -#: params.def:960 | |
26384 | +#: params.def:961 | |
26385 | msgid "Set the maximum number of instructions executed in parallel in reassociated tree. If 0, use the target dependent heuristic." | |
26386 | msgstr "Establece el número máximo de instrucciones ejecutadas en paralelo en el árbol de reasociación. Si es 0, usa la heurística dependiente del objetivo." | |
26387 | ||
26388 | -#: params.def:966 | |
26389 | +#: params.def:967 | |
26390 | msgid "Maximum amount of similar bbs to compare a bb with" | |
26391 | msgstr "Cantidad máxima de bbs similares con las cuales comparar un bb" | |
26392 | ||
26393 | -#: params.def:971 | |
26394 | +#: params.def:972 | |
26395 | msgid "Maximum amount of iterations of the pass over a function" | |
26396 | msgstr "Cantidad máxima de iteraciones del paso sobre una función" | |
26397 | ||
26398 | -#: params.def:978 | |
26399 | +#: params.def:979 | |
26400 | msgid "Maximum number of strings for which strlen optimization pass will track string lengths" | |
26401 | msgstr "Número máximo de cadenas para las que el paso de optimización de strlen rastreará longitudes de cadenas" | |
26402 | ||
26403 | @@ -2543,18 +2543,18 @@ | |
26404 | msgstr "valor %%r inválido" | |
26405 | ||
26406 | #: config/alpha/alpha.c:5103 config/ia64/ia64.c:5249 | |
26407 | -#: config/rs6000/rs6000.c:15018 config/xtensa/xtensa.c:2350 | |
26408 | +#: config/rs6000/rs6000.c:15017 config/xtensa/xtensa.c:2350 | |
26409 | #, c-format | |
26410 | msgid "invalid %%R value" | |
26411 | msgstr "valor %%R inválido" | |
26412 | ||
26413 | -#: config/alpha/alpha.c:5109 config/rs6000/rs6000.c:14937 | |
26414 | +#: config/alpha/alpha.c:5109 config/rs6000/rs6000.c:14936 | |
26415 | #: config/xtensa/xtensa.c:2317 | |
26416 | #, c-format | |
26417 | msgid "invalid %%N value" | |
26418 | msgstr "valor %%N inválido" | |
26419 | ||
26420 | -#: config/alpha/alpha.c:5117 config/rs6000/rs6000.c:14965 | |
26421 | +#: config/alpha/alpha.c:5117 config/rs6000/rs6000.c:14964 | |
26422 | #, c-format | |
26423 | msgid "invalid %%P value" | |
26424 | msgstr "valor %%P inválido" | |
26425 | @@ -2569,12 +2569,12 @@ | |
26426 | msgid "invalid %%L value" | |
26427 | msgstr "valor %%L inválido" | |
26428 | ||
26429 | -#: config/alpha/alpha.c:5172 config/rs6000/rs6000.c:14919 | |
26430 | +#: config/alpha/alpha.c:5172 config/rs6000/rs6000.c:14918 | |
26431 | #, c-format | |
26432 | msgid "invalid %%m value" | |
26433 | msgstr "valor %%m inválido" | |
26434 | ||
26435 | -#: config/alpha/alpha.c:5180 config/rs6000/rs6000.c:14927 | |
26436 | +#: config/alpha/alpha.c:5180 config/rs6000/rs6000.c:14926 | |
26437 | #, c-format | |
26438 | msgid "invalid %%M value" | |
26439 | msgstr "valor %%M inválido" | |
26440 | @@ -2585,7 +2585,7 @@ | |
26441 | msgstr "valor %%U inválido" | |
26442 | ||
26443 | #: config/alpha/alpha.c:5232 config/alpha/alpha.c:5243 | |
26444 | -#: config/rs6000/rs6000.c:15026 | |
26445 | +#: config/rs6000/rs6000.c:15025 | |
26446 | #, c-format | |
26447 | msgid "invalid %%s value" | |
26448 | msgstr "valor %%s inválido" | |
26449 | @@ -2595,7 +2595,7 @@ | |
26450 | msgid "invalid %%C value" | |
26451 | msgstr "valor %%C inválido" | |
26452 | ||
26453 | -#: config/alpha/alpha.c:5291 config/rs6000/rs6000.c:14784 | |
26454 | +#: config/alpha/alpha.c:5291 config/rs6000/rs6000.c:14783 | |
26455 | #, c-format | |
26456 | msgid "invalid %%E value" | |
26457 | msgstr "valor %%E inválido" | |
26458 | @@ -2606,38 +2606,38 @@ | |
26459 | msgstr "reubicación unspec desconocida" | |
26460 | ||
26461 | #: config/alpha/alpha.c:5325 config/cr16/cr16.c:1537 | |
26462 | -#: config/rs6000/rs6000.c:15375 config/spu/spu.c:1744 | |
26463 | +#: config/rs6000/rs6000.c:15374 config/spu/spu.c:1744 | |
26464 | #, c-format | |
26465 | msgid "invalid %%xn code" | |
26466 | msgstr "código %%xn inválido" | |
26467 | ||
26468 | -#: config/arm/arm.c:17116 config/arm/arm.c:17134 | |
26469 | +#: config/arm/arm.c:17120 config/arm/arm.c:17138 | |
26470 | #, c-format | |
26471 | msgid "predicated Thumb instruction" | |
26472 | msgstr "instrucción de predicado Thumb" | |
26473 | ||
26474 | -#: config/arm/arm.c:17122 | |
26475 | +#: config/arm/arm.c:17126 | |
26476 | #, c-format | |
26477 | msgid "predicated instruction in conditional sequence" | |
26478 | msgstr "instrucción de predicado en una secuencia condicional" | |
26479 | ||
26480 | -#: config/arm/arm.c:17253 | |
26481 | +#: config/arm/arm.c:17257 | |
26482 | #, c-format | |
26483 | msgid "Unsupported operand for code '%c'" | |
26484 | msgstr "No se admite el operando para el código '%c'" | |
26485 | ||
26486 | -#: config/arm/arm.c:17301 | |
26487 | +#: config/arm/arm.c:17305 | |
26488 | #, c-format | |
26489 | msgid "invalid shift operand" | |
26490 | msgstr "operando de desplazamiento inválido" | |
26491 | ||
26492 | -#: config/arm/arm.c:17358 config/arm/arm.c:17380 config/arm/arm.c:17390 | |
26493 | -#: config/arm/arm.c:17400 config/arm/arm.c:17410 config/arm/arm.c:17449 | |
26494 | -#: config/arm/arm.c:17467 config/arm/arm.c:17502 config/arm/arm.c:17521 | |
26495 | -#: config/arm/arm.c:17536 config/arm/arm.c:17563 config/arm/arm.c:17570 | |
26496 | -#: config/arm/arm.c:17588 config/arm/arm.c:17595 config/arm/arm.c:17603 | |
26497 | -#: config/arm/arm.c:17624 config/arm/arm.c:17631 config/arm/arm.c:17756 | |
26498 | -#: config/arm/arm.c:17763 config/arm/arm.c:17786 config/arm/arm.c:17793 | |
26499 | +#: config/arm/arm.c:17362 config/arm/arm.c:17384 config/arm/arm.c:17394 | |
26500 | +#: config/arm/arm.c:17404 config/arm/arm.c:17414 config/arm/arm.c:17453 | |
26501 | +#: config/arm/arm.c:17471 config/arm/arm.c:17506 config/arm/arm.c:17525 | |
26502 | +#: config/arm/arm.c:17540 config/arm/arm.c:17567 config/arm/arm.c:17574 | |
26503 | +#: config/arm/arm.c:17592 config/arm/arm.c:17599 config/arm/arm.c:17607 | |
26504 | +#: config/arm/arm.c:17628 config/arm/arm.c:17635 config/arm/arm.c:17760 | |
26505 | +#: config/arm/arm.c:17767 config/arm/arm.c:17790 config/arm/arm.c:17797 | |
26506 | #: config/bfin/bfin.c:1436 config/bfin/bfin.c:1443 config/bfin/bfin.c:1450 | |
26507 | #: config/bfin/bfin.c:1457 config/bfin/bfin.c:1466 config/bfin/bfin.c:1473 | |
26508 | #: config/bfin/bfin.c:1480 config/bfin/bfin.c:1487 | |
26509 | @@ -2645,79 +2645,79 @@ | |
26510 | msgid "invalid operand for code '%c'" | |
26511 | msgstr "operando inválido para el código '%c'" | |
26512 | ||
26513 | -#: config/arm/arm.c:17462 | |
26514 | +#: config/arm/arm.c:17466 | |
26515 | #, c-format | |
26516 | msgid "instruction never executed" | |
26517 | msgstr "la instrucción nunca se ejecuta" | |
26518 | ||
26519 | -#: config/arm/arm.c:17805 | |
26520 | +#: config/arm/arm.c:17809 | |
26521 | #, c-format | |
26522 | msgid "missing operand" | |
26523 | msgstr "falta un operando" | |
26524 | ||
26525 | -#: config/arm/arm.c:20407 | |
26526 | +#: config/arm/arm.c:20411 | |
26527 | msgid "function parameters cannot have __fp16 type" | |
26528 | msgstr "los parámetros de la función no pueden tener el tipo __fp16" | |
26529 | ||
26530 | -#: config/arm/arm.c:20417 | |
26531 | +#: config/arm/arm.c:20421 | |
26532 | msgid "functions cannot return __fp16 type" | |
26533 | msgstr "la función no puede devolver el tipo __fp16" | |
26534 | ||
26535 | -#: config/avr/avr.c:1806 | |
26536 | +#: config/avr/avr.c:1816 | |
26537 | #, c-format | |
26538 | msgid "address operand requires constraint for X, Y, or Z register" | |
26539 | msgstr "el operando de dirección requiere una restricción para los registros X, Y, o Z" | |
26540 | ||
26541 | -#: config/avr/avr.c:1959 | |
26542 | +#: config/avr/avr.c:1969 | |
26543 | msgid "operands to %T/%t must be reg + const_int:" | |
26544 | msgstr "los operandos para %T/%t deben ser reg + const_int:" | |
26545 | ||
26546 | -#: config/avr/avr.c:1997 config/avr/avr.c:2052 | |
26547 | +#: config/avr/avr.c:2007 config/avr/avr.c:2062 | |
26548 | msgid "bad address, not an I/O address:" | |
26549 | msgstr "dirección errónea, no es una dirección de E/S:" | |
26550 | ||
26551 | -#: config/avr/avr.c:2006 | |
26552 | +#: config/avr/avr.c:2016 | |
26553 | msgid "bad address, not a constant:" | |
26554 | msgstr "dirección errónea, no es una constante:" | |
26555 | ||
26556 | -#: config/avr/avr.c:2024 | |
26557 | +#: config/avr/avr.c:2034 | |
26558 | msgid "bad address, not (reg+disp):" | |
26559 | msgstr "dirección errónea, no (reg+disp):" | |
26560 | ||
26561 | -#: config/avr/avr.c:2031 | |
26562 | +#: config/avr/avr.c:2041 | |
26563 | msgid "bad address, not post_inc or pre_dec:" | |
26564 | msgstr "dirección errónea, no hay post_inc o pre_dec:" | |
26565 | ||
26566 | -#: config/avr/avr.c:2042 | |
26567 | +#: config/avr/avr.c:2052 | |
26568 | msgid "internal compiler error. Bad address:" | |
26569 | msgstr "error interno del compilador. Dirección errónea:" | |
26570 | ||
26571 | -#: config/avr/avr.c:2072 | |
26572 | +#: config/avr/avr.c:2082 | |
26573 | msgid "internal compiler error. Unknown mode:" | |
26574 | msgstr "error interno del compilador. Modo desconocido:" | |
26575 | ||
26576 | -#: config/avr/avr.c:2871 config/avr/avr.c:3444 config/avr/avr.c:3730 | |
26577 | +#: config/avr/avr.c:2881 config/avr/avr.c:3454 config/avr/avr.c:3740 | |
26578 | msgid "invalid insn:" | |
26579 | msgstr "insn inválida:" | |
26580 | ||
26581 | -#: config/avr/avr.c:2900 config/avr/avr.c:2975 config/avr/avr.c:3018 | |
26582 | -#: config/avr/avr.c:3037 config/avr/avr.c:3128 config/avr/avr.c:3297 | |
26583 | -#: config/avr/avr.c:3507 config/avr/avr.c:3623 config/avr/avr.c:3759 | |
26584 | -#: config/avr/avr.c:3850 config/avr/avr.c:3972 | |
26585 | +#: config/avr/avr.c:2910 config/avr/avr.c:2985 config/avr/avr.c:3028 | |
26586 | +#: config/avr/avr.c:3047 config/avr/avr.c:3138 config/avr/avr.c:3307 | |
26587 | +#: config/avr/avr.c:3517 config/avr/avr.c:3633 config/avr/avr.c:3769 | |
26588 | +#: config/avr/avr.c:3860 config/avr/avr.c:3982 | |
26589 | msgid "incorrect insn:" | |
26590 | msgstr "insn incorrecta:" | |
26591 | ||
26592 | -#: config/avr/avr.c:3052 config/avr/avr.c:3213 config/avr/avr.c:3368 | |
26593 | -#: config/avr/avr.c:3576 config/avr/avr.c:3669 config/avr/avr.c:3906 | |
26594 | -#: config/avr/avr.c:4027 | |
26595 | +#: config/avr/avr.c:3062 config/avr/avr.c:3223 config/avr/avr.c:3378 | |
26596 | +#: config/avr/avr.c:3586 config/avr/avr.c:3679 config/avr/avr.c:3916 | |
26597 | +#: config/avr/avr.c:4037 | |
26598 | msgid "unknown move insn:" | |
26599 | msgstr "insn move desconocida:" | |
26600 | ||
26601 | -#: config/avr/avr.c:4441 | |
26602 | +#: config/avr/avr.c:4451 | |
26603 | msgid "bad shift insn:" | |
26604 | msgstr "insn shift errónea:" | |
26605 | ||
26606 | -#: config/avr/avr.c:4549 config/avr/avr.c:5030 config/avr/avr.c:5445 | |
26607 | +#: config/avr/avr.c:4559 config/avr/avr.c:5040 config/avr/avr.c:5455 | |
26608 | msgid "internal compiler error. Incorrect shift:" | |
26609 | msgstr "error interno del compilador. Desplazamiento incorrecto:" | |
26610 | ||
26611 | @@ -2733,7 +2733,7 @@ | |
26612 | ||
26613 | #: config/cris/cris.c:579 config/moxie/moxie.c:111 final.c:3129 final.c:3131 | |
26614 | #: fold-const.c:287 gcc.c:4609 gcc.c:4623 loop-iv.c:2968 loop-iv.c:2977 | |
26615 | -#: rtl-error.c:103 toplev.c:346 tree-ssa-loop-niter.c:1917 tree-vrp.c:6046 | |
26616 | +#: rtl-error.c:103 toplev.c:346 tree-ssa-loop-niter.c:1917 tree-vrp.c:6018 | |
26617 | #: cp/typeck.c:5347 java/expr.c:390 lto/lto-object.c:184 lto/lto-object.c:282 | |
26618 | #: lto/lto-object.c:339 lto/lto-object.c:363 | |
26619 | #, gcc-internal-format, gfc-internal-format | |
26620 | @@ -2963,72 +2963,72 @@ | |
26621 | msgid "bad output_condmove_single operand" | |
26622 | msgstr "operando output_condmove_single erróneo" | |
26623 | ||
26624 | -#: config/i386/i386.c:13178 | |
26625 | +#: config/i386/i386.c:13272 | |
26626 | #, c-format | |
26627 | msgid "invalid UNSPEC as operand" | |
26628 | msgstr "UNSPEC inválido como operando" | |
26629 | ||
26630 | -#: config/i386/i386.c:13801 | |
26631 | +#: config/i386/i386.c:13896 | |
26632 | #, c-format | |
26633 | msgid "'%%&' used without any local dynamic TLS references" | |
26634 | msgstr "se usó '%%&' sin ninguna referencia TLS dinámica local" | |
26635 | ||
26636 | -#: config/i386/i386.c:13892 config/i386/i386.c:13967 | |
26637 | +#: config/i386/i386.c:13994 config/i386/i386.c:14069 | |
26638 | #, c-format | |
26639 | msgid "invalid operand size for operand code '%c'" | |
26640 | msgstr "tamaño de operando inválido para el código de operando '%c'" | |
26641 | ||
26642 | -#: config/i386/i386.c:13962 | |
26643 | +#: config/i386/i386.c:14064 | |
26644 | #, c-format | |
26645 | msgid "invalid operand type used with operand code '%c'" | |
26646 | msgstr "se usó un tipo de operando inválido con el código de operando '%c'" | |
26647 | ||
26648 | -#: config/i386/i386.c:14043 config/i386/i386.c:14083 | |
26649 | +#: config/i386/i386.c:14145 config/i386/i386.c:14185 | |
26650 | #, c-format | |
26651 | msgid "operand is not a condition code, invalid operand code 'D'" | |
26652 | msgstr "el operando no es un código de condición, código de operando 'D' inválido" | |
26653 | ||
26654 | -#: config/i386/i386.c:14109 | |
26655 | +#: config/i386/i386.c:14211 | |
26656 | #, c-format | |
26657 | msgid "operand is neither a constant nor a condition code, invalid operand code 'C'" | |
26658 | msgstr "el operando no es una constante ni un código de condición, código de operando 'C' inválido" | |
26659 | ||
26660 | -#: config/i386/i386.c:14119 | |
26661 | +#: config/i386/i386.c:14221 | |
26662 | #, c-format | |
26663 | msgid "operand is neither a constant nor a condition code, invalid operand code 'F'" | |
26664 | msgstr "el operando no es una constante ni un código de condición, código de operando 'F' inválido" | |
26665 | ||
26666 | -#: config/i386/i386.c:14137 | |
26667 | +#: config/i386/i386.c:14239 | |
26668 | #, c-format | |
26669 | msgid "operand is neither a constant nor a condition code, invalid operand code 'c'" | |
26670 | msgstr "el operando no es una constante ni un código de condición, código de operando 'c' inválido" | |
26671 | ||
26672 | -#: config/i386/i386.c:14147 | |
26673 | +#: config/i386/i386.c:14249 | |
26674 | #, c-format | |
26675 | msgid "operand is neither a constant nor a condition code, invalid operand code 'f'" | |
26676 | msgstr "el operando no es una constante ni un código de condición, código de operando 'f' inválido" | |
26677 | ||
26678 | -#: config/i386/i386.c:14162 | |
26679 | +#: config/i386/i386.c:14264 | |
26680 | #, c-format | |
26681 | msgid "operand is not an offsettable memory reference, invalid operand code 'H'" | |
26682 | msgstr "el operando no es una referencia de memoria desplazable, código de operando 'H' inválido" | |
26683 | ||
26684 | -#: config/i386/i386.c:14257 | |
26685 | +#: config/i386/i386.c:14359 | |
26686 | #, c-format | |
26687 | msgid "operand is not a condition code, invalid operand code 'Y'" | |
26688 | msgstr "el operando no es un código de condición, código de operando 'Y' inválido" | |
26689 | ||
26690 | -#: config/i386/i386.c:14287 | |
26691 | +#: config/i386/i386.c:14389 | |
26692 | #, c-format | |
26693 | msgid "invalid operand code '%c'" | |
26694 | msgstr "código de operando '%c' inválido" | |
26695 | ||
26696 | -#: config/i386/i386.c:14342 | |
26697 | +#: config/i386/i386.c:14444 | |
26698 | #, c-format | |
26699 | msgid "invalid constraints for operand" | |
26700 | msgstr "restricciones inválidas para el operando" | |
26701 | ||
26702 | -#: config/i386/i386.c:23356 | |
26703 | +#: config/i386/i386.c:23485 | |
26704 | msgid "unknown insn mode" | |
26705 | msgstr "modo insn desconocido" | |
26706 | ||
26707 | @@ -3079,13 +3079,13 @@ | |
26708 | msgid "invalid operation on %<__fpreg%>" | |
26709 | msgstr "operación inválida en %<__fpreg%>" | |
26710 | ||
26711 | -#: config/iq2000/iq2000.c:3130 config/tilegx/tilegx.c:5131 | |
26712 | +#: config/iq2000/iq2000.c:3130 config/tilegx/tilegx.c:5133 | |
26713 | #: config/tilepro/tilepro.c:4696 | |
26714 | #, c-format | |
26715 | msgid "invalid %%P operand" | |
26716 | msgstr "operando %%P inválido" | |
26717 | ||
26718 | -#: config/iq2000/iq2000.c:3138 config/rs6000/rs6000.c:14955 | |
26719 | +#: config/iq2000/iq2000.c:3138 config/rs6000/rs6000.c:14954 | |
26720 | #, c-format | |
26721 | msgid "invalid %%p value" | |
26722 | msgstr "valor %%p inválido" | |
26723 | @@ -3164,7 +3164,7 @@ | |
26724 | msgstr "la dirección de post-incremento no es un registro" | |
26725 | ||
26726 | #: config/m32r/m32r.c:2321 config/m32r/m32r.c:2335 | |
26727 | -#: config/rs6000/rs6000.c:24534 | |
26728 | +#: config/rs6000/rs6000.c:24557 | |
26729 | msgid "bad address" | |
26730 | msgstr "dirección errónea" | |
26731 | ||
26732 | @@ -3299,115 +3299,115 @@ | |
26733 | msgid "Try running '%s' in the shell to raise its limit.\n" | |
26734 | msgstr "Pruebe ejecutar '%s' en el intérprete de órdenes para elevar su límite.\n" | |
26735 | ||
26736 | -#: config/rs6000/rs6000.c:2758 | |
26737 | +#: config/rs6000/rs6000.c:2757 | |
26738 | msgid "-mvsx requires hardware floating point" | |
26739 | msgstr "-mvsx requiere coma flotante de hardware" | |
26740 | ||
26741 | -#: config/rs6000/rs6000.c:2763 | |
26742 | +#: config/rs6000/rs6000.c:2762 | |
26743 | msgid "-mvsx and -mpaired are incompatible" | |
26744 | msgstr "-mvsx y -mpaired son incompatibles" | |
26745 | ||
26746 | -#: config/rs6000/rs6000.c:2768 | |
26747 | +#: config/rs6000/rs6000.c:2767 | |
26748 | msgid "-mvsx used with little endian code" | |
26749 | msgstr "se usó -mvsx con código little endian" | |
26750 | ||
26751 | -#: config/rs6000/rs6000.c:2770 | |
26752 | +#: config/rs6000/rs6000.c:2769 | |
26753 | msgid "-mvsx needs indexed addressing" | |
26754 | msgstr "-mvsx necesita direccionamiento indizado" | |
26755 | ||
26756 | -#: config/rs6000/rs6000.c:2774 | |
26757 | +#: config/rs6000/rs6000.c:2773 | |
26758 | msgid "-mvsx and -mno-altivec are incompatible" | |
26759 | msgstr "-mvsx y -mno-altivec son incompatibles" | |
26760 | ||
26761 | -#: config/rs6000/rs6000.c:2776 | |
26762 | +#: config/rs6000/rs6000.c:2775 | |
26763 | msgid "-mno-altivec disables vsx" | |
26764 | msgstr "-mno-altivec desactiva vsx" | |
26765 | ||
26766 | -#: config/rs6000/rs6000.c:7324 | |
26767 | +#: config/rs6000/rs6000.c:7323 | |
26768 | msgid "bad move" | |
26769 | msgstr "move erróneo" | |
26770 | ||
26771 | -#: config/rs6000/rs6000.c:14765 | |
26772 | +#: config/rs6000/rs6000.c:14764 | |
26773 | #, c-format | |
26774 | msgid "invalid %%c value" | |
26775 | msgstr "valor %%c inválido" | |
26776 | ||
26777 | -#: config/rs6000/rs6000.c:14793 | |
26778 | +#: config/rs6000/rs6000.c:14792 | |
26779 | #, c-format | |
26780 | msgid "invalid %%f value" | |
26781 | msgstr "valor %%f inválido" | |
26782 | ||
26783 | -#: config/rs6000/rs6000.c:14802 | |
26784 | +#: config/rs6000/rs6000.c:14801 | |
26785 | #, c-format | |
26786 | msgid "invalid %%F value" | |
26787 | msgstr "valor %%F inválido" | |
26788 | ||
26789 | -#: config/rs6000/rs6000.c:14811 | |
26790 | +#: config/rs6000/rs6000.c:14810 | |
26791 | #, c-format | |
26792 | msgid "invalid %%G value" | |
26793 | msgstr "valor %%G inválido" | |
26794 | ||
26795 | -#: config/rs6000/rs6000.c:14846 | |
26796 | +#: config/rs6000/rs6000.c:14845 | |
26797 | #, c-format | |
26798 | msgid "invalid %%j code" | |
26799 | msgstr "código %%j inválido" | |
26800 | ||
26801 | -#: config/rs6000/rs6000.c:14856 | |
26802 | +#: config/rs6000/rs6000.c:14855 | |
26803 | #, c-format | |
26804 | msgid "invalid %%J code" | |
26805 | msgstr "código %%J inválido" | |
26806 | ||
26807 | -#: config/rs6000/rs6000.c:14866 | |
26808 | +#: config/rs6000/rs6000.c:14865 | |
26809 | #, c-format | |
26810 | msgid "invalid %%k value" | |
26811 | msgstr "valor %%k inválido" | |
26812 | ||
26813 | -#: config/rs6000/rs6000.c:14881 config/xtensa/xtensa.c:2336 | |
26814 | +#: config/rs6000/rs6000.c:14880 config/xtensa/xtensa.c:2336 | |
26815 | #, c-format | |
26816 | msgid "invalid %%K value" | |
26817 | msgstr "valor %%K inválido" | |
26818 | ||
26819 | -#: config/rs6000/rs6000.c:14945 | |
26820 | +#: config/rs6000/rs6000.c:14944 | |
26821 | #, c-format | |
26822 | msgid "invalid %%O value" | |
26823 | msgstr "valor %%O inválido" | |
26824 | ||
26825 | -#: config/rs6000/rs6000.c:14992 | |
26826 | +#: config/rs6000/rs6000.c:14991 | |
26827 | #, c-format | |
26828 | msgid "invalid %%q value" | |
26829 | msgstr "valor %%q inválido" | |
26830 | ||
26831 | -#: config/rs6000/rs6000.c:15036 | |
26832 | +#: config/rs6000/rs6000.c:15035 | |
26833 | #, c-format | |
26834 | msgid "invalid %%S value" | |
26835 | msgstr "valor %%S inválido" | |
26836 | ||
26837 | -#: config/rs6000/rs6000.c:15076 | |
26838 | +#: config/rs6000/rs6000.c:15075 | |
26839 | #, c-format | |
26840 | msgid "invalid %%T value" | |
26841 | msgstr "valor %%T inválido" | |
26842 | ||
26843 | -#: config/rs6000/rs6000.c:15086 | |
26844 | +#: config/rs6000/rs6000.c:15085 | |
26845 | #, c-format | |
26846 | msgid "invalid %%u value" | |
26847 | msgstr "valor %%u inválido" | |
26848 | ||
26849 | -#: config/rs6000/rs6000.c:15095 config/xtensa/xtensa.c:2306 | |
26850 | +#: config/rs6000/rs6000.c:15094 config/xtensa/xtensa.c:2306 | |
26851 | #, c-format | |
26852 | msgid "invalid %%v value" | |
26853 | msgstr "valor %%v inválido" | |
26854 | ||
26855 | -#: config/rs6000/rs6000.c:15177 config/xtensa/xtensa.c:2357 | |
26856 | +#: config/rs6000/rs6000.c:15176 config/xtensa/xtensa.c:2357 | |
26857 | #, c-format | |
26858 | msgid "invalid %%x value" | |
26859 | msgstr "valor %%x inválido" | |
26860 | ||
26861 | -#: config/rs6000/rs6000.c:15323 | |
26862 | +#: config/rs6000/rs6000.c:15322 | |
26863 | #, c-format | |
26864 | msgid "invalid %%y value, try using the 'Z' constraint" | |
26865 | msgstr "valor %%y inválido, pruebe usando la restricción 'Z'" | |
26866 | ||
26867 | -#: config/rs6000/rs6000.c:26944 | |
26868 | +#: config/rs6000/rs6000.c:26967 | |
26869 | msgid "AltiVec argument passed to unprototyped function" | |
26870 | msgstr "Se pasó un argumento Altivec a una función sin prototipo" | |
26871 | ||
26872 | @@ -3496,25 +3496,25 @@ | |
26873 | msgid "invalid operand for code: '%c'" | |
26874 | msgstr "operando inválido para code: '%c'" | |
26875 | ||
26876 | -#: config/sh/sh.c:1031 | |
26877 | +#: config/sh/sh.c:1024 | |
26878 | #, c-format | |
26879 | msgid "invalid operand to %%R" | |
26880 | msgstr "operando inválido para %%R" | |
26881 | ||
26882 | -#: config/sh/sh.c:1058 | |
26883 | +#: config/sh/sh.c:1051 | |
26884 | #, c-format | |
26885 | msgid "invalid operand to %%S" | |
26886 | msgstr "operando inválido para %%S" | |
26887 | ||
26888 | -#: config/sh/sh.c:9154 | |
26889 | +#: config/sh/sh.c:9157 | |
26890 | msgid "created and used with different architectures / ABIs" | |
26891 | msgstr "creado y usado con diferentes arquitecturas / ABIs" | |
26892 | ||
26893 | -#: config/sh/sh.c:9156 | |
26894 | +#: config/sh/sh.c:9159 | |
26895 | msgid "created and used with different ABIs" | |
26896 | msgstr "creado y usado con diferentes ABIs" | |
26897 | ||
26898 | -#: config/sh/sh.c:9158 | |
26899 | +#: config/sh/sh.c:9161 | |
26900 | msgid "created and used with different endianness" | |
26901 | msgstr "creado y usado con diferente orden de bits" | |
26902 | ||
26903 | @@ -3533,13 +3533,13 @@ | |
26904 | msgid "invalid %%B operand" | |
26905 | msgstr "operando %%B inválido" | |
26906 | ||
26907 | -#: config/sparc/sparc.c:8247 config/tilegx/tilegx.c:4934 | |
26908 | +#: config/sparc/sparc.c:8247 config/tilegx/tilegx.c:4936 | |
26909 | #: config/tilepro/tilepro.c:4499 | |
26910 | #, c-format | |
26911 | msgid "invalid %%C operand" | |
26912 | msgstr "operando %%C inválido" | |
26913 | ||
26914 | -#: config/sparc/sparc.c:8264 config/tilegx/tilegx.c:4967 | |
26915 | +#: config/sparc/sparc.c:8264 config/tilegx/tilegx.c:4969 | |
26916 | #, c-format | |
26917 | msgid "invalid %%D operand" | |
26918 | msgstr "operando %%D inválido" | |
26919 | @@ -3584,57 +3584,57 @@ | |
26920 | msgid "xstormy16_print_operand: unknown code" | |
26921 | msgstr "xstormy16_print_operand: código desconocido" | |
26922 | ||
26923 | -#: config/tilegx/tilegx.c:4919 config/tilepro/tilepro.c:4484 | |
26924 | +#: config/tilegx/tilegx.c:4921 config/tilepro/tilepro.c:4484 | |
26925 | #, c-format | |
26926 | msgid "invalid %%c operand" | |
26927 | msgstr "operando %%c inválido" | |
26928 | ||
26929 | -#: config/tilegx/tilegx.c:4950 | |
26930 | +#: config/tilegx/tilegx.c:4952 | |
26931 | #, c-format | |
26932 | msgid "invalid %%d operand" | |
26933 | msgstr "operando %%d inválido" | |
26934 | ||
26935 | -#: config/tilegx/tilegx.c:5033 | |
26936 | +#: config/tilegx/tilegx.c:5035 | |
26937 | #, c-format | |
26938 | msgid "invalid %%H specifier" | |
26939 | msgstr "especificador %%H inválido" | |
26940 | ||
26941 | -#: config/tilegx/tilegx.c:5069 config/tilepro/tilepro.c:4513 | |
26942 | +#: config/tilegx/tilegx.c:5071 config/tilepro/tilepro.c:4513 | |
26943 | #, c-format | |
26944 | msgid "invalid %%h operand" | |
26945 | msgstr "operando %%h inválido" | |
26946 | ||
26947 | -#: config/tilegx/tilegx.c:5081 config/tilepro/tilepro.c:4577 | |
26948 | +#: config/tilegx/tilegx.c:5083 config/tilepro/tilepro.c:4577 | |
26949 | #, c-format | |
26950 | msgid "invalid %%I operand" | |
26951 | msgstr "operando %%I inválido" | |
26952 | ||
26953 | -#: config/tilegx/tilegx.c:5095 config/tilepro/tilepro.c:4591 | |
26954 | +#: config/tilegx/tilegx.c:5097 config/tilepro/tilepro.c:4591 | |
26955 | #, c-format | |
26956 | msgid "invalid %%i operand" | |
26957 | msgstr "operando %%i inválido" | |
26958 | ||
26959 | -#: config/tilegx/tilegx.c:5118 config/tilepro/tilepro.c:4614 | |
26960 | +#: config/tilegx/tilegx.c:5120 config/tilepro/tilepro.c:4614 | |
26961 | #, c-format | |
26962 | msgid "invalid %%j operand" | |
26963 | msgstr "operando %%j inválido" | |
26964 | ||
26965 | -#: config/tilegx/tilegx.c:5149 | |
26966 | +#: config/tilegx/tilegx.c:5151 | |
26967 | #, c-format | |
26968 | msgid "invalid %%%c operand" | |
26969 | msgstr "operando %%%c inválido" | |
26970 | ||
26971 | -#: config/tilegx/tilegx.c:5164 config/tilepro/tilepro.c:4728 | |
26972 | +#: config/tilegx/tilegx.c:5166 config/tilepro/tilepro.c:4728 | |
26973 | #, c-format | |
26974 | msgid "invalid %%N operand" | |
26975 | msgstr "operando %%N inválido" | |
26976 | ||
26977 | -#: config/tilegx/tilegx.c:5208 | |
26978 | +#: config/tilegx/tilegx.c:5210 | |
26979 | #, c-format | |
26980 | msgid "invalid operand for 'r' specifier" | |
26981 | msgstr "operando inválido para el especificador 'r'" | |
26982 | ||
26983 | -#: config/tilegx/tilegx.c:5233 config/tilepro/tilepro.c:4810 | |
26984 | +#: config/tilegx/tilegx.c:5235 config/tilepro/tilepro.c:4810 | |
26985 | #, c-format | |
26986 | msgid "unable to print out operand yet; code == %d (%c)" | |
26987 | msgstr "aún no se puede mostrar el operando; code == %d (%c)" | |
26988 | @@ -3948,7 +3948,7 @@ | |
26989 | msgid "candidates are:" | |
26990 | msgstr "los candidatos son:" | |
26991 | ||
26992 | -#: cp/pt.c:17843 cp/call.c:3289 | |
26993 | +#: cp/pt.c:17869 cp/call.c:3289 | |
26994 | #, gcc-internal-format | |
26995 | msgid "candidate is:" | |
26996 | msgid_plural "candidates are:" | |
26997 | @@ -4317,11 +4317,11 @@ | |
26998 | msgid "implied END DO" | |
26999 | msgstr "END DO implícito" | |
27000 | ||
27001 | -#: fortran/parse.c:1475 fortran/resolve.c:9395 | |
27002 | +#: fortran/parse.c:1475 fortran/resolve.c:9397 | |
27003 | msgid "assignment" | |
27004 | msgstr "asignación" | |
27005 | ||
27006 | -#: fortran/parse.c:1478 fortran/resolve.c:9434 fortran/resolve.c:9437 | |
27007 | +#: fortran/parse.c:1478 fortran/resolve.c:9436 fortran/resolve.c:9439 | |
27008 | msgid "pointer assignment" | |
27009 | msgstr "asignación de puntero" | |
27010 | ||
27011 | @@ -4329,123 +4329,123 @@ | |
27012 | msgid "simple IF" | |
27013 | msgstr "IF simple" | |
27014 | ||
27015 | -#: fortran/resolve.c:533 | |
27016 | +#: fortran/resolve.c:535 | |
27017 | msgid "module procedure" | |
27018 | msgstr "procedimiento módulo" | |
27019 | ||
27020 | -#: fortran/resolve.c:534 | |
27021 | +#: fortran/resolve.c:536 | |
27022 | msgid "internal function" | |
27023 | msgstr "función interna" | |
27024 | ||
27025 | -#: fortran/resolve.c:1973 | |
27026 | +#: fortran/resolve.c:1975 | |
27027 | msgid "elemental procedure" | |
27028 | msgstr "procedimiento elemental" | |
27029 | ||
27030 | -#: fortran/resolve.c:3798 | |
27031 | +#: fortran/resolve.c:3800 | |
27032 | #, c-format | |
27033 | msgid "Invalid context for NULL() pointer at %%L" | |
27034 | msgstr "Contexto inválido para el puntero NULL() en %%L" | |
27035 | ||
27036 | -#: fortran/resolve.c:3814 | |
27037 | +#: fortran/resolve.c:3816 | |
27038 | #, c-format | |
27039 | msgid "Operand of unary numeric operator '%s' at %%L is %s" | |
27040 | msgstr "El operando del operador numérico unario '%s' en %%L es %s" | |
27041 | ||
27042 | -#: fortran/resolve.c:3830 | |
27043 | +#: fortran/resolve.c:3832 | |
27044 | #, c-format | |
27045 | msgid "Operands of binary numeric operator '%s' at %%L are %s/%s" | |
27046 | msgstr "Los operandos del operador binario numérico '%s' en %%L son %s/%s" | |
27047 | ||
27048 | -#: fortran/resolve.c:3845 | |
27049 | +#: fortran/resolve.c:3847 | |
27050 | #, c-format | |
27051 | msgid "Operands of string concatenation operator at %%L are %s/%s" | |
27052 | msgstr "Los operandos del operador de concatenación de cadenas en %%L son %s/%s" | |
27053 | ||
27054 | -#: fortran/resolve.c:3864 | |
27055 | +#: fortran/resolve.c:3866 | |
27056 | #, c-format | |
27057 | msgid "Operands of logical operator '%s' at %%L are %s/%s" | |
27058 | msgstr "Los operandos del operador lógico '%s' en %%L son %s/%s" | |
27059 | ||
27060 | -#: fortran/resolve.c:3878 | |
27061 | +#: fortran/resolve.c:3880 | |
27062 | #, c-format | |
27063 | msgid "Operand of .not. operator at %%L is %s" | |
27064 | msgstr "El operando del operador .not. en %%L es %s" | |
27065 | ||
27066 | -#: fortran/resolve.c:3892 | |
27067 | +#: fortran/resolve.c:3894 | |
27068 | msgid "COMPLEX quantities cannot be compared at %L" | |
27069 | msgstr "Las cantidades COMPLEX no se pueden comparar en %L" | |
27070 | ||
27071 | -#: fortran/resolve.c:3921 | |
27072 | +#: fortran/resolve.c:3923 | |
27073 | #, c-format | |
27074 | msgid "Logicals at %%L must be compared with %s instead of %s" | |
27075 | msgstr "Los lógicos en %%L se deben comparar con %s en lugar de %s" | |
27076 | ||
27077 | -#: fortran/resolve.c:3927 | |
27078 | +#: fortran/resolve.c:3929 | |
27079 | #, c-format | |
27080 | msgid "Operands of comparison operator '%s' at %%L are %s/%s" | |
27081 | msgstr "Los operandos del operador de comparación '%s' en %%L son %s/%s" | |
27082 | ||
27083 | -#: fortran/resolve.c:3935 | |
27084 | +#: fortran/resolve.c:3937 | |
27085 | #, c-format | |
27086 | msgid "Unknown operator '%s' at %%L" | |
27087 | msgstr "Operador '%s' desconocido en %%L" | |
27088 | ||
27089 | -#: fortran/resolve.c:3937 | |
27090 | +#: fortran/resolve.c:3939 | |
27091 | #, c-format | |
27092 | msgid "Operand of user operator '%s' at %%L is %s" | |
27093 | msgstr "El operando del operador de usuario '%s' en %%L es %s" | |
27094 | ||
27095 | -#: fortran/resolve.c:3941 | |
27096 | +#: fortran/resolve.c:3943 | |
27097 | #, c-format | |
27098 | msgid "Operands of user operator '%s' at %%L are %s/%s" | |
27099 | msgstr "Los operandos del operador de usuario '%s' en %%L son %s/%s" | |
27100 | ||
27101 | -#: fortran/resolve.c:4029 | |
27102 | +#: fortran/resolve.c:4031 | |
27103 | #, c-format | |
27104 | msgid "Inconsistent ranks for operator at %%L and %%L" | |
27105 | msgstr "Rangos inconsistentes para el operador en %%L y %%L" | |
27106 | ||
27107 | -#: fortran/resolve.c:6401 | |
27108 | +#: fortran/resolve.c:6403 | |
27109 | msgid "Loop variable" | |
27110 | msgstr "Variable de ciclo" | |
27111 | ||
27112 | -#: fortran/resolve.c:6405 | |
27113 | +#: fortran/resolve.c:6407 | |
27114 | msgid "iterator variable" | |
27115 | msgstr "variable de iterador" | |
27116 | ||
27117 | -#: fortran/resolve.c:6410 | |
27118 | +#: fortran/resolve.c:6412 | |
27119 | msgid "Start expression in DO loop" | |
27120 | msgstr "Expresión de inicio en el bucle DO" | |
27121 | ||
27122 | -#: fortran/resolve.c:6414 | |
27123 | +#: fortran/resolve.c:6416 | |
27124 | msgid "End expression in DO loop" | |
27125 | msgstr "Expresión de fin en el bucle DO" | |
27126 | ||
27127 | -#: fortran/resolve.c:6418 | |
27128 | +#: fortran/resolve.c:6420 | |
27129 | msgid "Step expression in DO loop" | |
27130 | msgstr "Expresión de paso en el bucle DO" | |
27131 | ||
27132 | -#: fortran/resolve.c:6674 fortran/resolve.c:6677 | |
27133 | +#: fortran/resolve.c:6676 fortran/resolve.c:6679 | |
27134 | msgid "DEALLOCATE object" | |
27135 | msgstr "objeto DEALLOCATE" | |
27136 | ||
27137 | -#: fortran/resolve.c:7019 fortran/resolve.c:7021 | |
27138 | +#: fortran/resolve.c:7021 fortran/resolve.c:7023 | |
27139 | msgid "ALLOCATE object" | |
27140 | msgstr "objeto ALLOCATE" | |
27141 | ||
27142 | -#: fortran/resolve.c:7201 fortran/resolve.c:8434 | |
27143 | +#: fortran/resolve.c:7203 fortran/resolve.c:8436 | |
27144 | msgid "STAT variable" | |
27145 | msgstr "variable STAT" | |
27146 | ||
27147 | -#: fortran/resolve.c:7244 fortran/resolve.c:8446 | |
27148 | +#: fortran/resolve.c:7246 fortran/resolve.c:8448 | |
27149 | msgid "ERRMSG variable" | |
27150 | msgstr "variable ERRMSG" | |
27151 | ||
27152 | -#: fortran/resolve.c:8312 | |
27153 | +#: fortran/resolve.c:8314 | |
27154 | msgid "item in READ" | |
27155 | msgstr "elemento en READ" | |
27156 | ||
27157 | -#: fortran/resolve.c:8458 | |
27158 | +#: fortran/resolve.c:8460 | |
27159 | msgid "ACQUIRED_LOCK variable" | |
27160 | msgstr "variable ACQUIRED_LOCK" | |
27161 | ||
27162 | @@ -4454,7 +4454,7 @@ | |
27163 | msgid "Different CHARACTER lengths (%ld/%ld) in array constructor" | |
27164 | msgstr "Longitudes de CHARACTER diferentes (%ld/%ld) en el constructor de matriz" | |
27165 | ||
27166 | -#: fortran/trans-array.c:5070 | |
27167 | +#: fortran/trans-array.c:5064 | |
27168 | msgid "Integer overflow when calculating the amount of memory to allocate" | |
27169 | msgstr "Desborde entero al calcular la cantidad de memoria a reservar" | |
27170 | ||
27171 | @@ -4775,6 +4775,18 @@ | |
27172 | msgid "cannot use mshared and static together" | |
27173 | msgstr "no se pueden usar mshared y static juntos" | |
27174 | ||
27175 | +#: java/lang-specs.h:33 | |
27176 | +msgid "-fjni and -femit-class-files are incompatible" | |
27177 | +msgstr "-fjni y -femit-class-files son incompatibles" | |
27178 | + | |
27179 | +#: java/lang-specs.h:34 | |
27180 | +msgid "-fjni and -femit-class-file are incompatible" | |
27181 | +msgstr "-fjni y -femit-class-file son incompatibles" | |
27182 | + | |
27183 | +#: java/lang-specs.h:35 java/lang-specs.h:36 | |
27184 | +msgid "-femit-class-file should used along with -fsyntax-only" | |
27185 | +msgstr "-femit-class-file se debe usar junto con -fsyntax-only" | |
27186 | + | |
27187 | #: config/i386/mingw-w64.h:83 config/i386/mingw32.h:116 | |
27188 | #: config/i386/cygwin.h:114 | |
27189 | msgid "shared and mdll are not compatible" | |
27190 | @@ -4864,26 +4876,10 @@ | |
27191 | msgid "objc-cpp-output is deprecated; please use objective-c-cpp-output instead" | |
27192 | msgstr "objc-cpp-output es obsoleto; por favor use en su lugar objective-c-cpp-output" | |
27193 | ||
27194 | -#: config/vax/netbsd-elf.h:51 | |
27195 | -msgid "the -shared option is not currently supported for VAX ELF" | |
27196 | -msgstr "la opción -shared no se admite actualmente en ELF de VAX" | |
27197 | - | |
27198 | #: fortran/lang-specs.h:55 fortran/lang-specs.h:69 | |
27199 | msgid "gfortran does not support -E without -cpp" | |
27200 | msgstr "gfortran no admite -E sin usar -cpp" | |
27201 | ||
27202 | -#: java/lang-specs.h:33 | |
27203 | -msgid "-fjni and -femit-class-files are incompatible" | |
27204 | -msgstr "-fjni y -femit-class-files son incompatibles" | |
27205 | - | |
27206 | -#: java/lang-specs.h:34 | |
27207 | -msgid "-fjni and -femit-class-file are incompatible" | |
27208 | -msgstr "-fjni y -femit-class-file son incompatibles" | |
27209 | - | |
27210 | -#: java/lang-specs.h:35 java/lang-specs.h:36 | |
27211 | -msgid "-femit-class-file should used along with -fsyntax-only" | |
27212 | -msgstr "-femit-class-file se debe usar junto con -fsyntax-only" | |
27213 | - | |
27214 | #: config/sh/sh.h:430 config/sh/sh.h:433 | |
27215 | msgid "SH2a does not support little-endian" | |
27216 | msgstr "SH2a no se admite para little-endian" | |
27217 | @@ -4896,6 +4892,10 @@ | |
27218 | msgid "objc++-cpp-output is deprecated; please use objective-c++-cpp-output instead" | |
27219 | msgstr "objc++-cpp-output es obsoleto; pr favor use en su lugar objective-c++-cpp-output" | |
27220 | ||
27221 | +#: config/vax/netbsd-elf.h:51 | |
27222 | +msgid "the -shared option is not currently supported for VAX ELF" | |
27223 | +msgstr "la opción -shared no se admite actualmente en ELF de VAX" | |
27224 | + | |
27225 | #: config/vax/vax.h:50 config/vax/vax.h:51 | |
27226 | msgid "profiling not supported with -mg" | |
27227 | msgstr "el análisis de perfil no se admite con -mg" | |
27228 | @@ -7589,8 +7589,8 @@ | |
27229 | msgstr "Sigue las convenciones de llamada Renesas (anteriormente Hitachi) / SuperH" | |
27230 | ||
27231 | #: config/sh/sh.opt:274 | |
27232 | -msgid "Increase the IEEE compliance for floating-point code" | |
27233 | -msgstr "Incrementa el cumplimiento con IEEE para el código de coma flotante" | |
27234 | +msgid "Increase the IEEE compliance for floating-point comparisons" | |
27235 | +msgstr "Incrementa el cumplimiento con IEEE para las comparaciones de coma flotante" | |
27236 | ||
27237 | #: config/sh/sh.opt:278 | |
27238 | msgid "Enable the use of the indexed addressing mode for SHmedia32/SHcompact" | |
27239 | @@ -11791,224 +11791,220 @@ | |
27240 | msgid "Create a position independent executable" | |
27241 | msgstr "Genera un ejecutable independiente de posición" | |
27242 | ||
27243 | -#: go/gofrontend/expressions.cc:853 | |
27244 | +#: go/gofrontend/expressions.cc:855 | |
27245 | msgid "invalid use of type" | |
27246 | msgstr "uso inválido del tipo" | |
27247 | ||
27248 | -#: go/gofrontend/expressions.cc:2533 go/gofrontend/expressions.cc:2599 | |
27249 | -#: go/gofrontend/expressions.cc:2615 | |
27250 | +#: go/gofrontend/expressions.cc:2535 go/gofrontend/expressions.cc:2601 | |
27251 | +#: go/gofrontend/expressions.cc:2617 | |
27252 | msgid "constant refers to itself" | |
27253 | msgstr "la constante se refiere a sí misma" | |
27254 | ||
27255 | -#: go/gofrontend/expressions.cc:3900 | |
27256 | +#: go/gofrontend/expressions.cc:3902 | |
27257 | msgid "expected numeric type" | |
27258 | msgstr "se esperaba un tipo numérico" | |
27259 | ||
27260 | -#: go/gofrontend/expressions.cc:3905 | |
27261 | +#: go/gofrontend/expressions.cc:3907 | |
27262 | msgid "expected boolean type" | |
27263 | msgstr "se esperaba un tipo booleano" | |
27264 | ||
27265 | -#: go/gofrontend/expressions.cc:3911 | |
27266 | +#: go/gofrontend/expressions.cc:3913 | |
27267 | msgid "expected integer or boolean type" | |
27268 | msgstr "se esperaba un tipo entero o booleano" | |
27269 | ||
27270 | -#: go/gofrontend/expressions.cc:3918 | |
27271 | +#: go/gofrontend/expressions.cc:3920 | |
27272 | msgid "invalid operand for unary %<&%>" | |
27273 | msgstr "operando inválido para el unario %<&%>" | |
27274 | ||
27275 | -#: go/gofrontend/expressions.cc:3927 | |
27276 | +#: go/gofrontend/expressions.cc:3929 | |
27277 | msgid "expected pointer" | |
27278 | msgstr "se esperaba un puntero" | |
27279 | ||
27280 | -#: go/gofrontend/expressions.cc:5588 go/gofrontend/expressions.cc:5606 | |
27281 | +#: go/gofrontend/expressions.cc:5599 go/gofrontend/expressions.cc:5617 | |
27282 | msgid "incompatible types in binary expression" | |
27283 | msgstr "tipos incompatibles en la expresión binaria" | |
27284 | ||
27285 | -#: go/gofrontend/expressions.cc:5620 | |
27286 | +#: go/gofrontend/expressions.cc:5631 | |
27287 | msgid "shift of non-integer operand" | |
27288 | msgstr "desplazamiento de un operando que no es entero" | |
27289 | ||
27290 | -#: go/gofrontend/expressions.cc:5625 go/gofrontend/expressions.cc:5633 | |
27291 | +#: go/gofrontend/expressions.cc:5636 go/gofrontend/expressions.cc:5644 | |
27292 | msgid "shift count not unsigned integer" | |
27293 | msgstr "la cuenta de desplazamiento no es un entero sin signo" | |
27294 | ||
27295 | -#: go/gofrontend/expressions.cc:5638 | |
27296 | +#: go/gofrontend/expressions.cc:5649 | |
27297 | msgid "negative shift count" | |
27298 | msgstr "cuenta de desplazamiento negativa" | |
27299 | ||
27300 | -#: go/gofrontend/expressions.cc:6431 | |
27301 | +#: go/gofrontend/expressions.cc:6448 | |
27302 | msgid "object is not a method" | |
27303 | msgstr "el objeto no es un método" | |
27304 | ||
27305 | -#: go/gofrontend/expressions.cc:6440 | |
27306 | +#: go/gofrontend/expressions.cc:6457 | |
27307 | msgid "method type does not match object type" | |
27308 | msgstr "el tipo de método no coincide con el tipo de objeto" | |
27309 | ||
27310 | -#: go/gofrontend/expressions.cc:6714 | |
27311 | +#: go/gofrontend/expressions.cc:6731 | |
27312 | msgid "invalid use of %<...%> with builtin function" | |
27313 | msgstr "uso inválido de %<..%> con la función interna" | |
27314 | ||
27315 | -#: go/gofrontend/expressions.cc:6748 go/gofrontend/expressions.cc:6805 | |
27316 | -#: go/gofrontend/expressions.cc:6850 go/gofrontend/expressions.cc:7539 | |
27317 | -#: go/gofrontend/expressions.cc:7686 go/gofrontend/expressions.cc:7729 | |
27318 | -#: go/gofrontend/expressions.cc:7785 go/gofrontend/expressions.cc:8967 | |
27319 | -#: go/gofrontend/expressions.cc:8986 | |
27320 | +#: go/gofrontend/expressions.cc:6765 go/gofrontend/expressions.cc:6822 | |
27321 | +#: go/gofrontend/expressions.cc:6867 go/gofrontend/expressions.cc:7556 | |
27322 | +#: go/gofrontend/expressions.cc:7703 go/gofrontend/expressions.cc:7746 | |
27323 | +#: go/gofrontend/expressions.cc:7802 go/gofrontend/expressions.cc:8984 | |
27324 | +#: go/gofrontend/expressions.cc:9003 | |
27325 | msgid "not enough arguments" | |
27326 | msgstr "faltan argumentos" | |
27327 | ||
27328 | -#: go/gofrontend/expressions.cc:6750 go/gofrontend/expressions.cc:6807 | |
27329 | -#: go/gofrontend/expressions.cc:7544 go/gofrontend/expressions.cc:7669 | |
27330 | -#: go/gofrontend/expressions.cc:7691 go/gofrontend/expressions.cc:7734 | |
27331 | -#: go/gofrontend/expressions.cc:7787 go/gofrontend/expressions.cc:8662 | |
27332 | -#: go/gofrontend/expressions.cc:8972 go/gofrontend/expressions.cc:8993 | |
27333 | +#: go/gofrontend/expressions.cc:6767 go/gofrontend/expressions.cc:6824 | |
27334 | +#: go/gofrontend/expressions.cc:7561 go/gofrontend/expressions.cc:7686 | |
27335 | +#: go/gofrontend/expressions.cc:7708 go/gofrontend/expressions.cc:7751 | |
27336 | +#: go/gofrontend/expressions.cc:7804 go/gofrontend/expressions.cc:8679 | |
27337 | +#: go/gofrontend/expressions.cc:8989 go/gofrontend/expressions.cc:9010 | |
27338 | msgid "too many arguments" | |
27339 | msgstr "demasiados argumentos" | |
27340 | ||
27341 | -#: go/gofrontend/expressions.cc:6809 | |
27342 | +#: go/gofrontend/expressions.cc:6826 | |
27343 | msgid "argument 1 must be a map" | |
27344 | msgstr "el argumento 1 debe ser un mapa" | |
27345 | ||
27346 | -#: go/gofrontend/expressions.cc:6876 | |
27347 | +#: go/gofrontend/expressions.cc:6893 | |
27348 | msgid "invalid type for make function" | |
27349 | msgstr "tipo inválido para la función make" | |
27350 | ||
27351 | -#: go/gofrontend/expressions.cc:6890 | |
27352 | +#: go/gofrontend/expressions.cc:6907 | |
27353 | msgid "length required when allocating a slice" | |
27354 | msgstr "se requiere longitud al alojar una rebanada" | |
27355 | ||
27356 | -#: go/gofrontend/expressions.cc:6904 | |
27357 | +#: go/gofrontend/expressions.cc:6921 | |
27358 | msgid "bad size for make" | |
27359 | msgstr "tamaño erróneo para make" | |
27360 | ||
27361 | -#: go/gofrontend/expressions.cc:6919 | |
27362 | +#: go/gofrontend/expressions.cc:6936 | |
27363 | msgid "bad capacity when making slice" | |
27364 | msgstr "capacidad errónea al crear la rebanada" | |
27365 | ||
27366 | -#: go/gofrontend/expressions.cc:6930 | |
27367 | +#: go/gofrontend/expressions.cc:6947 | |
27368 | msgid "too many arguments to make" | |
27369 | msgstr "demasiados argumentos para make" | |
27370 | ||
27371 | -#: go/gofrontend/expressions.cc:7588 | |
27372 | +#: go/gofrontend/expressions.cc:7605 | |
27373 | msgid "argument must be array or slice or channel" | |
27374 | msgstr "el argumento debe ser matriz o rebanada o canal" | |
27375 | ||
27376 | -#: go/gofrontend/expressions.cc:7598 | |
27377 | +#: go/gofrontend/expressions.cc:7615 | |
27378 | msgid "argument must be string or array or slice or map or channel" | |
27379 | msgstr "el argumento debe ser cadena o matriz o rebanada o mapa o canal" | |
27380 | ||
27381 | -#: go/gofrontend/expressions.cc:7644 | |
27382 | +#: go/gofrontend/expressions.cc:7661 | |
27383 | msgid "unsupported argument type to builtin function" | |
27384 | msgstr "no se admite el tipo de argumento para la función interna" | |
27385 | ||
27386 | -#: go/gofrontend/expressions.cc:7655 | |
27387 | +#: go/gofrontend/expressions.cc:7672 | |
27388 | msgid "argument must be channel" | |
27389 | msgstr "el argumento debe ser canal" | |
27390 | ||
27391 | -#: go/gofrontend/expressions.cc:7657 | |
27392 | +#: go/gofrontend/expressions.cc:7674 | |
27393 | msgid "cannot close receive-only channel" | |
27394 | msgstr "no se puede cerrar un canal de sólo recepción" | |
27395 | ||
27396 | -#: go/gofrontend/expressions.cc:7677 | |
27397 | +#: go/gofrontend/expressions.cc:7694 | |
27398 | msgid "argument must be a field reference" | |
27399 | msgstr "el argumento debe ser una referencia de campo" | |
27400 | ||
27401 | -#: go/gofrontend/expressions.cc:7704 | |
27402 | +#: go/gofrontend/expressions.cc:7721 | |
27403 | msgid "left argument must be a slice" | |
27404 | msgstr "el argumento izquierdo debe ser una rebanada" | |
27405 | ||
27406 | -#: go/gofrontend/expressions.cc:7712 | |
27407 | +#: go/gofrontend/expressions.cc:7729 | |
27408 | msgid "element types must be the same" | |
27409 | msgstr "los tipos de elemento deben ser el mismo" | |
27410 | ||
27411 | -#: go/gofrontend/expressions.cc:7717 | |
27412 | +#: go/gofrontend/expressions.cc:7734 | |
27413 | msgid "first argument must be []byte" | |
27414 | msgstr "el primer argumento debe ser []byte" | |
27415 | ||
27416 | -#: go/gofrontend/expressions.cc:7720 | |
27417 | +#: go/gofrontend/expressions.cc:7737 | |
27418 | msgid "second argument must be slice or string" | |
27419 | msgstr "el segundo argumento debe ser una rebanada o una cadena" | |
27420 | ||
27421 | -#: go/gofrontend/expressions.cc:7761 | |
27422 | +#: go/gofrontend/expressions.cc:7778 | |
27423 | msgid "argument 2 has invalid type" | |
27424 | msgstr "el argumento 2 es de tipo inválido" | |
27425 | ||
27426 | -#: go/gofrontend/expressions.cc:7777 | |
27427 | +#: go/gofrontend/expressions.cc:7794 | |
27428 | msgid "argument must have complex type" | |
27429 | msgstr "el argumento debe tener tipo complejo" | |
27430 | ||
27431 | -#: go/gofrontend/expressions.cc:7795 | |
27432 | +#: go/gofrontend/expressions.cc:7812 | |
27433 | msgid "complex arguments must have identical types" | |
27434 | msgstr "los argumentos complejos deben tener tipos idénticos" | |
27435 | ||
27436 | -#: go/gofrontend/expressions.cc:7797 | |
27437 | +#: go/gofrontend/expressions.cc:7814 | |
27438 | msgid "complex arguments must have floating-point type" | |
27439 | msgstr "los argumentos complejos deben tener tipo de coma flotante" | |
27440 | ||
27441 | -#: go/gofrontend/expressions.cc:8666 | |
27442 | +#: go/gofrontend/expressions.cc:8683 | |
27443 | msgid "invalid use of %<...%> with non-slice" | |
27444 | msgstr "uso inválido de %<...%> con algo que no es rebanada" | |
27445 | ||
27446 | -#: go/gofrontend/expressions.cc:8920 go/gofrontend/expressions.cc:9361 | |
27447 | +#: go/gofrontend/expressions.cc:8937 go/gofrontend/expressions.cc:9378 | |
27448 | msgid "expected function" | |
27449 | msgstr "se esperaba función" | |
27450 | ||
27451 | -#: go/gofrontend/expressions.cc:8939 | |
27452 | +#: go/gofrontend/expressions.cc:8956 | |
27453 | msgid "incompatible type for receiver" | |
27454 | msgstr "tipo incompatible para el receptor" | |
27455 | ||
27456 | -#: go/gofrontend/expressions.cc:8957 | |
27457 | +#: go/gofrontend/expressions.cc:8974 | |
27458 | msgid "invalid use of %<...%> calling non-variadic function" | |
27459 | msgstr "uso inválido de %<...%> en la llamada a la función que no es variadic" | |
27460 | ||
27461 | -#: go/gofrontend/expressions.cc:9370 go/gofrontend/expressions.cc:9384 | |
27462 | +#: go/gofrontend/expressions.cc:9387 go/gofrontend/expressions.cc:9401 | |
27463 | msgid "number of results does not match number of values" | |
27464 | msgstr "el número de resultados no coincide con el número de valores" | |
27465 | ||
27466 | -#: go/gofrontend/expressions.cc:9688 go/gofrontend/expressions.cc:10110 | |
27467 | +#: go/gofrontend/expressions.cc:9705 go/gofrontend/expressions.cc:10127 | |
27468 | msgid "index must be integer" | |
27469 | msgstr "el índice debe ser entero" | |
27470 | ||
27471 | -#: go/gofrontend/expressions.cc:9694 go/gofrontend/expressions.cc:10114 | |
27472 | +#: go/gofrontend/expressions.cc:9711 go/gofrontend/expressions.cc:10131 | |
27473 | msgid "slice end must be integer" | |
27474 | msgstr "el final de la rebanada debe ser entero" | |
27475 | ||
27476 | -#: go/gofrontend/expressions.cc:9751 | |
27477 | +#: go/gofrontend/expressions.cc:9768 | |
27478 | msgid "slice of unaddressable value" | |
27479 | msgstr "rebanada con valor que no es direccionable" | |
27480 | ||
27481 | -#: go/gofrontend/expressions.cc:10344 | |
27482 | +#: go/gofrontend/expressions.cc:10361 | |
27483 | msgid "incompatible type for map index" | |
27484 | msgstr "tipo incompatibles para el índice de mapa" | |
27485 | ||
27486 | -#: go/gofrontend/expressions.cc:10692 | |
27487 | +#: go/gofrontend/expressions.cc:10709 | |
27488 | msgid "expected interface or pointer to interface" | |
27489 | msgstr "se esperaba interfaz o puntero a interfaz" | |
27490 | ||
27491 | -#: go/gofrontend/expressions.cc:11260 | |
27492 | +#: go/gofrontend/expressions.cc:11277 | |
27493 | msgid "too many expressions for struct" | |
27494 | msgstr "demasiadas expresiones para struct" | |
27495 | ||
27496 | -#: go/gofrontend/expressions.cc:11273 | |
27497 | +#: go/gofrontend/expressions.cc:11290 | |
27498 | msgid "too few expressions for struct" | |
27499 | msgstr "faltan expresiones para struct" | |
27500 | ||
27501 | -#: go/gofrontend/expressions.cc:12933 go/gofrontend/expressions.cc:12941 | |
27502 | -msgid "invalid unsafe.Pointer conversion" | |
27503 | -msgstr "conversión unsafe.Pointer inválida" | |
27504 | - | |
27505 | -#: go/gofrontend/expressions.cc:12946 go/gofrontend/statements.cc:1539 | |
27506 | +#: go/gofrontend/expressions.cc:12945 go/gofrontend/statements.cc:1539 | |
27507 | msgid "type assertion only valid for interface types" | |
27508 | msgstr "la aserción de tipo sólo es válida para los tipos de interfaz" | |
27509 | ||
27510 | -#: go/gofrontend/expressions.cc:12958 | |
27511 | +#: go/gofrontend/expressions.cc:12957 | |
27512 | msgid "impossible type assertion: type does not implement interface" | |
27513 | msgstr "aserción de tipo imposible: el tipo no implementa interfaz" | |
27514 | ||
27515 | -#: go/gofrontend/expressions.cc:13142 go/gofrontend/statements.cc:1387 | |
27516 | +#: go/gofrontend/expressions.cc:13128 go/gofrontend/statements.cc:1387 | |
27517 | msgid "expected channel" | |
27518 | msgstr "se esperaba canal" | |
27519 | ||
27520 | -#: go/gofrontend/expressions.cc:13147 go/gofrontend/statements.cc:1392 | |
27521 | +#: go/gofrontend/expressions.cc:13133 go/gofrontend/statements.cc:1392 | |
27522 | msgid "invalid receive on send-only channel" | |
27523 | msgstr "recepción inválida en canal de sólo envío" | |
27524 | ||
27525 | @@ -12044,19 +12040,23 @@ | |
27526 | msgid "expected boolean expression" | |
27527 | msgstr "se esperaba una expresión booleana" | |
27528 | ||
27529 | -#: go/gofrontend/statements.cc:4334 | |
27530 | +#: go/gofrontend/statements.cc:4198 | |
27531 | +msgid "cannot type switch on non-interface value" | |
27532 | +msgstr "no se puede cambiar el tipo en valores que no son de interfaz" | |
27533 | + | |
27534 | +#: go/gofrontend/statements.cc:4320 | |
27535 | msgid "incompatible types in send" | |
27536 | msgstr "tipos incompatibles en send" | |
27537 | ||
27538 | -#: go/gofrontend/statements.cc:4339 | |
27539 | +#: go/gofrontend/statements.cc:4325 | |
27540 | msgid "invalid send on receive-only channel" | |
27541 | msgstr "envío inválido en canal de sólo recepción" | |
27542 | ||
27543 | -#: go/gofrontend/statements.cc:5226 | |
27544 | +#: go/gofrontend/statements.cc:5212 | |
27545 | msgid "too many variables for range clause with channel" | |
27546 | msgstr "demasiadas variables para la cláusula de rango con canal" | |
27547 | ||
27548 | -#: go/gofrontend/statements.cc:5233 | |
27549 | +#: go/gofrontend/statements.cc:5219 | |
27550 | msgid "range clause must have array, slice, string, map, or channel type" | |
27551 | msgstr "la cláusula de rango debe tener tipo matriz, rebanada, cadena, mapa o canal" | |
27552 | ||
27553 | @@ -12341,7 +12341,7 @@ | |
27554 | ||
27555 | #. All valid uses of __builtin_va_arg_pack () are removed during | |
27556 | #. inlining. | |
27557 | -#: builtins.c:6023 expr.c:9964 | |
27558 | +#: builtins.c:6023 expr.c:9965 | |
27559 | #, gcc-internal-format | |
27560 | msgid "%Kinvalid use of %<__builtin_va_arg_pack ()%>" | |
27561 | msgstr "%Kuso inválido de %<__builtin_va_arg_pack ()%>" | |
27562 | @@ -12435,13 +12435,13 @@ | |
27563 | #. an unprototyped function, it is compile-time undefined; | |
27564 | #. making it a constraint in that case was rejected in | |
27565 | #. DR#252. | |
27566 | -#: c-convert.c:101 c-typeck.c:1992 c-typeck.c:5332 c-typeck.c:10590 | |
27567 | +#: c-convert.c:103 c-typeck.c:1992 c-typeck.c:5332 c-typeck.c:10596 | |
27568 | #: cp/typeck.c:1849 cp/typeck.c:6722 cp/typeck.c:7420 fortran/convert.c:88 | |
27569 | #, gcc-internal-format | |
27570 | msgid "void value not ignored as it ought to be" | |
27571 | msgstr "no se descarta el valor void como debería de ser" | |
27572 | ||
27573 | -#: c-convert.c:181 fortran/convert.c:122 java/typeck.c:150 | |
27574 | +#: c-convert.c:182 fortran/convert.c:122 java/typeck.c:150 | |
27575 | #, gcc-internal-format | |
27576 | msgid "conversion to non-scalar type requested" | |
27577 | msgstr "se solicitó conversión a un tipo que no es escalar" | |
27578 | @@ -12816,7 +12816,7 @@ | |
27579 | msgid "%qE defined as wrong kind of tag" | |
27580 | msgstr "%qE definido como un tipo erróneo de etiqueta" | |
27581 | ||
27582 | -#: c-decl.c:3674 c-typeck.c:11016 c-family/c-common.c:4164 | |
27583 | +#: c-decl.c:3674 c-typeck.c:11022 c-family/c-common.c:4164 | |
27584 | #, gcc-internal-format | |
27585 | msgid "invalid use of %<restrict%>" | |
27586 | msgstr "uso inválido de %<restrict%>" | |
27587 | @@ -12944,7 +12944,7 @@ | |
27588 | msgid "variable %qD has initializer but incomplete type" | |
27589 | msgstr "la variable %qD tiene inicializador pero de tipo de dato incompleto" | |
27590 | ||
27591 | -#: c-decl.c:4138 cp/decl.c:4430 cp/decl.c:12670 | |
27592 | +#: c-decl.c:4138 cp/decl.c:4430 cp/decl.c:12687 | |
27593 | #, gcc-internal-format | |
27594 | msgid "inline function %q+D given attribute noinline" | |
27595 | msgstr "se le dió a la función incluída en línea %q+D un atributo noinline" | |
27596 | @@ -12954,7 +12954,7 @@ | |
27597 | msgid "uninitialized const member in %qT is invalid in C++" | |
27598 | msgstr "el miembro const sin inicializar en %qT es inválido en C++" | |
27599 | ||
27600 | -#: c-decl.c:4191 cp/init.c:2115 cp/init.c:2130 | |
27601 | +#: c-decl.c:4191 cp/init.c:2117 cp/init.c:2132 | |
27602 | #, gcc-internal-format | |
27603 | msgid "%qD should be initialized" | |
27604 | msgstr "%qD se debe inicializar" | |
27605 | @@ -13852,7 +13852,7 @@ | |
27606 | msgid "argument %qD doesn%'t match prototype" | |
27607 | msgstr "el argumento %qD no coincide con el prototipo" | |
27608 | ||
27609 | -#: c-decl.c:8380 cp/decl.c:13528 | |
27610 | +#: c-decl.c:8380 cp/decl.c:13545 | |
27611 | #, gcc-internal-format | |
27612 | msgid "no return statement in function returning non-void" | |
27613 | msgstr "no hay una declaración de devolución en la función que no devuelve void" | |
27614 | @@ -14055,7 +14055,7 @@ | |
27615 | msgid "unknown type name %qE" | |
27616 | msgstr "nombre de tipo %qE desconocido" | |
27617 | ||
27618 | -#: c-parser.c:1486 c-parser.c:8568 cp/parser.c:27380 | |
27619 | +#: c-parser.c:1486 c-parser.c:8568 cp/parser.c:27375 | |
27620 | #, gcc-internal-format | |
27621 | msgid "expected declaration specifiers" | |
27622 | msgstr "se esperaban especificadores de declaración" | |
27623 | @@ -14065,7 +14065,7 @@ | |
27624 | msgid "expected %<;%>, identifier or %<(%>" | |
27625 | msgstr "se esperaba %<;>, identificador o %<(%>" | |
27626 | ||
27627 | -#: c-parser.c:1529 cp/parser.c:23810 cp/parser.c:23884 | |
27628 | +#: c-parser.c:1529 cp/parser.c:23805 cp/parser.c:23879 | |
27629 | #, gcc-internal-format | |
27630 | msgid "prefix attributes are ignored for methods" | |
27631 | msgstr "se descartan los atributos de prefijo para los métodos" | |
27632 | @@ -14113,7 +14113,7 @@ | |
27633 | msgid "ISO C90 does not support %<_Static_assert%>" | |
27634 | msgstr "ISO C90 no admite %<_Static_assert%>" | |
27635 | ||
27636 | -#: c-parser.c:1862 c-parser.c:3383 c-parser.c:8623 cp/parser.c:27251 | |
27637 | +#: c-parser.c:1862 c-parser.c:3383 c-parser.c:8623 cp/parser.c:27246 | |
27638 | #, gcc-internal-format | |
27639 | msgid "expected string literal" | |
27640 | msgstr "se esperaba una cadena literal" | |
27641 | @@ -14145,8 +14145,8 @@ | |
27642 | #: c-parser.c:7360 c-parser.c:7368 c-parser.c:7397 c-parser.c:7410 | |
27643 | #: c-parser.c:7715 c-parser.c:7839 c-parser.c:8266 c-parser.c:8301 | |
27644 | #: c-parser.c:8354 c-parser.c:8407 c-parser.c:8423 c-parser.c:8469 | |
27645 | -#: c-parser.c:8748 c-parser.c:9823 c-parser.c:10626 cp/parser.c:22271 | |
27646 | -#: cp/parser.c:24654 cp/parser.c:24684 cp/parser.c:24754 cp/parser.c:26971 | |
27647 | +#: c-parser.c:8748 c-parser.c:9823 c-parser.c:10626 cp/parser.c:22266 | |
27648 | +#: cp/parser.c:24649 cp/parser.c:24679 cp/parser.c:24749 cp/parser.c:26966 | |
27649 | #, gcc-internal-format | |
27650 | msgid "expected identifier" | |
27651 | msgstr "se esperaba un identificador" | |
27652 | @@ -14480,77 +14480,77 @@ | |
27653 | msgid "no type or storage class may be specified here," | |
27654 | msgstr "ninguna clase de almacenamiento o tipo se puede especificar aquí," | |
27655 | ||
27656 | -#: c-parser.c:8270 c-parser.c:8327 cp/parser.c:24714 | |
27657 | +#: c-parser.c:8270 c-parser.c:8327 cp/parser.c:24709 | |
27658 | #, gcc-internal-format | |
27659 | msgid "unknown property attribute" | |
27660 | msgstr "atributo de propiedad desconocido" | |
27661 | ||
27662 | -#: c-parser.c:8291 cp/parser.c:24674 | |
27663 | +#: c-parser.c:8291 cp/parser.c:24669 | |
27664 | #, gcc-internal-format | |
27665 | msgid "missing %<=%> (after %<getter%> attribute)" | |
27666 | msgstr "falta un %<=%> (después del atributo %<getter%>)" | |
27667 | ||
27668 | -#: c-parser.c:8294 cp/parser.c:24677 | |
27669 | +#: c-parser.c:8294 cp/parser.c:24672 | |
27670 | #, gcc-internal-format | |
27671 | msgid "missing %<=%> (after %<setter%> attribute)" | |
27672 | msgstr "falta un %<=%> (después del atributo %<setter%>)" | |
27673 | ||
27674 | -#: c-parser.c:8308 cp/parser.c:24692 | |
27675 | +#: c-parser.c:8308 cp/parser.c:24687 | |
27676 | #, gcc-internal-format | |
27677 | msgid "the %<setter%> attribute may only be specified once" | |
27678 | msgstr "el atributo %<setter%> sólo se puede especificar una vez" | |
27679 | ||
27680 | -#: c-parser.c:8313 cp/parser.c:24698 | |
27681 | +#: c-parser.c:8313 cp/parser.c:24693 | |
27682 | #, gcc-internal-format | |
27683 | msgid "setter name must terminate with %<:%>" | |
27684 | msgstr "el nombre del setter debe terminar con %<:%>" | |
27685 | ||
27686 | -#: c-parser.c:8320 cp/parser.c:24706 | |
27687 | +#: c-parser.c:8320 cp/parser.c:24701 | |
27688 | #, gcc-internal-format | |
27689 | msgid "the %<getter%> attribute may only be specified once" | |
27690 | msgstr "el atributo %<getter%> sólo se puede especificar una vez" | |
27691 | ||
27692 | -#: c-parser.c:8506 cp/parser.c:27295 | |
27693 | +#: c-parser.c:8506 cp/parser.c:27290 | |
27694 | #, gcc-internal-format | |
27695 | msgid "%<#pragma omp barrier%> may only be used in compound statements" | |
27696 | msgstr "%<#pragma omp barrier%> sólo se puede usar en declaraciones compuestas" | |
27697 | ||
27698 | -#: c-parser.c:8517 cp/parser.c:27310 | |
27699 | +#: c-parser.c:8517 cp/parser.c:27305 | |
27700 | #, gcc-internal-format | |
27701 | msgid "%<#pragma omp flush%> may only be used in compound statements" | |
27702 | msgstr "%<#pragma omp flush%> sólo se puede usar en declaraciones compuestas" | |
27703 | ||
27704 | -#: c-parser.c:8528 cp/parser.c:27326 | |
27705 | +#: c-parser.c:8528 cp/parser.c:27321 | |
27706 | #, gcc-internal-format | |
27707 | msgid "%<#pragma omp taskwait%> may only be used in compound statements" | |
27708 | msgstr "%<#pragma omp taskwait%> sólo se puede usar en declaraciones compuestas" | |
27709 | ||
27710 | -#: c-parser.c:8539 cp/parser.c:27342 | |
27711 | +#: c-parser.c:8539 cp/parser.c:27337 | |
27712 | #, gcc-internal-format | |
27713 | msgid "%<#pragma omp taskyield%> may only be used in compound statements" | |
27714 | msgstr "%<#pragma omp taskyield%> sólo se puede usar en declaraciones compuestas" | |
27715 | ||
27716 | -#: c-parser.c:8552 cp/parser.c:27370 | |
27717 | +#: c-parser.c:8552 cp/parser.c:27365 | |
27718 | #, gcc-internal-format | |
27719 | msgid "%<#pragma omp section%> may only be used in %<#pragma omp sections%> construct" | |
27720 | msgstr "%<#pragma omp section%> sólo se puede usar en construcciones %<#pragma omp sections%>" | |
27721 | ||
27722 | -#: c-parser.c:8558 cp/parser.c:27285 | |
27723 | +#: c-parser.c:8558 cp/parser.c:27280 | |
27724 | #, gcc-internal-format | |
27725 | msgid "%<#pragma GCC pch_preprocess%> must be first" | |
27726 | msgstr "%<#pragma GCC pch_preprocess%> debe ser primero" | |
27727 | ||
27728 | -#: c-parser.c:8723 cp/parser.c:24962 | |
27729 | +#: c-parser.c:8723 cp/parser.c:24957 | |
27730 | #, gcc-internal-format | |
27731 | msgid "too many %qs clauses" | |
27732 | msgstr "demasiadas cláusulas %qs" | |
27733 | ||
27734 | -#: c-parser.c:8825 cp/parser.c:25077 | |
27735 | +#: c-parser.c:8825 cp/parser.c:25072 | |
27736 | #, gcc-internal-format | |
27737 | msgid "collapse argument needs positive constant integer expression" | |
27738 | msgstr "el argumento de collapse necesita una expresión entera constante positiva" | |
27739 | ||
27740 | -#: c-parser.c:8891 cp/parser.c:25128 | |
27741 | +#: c-parser.c:8891 cp/parser.c:25123 | |
27742 | #, gcc-internal-format | |
27743 | msgid "expected %<none%> or %<shared%>" | |
27744 | msgstr "se esperaba %<none%> o %<shared%>" | |
27745 | @@ -14565,42 +14565,42 @@ | |
27746 | msgid "%<num_threads%> value must be positive" | |
27747 | msgstr "el valor de %<num_threads%> debe ser positivo" | |
27748 | ||
27749 | -#: c-parser.c:9142 cp/parser.c:25347 | |
27750 | +#: c-parser.c:9142 cp/parser.c:25342 | |
27751 | #, gcc-internal-format | |
27752 | msgid "expected %<+%>, %<*%>, %<-%>, %<&%>, %<^%>, %<|%>, %<&&%>, %<||%>, %<min%> or %<max%>" | |
27753 | msgstr "se esperaba %<+%>, %<*%>, %<-%>, %<&%>, %<^%>, %<|%>, %<&&%>, %<||%>, %<min%> o %<max%>" | |
27754 | ||
27755 | -#: c-parser.c:9231 cp/parser.c:25432 | |
27756 | +#: c-parser.c:9231 cp/parser.c:25427 | |
27757 | #, gcc-internal-format | |
27758 | msgid "schedule %<runtime%> does not take a %<chunk_size%> parameter" | |
27759 | msgstr "el calendarizador %<runtime%> no toma un parámetro %<chunk_size%>" | |
27760 | ||
27761 | -#: c-parser.c:9235 cp/parser.c:25435 | |
27762 | +#: c-parser.c:9235 cp/parser.c:25430 | |
27763 | #, gcc-internal-format | |
27764 | msgid "schedule %<auto%> does not take a %<chunk_size%> parameter" | |
27765 | msgstr "el calendarizador %<auto%> no toma un parámetro %<chunk_size%>" | |
27766 | ||
27767 | -#: c-parser.c:9253 cp/parser.c:25451 | |
27768 | +#: c-parser.c:9253 cp/parser.c:25446 | |
27769 | #, gcc-internal-format | |
27770 | msgid "invalid schedule kind" | |
27771 | msgstr "género de calendarizador inválido" | |
27772 | ||
27773 | -#: c-parser.c:9381 cp/parser.c:25583 | |
27774 | +#: c-parser.c:9381 cp/parser.c:25578 | |
27775 | #, gcc-internal-format | |
27776 | msgid "expected %<#pragma omp%> clause" | |
27777 | msgstr "se esperaba una cláusula %<#pragma omp%>" | |
27778 | ||
27779 | -#: c-parser.c:9390 cp/parser.c:25592 | |
27780 | +#: c-parser.c:9390 cp/parser.c:25587 | |
27781 | #, gcc-internal-format | |
27782 | msgid "%qs is not valid for %qs" | |
27783 | msgstr "%qs no es válido para %qs" | |
27784 | ||
27785 | -#: c-parser.c:9682 cp/parser.c:25876 | |
27786 | +#: c-parser.c:9682 cp/parser.c:25871 | |
27787 | #, gcc-internal-format | |
27788 | msgid "invalid form of %<#pragma omp atomic%>" | |
27789 | msgstr "forma inválida de %<#pragma omp atomic%>" | |
27790 | ||
27791 | -#: c-parser.c:9722 c-parser.c:9740 cp/parser.c:25907 cp/parser.c:25924 | |
27792 | +#: c-parser.c:9722 c-parser.c:9740 cp/parser.c:25902 cp/parser.c:25919 | |
27793 | #, gcc-internal-format | |
27794 | msgid "invalid operator for %<#pragma omp atomic%>" | |
27795 | msgstr "operador inválido para %<#pragma omp atomic%>" | |
27796 | @@ -14610,7 +14610,7 @@ | |
27797 | msgid "expected %<(%> or end of line" | |
27798 | msgstr "se esperaba %<(%> o fin de línea" | |
27799 | ||
27800 | -#: c-parser.c:9882 cp/parser.c:26195 | |
27801 | +#: c-parser.c:9882 cp/parser.c:26190 | |
27802 | #, gcc-internal-format | |
27803 | msgid "for statement expected" | |
27804 | msgstr "se esperaba una declaración for" | |
27805 | @@ -14625,12 +14625,12 @@ | |
27806 | msgid "not enough perfectly nested loops" | |
27807 | msgstr "no hay suficientes bucles perfectamente anidados" | |
27808 | ||
27809 | -#: c-parser.c:10069 cp/parser.c:26537 | |
27810 | +#: c-parser.c:10069 cp/parser.c:26532 | |
27811 | #, gcc-internal-format | |
27812 | msgid "collapsed loops not perfectly nested" | |
27813 | msgstr "los bucles colapsados no están perfectamente anidados" | |
27814 | ||
27815 | -#: c-parser.c:10107 cp/parser.c:26380 cp/parser.c:26418 cp/pt.c:12728 | |
27816 | +#: c-parser.c:10107 cp/parser.c:26375 cp/parser.c:26413 cp/pt.c:12754 | |
27817 | #, gcc-internal-format | |
27818 | msgid "iteration variable %qD should not be firstprivate" | |
27819 | msgstr "la variable de iteración %qD no debe ser firstprivate" | |
27820 | @@ -14655,27 +14655,27 @@ | |
27821 | msgid "%<threadprivate%> %qE has incomplete type" | |
27822 | msgstr "%<threadprivate%> %qE tiene tipo incompleto" | |
27823 | ||
27824 | -#: c-parser.c:10773 cp/parser.c:27181 | |
27825 | +#: c-parser.c:10773 cp/parser.c:27176 | |
27826 | #, gcc-internal-format | |
27827 | msgid "%<__transaction_cancel%> without transactional memory support enabled" | |
27828 | msgstr "%<__transaction_cancel%> sin activar el soporte para memoria transaccional" | |
27829 | ||
27830 | -#: c-parser.c:10779 cp/parser.c:27187 | |
27831 | +#: c-parser.c:10779 cp/parser.c:27182 | |
27832 | #, gcc-internal-format | |
27833 | msgid "%<__transaction_cancel%> within a %<__transaction_relaxed%>" | |
27834 | msgstr "%<__transaction_cancel%> dentro de un %<__transaction_relaxed%>" | |
27835 | ||
27836 | -#: c-parser.c:10788 cp/parser.c:27196 | |
27837 | +#: c-parser.c:10788 cp/parser.c:27191 | |
27838 | #, gcc-internal-format | |
27839 | msgid "outer %<__transaction_cancel%> not within outer %<__transaction_atomic%>" | |
27840 | msgstr "%<__transaction_cancel%> más externo no está dentro del %<__transaction_atomic%> más externo" | |
27841 | ||
27842 | -#: c-parser.c:10790 cp/parser.c:27199 | |
27843 | +#: c-parser.c:10790 cp/parser.c:27194 | |
27844 | #, gcc-internal-format | |
27845 | msgid " or a %<transaction_may_cancel_outer%> function" | |
27846 | msgstr " o una función %<transaction_may_cancel_outer%>" | |
27847 | ||
27848 | -#: c-parser.c:10796 cp/parser.c:27205 | |
27849 | +#: c-parser.c:10796 cp/parser.c:27200 | |
27850 | #, gcc-internal-format | |
27851 | msgid "%<__transaction_cancel%> not within %<__transaction_atomic%>" | |
27852 | msgstr "%<__transaction_cancel%> no está dentro de %<__transaction_atomic%>" | |
27853 | @@ -15453,7 +15453,7 @@ | |
27854 | msgid "initialization of a flexible array member" | |
27855 | msgstr "inicialización de un miembro de matriz flexible" | |
27856 | ||
27857 | -#: c-typeck.c:6164 cp/typeck2.c:890 | |
27858 | +#: c-typeck.c:6164 cp/typeck2.c:893 | |
27859 | #, gcc-internal-format | |
27860 | msgid "char-array initialized from wide string" | |
27861 | msgstr "matriz de tipo char inicializada con una cadena ancha" | |
27862 | @@ -15659,223 +15659,223 @@ | |
27863 | msgid "ISO C forbids %<return%> with expression, in function returning void" | |
27864 | msgstr "ISO C prohíbe %<return%> con expresión, en una función que devuelve void" | |
27865 | ||
27866 | -#: c-typeck.c:8825 | |
27867 | +#: c-typeck.c:8831 | |
27868 | #, gcc-internal-format | |
27869 | msgid "function returns address of local variable" | |
27870 | msgstr "la función devuelve la dirección de una variable local" | |
27871 | ||
27872 | -#: c-typeck.c:8898 cp/semantics.c:1045 | |
27873 | +#: c-typeck.c:8904 cp/semantics.c:1045 | |
27874 | #, gcc-internal-format | |
27875 | msgid "switch quantity not an integer" | |
27876 | msgstr "la cantidad de switch no es un entero" | |
27877 | ||
27878 | -#: c-typeck.c:8911 | |
27879 | +#: c-typeck.c:8917 | |
27880 | #, gcc-internal-format | |
27881 | msgid "%<long%> switch expression not converted to %<int%> in ISO C" | |
27882 | msgstr "no se convierte la expresión de switch %<long%> a %<int%> en ISO C" | |
27883 | ||
27884 | -#: c-typeck.c:8947 c-typeck.c:8955 | |
27885 | +#: c-typeck.c:8953 c-typeck.c:8961 | |
27886 | #, gcc-internal-format | |
27887 | msgid "case label is not an integer constant expression" | |
27888 | msgstr "la etiqueta de case no es una expresion constante entera" | |
27889 | ||
27890 | -#: c-typeck.c:8961 cp/parser.c:8827 | |
27891 | +#: c-typeck.c:8967 cp/parser.c:8827 | |
27892 | #, gcc-internal-format | |
27893 | msgid "case label not within a switch statement" | |
27894 | msgstr "la etiqueta case no se encuentra dentro de una declaración switch" | |
27895 | ||
27896 | -#: c-typeck.c:8963 | |
27897 | +#: c-typeck.c:8969 | |
27898 | #, gcc-internal-format | |
27899 | msgid "%<default%> label not within a switch statement" | |
27900 | msgstr "la etiqueta %<default%> no está dentro de una declaración switch" | |
27901 | ||
27902 | -#: c-typeck.c:9046 cp/parser.c:9127 | |
27903 | +#: c-typeck.c:9052 cp/parser.c:9127 | |
27904 | #, gcc-internal-format | |
27905 | msgid "suggest explicit braces to avoid ambiguous %<else%>" | |
27906 | msgstr "se sugieren llaves explícitas para evitar un %<else%> ambiguo" | |
27907 | ||
27908 | -#: c-typeck.c:9155 cp/parser.c:9854 | |
27909 | +#: c-typeck.c:9161 cp/parser.c:9854 | |
27910 | #, gcc-internal-format | |
27911 | msgid "break statement not within loop or switch" | |
27912 | msgstr "la declaración break no está dentro de un bucle o switch" | |
27913 | ||
27914 | -#: c-typeck.c:9157 cp/parser.c:9875 | |
27915 | +#: c-typeck.c:9163 cp/parser.c:9875 | |
27916 | #, gcc-internal-format | |
27917 | msgid "continue statement not within a loop" | |
27918 | msgstr "la declaración continue no está dentro de un bucle" | |
27919 | ||
27920 | -#: c-typeck.c:9162 cp/parser.c:9865 | |
27921 | +#: c-typeck.c:9168 cp/parser.c:9865 | |
27922 | #, gcc-internal-format | |
27923 | msgid "break statement used with OpenMP for loop" | |
27924 | msgstr "se usó la declaración break en un bucle for de OpenMP" | |
27925 | ||
27926 | -#: c-typeck.c:9188 cp/cp-gimplify.c:402 | |
27927 | +#: c-typeck.c:9194 cp/cp-gimplify.c:402 | |
27928 | #, gcc-internal-format | |
27929 | msgid "statement with no effect" | |
27930 | msgstr "declaración sin efecto" | |
27931 | ||
27932 | -#: c-typeck.c:9214 | |
27933 | +#: c-typeck.c:9220 | |
27934 | #, gcc-internal-format | |
27935 | msgid "expression statement has incomplete type" | |
27936 | msgstr "la declaración de la expresión tiene tipo de dato incompleto" | |
27937 | ||
27938 | -#: c-typeck.c:9473 c-typeck.c:9508 c-typeck.c:9522 | |
27939 | +#: c-typeck.c:9479 c-typeck.c:9514 c-typeck.c:9528 | |
27940 | #, gcc-internal-format | |
27941 | msgid "conversion of scalar to vector involves truncation" | |
27942 | msgstr "la conversión de escalar a vector implica truncado" | |
27943 | ||
27944 | -#: c-typeck.c:9950 cp/typeck.c:3939 | |
27945 | +#: c-typeck.c:9956 cp/typeck.c:3939 | |
27946 | #, gcc-internal-format | |
27947 | msgid "right shift count is negative" | |
27948 | msgstr "la cuenta de desplazamiento a la derecha es negativa" | |
27949 | ||
27950 | -#: c-typeck.c:9961 cp/typeck.c:3946 | |
27951 | +#: c-typeck.c:9967 cp/typeck.c:3946 | |
27952 | #, gcc-internal-format | |
27953 | msgid "right shift count >= width of type" | |
27954 | msgstr "cuenta de desplazamiento a la derecha >= anchura del tipo" | |
27955 | ||
27956 | -#: c-typeck.c:10002 cp/typeck.c:3968 | |
27957 | +#: c-typeck.c:10008 cp/typeck.c:3968 | |
27958 | #, gcc-internal-format | |
27959 | msgid "left shift count is negative" | |
27960 | msgstr "la cuenta de desplazamiento a la izquierda es negativa" | |
27961 | ||
27962 | -#: c-typeck.c:10009 cp/typeck.c:3974 | |
27963 | +#: c-typeck.c:10015 cp/typeck.c:3974 | |
27964 | #, gcc-internal-format | |
27965 | msgid "left shift count >= width of type" | |
27966 | msgstr "cuenta de desplazamiento a la izquierda >= anchura del tipo" | |
27967 | ||
27968 | -#: c-typeck.c:10032 c-typeck.c:10169 | |
27969 | +#: c-typeck.c:10038 c-typeck.c:10175 | |
27970 | #, gcc-internal-format | |
27971 | msgid "comparing vectors with different element types" | |
27972 | msgstr "se comparan vectores con tipos de elemento diferentes" | |
27973 | ||
27974 | -#: c-typeck.c:10039 c-typeck.c:10176 | |
27975 | +#: c-typeck.c:10045 c-typeck.c:10182 | |
27976 | #, gcc-internal-format | |
27977 | msgid "comparing vectors with different number of elements" | |
27978 | msgstr "se comparan vectores con números de elementos diferentes" | |
27979 | ||
27980 | -#: c-typeck.c:10055 cp/typeck.c:4020 | |
27981 | +#: c-typeck.c:10061 cp/typeck.c:4020 | |
27982 | #, gcc-internal-format | |
27983 | msgid "comparing floating point with == or != is unsafe" | |
27984 | msgstr "no es segura la comparacion de coma flotante con == o !=" | |
27985 | ||
27986 | -#: c-typeck.c:10072 c-typeck.c:10092 | |
27987 | +#: c-typeck.c:10078 c-typeck.c:10098 | |
27988 | #, gcc-internal-format | |
27989 | msgid "the comparison will always evaluate as %<false%> for the address of %qD will never be NULL" | |
27990 | msgstr "la comparación siempre se evalúa como %<false%> para la dirección de %qD que nunca será NULL" | |
27991 | ||
27992 | -#: c-typeck.c:10078 c-typeck.c:10098 | |
27993 | +#: c-typeck.c:10084 c-typeck.c:10104 | |
27994 | #, gcc-internal-format | |
27995 | msgid "the comparison will always evaluate as %<true%> for the address of %qD will never be NULL" | |
27996 | msgstr "la comparación siempre se evalúa como %<true%> para la dirección de %qD que nunca será NULL" | |
27997 | ||
27998 | -#: c-typeck.c:10119 c-typeck.c:10219 | |
27999 | +#: c-typeck.c:10125 c-typeck.c:10225 | |
28000 | #, gcc-internal-format | |
28001 | msgid "comparison of pointers to disjoint address spaces" | |
28002 | msgstr "la comparación de punteros a espacios de direcciones discontinuos" | |
28003 | ||
28004 | -#: c-typeck.c:10126 c-typeck.c:10132 | |
28005 | +#: c-typeck.c:10132 c-typeck.c:10138 | |
28006 | #, gcc-internal-format | |
28007 | msgid "ISO C forbids comparison of %<void *%> with function pointer" | |
28008 | msgstr "ISO C prohíbe la comparación de %<void *%> con un puntero de función" | |
28009 | ||
28010 | -#: c-typeck.c:10139 c-typeck.c:10229 | |
28011 | +#: c-typeck.c:10145 c-typeck.c:10235 | |
28012 | #, gcc-internal-format | |
28013 | msgid "comparison of distinct pointer types lacks a cast" | |
28014 | msgstr "la comparación de diferentes tipos de puntero carece de una conversión" | |
28015 | ||
28016 | -#: c-typeck.c:10151 c-typeck.c:10156 c-typeck.c:10255 c-typeck.c:10260 | |
28017 | +#: c-typeck.c:10157 c-typeck.c:10162 c-typeck.c:10261 c-typeck.c:10266 | |
28018 | #, gcc-internal-format | |
28019 | msgid "comparison between pointer and integer" | |
28020 | msgstr "comparación entre puntero y entero" | |
28021 | ||
28022 | -#: c-typeck.c:10207 | |
28023 | +#: c-typeck.c:10213 | |
28024 | #, gcc-internal-format | |
28025 | msgid "comparison of complete and incomplete pointers" | |
28026 | msgstr "comparación de punteros completos e incompletos" | |
28027 | ||
28028 | -#: c-typeck.c:10209 | |
28029 | +#: c-typeck.c:10215 | |
28030 | #, gcc-internal-format | |
28031 | msgid "ISO C forbids ordered comparisons of pointers to functions" | |
28032 | msgstr "ISO C prohíbe la comparación entre punteros a funciones" | |
28033 | ||
28034 | -#: c-typeck.c:10214 | |
28035 | +#: c-typeck.c:10220 | |
28036 | #, gcc-internal-format | |
28037 | msgid "ordered comparison of pointer with null pointer" | |
28038 | msgstr "comparación ordenada de puntero con un puntero nulo" | |
28039 | ||
28040 | -#: c-typeck.c:10237 c-typeck.c:10240 c-typeck.c:10247 c-typeck.c:10250 | |
28041 | +#: c-typeck.c:10243 c-typeck.c:10246 c-typeck.c:10253 c-typeck.c:10256 | |
28042 | #: cp/typeck.c:4271 cp/typeck.c:4278 | |
28043 | #, gcc-internal-format | |
28044 | msgid "ordered comparison of pointer with integer zero" | |
28045 | msgstr "comparación ordenada de puntero con el entero cero" | |
28046 | ||
28047 | -#: c-typeck.c:10294 cp/typeck.c:4350 | |
28048 | +#: c-typeck.c:10300 cp/typeck.c:4350 | |
28049 | #, gcc-internal-format | |
28050 | msgid "implicit conversion from %qT to %qT to match other operand of binary expression" | |
28051 | msgstr "conversión implícita de %qT a %qT para coincidir con otro operando de la expresión binaria" | |
28052 | ||
28053 | -#: c-typeck.c:10578 | |
28054 | +#: c-typeck.c:10584 | |
28055 | #, gcc-internal-format | |
28056 | msgid "used array that cannot be converted to pointer where scalar is required" | |
28057 | msgstr "se usa un valor de tipo matriz que no se puede cambiar a puntero cuando se requiere un escalar" | |
28058 | ||
28059 | -#: c-typeck.c:10582 | |
28060 | +#: c-typeck.c:10588 | |
28061 | #, gcc-internal-format | |
28062 | msgid "used struct type value where scalar is required" | |
28063 | msgstr "se usa un valor de tipo struct cuando se requiere un escalar" | |
28064 | ||
28065 | -#: c-typeck.c:10586 | |
28066 | +#: c-typeck.c:10592 | |
28067 | #, gcc-internal-format | |
28068 | msgid "used union type value where scalar is required" | |
28069 | msgstr "se usa un valor de tipo union cuando se requiere un escalar" | |
28070 | ||
28071 | -#: c-typeck.c:10597 | |
28072 | +#: c-typeck.c:10603 | |
28073 | #, gcc-internal-format | |
28074 | msgid "used vector type where scalar is required" | |
28075 | msgstr "se usa un tipo vector cuando se requiere un escalar" | |
28076 | ||
28077 | -#: c-typeck.c:10751 cp/semantics.c:4202 | |
28078 | +#: c-typeck.c:10757 cp/semantics.c:4202 | |
28079 | #, gcc-internal-format | |
28080 | msgid "%qE has invalid type for %<reduction%>" | |
28081 | msgstr "%qE tiene tipo inválido para %<reduction%>" | |
28082 | ||
28083 | -#: c-typeck.c:10788 cp/semantics.c:4217 | |
28084 | +#: c-typeck.c:10794 cp/semantics.c:4217 | |
28085 | #, gcc-internal-format | |
28086 | msgid "%qE has invalid type for %<reduction(%s)%>" | |
28087 | msgstr "%qE tiene tipo inválido para %<reduction(%s)%>" | |
28088 | ||
28089 | -#: c-typeck.c:10805 cp/semantics.c:4227 | |
28090 | +#: c-typeck.c:10811 cp/semantics.c:4227 | |
28091 | #, gcc-internal-format | |
28092 | msgid "%qE must be %<threadprivate%> for %<copyin%>" | |
28093 | msgstr "%qE debe ser %<threadprivate%> para %<copin%>" | |
28094 | ||
28095 | -#: c-typeck.c:10815 cp/semantics.c:3995 | |
28096 | +#: c-typeck.c:10821 cp/semantics.c:3995 | |
28097 | #, gcc-internal-format | |
28098 | msgid "%qE is not a variable in clause %qs" | |
28099 | msgstr "%qE no es una variable en la cláusula %qs" | |
28100 | ||
28101 | -#: c-typeck.c:10823 c-typeck.c:10845 c-typeck.c:10867 | |
28102 | +#: c-typeck.c:10829 c-typeck.c:10851 c-typeck.c:10873 | |
28103 | #, gcc-internal-format | |
28104 | msgid "%qE appears more than once in data clauses" | |
28105 | msgstr "%qE aparece más de una vez en las cláusulas de datos" | |
28106 | ||
28107 | -#: c-typeck.c:10838 cp/semantics.c:4018 | |
28108 | +#: c-typeck.c:10844 cp/semantics.c:4018 | |
28109 | #, gcc-internal-format | |
28110 | msgid "%qE is not a variable in clause %<firstprivate%>" | |
28111 | msgstr "%qE no es una variable en la cláusula %<firstprivate%>" | |
28112 | ||
28113 | -#: c-typeck.c:10860 cp/semantics.c:4040 | |
28114 | +#: c-typeck.c:10866 cp/semantics.c:4040 | |
28115 | #, gcc-internal-format | |
28116 | msgid "%qE is not a variable in clause %<lastprivate%>" | |
28117 | msgstr "%qE no es una variable en la cláusula %<lastprivate%>" | |
28118 | ||
28119 | -#: c-typeck.c:10928 cp/semantics.c:4273 | |
28120 | +#: c-typeck.c:10934 cp/semantics.c:4273 | |
28121 | #, gcc-internal-format | |
28122 | msgid "%qE is predetermined %qs for %qs" | |
28123 | msgstr "%qE está predeterminado como %qs para %qs" | |
28124 | ||
28125 | -#: c-typeck.c:11030 | |
28126 | +#: c-typeck.c:11036 | |
28127 | #, gcc-internal-format | |
28128 | msgid "C++ requires promoted type, not enum type, in %<va_arg%>" | |
28129 | msgstr "C++ requiere un tipo promovido, no un tipo enum, en %<va_arg%>" | |
28130 | @@ -16895,7 +16895,7 @@ | |
28131 | msgid "multiple EH personalities are supported only with assemblers supporting .cfi_personality directive" | |
28132 | msgstr "sólo se admiten múltiples personalidades EH con ensambladores que admiten la directiva cfi.personality" | |
28133 | ||
28134 | -#: dwarf2out.c:10710 | |
28135 | +#: dwarf2out.c:10713 | |
28136 | #, gcc-internal-format, gfc-internal-format | |
28137 | msgid "non-delegitimized UNSPEC %s (%d) found in variable location" | |
28138 | msgstr "se encontró UNSPEC %s (%d) que no está delegitimado la ubicación de variable" | |
28139 | @@ -17015,12 +17015,12 @@ | |
28140 | msgid "local frame unavailable (naked function?)" | |
28141 | msgstr "el marco local no está disponible (¿Función desnuda?)" | |
28142 | ||
28143 | -#: expr.c:9971 | |
28144 | +#: expr.c:9972 | |
28145 | #, gcc-internal-format | |
28146 | msgid "%Kcall to %qs declared with attribute error: %s" | |
28147 | msgstr "%Kla llamada a %qs se redeclaró con error de atributo: %s" | |
28148 | ||
28149 | -#: expr.c:9978 | |
28150 | +#: expr.c:9979 | |
28151 | #, gcc-internal-format | |
28152 | msgid "%Kcall to %qs declared with attribute warning: %s" | |
28153 | msgstr "%Kla llamada a %qs se redecló con aviso de atributo: %s" | |
28154 | @@ -17105,27 +17105,27 @@ | |
28155 | msgid "total size of local objects too large" | |
28156 | msgstr "el tamaño total de los objetos locales es demasiado grande" | |
28157 | ||
28158 | -#: function.c:1732 gimplify.c:5163 | |
28159 | +#: function.c:1732 gimplify.c:5164 | |
28160 | #, gcc-internal-format | |
28161 | msgid "impossible constraint in %<asm%>" | |
28162 | msgstr "restricción imposible en %<asm%>" | |
28163 | ||
28164 | -#: function.c:3959 | |
28165 | +#: function.c:3974 | |
28166 | #, gcc-internal-format | |
28167 | msgid "variable %q+D might be clobbered by %<longjmp%> or %<vfork%>" | |
28168 | msgstr "la variable %q+D puede ser sobreescrita por %<longjmp%> o %<vfork%>" | |
28169 | ||
28170 | -#: function.c:3980 | |
28171 | +#: function.c:3995 | |
28172 | #, gcc-internal-format | |
28173 | msgid "argument %q+D might be clobbered by %<longjmp%> or %<vfork%>" | |
28174 | msgstr "el argumento %q+D puede ser sobreescrito por %<longjmp%> o %<vfork%>" | |
28175 | ||
28176 | -#: function.c:4502 | |
28177 | +#: function.c:4517 | |
28178 | #, gcc-internal-format | |
28179 | msgid "function returns an aggregate" | |
28180 | msgstr "la función devuelve un agregado" | |
28181 | ||
28182 | -#: function.c:4896 | |
28183 | +#: function.c:4911 | |
28184 | #, gcc-internal-format | |
28185 | msgid "unused parameter %q+D" | |
28186 | msgstr "parámetro %q+D sin uso" | |
28187 | @@ -17554,62 +17554,62 @@ | |
28188 | msgid "using result of function returning %<void%>" | |
28189 | msgstr "se usa el resultado de una función que devuelve %<void%>" | |
28190 | ||
28191 | -#: gimplify.c:5048 | |
28192 | +#: gimplify.c:5049 | |
28193 | #, gcc-internal-format, gfc-internal-format | |
28194 | msgid "invalid lvalue in asm output %d" | |
28195 | msgstr "l-valor inválido en la salida asm %d" | |
28196 | ||
28197 | -#: gimplify.c:5164 | |
28198 | +#: gimplify.c:5165 | |
28199 | #, gcc-internal-format, gfc-internal-format | |
28200 | msgid "non-memory input %d must stay in memory" | |
28201 | msgstr "la entrada que no es de memoria %d debe permanecer en memoria" | |
28202 | ||
28203 | -#: gimplify.c:5186 | |
28204 | +#: gimplify.c:5187 | |
28205 | #, gcc-internal-format, gfc-internal-format | |
28206 | msgid "memory input %d is not directly addressable" | |
28207 | msgstr "la entrada de memoria %d no es directamente direccionable" | |
28208 | ||
28209 | -#: gimplify.c:5681 | |
28210 | +#: gimplify.c:5682 | |
28211 | #, gcc-internal-format | |
28212 | msgid "threadprivate variable %qE used in untied task" | |
28213 | msgstr "se usó la variable threadprivate %qE en una tarea sin atar" | |
28214 | ||
28215 | -#: gimplify.c:5683 gimplify.c:5745 | |
28216 | +#: gimplify.c:5684 gimplify.c:5746 | |
28217 | #, gcc-internal-format | |
28218 | msgid "enclosing task" | |
28219 | msgstr "tarea contenedora" | |
28220 | ||
28221 | -#: gimplify.c:5742 | |
28222 | +#: gimplify.c:5743 | |
28223 | #, gcc-internal-format | |
28224 | msgid "%qE not specified in enclosing parallel" | |
28225 | msgstr "no se especificó %qE en el paralelo que lo contiene" | |
28226 | ||
28227 | -#: gimplify.c:5747 | |
28228 | +#: gimplify.c:5748 | |
28229 | #, gcc-internal-format | |
28230 | msgid "enclosing parallel" | |
28231 | msgstr "paralelo contenedor" | |
28232 | ||
28233 | -#: gimplify.c:5852 | |
28234 | +#: gimplify.c:5853 | |
28235 | #, gcc-internal-format | |
28236 | msgid "iteration variable %qE should be private" | |
28237 | msgstr "la variable de iteración %qE debe ser private" | |
28238 | ||
28239 | -#: gimplify.c:5866 | |
28240 | +#: gimplify.c:5867 | |
28241 | #, gcc-internal-format | |
28242 | msgid "iteration variable %qE should not be firstprivate" | |
28243 | msgstr "la variable de iteración %qE no debe ser firstprivate" | |
28244 | ||
28245 | -#: gimplify.c:5869 | |
28246 | +#: gimplify.c:5870 | |
28247 | #, gcc-internal-format | |
28248 | msgid "iteration variable %qE should not be reduction" | |
28249 | msgstr "la variable de iteración %qE no debe ser reduction" | |
28250 | ||
28251 | -#: gimplify.c:6032 | |
28252 | +#: gimplify.c:6033 | |
28253 | #, gcc-internal-format | |
28254 | msgid "%s variable %qE is private in outer context" | |
28255 | msgstr "la variable %s %qE es private en el contexto externo" | |
28256 | ||
28257 | -#: gimplify.c:7794 | |
28258 | +#: gimplify.c:7795 | |
28259 | #, gcc-internal-format | |
28260 | msgid "gimplification failed" | |
28261 | msgstr "falló la gimplificación" | |
28262 | @@ -17813,48 +17813,48 @@ | |
28263 | msgid "function %qD redeclared as variable" | |
28264 | msgstr "la función %qD se redeclaró como variable" | |
28265 | ||
28266 | -#: omp-low.c:1846 | |
28267 | +#: omp-low.c:1847 | |
28268 | #, gcc-internal-format | |
28269 | msgid "barrier region may not be closely nested inside of work-sharing, critical, ordered, master or explicit task region" | |
28270 | msgstr "la región de barrera puede no estar bien anidada dentro de la región de trabajo compartido, crítica, ordenada, maestra o de tarea explícita" | |
28271 | ||
28272 | -#: omp-low.c:1851 | |
28273 | +#: omp-low.c:1853 | |
28274 | #, gcc-internal-format | |
28275 | msgid "work-sharing region may not be closely nested inside of work-sharing, critical, ordered, master or explicit task region" | |
28276 | msgstr "la región de trabajo compartido puede no estar bien anidada dentro de la región de trabajo compartido, crítica, ordenada, maestra o de tarea explícita" | |
28277 | ||
28278 | -#: omp-low.c:1869 | |
28279 | +#: omp-low.c:1872 | |
28280 | #, gcc-internal-format | |
28281 | msgid "master region may not be closely nested inside of work-sharing or explicit task region" | |
28282 | msgstr "la región maestra puede no estar bien anidada dentro de la región de trabajo compartido o de tarea explícita" | |
28283 | ||
28284 | -#: omp-low.c:1884 | |
28285 | +#: omp-low.c:1888 | |
28286 | #, gcc-internal-format | |
28287 | msgid "ordered region may not be closely nested inside of critical or explicit task region" | |
28288 | msgstr "la región ordenada puede no estar bien anidada dentro de la región crítica o de tarea explícita" | |
28289 | ||
28290 | -#: omp-low.c:1890 | |
28291 | +#: omp-low.c:1896 | |
28292 | #, gcc-internal-format | |
28293 | msgid "ordered region must be closely nested inside a loop region with an ordered clause" | |
28294 | msgstr "la región ordenada puede estar bien anidada dentro de una región de bucle con una cláusula ordenada" | |
28295 | ||
28296 | -#: omp-low.c:1905 | |
28297 | +#: omp-low.c:1914 | |
28298 | #, gcc-internal-format | |
28299 | msgid "critical region may not be nested inside a critical region with the same name" | |
28300 | msgstr "la región crítica puede no estar bien anidada dentro de una región crítica con el mismo nombre" | |
28301 | ||
28302 | -#: omp-low.c:7024 cp/decl.c:2885 cp/parser.c:9862 cp/parser.c:9882 | |
28303 | +#: omp-low.c:7034 cp/decl.c:2885 cp/parser.c:9862 cp/parser.c:9882 | |
28304 | #, gcc-internal-format | |
28305 | msgid "invalid exit from OpenMP structured block" | |
28306 | msgstr "salida inválida de un bloque estructurado OpenMP" | |
28307 | ||
28308 | -#: omp-low.c:7026 omp-low.c:7031 | |
28309 | +#: omp-low.c:7036 omp-low.c:7041 | |
28310 | #, gcc-internal-format | |
28311 | msgid "invalid entry to OpenMP structured block" | |
28312 | msgstr "entrada inválida a un bloque estructurado OpenMP" | |
28313 | ||
28314 | #. Otherwise, be vague and lazy, but efficient. | |
28315 | -#: omp-low.c:7034 | |
28316 | +#: omp-low.c:7044 | |
28317 | #, gcc-internal-format | |
28318 | msgid "invalid branch to/from an OpenMP structured block" | |
28319 | msgstr "ramificación inválida desde/para un bloque estructurado OpenMP" | |
28320 | @@ -17950,12 +17950,12 @@ | |
28321 | msgid "section anchors must be disabled when toplevel reorder is disabled" | |
28322 | msgstr "las anclas de seccions se deben desactivar cando el reordenamiento de nivel principal se desactiva" | |
28323 | ||
28324 | -#: opts.c:721 config/darwin.c:3002 config/sh/sh.c:809 | |
28325 | +#: opts.c:721 config/darwin.c:3002 config/sh/sh.c:797 | |
28326 | #, gcc-internal-format | |
28327 | msgid "-freorder-blocks-and-partition does not work with exceptions on this architecture" | |
28328 | msgstr "-freorder-blocks-and-partition no funciona con excepciones en esta arquitectura" | |
28329 | ||
28330 | -#: opts.c:736 config/sh/sh.c:817 | |
28331 | +#: opts.c:736 config/sh/sh.c:805 | |
28332 | #, gcc-internal-format | |
28333 | msgid "-freorder-blocks-and-partition does not support unwind info on this architecture" | |
28334 | msgstr "-freorder-blocks-and-partition no admite información de desenredo en esta arquitectura" | |
28335 | @@ -18325,8 +18325,8 @@ | |
28336 | msgstr "no se puede usar %qs como un registro fijo" | |
28337 | ||
28338 | #: reginfo.c:864 config/ia64/ia64.c:5753 config/ia64/ia64.c:5760 | |
28339 | -#: config/pa/pa.c:427 config/pa/pa.c:434 config/sh/sh.c:8761 | |
28340 | -#: config/sh/sh.c:8768 config/spu/spu.c:5198 config/spu/spu.c:5205 | |
28341 | +#: config/pa/pa.c:427 config/pa/pa.c:434 config/sh/sh.c:8764 | |
28342 | +#: config/sh/sh.c:8771 config/spu/spu.c:5198 config/spu/spu.c:5205 | |
28343 | #, gcc-internal-format, gfc-internal-format | |
28344 | msgid "unknown register name: %s" | |
28345 | msgstr "nombre de registro desconocido: %s" | |
28346 | @@ -18631,7 +18631,7 @@ | |
28347 | msgid "packed attribute is unnecessary" | |
28348 | msgstr "no es necesario el atributo packed" | |
28349 | ||
28350 | -#: stor-layout.c:2244 | |
28351 | +#: stor-layout.c:2252 | |
28352 | #, gcc-internal-format | |
28353 | msgid "alignment of array elements is greater than element size" | |
28354 | msgstr "la alineación de los elementos de la matriz es mayor que el tamaño de los elementos" | |
28355 | @@ -18651,12 +18651,12 @@ | |
28356 | msgid "nested function trampolines not supported on this target" | |
28357 | msgstr "no se admiten trampolines de funciones anidadas para este objetivo" | |
28358 | ||
28359 | -#: targhooks.c:1154 | |
28360 | +#: targhooks.c:1161 | |
28361 | #, gcc-internal-format | |
28362 | msgid "target attribute is not supported on this machine" | |
28363 | msgstr "el atributo target no se admite en esta plataforma" | |
28364 | ||
28365 | -#: targhooks.c:1164 | |
28366 | +#: targhooks.c:1171 | |
28367 | #, gcc-internal-format | |
28368 | msgid "#pragma GCC target is not supported for this machine" | |
28369 | msgstr "No se admite #pragma GCC target en este objetivo" | |
28370 | @@ -18846,7 +18846,7 @@ | |
28371 | msgid "%<transaction_may_cancel_outer%> function call not within outer transaction or %<transaction_may_cancel_outer%>" | |
28372 | msgstr "la llamada a la función %<transaction_may_cancel_outer%> no está en una transacción más externa o %<transaction_may_cancel_outer%>" | |
28373 | ||
28374 | -#: trans-mem.c:664 trans-mem.c:4194 | |
28375 | +#: trans-mem.c:664 trans-mem.c:4192 | |
28376 | #, gcc-internal-format | |
28377 | msgid "unsafe function call %qD within atomic transaction" | |
28378 | msgstr "llamada a función %qD insegura dentro de una transacción atómica" | |
28379 | @@ -18861,7 +18861,7 @@ | |
28380 | msgid "unsafe indirect function call within atomic transaction" | |
28381 | msgstr "llamada a función indirecta insegura dentro de una transacción atómica" | |
28382 | ||
28383 | -#: trans-mem.c:682 trans-mem.c:4127 | |
28384 | +#: trans-mem.c:682 trans-mem.c:4125 | |
28385 | #, gcc-internal-format | |
28386 | msgid "unsafe function call %qD within %<transaction_safe%> function" | |
28387 | msgstr "llamada a función %qD insegura dentro de la función %<transaction_safe%>" | |
28388 | @@ -18876,7 +18876,7 @@ | |
28389 | msgid "unsafe indirect function call within %<transaction_safe%> function" | |
28390 | msgstr "llamada a función indirecta insegura dentro de la función %<transaction_safe%>" | |
28391 | ||
28392 | -#: trans-mem.c:707 trans-mem.c:4166 | |
28393 | +#: trans-mem.c:707 trans-mem.c:4164 | |
28394 | #, gcc-internal-format | |
28395 | msgid "asm not allowed in atomic transaction" | |
28396 | msgstr "no se permite asm en una transacción atómica" | |
28397 | @@ -18911,7 +18911,7 @@ | |
28398 | msgid "outer transaction in %<transaction_safe%> function" | |
28399 | msgstr "transacción más externa en la función %<transaction_safe%>" | |
28400 | ||
28401 | -#: trans-mem.c:3792 | |
28402 | +#: trans-mem.c:3790 | |
28403 | #, gcc-internal-format | |
28404 | msgid "%Kasm not allowed in %<transaction_safe%> function" | |
28405 | msgstr "%Kno se permite asm en una función %<transaction_safe%>" | |
28406 | @@ -19531,117 +19531,117 @@ | |
28407 | msgid "ignoring unknown option %q.*s in %<-fdump-%s%>" | |
28408 | msgstr "se descarta la opción desconocida %q.*s en %<-fdump-%s%>" | |
28409 | ||
28410 | -#: tree-eh.c:4320 | |
28411 | +#: tree-eh.c:4319 | |
28412 | #, gcc-internal-format, gfc-internal-format | |
28413 | msgid "BB %i has multiple EH edges" | |
28414 | msgstr "el BB %i tiene múltiples bordes EH" | |
28415 | ||
28416 | -#: tree-eh.c:4332 | |
28417 | +#: tree-eh.c:4331 | |
28418 | #, gcc-internal-format, gfc-internal-format | |
28419 | msgid "BB %i can not throw but has an EH edge" | |
28420 | msgstr "el BB %i no puede hacer throw pero tiene un borde EH" | |
28421 | ||
28422 | -#: tree-eh.c:4340 | |
28423 | +#: tree-eh.c:4339 | |
28424 | #, gcc-internal-format, gfc-internal-format | |
28425 | msgid "BB %i last statement has incorrectly set lp" | |
28426 | msgstr "la última sentencia del BB %i tiene establecido incorrectamente lp" | |
28427 | ||
28428 | -#: tree-eh.c:4346 | |
28429 | +#: tree-eh.c:4345 | |
28430 | #, gcc-internal-format, gfc-internal-format | |
28431 | msgid "BB %i is missing an EH edge" | |
28432 | msgstr "al BB %i le falta un borde EH" | |
28433 | ||
28434 | -#: tree-eh.c:4352 | |
28435 | +#: tree-eh.c:4351 | |
28436 | #, gcc-internal-format, gfc-internal-format | |
28437 | msgid "Incorrect EH edge %i->%i" | |
28438 | msgstr "Borde EH %i->%i incorrecto" | |
28439 | ||
28440 | -#: tree-eh.c:4386 tree-eh.c:4405 | |
28441 | +#: tree-eh.c:4385 tree-eh.c:4404 | |
28442 | #, gcc-internal-format, gfc-internal-format | |
28443 | msgid "BB %i is missing an edge" | |
28444 | msgstr "al BB %i le falta un borde" | |
28445 | ||
28446 | -#: tree-eh.c:4422 | |
28447 | +#: tree-eh.c:4421 | |
28448 | #, gcc-internal-format, gfc-internal-format | |
28449 | msgid "BB %i too many fallthru edges" | |
28450 | msgstr "BB %i demasiados bordes de respaldo" | |
28451 | ||
28452 | -#: tree-eh.c:4431 | |
28453 | +#: tree-eh.c:4430 | |
28454 | #, gcc-internal-format, gfc-internal-format | |
28455 | msgid "BB %i has incorrect edge" | |
28456 | msgstr "BB %i tiene un borde incorrecto" | |
28457 | ||
28458 | -#: tree-eh.c:4437 | |
28459 | +#: tree-eh.c:4436 | |
28460 | #, gcc-internal-format, gfc-internal-format | |
28461 | msgid "BB %i has incorrect fallthru edge" | |
28462 | msgstr "BB %i tiene un borde de respaldo incorrecto" | |
28463 | ||
28464 | -#: tree-inline.c:3040 | |
28465 | +#: tree-inline.c:3041 | |
28466 | #, gcc-internal-format | |
28467 | msgid "function %q+F can never be copied because it receives a non-local goto" | |
28468 | msgstr "la función %q+F nunca se puede copiar porque recibe un goto que no es local" | |
28469 | ||
28470 | -#: tree-inline.c:3054 | |
28471 | +#: tree-inline.c:3055 | |
28472 | #, gcc-internal-format | |
28473 | msgid "function %q+F can never be copied because it saves address of local label in a static variable" | |
28474 | msgstr "la función %q+F nunca se puede copiar porque guarda direcciones de etiqueta local en una variable estática" | |
28475 | ||
28476 | -#: tree-inline.c:3094 | |
28477 | +#: tree-inline.c:3095 | |
28478 | #, gcc-internal-format | |
28479 | msgid "function %q+F can never be inlined because it uses alloca (override using the always_inline attribute)" | |
28480 | msgstr "la función %q+F nunca se puede incluir en línea porque usa alloca (forzar usando el atributo always_inline)" | |
28481 | ||
28482 | -#: tree-inline.c:3108 | |
28483 | +#: tree-inline.c:3109 | |
28484 | #, gcc-internal-format | |
28485 | msgid "function %q+F can never be inlined because it uses setjmp" | |
28486 | msgstr "la función %q+F nunca se puede incluir en línea porque usa setjmp" | |
28487 | ||
28488 | -#: tree-inline.c:3122 | |
28489 | +#: tree-inline.c:3123 | |
28490 | #, gcc-internal-format | |
28491 | msgid "function %q+F can never be inlined because it uses variable argument lists" | |
28492 | msgstr "la función %q+F nunca se puede incluir en línea porque usa listas variables de argumentos" | |
28493 | ||
28494 | -#: tree-inline.c:3134 | |
28495 | +#: tree-inline.c:3135 | |
28496 | #, gcc-internal-format | |
28497 | msgid "function %q+F can never be inlined because it uses setjmp-longjmp exception handling" | |
28498 | msgstr "la función %q+F nunca se puede incluir en línea porque usa manejo de excepciones setjmp-longjmp" | |
28499 | ||
28500 | -#: tree-inline.c:3142 | |
28501 | +#: tree-inline.c:3143 | |
28502 | #, gcc-internal-format | |
28503 | msgid "function %q+F can never be inlined because it uses non-local goto" | |
28504 | msgstr "la función %q+F nunca se puede incluir en línea porque contiene un goto que no es local" | |
28505 | ||
28506 | -#: tree-inline.c:3154 | |
28507 | +#: tree-inline.c:3155 | |
28508 | #, gcc-internal-format | |
28509 | msgid "function %q+F can never be inlined because it uses __builtin_return or __builtin_apply_args" | |
28510 | msgstr "la función %q+F nunca se puede incluir en línea porque usa __builtin_return o __builtin_apply_args" | |
28511 | ||
28512 | -#: tree-inline.c:3174 | |
28513 | +#: tree-inline.c:3175 | |
28514 | #, gcc-internal-format | |
28515 | msgid "function %q+F can never be inlined because it contains a computed goto" | |
28516 | msgstr "la función %q+F nunca se puede incluir en línea porque contiene un goto calculado" | |
28517 | ||
28518 | -#: tree-inline.c:3254 | |
28519 | +#: tree-inline.c:3255 | |
28520 | #, gcc-internal-format | |
28521 | msgid "function %q+F can never be inlined because it is suppressed using -fno-inline" | |
28522 | msgstr "la función %q+F nunca puede ser incluída en línea porque se suprime al usar -fno-inline" | |
28523 | ||
28524 | -#: tree-inline.c:3262 | |
28525 | +#: tree-inline.c:3263 | |
28526 | #, gcc-internal-format | |
28527 | msgid "function %q+F can never be inlined because it uses attributes conflicting with inlining" | |
28528 | msgstr "la función %q+F nunca puede ser incluída en línea porque utiliza atributos que generan conflictos con la inclusión en línea" | |
28529 | ||
28530 | -#: tree-inline.c:3843 | |
28531 | +#: tree-inline.c:3844 | |
28532 | #, gcc-internal-format | |
28533 | msgid "inlining failed in call to always_inline %q+F: %s" | |
28534 | msgstr "falló la inclusión en línea en la llamada a always_inline %q+F: %s" | |
28535 | ||
28536 | -#: tree-inline.c:3845 tree-inline.c:3860 | |
28537 | +#: tree-inline.c:3846 tree-inline.c:3861 | |
28538 | #, gcc-internal-format | |
28539 | msgid "called from here" | |
28540 | msgstr "llamado desde aquí" | |
28541 | ||
28542 | -#: tree-inline.c:3858 | |
28543 | +#: tree-inline.c:3859 | |
28544 | #, gcc-internal-format | |
28545 | msgid "inlining failed in call to %q+F: %s" | |
28546 | msgstr "falló la inclusión en línea en la llamada a %q+F: %s" | |
28547 | @@ -19677,7 +19677,7 @@ | |
28548 | msgstr "el tamaño del valor de devolución de %q+D es más grande que %wd bytes" | |
28549 | ||
28550 | #: tree-outof-ssa.c:784 tree-outof-ssa.c:841 tree-ssa-coalesce.c:951 | |
28551 | -#: tree-ssa-coalesce.c:966 tree-ssa-coalesce.c:1188 tree-ssa-live.c:1340 | |
28552 | +#: tree-ssa-coalesce.c:966 tree-ssa-coalesce.c:1188 tree-ssa-live.c:1337 | |
28553 | #, gcc-internal-format | |
28554 | msgid "SSA corruption" | |
28555 | msgstr "corrupción de SSA" | |
28556 | @@ -19917,72 +19917,72 @@ | |
28557 | msgid "vector shuffling operation will be expanded piecewise" | |
28558 | msgstr "la operación de ordenamiento vectorial se expandirá por piezas" | |
28559 | ||
28560 | -#: tree-vrp.c:5300 | |
28561 | +#: tree-vrp.c:5272 | |
28562 | #, gcc-internal-format | |
28563 | msgid "array subscript is outside array bounds" | |
28564 | msgstr "el subíndice de la matriz está fuera de los límites de la matriz" | |
28565 | ||
28566 | -#: tree-vrp.c:5312 tree-vrp.c:5399 | |
28567 | +#: tree-vrp.c:5284 tree-vrp.c:5371 | |
28568 | #, gcc-internal-format | |
28569 | msgid "array subscript is above array bounds" | |
28570 | msgstr "el subíndice de la matriz está por arriba de los límites de la matriz" | |
28571 | ||
28572 | -#: tree-vrp.c:5319 tree-vrp.c:5387 | |
28573 | +#: tree-vrp.c:5291 tree-vrp.c:5359 | |
28574 | #, gcc-internal-format | |
28575 | msgid "array subscript is below array bounds" | |
28576 | msgstr "el subíndice de la matriz está por debajo de los límites de la matriz" | |
28577 | ||
28578 | -#: tree-vrp.c:6028 | |
28579 | +#: tree-vrp.c:6000 | |
28580 | #, gcc-internal-format | |
28581 | msgid "assuming signed overflow does not occur when simplifying conditional to constant" | |
28582 | msgstr "se asume que el desbordamiento con signo no sucede al simplificar el condicional a constante" | |
28583 | ||
28584 | -#: tree-vrp.c:6034 | |
28585 | +#: tree-vrp.c:6006 | |
28586 | #, gcc-internal-format | |
28587 | msgid "assuming signed overflow does not occur when simplifying conditional" | |
28588 | msgstr "se asume que el desbordamiento con signo no sucede al simplificar el condicional" | |
28589 | ||
28590 | -#: tree-vrp.c:6078 | |
28591 | +#: tree-vrp.c:6050 | |
28592 | #, gcc-internal-format | |
28593 | msgid "comparison always false due to limited range of data type" | |
28594 | msgstr "la comparación siempre es falsa debido al rango limitado del tipo de datos" | |
28595 | ||
28596 | -#: tree-vrp.c:6080 | |
28597 | +#: tree-vrp.c:6052 | |
28598 | #, gcc-internal-format | |
28599 | msgid "comparison always true due to limited range of data type" | |
28600 | msgstr "la comparación siempre es verdadera debido al rango limitado del tipo de datos" | |
28601 | ||
28602 | -#: tree-vrp.c:6871 | |
28603 | +#: tree-vrp.c:6847 | |
28604 | #, gcc-internal-format | |
28605 | msgid "assuming signed overflow does not occur when simplifying %</%> or %<%%%> to %<>>%> or %<&%>" | |
28606 | msgstr "se asume que el desbordamiento con signo no sucede al simplificar %</%> o %<%%%> a %<>>%> o %<&%>" | |
28607 | ||
28608 | -#: tree-vrp.c:6953 | |
28609 | +#: tree-vrp.c:6929 | |
28610 | #, gcc-internal-format | |
28611 | msgid "assuming signed overflow does not occur when simplifying %<abs (X)%> to %<X%> or %<-X%>" | |
28612 | msgstr "se asume que el desbordamiento con signo no sucede al simplificar %<abs (X)%> a %<X%> o %<-X%>" | |
28613 | ||
28614 | -#: tree.c:4235 | |
28615 | +#: tree.c:4236 | |
28616 | #, gcc-internal-format | |
28617 | msgid "ignoring attributes applied to %qT after definition" | |
28618 | msgstr "se descartan los atributos aplicados al %qT después de la definición" | |
28619 | ||
28620 | -#: tree.c:5460 | |
28621 | +#: tree.c:5475 | |
28622 | #, gcc-internal-format | |
28623 | msgid "%q+D already declared with dllexport attribute: dllimport ignored" | |
28624 | msgstr "%q+D se declaró anteriormente con el atributo dllimport: se descarta dllimport" | |
28625 | ||
28626 | -#: tree.c:5472 | |
28627 | +#: tree.c:5487 | |
28628 | #, gcc-internal-format | |
28629 | msgid "%q+D redeclared without dllimport attribute after being referenced with dll linkage" | |
28630 | msgstr "%q+D se redeclara sin el atributo dllimport después de ser referenciado con enlace dllimport" | |
28631 | ||
28632 | -#: tree.c:5487 | |
28633 | +#: tree.c:5502 | |
28634 | #, gcc-internal-format | |
28635 | msgid "%q+D redeclared without dllimport attribute: previous dllimport ignored" | |
28636 | msgstr "%q+D se redeclara sin el atributo dllimport: se descarta el dllimport previo" | |
28637 | ||
28638 | -#: tree.c:5530 tree.c:5542 tree.c:5552 c-family/c-common.c:5865 | |
28639 | +#: tree.c:5545 tree.c:5557 tree.c:5567 c-family/c-common.c:5865 | |
28640 | #: c-family/c-common.c:5884 c-family/c-common.c:5902 c-family/c-common.c:5930 | |
28641 | #: c-family/c-common.c:5957 c-family/c-common.c:5983 c-family/c-common.c:6002 | |
28642 | #: c-family/c-common.c:6019 c-family/c-common.c:6043 c-family/c-common.c:6066 | |
28643 | @@ -19996,141 +19996,141 @@ | |
28644 | #: c-family/c-common.c:7523 c-family/c-common.c:7544 c-family/c-common.c:7656 | |
28645 | #: c-family/c-common.c:7680 c-family/c-common.c:7971 c-family/c-common.c:7994 | |
28646 | #: c-family/c-common.c:8033 c-family/c-common.c:8111 c-family/c-common.c:8260 | |
28647 | -#: config/darwin.c:1942 config/arm/arm.c:5007 config/arm/arm.c:5035 | |
28648 | -#: config/arm/arm.c:5052 config/avr/avr.c:6763 config/h8300/h8300.c:5418 | |
28649 | -#: config/h8300/h8300.c:5442 config/i386/i386.c:4939 config/i386/i386.c:31897 | |
28650 | -#: config/ia64/ia64.c:734 config/rs6000/rs6000.c:24321 config/spu/spu.c:4035 | |
28651 | -#: ada/gcc-interface/utils.c:5505 lto/lto-lang.c:215 | |
28652 | +#: config/darwin.c:1942 config/arm/arm.c:5011 config/arm/arm.c:5039 | |
28653 | +#: config/arm/arm.c:5056 config/avr/avr.c:6773 config/h8300/h8300.c:5418 | |
28654 | +#: config/h8300/h8300.c:5442 config/i386/i386.c:4946 config/i386/i386.c:32027 | |
28655 | +#: config/ia64/ia64.c:734 config/rs6000/rs6000.c:24344 config/spu/spu.c:4035 | |
28656 | +#: ada/gcc-interface/utils.c:5496 lto/lto-lang.c:215 | |
28657 | #, gcc-internal-format | |
28658 | msgid "%qE attribute ignored" | |
28659 | msgstr "se descarta el atributo %qE" | |
28660 | ||
28661 | -#: tree.c:5570 | |
28662 | +#: tree.c:5585 | |
28663 | #, gcc-internal-format | |
28664 | msgid "inline function %q+D declared as dllimport: attribute ignored" | |
28665 | msgstr "la función inline %q+D se declara como dllimport: se descarta el atributo" | |
28666 | ||
28667 | -#: tree.c:5578 | |
28668 | +#: tree.c:5593 | |
28669 | #, gcc-internal-format | |
28670 | msgid "function %q+D definition is marked dllimport" | |
28671 | msgstr "la definición de la función %q+D se marca como dllimport" | |
28672 | ||
28673 | -#: tree.c:5586 | |
28674 | +#: tree.c:5601 | |
28675 | #, gcc-internal-format | |
28676 | msgid "variable %q+D definition is marked dllimport" | |
28677 | msgstr "la definición de la variable %q+D se marca como dllimport" | |
28678 | ||
28679 | -#: tree.c:5614 | |
28680 | +#: tree.c:5629 | |
28681 | #, gcc-internal-format | |
28682 | msgid "external linkage required for symbol %q+D because of %qE attribute" | |
28683 | msgstr "se requiere enlace externo para el símbolo %q+D debido al atributo %qE" | |
28684 | ||
28685 | -#: tree.c:5628 | |
28686 | +#: tree.c:5643 | |
28687 | #, gcc-internal-format | |
28688 | msgid "%qE implies default visibility, but %qD has already been declared with a different visibility" | |
28689 | msgstr "%qE implica visibilidad por defecto, pero %qD ya se había declarado con una visibilidad diferente" | |
28690 | ||
28691 | -#: tree.c:7378 | |
28692 | +#: tree.c:7394 | |
28693 | #, gcc-internal-format | |
28694 | msgid "arrays of functions are not meaningful" | |
28695 | msgstr "las matrices de funciones no tienen significado" | |
28696 | ||
28697 | -#: tree.c:7545 | |
28698 | +#: tree.c:7561 | |
28699 | #, gcc-internal-format | |
28700 | msgid "function return type cannot be function" | |
28701 | msgstr "el tipo de devolución de función no puede ser función" | |
28702 | ||
28703 | -#: tree.c:8844 tree.c:8929 tree.c:8990 | |
28704 | +#: tree.c:8860 tree.c:8945 tree.c:9006 | |
28705 | #, gcc-internal-format, gfc-internal-format | |
28706 | msgid "tree check: %s, have %s in %s, at %s:%d" | |
28707 | msgstr "revisión de árbol: %s, se tiene %s en %s, en %s:%d" | |
28708 | ||
28709 | -#: tree.c:8881 | |
28710 | +#: tree.c:8897 | |
28711 | #, gcc-internal-format, gfc-internal-format | |
28712 | msgid "tree check: expected none of %s, have %s in %s, at %s:%d" | |
28713 | msgstr "revisión de árbol: no se esperaba ninguno de %s, se tiene %s en %s, en %s:%d" | |
28714 | ||
28715 | -#: tree.c:8894 | |
28716 | +#: tree.c:8910 | |
28717 | #, gcc-internal-format | |
28718 | msgid "tree check: expected class %qs, have %qs (%s) in %s, at %s:%d" | |
28719 | msgstr "revisión de árbol: se esperaba la clase %qs, se tiene %qs (%s) en %s, en %s:%d" | |
28720 | ||
28721 | -#: tree.c:8943 | |
28722 | +#: tree.c:8959 | |
28723 | #, gcc-internal-format | |
28724 | msgid "tree check: did not expect class %qs, have %qs (%s) in %s, at %s:%d" | |
28725 | msgstr "revisión de árbol: no se esperaba la clase %qs, se tiene %qs (%s) en %s, en %s:%d" | |
28726 | ||
28727 | -#: tree.c:8956 | |
28728 | +#: tree.c:8972 | |
28729 | #, gcc-internal-format, gfc-internal-format | |
28730 | msgid "tree check: expected omp_clause %s, have %s in %s, at %s:%d" | |
28731 | msgstr "revisión de árbol: se esperaba omp_clause %s, se tiene %s en %s, en %s:%d" | |
28732 | ||
28733 | -#: tree.c:9016 | |
28734 | +#: tree.c:9032 | |
28735 | #, gcc-internal-format | |
28736 | msgid "tree check: expected tree that contains %qs structure, have %qs in %s, at %s:%d" | |
28737 | msgstr "revisión de árbol: se esperaba un árbol que contenga la estructura %qs, se tiene %qs en %s, en %s:%d" | |
28738 | ||
28739 | -#: tree.c:9030 | |
28740 | +#: tree.c:9046 | |
28741 | #, gcc-internal-format, gfc-internal-format | |
28742 | msgid "tree check: accessed elt %d of tree_vec with %d elts in %s, at %s:%d" | |
28743 | msgstr "revisión de árbol: acceso de elt %d de tree_vec con %d elts en %s, en %s:%d" | |
28744 | ||
28745 | -#: tree.c:9043 | |
28746 | +#: tree.c:9059 | |
28747 | #, gcc-internal-format, gfc-internal-format | |
28748 | msgid "tree check: accessed operand %d of %s with %d operands in %s, at %s:%d" | |
28749 | msgstr "revisión de árbol: acceso del operando %d de %s con %d operandos en %s, en %s:%d" | |
28750 | ||
28751 | -#: tree.c:9056 | |
28752 | +#: tree.c:9072 | |
28753 | #, gcc-internal-format, gfc-internal-format | |
28754 | msgid "tree check: accessed operand %d of omp_clause %s with %d operands in %s, at %s:%d" | |
28755 | msgstr "revisión de árbol: acceso del operando %d de omp_clause %s con %d operandos en %s, en %s:%d" | |
28756 | ||
28757 | -#: tree.c:11340 | |
28758 | +#: tree.c:11356 | |
28759 | #, gcc-internal-format | |
28760 | msgid "%qD is deprecated (declared at %s:%d): %s" | |
28761 | msgstr "%qD es obsoleto (declarado en %s:%d): %s" | |
28762 | ||
28763 | -#: tree.c:11344 | |
28764 | +#: tree.c:11360 | |
28765 | #, gcc-internal-format | |
28766 | msgid "%qD is deprecated (declared at %s:%d)" | |
28767 | msgstr "%qD es obsoleto (declarado en %s:%d)" | |
28768 | ||
28769 | -#: tree.c:11369 | |
28770 | +#: tree.c:11385 | |
28771 | #, gcc-internal-format | |
28772 | msgid "%qE is deprecated (declared at %s:%d): %s" | |
28773 | msgstr "%qE es obsoleto (declarado en %s:%d): %s" | |
28774 | ||
28775 | -#: tree.c:11373 | |
28776 | +#: tree.c:11389 | |
28777 | #, gcc-internal-format | |
28778 | msgid "%qE is deprecated (declared at %s:%d)" | |
28779 | msgstr "%qE es obsoleto (declarado en %s:%d)" | |
28780 | ||
28781 | -#: tree.c:11380 | |
28782 | +#: tree.c:11396 | |
28783 | #, gcc-internal-format, gfc-internal-format | |
28784 | msgid "type is deprecated (declared at %s:%d): %s" | |
28785 | msgstr "el tipo es obsoleto (declarado en %s:%d): %s" | |
28786 | ||
28787 | -#: tree.c:11384 | |
28788 | +#: tree.c:11400 | |
28789 | #, gcc-internal-format, gfc-internal-format | |
28790 | msgid "type is deprecated (declared at %s:%d)" | |
28791 | msgstr "el tipo es obsoleto (declarado en %s:%d)" | |
28792 | ||
28793 | -#: tree.c:11393 | |
28794 | +#: tree.c:11409 | |
28795 | #, gcc-internal-format | |
28796 | msgid "%qE is deprecated: %s" | |
28797 | msgstr "%qE es obsoleto: %s" | |
28798 | ||
28799 | -#: tree.c:11396 | |
28800 | +#: tree.c:11412 | |
28801 | #, gcc-internal-format | |
28802 | msgid "%qE is deprecated" | |
28803 | msgstr "%qE es obsoleto" | |
28804 | ||
28805 | -#: tree.c:11401 | |
28806 | +#: tree.c:11417 | |
28807 | #, gcc-internal-format, gfc-internal-format | |
28808 | msgid "type is deprecated: %s" | |
28809 | msgstr "el tipo es obsoleto: %s" | |
28810 | ||
28811 | -#: tree.c:11404 | |
28812 | +#: tree.c:11420 | |
28813 | #, gcc-internal-format | |
28814 | msgid "type is deprecated" | |
28815 | msgstr "el tipo es obsoleto" | |
28816 | @@ -20346,12 +20346,12 @@ | |
28817 | msgid "no sclass for %s stab (0x%x)" | |
28818 | msgstr "no hay sclass para el stab %s (0x%x)" | |
28819 | ||
28820 | -#: lto-streamer.h:962 | |
28821 | +#: lto-streamer.h:975 | |
28822 | #, gcc-internal-format, gfc-internal-format | |
28823 | msgid "bytecode stream: expected tag %s instead of %s" | |
28824 | msgstr "flujo de bytecode: se esperaba la etiqueta %s en lugar de %s" | |
28825 | ||
28826 | -#: lto-streamer.h:972 | |
28827 | +#: lto-streamer.h:985 | |
28828 | #, gcc-internal-format, gfc-internal-format | |
28829 | msgid "bytecode stream: tag %s is not in the expected range [%s, %s]" | |
28830 | msgstr "flujo de bytecode: la etiqueta %s no está en el rango esperado [%s, %s]" | |
28831 | @@ -20366,8 +20366,8 @@ | |
28832 | msgid "string length %qd is greater than the length %qd ISO C%d compilers are required to support" | |
28833 | msgstr "la longitud de la cadena %qd es mayor que la longitud %qd, la máxima que los compiladores ISO C%d deben admitir" | |
28834 | ||
28835 | -#: c-family/c-common.c:1494 c-family/c-common.c:1506 cp/semantics.c:6646 | |
28836 | -#: cp/semantics.c:8030 | |
28837 | +#: c-family/c-common.c:1494 c-family/c-common.c:1506 cp/semantics.c:6677 | |
28838 | +#: cp/semantics.c:8071 | |
28839 | #, gcc-internal-format | |
28840 | msgid "overflow in constant expression" | |
28841 | msgstr "desbordamiento en la expresión constante" | |
28842 | @@ -20995,40 +20995,40 @@ | |
28843 | msgid "invalid vector type for attribute %qE" | |
28844 | msgstr "tipo de vector inválido para el atributo %qE" | |
28845 | ||
28846 | -#: c-family/c-common.c:7720 ada/gcc-interface/utils.c:5623 | |
28847 | -#: ada/gcc-interface/utils.c:5717 | |
28848 | +#: c-family/c-common.c:7720 ada/gcc-interface/utils.c:5614 | |
28849 | +#: ada/gcc-interface/utils.c:5708 | |
28850 | #, gcc-internal-format | |
28851 | msgid "vector size not an integral multiple of component size" | |
28852 | msgstr "el tamaño del vector no es un múltiplo integral del tamaño del componente" | |
28853 | ||
28854 | -#: c-family/c-common.c:7726 ada/gcc-interface/utils.c:5629 | |
28855 | -#: ada/gcc-interface/utils.c:5723 | |
28856 | +#: c-family/c-common.c:7726 ada/gcc-interface/utils.c:5620 | |
28857 | +#: ada/gcc-interface/utils.c:5714 | |
28858 | #, gcc-internal-format | |
28859 | msgid "zero vector size" | |
28860 | msgstr "vector de tamaño cero" | |
28861 | ||
28862 | -#: c-family/c-common.c:7734 ada/gcc-interface/utils.c:5637 | |
28863 | -#: ada/gcc-interface/utils.c:5730 | |
28864 | +#: c-family/c-common.c:7734 ada/gcc-interface/utils.c:5628 | |
28865 | +#: ada/gcc-interface/utils.c:5721 | |
28866 | #, gcc-internal-format | |
28867 | msgid "number of components of the vector not a power of two" | |
28868 | msgstr "el número de componentes del vector no es una potencia de dos" | |
28869 | ||
28870 | -#: c-family/c-common.c:7762 ada/gcc-interface/utils.c:5364 | |
28871 | +#: c-family/c-common.c:7762 ada/gcc-interface/utils.c:5355 | |
28872 | #, gcc-internal-format | |
28873 | msgid "nonnull attribute without arguments on a non-prototype" | |
28874 | msgstr "un atributo que no es nulo sin argumento es un atributo que no es prototipo" | |
28875 | ||
28876 | -#: c-family/c-common.c:7776 ada/gcc-interface/utils.c:5378 | |
28877 | +#: c-family/c-common.c:7776 ada/gcc-interface/utils.c:5369 | |
28878 | #, gcc-internal-format, gfc-internal-format | |
28879 | msgid "nonnull argument has invalid operand number (argument %lu)" | |
28880 | msgstr "un argumento que no es nulo tiene un número de operando inválido (argumento %lu)" | |
28881 | ||
28882 | -#: c-family/c-common.c:7798 ada/gcc-interface/utils.c:5400 | |
28883 | +#: c-family/c-common.c:7798 ada/gcc-interface/utils.c:5391 | |
28884 | #, gcc-internal-format, gfc-internal-format | |
28885 | msgid "nonnull argument with out-of-range operand number (argument %lu, operand %lu)" | |
28886 | msgstr "un argumento que no es nulo con número de operando fuera de rango (argumento %lu, operando %lu)" | |
28887 | ||
28888 | -#: c-family/c-common.c:7806 ada/gcc-interface/utils.c:5409 | |
28889 | +#: c-family/c-common.c:7806 ada/gcc-interface/utils.c:5400 | |
28890 | #, gcc-internal-format, gfc-internal-format | |
28891 | msgid "nonnull argument references non-pointer operand (argument %lu, operand %lu)" | |
28892 | msgstr "un argumento que no es nulo hace referencia a un operando que no es puntero (argumento %lu, operando %lu)" | |
28893 | @@ -21068,12 +21068,12 @@ | |
28894 | msgid "%qE attribute only applies to variadic functions" | |
28895 | msgstr "el atributo %qE se aplica solamente a funciones variadic" | |
28896 | ||
28897 | -#: c-family/c-common.c:8069 ada/gcc-interface/utils.c:5451 | |
28898 | +#: c-family/c-common.c:8069 ada/gcc-interface/utils.c:5442 | |
28899 | #, gcc-internal-format | |
28900 | msgid "requested position is not an integer constant" | |
28901 | msgstr "la posición solicitada no es una constante entera" | |
28902 | ||
28903 | -#: c-family/c-common.c:8077 ada/gcc-interface/utils.c:5458 | |
28904 | +#: c-family/c-common.c:8077 ada/gcc-interface/utils.c:5449 | |
28905 | #, gcc-internal-format | |
28906 | msgid "requested position is less than zero" | |
28907 | msgstr "la posición solicitada es menor a cero" | |
28908 | @@ -22824,229 +22824,229 @@ | |
28909 | msgstr "valor %qs erróneo para -mmemory-latency" | |
28910 | ||
28911 | #: config/alpha/alpha.c:6576 config/alpha/alpha.c:6579 config/s390/s390.c:9162 | |
28912 | -#: config/s390/s390.c:9165 config/tilegx/tilegx.c:3394 | |
28913 | +#: config/s390/s390.c:9165 config/tilegx/tilegx.c:3395 | |
28914 | #: config/tilepro/tilepro.c:3098 | |
28915 | #, gcc-internal-format | |
28916 | msgid "bad builtin fcode" | |
28917 | msgstr "fcode interno erróneo" | |
28918 | ||
28919 | -#: config/arm/arm.c:1512 | |
28920 | +#: config/arm/arm.c:1516 | |
28921 | #, gcc-internal-format, gfc-internal-format | |
28922 | msgid "switch -mcpu=%s conflicts with -march=%s switch" | |
28923 | msgstr "la opción -mcpu=%s genera un conflicto con la opción -march=%s" | |
28924 | ||
28925 | -#: config/arm/arm.c:1629 | |
28926 | +#: config/arm/arm.c:1633 | |
28927 | #, gcc-internal-format | |
28928 | msgid "target CPU does not support ARM mode" | |
28929 | msgstr "el CPU objetivo no tiene soporte para el modo ARM" | |
28930 | ||
28931 | -#: config/arm/arm.c:1635 | |
28932 | +#: config/arm/arm.c:1639 | |
28933 | #, gcc-internal-format | |
28934 | msgid "target CPU does not support interworking" | |
28935 | msgstr "el CPU objetivo no admite trabajo interno" | |
28936 | ||
28937 | -#: config/arm/arm.c:1641 | |
28938 | +#: config/arm/arm.c:1645 | |
28939 | #, gcc-internal-format | |
28940 | msgid "target CPU does not support THUMB instructions" | |
28941 | msgstr "el CPU objetivo no admite las instrucciones THUMB" | |
28942 | ||
28943 | -#: config/arm/arm.c:1659 | |
28944 | +#: config/arm/arm.c:1663 | |
28945 | #, gcc-internal-format | |
28946 | msgid "enabling backtrace support is only meaningful when compiling for the Thumb" | |
28947 | msgstr "habilitar el soporte de rastreo hacia atrás sólo tiene significado cuando se compila para el Thumb" | |
28948 | ||
28949 | -#: config/arm/arm.c:1662 | |
28950 | +#: config/arm/arm.c:1666 | |
28951 | #, gcc-internal-format | |
28952 | msgid "enabling callee interworking support is only meaningful when compiling for the Thumb" | |
28953 | msgstr "habilitar el soporte de trabajo interno de llamado sólo tiene significado cuando se compila para el Thumb" | |
28954 | ||
28955 | -#: config/arm/arm.c:1666 | |
28956 | +#: config/arm/arm.c:1670 | |
28957 | #, gcc-internal-format | |
28958 | msgid "-mapcs-stack-check incompatible with -mno-apcs-frame" | |
28959 | msgstr "-mapcs-stack-check es incompatible con -mno-apcs-frame" | |
28960 | ||
28961 | -#: config/arm/arm.c:1674 | |
28962 | +#: config/arm/arm.c:1678 | |
28963 | #, gcc-internal-format | |
28964 | msgid "-fpic and -mapcs-reent are incompatible" | |
28965 | msgstr "-fpic y -mapcs-reent son incompatibles" | |
28966 | ||
28967 | -#: config/arm/arm.c:1677 | |
28968 | +#: config/arm/arm.c:1681 | |
28969 | #, gcc-internal-format | |
28970 | msgid "APCS reentrant code not supported. Ignored" | |
28971 | msgstr "no se admite el código reentrante APCS. Descartado" | |
28972 | ||
28973 | -#: config/arm/arm.c:1685 | |
28974 | +#: config/arm/arm.c:1689 | |
28975 | #, gcc-internal-format | |
28976 | msgid "-g with -mno-apcs-frame may not give sensible debugging" | |
28977 | msgstr "-g con -mno-apcs-frame no permite una depuración sensible" | |
28978 | ||
28979 | -#: config/arm/arm.c:1688 | |
28980 | +#: config/arm/arm.c:1692 | |
28981 | #, gcc-internal-format | |
28982 | msgid "passing floating point arguments in fp regs not yet supported" | |
28983 | msgstr "aún no se admite el paso de argumentos de coma flotante en registros fp" | |
28984 | ||
28985 | -#: config/arm/arm.c:1691 | |
28986 | +#: config/arm/arm.c:1695 | |
28987 | #, gcc-internal-format | |
28988 | msgid "%<mwords-little-endian%> is deprecated and will be removed in a future release" | |
28989 | msgstr "%<mwords-little-endian%> es obsoleto y se eliminará en una versión futura" | |
28990 | ||
28991 | -#: config/arm/arm.c:1753 | |
28992 | +#: config/arm/arm.c:1757 | |
28993 | #, gcc-internal-format | |
28994 | msgid "iwmmxt requires an AAPCS compatible ABI for proper operation" | |
28995 | msgstr "iwmmxt requiere una ABI compatible con AAPCS para una operación adecuada" | |
28996 | ||
28997 | -#: config/arm/arm.c:1756 | |
28998 | +#: config/arm/arm.c:1760 | |
28999 | #, gcc-internal-format | |
29000 | msgid "iwmmxt abi requires an iwmmxt capable cpu" | |
29001 | msgstr "el abi iwmmxt requiere un cpu capaz de iwmmxt" | |
29002 | ||
29003 | -#: config/arm/arm.c:1804 | |
29004 | +#: config/arm/arm.c:1808 | |
29005 | #, gcc-internal-format | |
29006 | msgid "FPA is unsupported in the AAPCS" | |
29007 | msgstr "no se admite FPA en el AAPCS" | |
29008 | ||
29009 | -#: config/arm/arm.c:1809 | |
29010 | +#: config/arm/arm.c:1813 | |
29011 | #, gcc-internal-format | |
29012 | msgid "AAPCS does not support -mcaller-super-interworking" | |
29013 | msgstr "AAPCS no admite -mcaller-super-interworking" | |
29014 | ||
29015 | -#: config/arm/arm.c:1812 | |
29016 | +#: config/arm/arm.c:1816 | |
29017 | #, gcc-internal-format | |
29018 | msgid "AAPCS does not support -mcallee-super-interworking" | |
29019 | msgstr "AAPCS no admite -mcallee-super-interworking" | |
29020 | ||
29021 | -#: config/arm/arm.c:1819 | |
29022 | +#: config/arm/arm.c:1823 | |
29023 | #, gcc-internal-format | |
29024 | msgid "iWMMXt and hardware floating point" | |
29025 | msgstr "coma flotante iWMMXt y de hardware" | |
29026 | ||
29027 | -#: config/arm/arm.c:1823 | |
29028 | +#: config/arm/arm.c:1827 | |
29029 | #, gcc-internal-format | |
29030 | msgid "Thumb-2 iWMMXt" | |
29031 | msgstr "iWMMXt de Thumb-2" | |
29032 | ||
29033 | -#: config/arm/arm.c:1827 | |
29034 | +#: config/arm/arm.c:1831 | |
29035 | #, gcc-internal-format | |
29036 | msgid "__fp16 and no ldrh" | |
29037 | msgstr "__fp16 sin ldrh" | |
29038 | ||
29039 | -#: config/arm/arm.c:1847 | |
29040 | +#: config/arm/arm.c:1851 | |
29041 | #, gcc-internal-format | |
29042 | msgid "-mfloat-abi=hard and VFP" | |
29043 | msgstr "-mfloat-abi=hard y VFP" | |
29044 | ||
29045 | -#: config/arm/arm.c:1872 | |
29046 | +#: config/arm/arm.c:1876 | |
29047 | #, gcc-internal-format | |
29048 | msgid "can not use -mtp=cp15 with 16-bit Thumb" | |
29049 | msgstr "no se puede usar -mtp=cp15 con Thumb de 16-bit" | |
29050 | ||
29051 | -#: config/arm/arm.c:1888 | |
29052 | +#: config/arm/arm.c:1892 | |
29053 | #, gcc-internal-format | |
29054 | msgid "structure size boundary can only be set to 8, 32 or 64" | |
29055 | msgstr "el límite del tamaño de la estructura sólo se puede establecer a 8, 32 o 64" | |
29056 | ||
29057 | -#: config/arm/arm.c:1890 | |
29058 | +#: config/arm/arm.c:1894 | |
29059 | #, gcc-internal-format | |
29060 | msgid "structure size boundary can only be set to 8 or 32" | |
29061 | msgstr "el límite del tamaño de la estructura sólo se puede establecer a 8 o 32" | |
29062 | ||
29063 | -#: config/arm/arm.c:1898 | |
29064 | +#: config/arm/arm.c:1902 | |
29065 | #, gcc-internal-format | |
29066 | msgid "RTP PIC is incompatible with Thumb" | |
29067 | msgstr "El PIC de RTP es incompatible con Thumb" | |
29068 | ||
29069 | -#: config/arm/arm.c:1907 | |
29070 | +#: config/arm/arm.c:1911 | |
29071 | #, gcc-internal-format | |
29072 | msgid "RTP PIC is incompatible with -msingle-pic-base" | |
29073 | msgstr "El PIC de RTP es incompatible con -msingle-pic-base" | |
29074 | ||
29075 | -#: config/arm/arm.c:1919 | |
29076 | +#: config/arm/arm.c:1923 | |
29077 | #, gcc-internal-format | |
29078 | msgid "-mpic-register= is useless without -fpic" | |
29079 | msgstr "-mpic-register= es inútil sin -fpic" | |
29080 | ||
29081 | -#: config/arm/arm.c:1928 | |
29082 | +#: config/arm/arm.c:1932 | |
29083 | #, gcc-internal-format, gfc-internal-format | |
29084 | msgid "unable to use '%s' for PIC register" | |
29085 | msgstr "no se puede usar '%s' para registro PIC" | |
29086 | ||
29087 | -#: config/arm/arm.c:1960 | |
29088 | +#: config/arm/arm.c:1964 | |
29089 | #, gcc-internal-format | |
29090 | msgid "target CPU does not support unaligned accesses" | |
29091 | msgstr "el CPU objetivo no admite accesos sin alinear" | |
29092 | ||
29093 | -#: config/arm/arm.c:1984 | |
29094 | +#: config/arm/arm.c:1988 | |
29095 | #, gcc-internal-format | |
29096 | msgid "-freorder-blocks-and-partition not supported on this architecture" | |
29097 | msgstr "no se admite -freorder-blocks-and-partition en esta arquitectura" | |
29098 | ||
29099 | -#: config/arm/arm.c:4036 | |
29100 | +#: config/arm/arm.c:4040 | |
29101 | #, gcc-internal-format | |
29102 | msgid "non-AAPCS derived PCS variant" | |
29103 | msgstr "variante PCS derivada de un no AAPCS" | |
29104 | ||
29105 | -#: config/arm/arm.c:4038 | |
29106 | +#: config/arm/arm.c:4042 | |
29107 | #, gcc-internal-format | |
29108 | msgid "variadic functions must use the base AAPCS variant" | |
29109 | msgstr "las funciones variadic debe usar la variante AAPCS base" | |
29110 | ||
29111 | -#: config/arm/arm.c:4057 | |
29112 | +#: config/arm/arm.c:4061 | |
29113 | #, gcc-internal-format | |
29114 | msgid "PCS variant" | |
29115 | msgstr "variante PCS" | |
29116 | ||
29117 | -#: config/arm/arm.c:4252 | |
29118 | +#: config/arm/arm.c:4256 | |
29119 | #, gcc-internal-format | |
29120 | msgid "Thumb-1 hard-float VFP ABI" | |
29121 | msgstr "ABI de VFP de coma flotante dura de Thumb-1" | |
29122 | ||
29123 | -#: config/arm/arm.c:4975 config/arm/arm.c:4993 config/avr/avr.c:6783 | |
29124 | -#: config/avr/avr.c:6799 config/bfin/bfin.c:4636 config/bfin/bfin.c:4697 | |
29125 | -#: config/bfin/bfin.c:4726 config/h8300/h8300.c:5394 config/i386/i386.c:4894 | |
29126 | -#: config/i386/i386.c:31799 config/i386/i386.c:31850 config/i386/i386.c:31922 | |
29127 | +#: config/arm/arm.c:4979 config/arm/arm.c:4997 config/avr/avr.c:6793 | |
29128 | +#: config/avr/avr.c:6809 config/bfin/bfin.c:4636 config/bfin/bfin.c:4697 | |
29129 | +#: config/bfin/bfin.c:4726 config/h8300/h8300.c:5394 config/i386/i386.c:4901 | |
29130 | +#: config/i386/i386.c:31929 config/i386/i386.c:31980 config/i386/i386.c:32052 | |
29131 | #: config/m68k/m68k.c:725 config/mcore/mcore.c:3076 config/mep/mep.c:4011 | |
29132 | #: config/mep/mep.c:4025 config/mep/mep.c:4099 config/rl78/rl78.c:478 | |
29133 | -#: config/rs6000/rs6000.c:24247 config/rx/rx.c:2502 config/sh/sh.c:8902 | |
29134 | -#: config/sh/sh.c:8920 config/sh/sh.c:8949 config/sh/sh.c:9031 | |
29135 | -#: config/sh/sh.c:9054 config/spu/spu.c:3977 config/stormy16/stormy16.c:2200 | |
29136 | +#: config/rs6000/rs6000.c:24270 config/rx/rx.c:2502 config/sh/sh.c:8905 | |
29137 | +#: config/sh/sh.c:8923 config/sh/sh.c:8952 config/sh/sh.c:9034 | |
29138 | +#: config/sh/sh.c:9057 config/spu/spu.c:3977 config/stormy16/stormy16.c:2200 | |
29139 | #: config/v850/v850.c:2057 | |
29140 | #, gcc-internal-format | |
29141 | msgid "%qE attribute only applies to functions" | |
29142 | msgstr "el atributo %qE se aplica solamente a funciones" | |
29143 | ||
29144 | -#: config/arm/arm.c:18928 | |
29145 | +#: config/arm/arm.c:18932 | |
29146 | #, gcc-internal-format | |
29147 | msgid "unable to compute real location of stacked parameter" | |
29148 | msgstr "no se puede calcular la ubicación real del parámetro apilado" | |
29149 | ||
29150 | -#: config/arm/arm.c:20667 | |
29151 | +#: config/arm/arm.c:20679 | |
29152 | #, gcc-internal-format | |
29153 | msgid "argument must be a constant" | |
29154 | msgstr "el argumento debe ser una constante" | |
29155 | ||
29156 | #. @@@ better error message | |
29157 | -#: config/arm/arm.c:21036 config/arm/arm.c:21073 | |
29158 | +#: config/arm/arm.c:21049 config/arm/arm.c:21086 | |
29159 | #, gcc-internal-format | |
29160 | msgid "selector must be an immediate" | |
29161 | msgstr "el selector debe ser un inmediato" | |
29162 | ||
29163 | #. @@@ better error message | |
29164 | -#: config/arm/arm.c:21116 | |
29165 | +#: config/arm/arm.c:21129 | |
29166 | #, gcc-internal-format | |
29167 | msgid "mask must be an immediate" | |
29168 | msgstr "la máscara debe ser un inmediato" | |
29169 | ||
29170 | -#: config/arm/arm.c:21900 | |
29171 | +#: config/arm/arm.c:21913 | |
29172 | #, gcc-internal-format | |
29173 | msgid "no low registers available for popping high registers" | |
29174 | msgstr "no hay registros inferiores disponibles para extraer registros superiores" | |
29175 | ||
29176 | -#: config/arm/arm.c:22125 | |
29177 | +#: config/arm/arm.c:22138 | |
29178 | #, gcc-internal-format | |
29179 | msgid "interrupt Service Routines cannot be coded in Thumb mode" | |
29180 | msgstr "no se pueden codificar las Rutinas de Servicios de Interrupción en el modo Thumb" | |
29181 | ||
29182 | -#: config/arm/arm.c:24411 | |
29183 | +#: config/arm/arm.c:24424 | |
29184 | #, gcc-internal-format | |
29185 | msgid "the mangling of %<va_list%> has changed in GCC 4.4" | |
29186 | msgstr "la decodificación de %<va_list%> cambió en GCC 4.4" | |
29187 | @@ -23086,87 +23086,87 @@ | |
29188 | msgid "%qs appears to be a misspelled %s handler" | |
29189 | msgstr "%qs parece ser un manejador %s mal escrito" | |
29190 | ||
29191 | -#: config/avr/avr.c:733 | |
29192 | +#: config/avr/avr.c:743 | |
29193 | #, gcc-internal-format | |
29194 | msgid "'builtin_return_address' contains only 2 bytes of address" | |
29195 | msgstr "'builtin_return_address' sólo contiene 2 bytes de dirección" | |
29196 | ||
29197 | -#: config/avr/avr.c:1886 | |
29198 | +#: config/avr/avr.c:1896 | |
29199 | #, gcc-internal-format | |
29200 | msgid "pointer offset from symbol maybe incorrect" | |
29201 | msgstr "el desplazamiento del puntero desde el símbolo tal vez es incorrecto" | |
29202 | ||
29203 | -#: config/avr/avr.c:2009 | |
29204 | +#: config/avr/avr.c:2019 | |
29205 | #, gcc-internal-format | |
29206 | msgid "accessing data memory with program memory address" | |
29207 | msgstr "se accede a memoria de datos con dirección de memoria de programa" | |
29208 | ||
29209 | -#: config/avr/avr.c:2058 | |
29210 | +#: config/avr/avr.c:2068 | |
29211 | #, gcc-internal-format | |
29212 | msgid "accessing program memory with data memory address" | |
29213 | msgstr "se accede a memoria de programa con dirección de memoria de datos" | |
29214 | ||
29215 | -#: config/avr/avr.c:2464 | |
29216 | +#: config/avr/avr.c:2474 | |
29217 | #, gcc-internal-format, gfc-internal-format | |
29218 | msgid "fixed register %s used to pass parameter to function" | |
29219 | msgstr "se usó el registro fijo %s para pasar un parámetro a la función" | |
29220 | ||
29221 | -#: config/avr/avr.c:2586 | |
29222 | +#: config/avr/avr.c:2596 | |
29223 | #, gcc-internal-format | |
29224 | msgid "writing to address space %qs not supported" | |
29225 | msgstr "no se admite escribir al espacio de direcciones %qs" | |
29226 | ||
29227 | -#: config/avr/avr.c:6977 | |
29228 | +#: config/avr/avr.c:6987 | |
29229 | #, gcc-internal-format | |
29230 | msgid "%qT uses address space %qs beyond flash of %qs" | |
29231 | msgstr "%qT usa el espacio de direcciones %qs más allá del destello de %qs" | |
29232 | ||
29233 | -#: config/avr/avr.c:6980 | |
29234 | +#: config/avr/avr.c:6990 | |
29235 | #, gcc-internal-format | |
29236 | msgid "%s %q+D uses address space %qs beyond flash of %qs" | |
29237 | msgstr "%s %q+D usa el espacio de direcciones %qs más allá del destello de %qs" | |
29238 | ||
29239 | -#: config/avr/avr.c:6987 | |
29240 | +#: config/avr/avr.c:6997 | |
29241 | #, gcc-internal-format | |
29242 | msgid "pointer targeting address space %qs must be const in %qT" | |
29243 | msgstr "el espacio de direcciones %qs que apuntan a punteros debe ser const en %qT" | |
29244 | ||
29245 | -#: config/avr/avr.c:6990 | |
29246 | +#: config/avr/avr.c:7000 | |
29247 | #, gcc-internal-format | |
29248 | msgid "pointer targeting address space %qs must be const in %s %q+D" | |
29249 | msgstr "el espacio de direcciones %qs que apuntan a punteros debe ser const en %s %q+D" | |
29250 | ||
29251 | -#: config/avr/avr.c:7028 | |
29252 | +#: config/avr/avr.c:7038 | |
29253 | #, gcc-internal-format | |
29254 | msgid "variable %q+D located in address space %qs beyond flash of %qs" | |
29255 | msgstr "la variable %q+D se ubica en el espacio de direcciones %qs más allá del destello de %qs" | |
29256 | ||
29257 | -#: config/avr/avr.c:7044 | |
29258 | +#: config/avr/avr.c:7054 | |
29259 | #, gcc-internal-format | |
29260 | msgid "variable %q+D must be const in order to be put into read-only section by means of %qs" | |
29261 | msgstr "la variable %q+D debe ser const para que se ponga en la sección de sólo lectura a través de %qs" | |
29262 | ||
29263 | -#: config/avr/avr.c:7258 | |
29264 | +#: config/avr/avr.c:7268 | |
29265 | #, gcc-internal-format | |
29266 | msgid "only uninitialized variables can be placed in the .noinit section" | |
29267 | msgstr "Sólo las variables sin inicializar se pueden colocar en la sección .noinit" | |
29268 | ||
29269 | -#: config/avr/avr.c:7299 | |
29270 | +#: config/avr/avr.c:7309 | |
29271 | #, gcc-internal-format | |
29272 | msgid "uninitialized variable %q+D put into program memory area" | |
29273 | msgstr "se colocó la variable %q+D sin inicializar en el área de memoria del programa" | |
29274 | ||
29275 | -#: config/avr/avr.c:7366 | |
29276 | +#: config/avr/avr.c:7376 | |
29277 | #, gcc-internal-format | |
29278 | msgid "MCU %qs supported for assembler only" | |
29279 | msgstr "MCU %qs sólo se admite para ensamblador" | |
29280 | ||
29281 | -#: config/avr/avr.c:10628 | |
29282 | +#: config/avr/avr.c:10660 | |
29283 | #, gcc-internal-format, gfc-internal-format | |
29284 | msgid "%s expects a compile time integer constant" | |
29285 | msgstr "%s expera una constante entera en tiempo de compilación" | |
29286 | ||
29287 | -#: config/avr/avr.c:10642 | |
29288 | +#: config/avr/avr.c:10674 | |
29289 | #, gcc-internal-format, gfc-internal-format | |
29290 | msgid "%s expects a compile time long integer constant as first argument" | |
29291 | msgstr "%s espera una constante entera long en tiempo de compilación como primer argumento" | |
29292 | @@ -23506,411 +23506,411 @@ | |
29293 | msgid "can%'t set position in PCH file: %m" | |
29294 | msgstr "no se puede establecer la posición en el fichero PCH: %m" | |
29295 | ||
29296 | -#: config/i386/i386.c:3130 config/i386/i386.c:3434 | |
29297 | +#: config/i386/i386.c:3135 config/i386/i386.c:3441 | |
29298 | #, gcc-internal-format, gfc-internal-format | |
29299 | msgid "bad value (%s) for %stune=%s %s" | |
29300 | msgstr "valor erróneo (%s) para %stune=%s %s" | |
29301 | ||
29302 | -#: config/i386/i386.c:3133 | |
29303 | +#: config/i386/i386.c:3138 | |
29304 | #, gcc-internal-format, gfc-internal-format | |
29305 | msgid "%stune=x86-64%s is deprecated; use %stune=k8%s or %stune=generic%s instead as appropriate" | |
29306 | msgstr "%stune=x86-64%s es obsoleto; use en su lugar %stune=k8%s o %stune=generic%s como sea adecuado" | |
29307 | ||
29308 | #. rep; movq isn't available in 32-bit code. | |
29309 | -#: config/i386/i386.c:3163 | |
29310 | +#: config/i386/i386.c:3168 | |
29311 | #, gcc-internal-format | |
29312 | msgid "-mstringop-strategy=rep_8byte not supported for 32-bit code" | |
29313 | msgstr "no se admite -mstringop-stategy=rep_8byte para código de 32-bit" | |
29314 | ||
29315 | -#: config/i386/i386.c:3184 config/i386/i386.c:3193 config/i386/i386.c:3205 | |
29316 | -#: config/i386/i386.c:3216 config/i386/i386.c:3227 | |
29317 | +#: config/i386/i386.c:3189 config/i386/i386.c:3198 config/i386/i386.c:3210 | |
29318 | +#: config/i386/i386.c:3221 config/i386/i386.c:3232 | |
29319 | #, gcc-internal-format | |
29320 | msgid "code model %qs not supported in the %s bit mode" | |
29321 | msgstr "el modelo de código %qs no se admite en el modo de bit %s" | |
29322 | ||
29323 | -#: config/i386/i386.c:3196 config/i386/i386.c:3208 | |
29324 | +#: config/i386/i386.c:3201 config/i386/i386.c:3213 | |
29325 | #, gcc-internal-format | |
29326 | msgid "code model %qs not supported in x32 mode" | |
29327 | msgstr "el modelo de código %qs no se admite en modo x32" | |
29328 | ||
29329 | -#: config/i386/i386.c:3214 config/i386/i386.c:3223 | |
29330 | +#: config/i386/i386.c:3219 config/i386/i386.c:3228 | |
29331 | #, gcc-internal-format, gfc-internal-format | |
29332 | msgid "code model %s does not support PIC mode" | |
29333 | msgstr "el modelo de código %s no admite el modo PIC" | |
29334 | ||
29335 | -#: config/i386/i386.c:3250 | |
29336 | +#: config/i386/i386.c:3255 | |
29337 | #, gcc-internal-format | |
29338 | msgid "-masm=intel not supported in this configuration" | |
29339 | msgstr "no se admite -masm=intel en esta configuración" | |
29340 | ||
29341 | -#: config/i386/i386.c:3254 | |
29342 | +#: config/i386/i386.c:3259 | |
29343 | #, gcc-internal-format, gfc-internal-format | |
29344 | msgid "%i-bit mode not compiled in" | |
29345 | msgstr "no está compilado el modo bit-%i" | |
29346 | ||
29347 | -#: config/i386/i386.c:3266 config/i386/i386.c:3396 | |
29348 | +#: config/i386/i386.c:3271 config/i386/i386.c:3403 | |
29349 | #, gcc-internal-format | |
29350 | msgid "CPU you selected does not support x86-64 instruction set" | |
29351 | msgstr "el CPU que seleccionó no admite el conjunto de instrucciones x86-64" | |
29352 | ||
29353 | -#: config/i386/i386.c:3366 | |
29354 | +#: config/i386/i386.c:3373 | |
29355 | #, gcc-internal-format, gfc-internal-format | |
29356 | msgid "generic CPU can be used only for %stune=%s %s" | |
29357 | msgstr "el CPU generic sólo se puede usar para %stune=%s %s" | |
29358 | ||
29359 | -#: config/i386/i386.c:3369 | |
29360 | +#: config/i386/i386.c:3376 | |
29361 | #, gcc-internal-format, gfc-internal-format | |
29362 | msgid "bad value (%s) for %sarch=%s %s" | |
29363 | msgstr "valor erróneo (%s) para %sarch=%s %s" | |
29364 | ||
29365 | -#: config/i386/i386.c:3482 | |
29366 | +#: config/i386/i386.c:3489 | |
29367 | #, gcc-internal-format | |
29368 | msgid "-mregparm is ignored in 64-bit mode" | |
29369 | msgstr "se descarta -mregparm en modo de 64-bit" | |
29370 | ||
29371 | -#: config/i386/i386.c:3485 | |
29372 | +#: config/i386/i386.c:3492 | |
29373 | #, gcc-internal-format, gfc-internal-format | |
29374 | msgid "-mregparm=%d is not between 0 and %d" | |
29375 | msgstr "-mregparm=%d no está entre 0 y %d" | |
29376 | ||
29377 | -#: config/i386/i386.c:3526 | |
29378 | +#: config/i386/i386.c:3533 | |
29379 | #, gcc-internal-format, gfc-internal-format | |
29380 | msgid "%srtd%s is ignored in 64bit mode" | |
29381 | msgstr "se descarta %srtd%s en el modo de 64bit" | |
29382 | ||
29383 | -#: config/i386/i386.c:3590 | |
29384 | +#: config/i386/i386.c:3597 | |
29385 | #, gcc-internal-format | |
29386 | msgid "-mpreferred-stack-boundary is not supported for this target" | |
29387 | msgstr "no se admite -mpreferred-stack-boundary en este objetivo" | |
29388 | ||
29389 | -#: config/i386/i386.c:3593 | |
29390 | +#: config/i386/i386.c:3600 | |
29391 | #, gcc-internal-format, gfc-internal-format | |
29392 | msgid "-mpreferred-stack-boundary=%d is not between %d and %d" | |
29393 | msgstr "-mpreferred-stack-boundary=%d no está entre %d y %d" | |
29394 | ||
29395 | -#: config/i386/i386.c:3614 | |
29396 | +#: config/i386/i386.c:3621 | |
29397 | #, gcc-internal-format, gfc-internal-format | |
29398 | msgid "-mincoming-stack-boundary=%d is not between %d and 12" | |
29399 | msgstr "-mincoming-stack-boundary=%d no está entre %d y 12" | |
29400 | ||
29401 | -#: config/i386/i386.c:3628 | |
29402 | +#: config/i386/i386.c:3635 | |
29403 | #, gcc-internal-format, gfc-internal-format | |
29404 | msgid "%ssseregparm%s used without SSE enabled" | |
29405 | msgstr "se usó %ssseregparm%s sin SSE activado" | |
29406 | ||
29407 | -#: config/i386/i386.c:3636 | |
29408 | +#: config/i386/i386.c:3643 | |
29409 | #, gcc-internal-format | |
29410 | msgid "SSE instruction set disabled, using 387 arithmetics" | |
29411 | msgstr "el conjunto de instrucciones SSE está desactivado, usando la aritmética 387" | |
29412 | ||
29413 | -#: config/i386/i386.c:3641 | |
29414 | +#: config/i386/i386.c:3648 | |
29415 | #, gcc-internal-format | |
29416 | msgid "387 instruction set disabled, using SSE arithmetics" | |
29417 | msgstr "el conjunto de instrucciones 387 está desactivado, usando la aritmética SSE" | |
29418 | ||
29419 | -#: config/i386/i386.c:3685 | |
29420 | +#: config/i386/i386.c:3692 | |
29421 | #, gcc-internal-format, gfc-internal-format | |
29422 | msgid "unwind tables currently require either a frame pointer or %saccumulate-outgoing-args%s for correctness" | |
29423 | msgstr "actualmente las tablas de desenredo requieren un puntero de marco o %saccumulate-outgoing-args%s para ser correctas" | |
29424 | ||
29425 | -#: config/i386/i386.c:3698 | |
29426 | +#: config/i386/i386.c:3705 | |
29427 | #, gcc-internal-format, gfc-internal-format | |
29428 | msgid "stack probing requires %saccumulate-outgoing-args%s for correctness" | |
29429 | msgstr "actualmente la prueba de pila requiere un puntero de marco o %saccumulate-outgoing-args%s para ser correctas" | |
29430 | ||
29431 | -#: config/i386/i386.c:3779 | |
29432 | +#: config/i386/i386.c:3786 | |
29433 | #, gcc-internal-format | |
29434 | msgid "-mfentry isn%'t supported for 32-bit in combination with -fpic" | |
29435 | msgstr "-mfentry no se admite para 32-bit en combinación con -fpic" | |
29436 | ||
29437 | -#: config/i386/i386.c:3786 | |
29438 | +#: config/i386/i386.c:3793 | |
29439 | #, gcc-internal-format | |
29440 | msgid "-mno-fentry isn%'t compatible with SEH" | |
29441 | msgstr "-mno-fentry no es compatible con SEH" | |
29442 | ||
29443 | -#: config/i386/i386.c:3856 config/rs6000/rs6000.c:3331 | |
29444 | +#: config/i386/i386.c:3863 config/rs6000/rs6000.c:3330 | |
29445 | #, gcc-internal-format, gfc-internal-format | |
29446 | msgid "unknown option for -mrecip=%s" | |
29447 | msgstr "opción desconocida para -mrecip=%s" | |
29448 | ||
29449 | -#: config/i386/i386.c:4271 config/i386/i386.c:4318 | |
29450 | +#: config/i386/i386.c:4278 config/i386/i386.c:4325 | |
29451 | #, gcc-internal-format, gfc-internal-format | |
29452 | msgid "attribute(target(\"%s\")) is unknown" | |
29453 | msgstr "se desconoce attribute(target(\"%s\"))" | |
29454 | ||
29455 | -#: config/i386/i386.c:4299 | |
29456 | +#: config/i386/i386.c:4306 | |
29457 | #, gcc-internal-format, gfc-internal-format | |
29458 | msgid "option(\"%s\") was already specified" | |
29459 | msgstr "ya se había especificado option(\"%s\")" | |
29460 | ||
29461 | -#: config/i386/i386.c:4907 config/i386/i386.c:4958 | |
29462 | +#: config/i386/i386.c:4914 config/i386/i386.c:4965 | |
29463 | #, gcc-internal-format | |
29464 | msgid "fastcall and regparm attributes are not compatible" | |
29465 | msgstr "los atributos fastcall y regparm no son compatibles" | |
29466 | ||
29467 | -#: config/i386/i386.c:4912 | |
29468 | +#: config/i386/i386.c:4919 | |
29469 | #, gcc-internal-format | |
29470 | msgid "regparam and thiscall attributes are not compatible" | |
29471 | msgstr "los atributos regparam y thiscall no son compatibles" | |
29472 | ||
29473 | -#: config/i386/i386.c:4919 config/i386/i386.c:31819 | |
29474 | +#: config/i386/i386.c:4926 config/i386/i386.c:31949 | |
29475 | #, gcc-internal-format | |
29476 | msgid "%qE attribute requires an integer constant argument" | |
29477 | msgstr "el atributo %qE requiere un argumento constante entero" | |
29478 | ||
29479 | -#: config/i386/i386.c:4925 | |
29480 | +#: config/i386/i386.c:4932 | |
29481 | #, gcc-internal-format | |
29482 | msgid "argument to %qE attribute larger than %d" | |
29483 | msgstr "el argumento para el atributo %qE es más grande que %d" | |
29484 | ||
29485 | -#: config/i386/i386.c:4950 config/i386/i386.c:4993 | |
29486 | +#: config/i386/i386.c:4957 config/i386/i386.c:5000 | |
29487 | #, gcc-internal-format | |
29488 | msgid "fastcall and cdecl attributes are not compatible" | |
29489 | msgstr "los atributos fastcall y cdecl no son compatibles" | |
29490 | ||
29491 | -#: config/i386/i386.c:4954 | |
29492 | +#: config/i386/i386.c:4961 | |
29493 | #, gcc-internal-format | |
29494 | msgid "fastcall and stdcall attributes are not compatible" | |
29495 | msgstr "los atributos fastcall y stdcall no son compatibles" | |
29496 | ||
29497 | -#: config/i386/i386.c:4962 config/i386/i386.c:5011 | |
29498 | +#: config/i386/i386.c:4969 config/i386/i386.c:5018 | |
29499 | #, gcc-internal-format | |
29500 | msgid "fastcall and thiscall attributes are not compatible" | |
29501 | msgstr "los atributos fastcall y thiscall no son compatibles" | |
29502 | ||
29503 | -#: config/i386/i386.c:4972 config/i386/i386.c:4989 | |
29504 | +#: config/i386/i386.c:4979 config/i386/i386.c:4996 | |
29505 | #, gcc-internal-format | |
29506 | msgid "stdcall and cdecl attributes are not compatible" | |
29507 | msgstr "los atributos stdcall y cdecl no son compatibles" | |
29508 | ||
29509 | -#: config/i386/i386.c:4976 | |
29510 | +#: config/i386/i386.c:4983 | |
29511 | #, gcc-internal-format | |
29512 | msgid "stdcall and fastcall attributes are not compatible" | |
29513 | msgstr "los atributos stdcall y fastcall no son compatibles" | |
29514 | ||
29515 | -#: config/i386/i386.c:4980 config/i386/i386.c:5007 | |
29516 | +#: config/i386/i386.c:4987 config/i386/i386.c:5014 | |
29517 | #, gcc-internal-format | |
29518 | msgid "stdcall and thiscall attributes are not compatible" | |
29519 | msgstr "los atributos stdcall y thiscall no son compatibles" | |
29520 | ||
29521 | -#: config/i386/i386.c:4997 config/i386/i386.c:5015 | |
29522 | +#: config/i386/i386.c:5004 config/i386/i386.c:5022 | |
29523 | #, gcc-internal-format | |
29524 | msgid "cdecl and thiscall attributes are not compatible" | |
29525 | msgstr "los atributos cdecl y thiscall no son compatibles" | |
29526 | ||
29527 | -#: config/i386/i386.c:5003 | |
29528 | +#: config/i386/i386.c:5010 | |
29529 | #, gcc-internal-format | |
29530 | msgid "%qE attribute is used for none class-method" | |
29531 | msgstr "se usó el atributo %qE para clases-métodos none" | |
29532 | ||
29533 | -#: config/i386/i386.c:5229 | |
29534 | +#: config/i386/i386.c:5236 | |
29535 | #, gcc-internal-format | |
29536 | msgid "calling %qD with attribute sseregparm without SSE/SSE2 enabled" | |
29537 | msgstr "se llama a %qD con el atributo sseregparm sin activar SSE/SSE2" | |
29538 | ||
29539 | -#: config/i386/i386.c:5232 | |
29540 | +#: config/i386/i386.c:5239 | |
29541 | #, gcc-internal-format | |
29542 | msgid "calling %qT with attribute sseregparm without SSE/SSE2 enabled" | |
29543 | msgstr "se llama a %qT con el atributo sseregparm sin activar SSE/SSE2" | |
29544 | ||
29545 | -#: config/i386/i386.c:5447 | |
29546 | +#: config/i386/i386.c:5454 | |
29547 | #, gcc-internal-format | |
29548 | msgid "ms_hook_prologue is not compatible with nested function" | |
29549 | msgstr "ms_hook_prologue no es compatible con la función anidada" | |
29550 | ||
29551 | -#: config/i386/i386.c:5599 | |
29552 | +#: config/i386/i386.c:5606 | |
29553 | #, gcc-internal-format | |
29554 | msgid "ms_abi attribute requires -maccumulate-outgoing-args or subtarget optimization implying it" | |
29555 | msgstr "el atributo ms_abi requiere -maccumulate-outgoing-args o que la optimización de subobjetivo lo implique" | |
29556 | ||
29557 | -#: config/i386/i386.c:5723 | |
29558 | +#: config/i386/i386.c:5730 | |
29559 | #, gcc-internal-format | |
29560 | msgid "AVX vector argument without AVX enabled changes the ABI" | |
29561 | msgstr "el argumento de vector AVX sin AVX activado cambia la ABI" | |
29562 | ||
29563 | -#: config/i386/i386.c:5905 | |
29564 | +#: config/i386/i386.c:5912 | |
29565 | #, gcc-internal-format | |
29566 | msgid "the ABI of passing struct with a flexible array member has changed in GCC 4.4" | |
29567 | msgstr "la ABI para pasar un struct con un miembro de matriz flexible cambió en GCC 4.4" | |
29568 | ||
29569 | -#: config/i386/i386.c:6021 | |
29570 | +#: config/i386/i386.c:6028 | |
29571 | #, gcc-internal-format | |
29572 | msgid "the ABI of passing union with long double has changed in GCC 4.4" | |
29573 | msgstr "la ABI para pasar un union con long double cambió en GCC 4.4" | |
29574 | ||
29575 | -#: config/i386/i386.c:6136 | |
29576 | +#: config/i386/i386.c:6143 | |
29577 | #, gcc-internal-format | |
29578 | msgid "the ABI of passing structure with complex float member has changed in GCC 4.4" | |
29579 | msgstr "la ABI para pasar una estructura con un miembro de coma flotante compleja cambió en GCC 4.4" | |
29580 | ||
29581 | -#: config/i386/i386.c:6282 | |
29582 | +#: config/i386/i386.c:6289 | |
29583 | #, gcc-internal-format | |
29584 | msgid "SSE register return with SSE disabled" | |
29585 | msgstr "se devuelve el registro SSE con SSE desactivado" | |
29586 | ||
29587 | -#: config/i386/i386.c:6288 | |
29588 | +#: config/i386/i386.c:6295 | |
29589 | #, gcc-internal-format | |
29590 | msgid "SSE register argument with SSE disabled" | |
29591 | msgstr "argumento de registro SSE con SSE desactivado" | |
29592 | ||
29593 | -#: config/i386/i386.c:6304 | |
29594 | +#: config/i386/i386.c:6311 | |
29595 | #, gcc-internal-format | |
29596 | msgid "x87 register return with x87 disabled" | |
29597 | msgstr "se devuelve el registro x87 con x87 desactivado" | |
29598 | ||
29599 | -#: config/i386/i386.c:6683 | |
29600 | +#: config/i386/i386.c:6690 | |
29601 | #, gcc-internal-format | |
29602 | msgid "SSE vector argument without SSE enabled changes the ABI" | |
29603 | msgstr "el argumento de vector SSE sin SSE activado cambia la ABI" | |
29604 | ||
29605 | -#: config/i386/i386.c:6721 | |
29606 | +#: config/i386/i386.c:6728 | |
29607 | #, gcc-internal-format | |
29608 | msgid "MMX vector argument without MMX enabled changes the ABI" | |
29609 | msgstr "el argumento de vector MMX sin MMX activado cambia la ABI" | |
29610 | ||
29611 | -#: config/i386/i386.c:7096 | |
29612 | +#: config/i386/i386.c:7103 | |
29613 | #, gcc-internal-format, gfc-internal-format | |
29614 | msgid "The ABI for passing parameters with %d-byte alignment has changed in GCC 4.6" | |
29615 | msgstr "La ABI para pasar parámetros con alineación de %d-bytes cambió en GCC 4.6" | |
29616 | ||
29617 | -#: config/i386/i386.c:7432 | |
29618 | +#: config/i386/i386.c:7439 | |
29619 | #, gcc-internal-format | |
29620 | msgid "SSE vector return without SSE enabled changes the ABI" | |
29621 | msgstr "la devolución de vector SSE sin SSE activado cambia la ABI" | |
29622 | ||
29623 | -#: config/i386/i386.c:7442 | |
29624 | +#: config/i386/i386.c:7449 | |
29625 | #, gcc-internal-format | |
29626 | msgid "MMX vector return without MMX enabled changes the ABI" | |
29627 | msgstr "la devolución de vector MMX sin MMX activado cambia la ABI" | |
29628 | ||
29629 | -#: config/i386/i386.c:10028 | |
29630 | +#: config/i386/i386.c:10049 | |
29631 | #, gcc-internal-format | |
29632 | msgid "ms_hook_prologue attribute isn%'t compatible with -mfentry for 32-bit" | |
29633 | msgstr "el atributo ms_hook_prologue no es compatible con -mfentry para 32-bit" | |
29634 | ||
29635 | -#: config/i386/i386.c:11025 | |
29636 | +#: config/i386/i386.c:11084 | |
29637 | #, gcc-internal-format | |
29638 | msgid "-fsplit-stack does not support fastcall with nested function" | |
29639 | msgstr "-fsplit-stack no admite fastcall con funciones anidadas" | |
29640 | ||
29641 | -#: config/i386/i386.c:11039 | |
29642 | +#: config/i386/i386.c:11098 | |
29643 | #, gcc-internal-format | |
29644 | msgid "-fsplit-stack does not support 2 register parameters for a nested function" | |
29645 | msgstr "-fsplit-stack no admite 2 parámetros de registro para una función anidada" | |
29646 | ||
29647 | #. FIXME: We could make this work by pushing a register | |
29648 | #. around the addition and comparison. | |
29649 | -#: config/i386/i386.c:11050 | |
29650 | +#: config/i386/i386.c:11109 | |
29651 | #, gcc-internal-format | |
29652 | msgid "-fsplit-stack does not support 3 register parameters" | |
29653 | msgstr "-fsplit-stack no admite 3 parámetros de registro" | |
29654 | ||
29655 | -#: config/i386/i386.c:13637 | |
29656 | +#: config/i386/i386.c:13731 | |
29657 | #, gcc-internal-format | |
29658 | msgid "extended registers have no high halves" | |
29659 | msgstr "los registros extendidos no tiene mitades superiores" | |
29660 | ||
29661 | -#: config/i386/i386.c:13652 | |
29662 | +#: config/i386/i386.c:13746 | |
29663 | #, gcc-internal-format | |
29664 | msgid "unsupported operand size for extended register" | |
29665 | msgstr "no se admite el tamaño de operando para el registro extendido" | |
29666 | ||
29667 | -#: config/i386/i386.c:13899 | |
29668 | +#: config/i386/i386.c:14001 | |
29669 | #, gcc-internal-format, gfc-internal-format | |
29670 | msgid "non-integer operand used with operand code '%c'" | |
29671 | msgstr "se usó un operando que no es entero con el código de operando '%c'" | |
29672 | ||
29673 | -#: config/i386/i386.c:27790 config/i386/i386.c:28727 | |
29674 | +#: config/i386/i386.c:27920 config/i386/i386.c:28857 | |
29675 | #, gcc-internal-format | |
29676 | msgid "the last argument must be a 2-bit immediate" | |
29677 | msgstr "el tercer argumento debe ser un inmediato de 2-bit" | |
29678 | ||
29679 | -#: config/i386/i386.c:28196 | |
29680 | +#: config/i386/i386.c:28326 | |
29681 | #, gcc-internal-format | |
29682 | msgid "the fifth argument must be an 8-bit immediate" | |
29683 | msgstr "el quinto argumento debe ser un inmediato de 8-bit" | |
29684 | ||
29685 | -#: config/i386/i386.c:28291 | |
29686 | +#: config/i386/i386.c:28421 | |
29687 | #, gcc-internal-format | |
29688 | msgid "the third argument must be an 8-bit immediate" | |
29689 | msgstr "el tercer argumento debe ser un inmediato de 8-bit" | |
29690 | ||
29691 | -#: config/i386/i386.c:28699 | |
29692 | +#: config/i386/i386.c:28829 | |
29693 | #, gcc-internal-format | |
29694 | msgid "the last argument must be an 1-bit immediate" | |
29695 | msgstr "el último argumento debe ser un inmediato de 1-bit" | |
29696 | ||
29697 | -#: config/i386/i386.c:28718 | |
29698 | +#: config/i386/i386.c:28848 | |
29699 | #, gcc-internal-format | |
29700 | msgid "the last argument must be a 4-bit immediate" | |
29701 | msgstr "el último argumento debe ser un inmediato de 4-bit" | |
29702 | ||
29703 | -#: config/i386/i386.c:28736 | |
29704 | +#: config/i386/i386.c:28866 | |
29705 | #, gcc-internal-format | |
29706 | msgid "the last argument must be a 1-bit immediate" | |
29707 | msgstr "el último argumento debe ser un inmediato de 1-bit" | |
29708 | ||
29709 | -#: config/i386/i386.c:28745 | |
29710 | +#: config/i386/i386.c:28875 | |
29711 | #, gcc-internal-format | |
29712 | msgid "the last argument must be a 5-bit immediate" | |
29713 | msgstr "el tercer argumento debe ser un inmediato de 5-bit" | |
29714 | ||
29715 | -#: config/i386/i386.c:28754 | |
29716 | +#: config/i386/i386.c:28884 | |
29717 | #, gcc-internal-format | |
29718 | msgid "the next to last argument must be an 8-bit immediate" | |
29719 | msgstr "el penúltimo argumento debe ser un inmediato de 8-bit" | |
29720 | ||
29721 | -#: config/i386/i386.c:28758 config/i386/i386.c:28982 | |
29722 | +#: config/i386/i386.c:28888 config/i386/i386.c:29112 | |
29723 | #, gcc-internal-format | |
29724 | msgid "the last argument must be an 8-bit immediate" | |
29725 | msgstr "el último argumento debe ser un inmediato de 8-bit" | |
29726 | ||
29727 | -#: config/i386/i386.c:28980 | |
29728 | +#: config/i386/i386.c:29110 | |
29729 | #, gcc-internal-format | |
29730 | msgid "the last argument must be a 32-bit immediate" | |
29731 | msgstr "el último argumento debe ser un inmediato de 32-bit" | |
29732 | ||
29733 | -#: config/i386/i386.c:29048 config/rs6000/rs6000.c:10551 | |
29734 | +#: config/i386/i386.c:29178 config/rs6000/rs6000.c:10550 | |
29735 | #, gcc-internal-format | |
29736 | msgid "selector must be an integer constant in the range 0..%wi" | |
29737 | msgstr "el selector debe ser una constante entera en el rango 0..%wi" | |
29738 | ||
29739 | -#: config/i386/i386.c:29191 | |
29740 | +#: config/i386/i386.c:29321 | |
29741 | #, gcc-internal-format | |
29742 | msgid "%qE needs unknown isa option" | |
29743 | msgstr "%qE necesita la opción isa desconocida" | |
29744 | ||
29745 | -#: config/i386/i386.c:29195 | |
29746 | +#: config/i386/i386.c:29325 | |
29747 | #, gcc-internal-format | |
29748 | msgid "%qE needs isa option %s" | |
29749 | msgstr "%qE necesita la opción isa %s" | |
29750 | ||
29751 | -#: config/i386/i386.c:29366 | |
29752 | +#: config/i386/i386.c:29496 | |
29753 | #, gcc-internal-format | |
29754 | msgid "last argument must be an immediate" | |
29755 | msgstr "el último argumento debe ser un inmediato" | |
29756 | ||
29757 | -#: config/i386/i386.c:29560 | |
29758 | +#: config/i386/i386.c:29690 | |
29759 | #, gcc-internal-format | |
29760 | msgid "last argument must be scale 1, 2, 4, 8" | |
29761 | msgstr "el argumento izquierdo debe ser un escalar 1, 2, 4, 8" | |
29762 | ||
29763 | -#: config/i386/i386.c:31806 | |
29764 | +#: config/i386/i386.c:31936 | |
29765 | #, gcc-internal-format | |
29766 | msgid "%qE attribute only available for 32-bit" | |
29767 | msgstr "el atributo %qE solamente está disponible para 64-bit" | |
29768 | ||
29769 | -#: config/i386/i386.c:31827 | |
29770 | +#: config/i386/i386.c:31957 | |
29771 | #, gcc-internal-format | |
29772 | msgid "argument to %qE attribute is neither zero, nor one" | |
29773 | msgstr "el argumento del atributo %qE no es cero ni uno" | |
29774 | ||
29775 | -#: config/i386/i386.c:31861 config/i386/i386.c:31870 | |
29776 | +#: config/i386/i386.c:31991 config/i386/i386.c:32000 | |
29777 | #, gcc-internal-format | |
29778 | msgid "ms_abi and sysv_abi attributes are not compatible" | |
29779 | msgstr "los atributos ms_abi y sysv_abi no son compatibles" | |
29780 | ||
29781 | -#: config/i386/i386.c:31907 config/rs6000/rs6000.c:24330 | |
29782 | +#: config/i386/i386.c:32037 config/rs6000/rs6000.c:24353 | |
29783 | #, gcc-internal-format | |
29784 | msgid "%qE incompatible attribute ignored" | |
29785 | msgstr "se descarta el atributo incompatible %qE" | |
29786 | @@ -23980,13 +23980,13 @@ | |
29787 | msgid "%qE attribute requires a string constant argument" | |
29788 | msgstr "el atributo %qE requiere una constante entera como argumento" | |
29789 | ||
29790 | -#: config/ia64/ia64.c:5741 config/pa/pa.c:415 config/sh/sh.c:8750 | |
29791 | +#: config/ia64/ia64.c:5741 config/pa/pa.c:415 config/sh/sh.c:8753 | |
29792 | #: config/spu/spu.c:5187 | |
29793 | #, gcc-internal-format | |
29794 | msgid "value of -mfixed-range must have form REG1-REG2" | |
29795 | msgstr "el valor de -mfixed-range debe ser de la forma REG1-REG2" | |
29796 | ||
29797 | -#: config/ia64/ia64.c:5768 config/pa/pa.c:442 config/sh/sh.c:8776 | |
29798 | +#: config/ia64/ia64.c:5768 config/pa/pa.c:442 config/sh/sh.c:8779 | |
29799 | #: config/spu/spu.c:5213 | |
29800 | #, gcc-internal-format, gfc-internal-format | |
29801 | msgid "%s-%s is an empty range" | |
29802 | @@ -24058,7 +24058,7 @@ | |
29803 | msgstr "no se admite el atributo %qE para el objetivo R8C" | |
29804 | ||
29805 | #. The argument must be a constant integer. | |
29806 | -#: config/m32c/m32c.c:3169 config/sh/sh.c:8957 config/sh/sh.c:9063 | |
29807 | +#: config/m32c/m32c.c:3169 config/sh/sh.c:8960 config/sh/sh.c:9066 | |
29808 | #, gcc-internal-format | |
29809 | msgid "%qE attribute argument not an integer constant" | |
29810 | msgstr "el argumento del atributo %qE no es una constante entera" | |
29811 | @@ -24113,7 +24113,7 @@ | |
29812 | msgid "interrupt_thread is available only on fido" | |
29813 | msgstr "interrupt_thread sólo está disponible en fido" | |
29814 | ||
29815 | -#: config/m68k/m68k.c:1072 config/rs6000/rs6000.c:18607 | |
29816 | +#: config/m68k/m68k.c:1072 config/rs6000/rs6000.c:18606 | |
29817 | #, gcc-internal-format | |
29818 | msgid "stack limit expression is not supported" | |
29819 | msgstr "no se admite la expresión del límite de la pila" | |
29820 | @@ -24456,62 +24456,62 @@ | |
29821 | msgid "%qs does not support MIPS16 code" | |
29822 | msgstr "%qs no admite código MIPS16" | |
29823 | ||
29824 | -#: config/mips/mips.c:15623 | |
29825 | +#: config/mips/mips.c:15629 | |
29826 | #, gcc-internal-format | |
29827 | msgid "MIPS16 PIC for ABIs other than o32 and o64" | |
29828 | msgstr "PIC MIPS16 para ABIs diferentes de o32 y o64" | |
29829 | ||
29830 | -#: config/mips/mips.c:15626 | |
29831 | +#: config/mips/mips.c:15632 | |
29832 | #, gcc-internal-format | |
29833 | msgid "MIPS16 -mxgot code" | |
29834 | msgstr "código MIPS16 -mxgot" | |
29835 | ||
29836 | -#: config/mips/mips.c:15629 | |
29837 | +#: config/mips/mips.c:15635 | |
29838 | #, gcc-internal-format | |
29839 | msgid "hard-float MIPS16 code for ABIs other than o32 and o64" | |
29840 | msgstr "código MIPS16 de coma flotante hard para ABIs diferentes de o32 y o64" | |
29841 | ||
29842 | -#: config/mips/mips.c:15818 | |
29843 | +#: config/mips/mips.c:15824 | |
29844 | #, gcc-internal-format | |
29845 | msgid "%<-%s%> conflicts with the other architecture options, which specify a %s processor" | |
29846 | msgstr "%<-%s%> genera un conflicto con las otras opciones de la arquitectura, las cuales especifican un procesador %s" | |
29847 | ||
29848 | -#: config/mips/mips.c:15828 | |
29849 | +#: config/mips/mips.c:15834 | |
29850 | #, gcc-internal-format | |
29851 | msgid "%<-march=%s%> is not compatible with the selected ABI" | |
29852 | msgstr "%<-march=%s%> no es compatible con la ABI seleccionada" | |
29853 | ||
29854 | -#: config/mips/mips.c:15843 | |
29855 | +#: config/mips/mips.c:15849 | |
29856 | #, gcc-internal-format | |
29857 | msgid "%<-mgp64%> used with a 32-bit processor" | |
29858 | msgstr "se utiliza %<-mgp64%> con un procesador de 32-bit" | |
29859 | ||
29860 | -#: config/mips/mips.c:15845 | |
29861 | +#: config/mips/mips.c:15851 | |
29862 | #, gcc-internal-format | |
29863 | msgid "%<-mgp32%> used with a 64-bit ABI" | |
29864 | msgstr "se utiliza %<-mgp32%> con una ABI de 64-bit" | |
29865 | ||
29866 | -#: config/mips/mips.c:15847 | |
29867 | +#: config/mips/mips.c:15853 | |
29868 | #, gcc-internal-format | |
29869 | msgid "%<-mgp64%> used with a 32-bit ABI" | |
29870 | msgstr "se utiliza %<-mgp64%> con una ABI de 32-bit" | |
29871 | ||
29872 | -#: config/mips/mips.c:15863 config/mips/mips.c:15865 config/mips/mips.c:15956 | |
29873 | +#: config/mips/mips.c:15869 config/mips/mips.c:15871 config/mips/mips.c:15962 | |
29874 | #, gcc-internal-format, gfc-internal-format | |
29875 | msgid "unsupported combination: %s" | |
29876 | msgstr "no se admite la combinación: %s" | |
29877 | ||
29878 | -#: config/mips/mips.c:15869 | |
29879 | +#: config/mips/mips.c:15875 | |
29880 | #, gcc-internal-format | |
29881 | msgid "%<-mgp32%> and %<-mfp64%> can only be combined if the target supports the mfhc1 and mthc1 instructions" | |
29882 | msgstr "%<-mgp32%> y %<-mfp64%> sólo se pueden combinar si el objetivo admite las instrucciones mfhc1 y mthc1" | |
29883 | ||
29884 | -#: config/mips/mips.c:15872 | |
29885 | +#: config/mips/mips.c:15878 | |
29886 | #, gcc-internal-format | |
29887 | msgid "%<-mgp32%> and %<-mfp64%> can only be combined when using the o32 ABI" | |
29888 | msgstr "%<-mgp32%> y %<-mfp64%> sólo se pueden combinar al usar la ABI o32" | |
29889 | ||
29890 | -#: config/mips/mips.c:15895 config/mips/mips.c:15897 config/mips/mips.c:15910 | |
29891 | +#: config/mips/mips.c:15901 config/mips/mips.c:15903 config/mips/mips.c:15916 | |
29892 | #, gcc-internal-format | |
29893 | msgid "%qs is incompatible with %qs" | |
29894 | msgstr "%qs es incompatible con %qs" | |
29895 | @@ -24521,57 +24521,57 @@ | |
29896 | #. effort to support the combination of 32-bit GOT entries | |
29897 | #. and 64-bit pointers, so we treat the abicalls case as | |
29898 | #. an error. | |
29899 | -#: config/mips/mips.c:15904 | |
29900 | +#: config/mips/mips.c:15910 | |
29901 | #, gcc-internal-format | |
29902 | msgid "the combination of %qs and %qs is incompatible with %qs" | |
29903 | msgstr "la combinacion de %qs y %qs es incompatible con %qs" | |
29904 | ||
29905 | -#: config/mips/mips.c:15950 | |
29906 | +#: config/mips/mips.c:15956 | |
29907 | #, gcc-internal-format | |
29908 | msgid "the %qs architecture does not support branch-likely instructions" | |
29909 | msgstr "la arquitectura %qs no admite las instrucciones con probabilidad de ramificación" | |
29910 | ||
29911 | -#: config/mips/mips.c:15990 | |
29912 | +#: config/mips/mips.c:15996 | |
29913 | #, gcc-internal-format | |
29914 | msgid "%<-mno-gpopt%> needs %<-mexplicit-relocs%>" | |
29915 | msgstr "%<-mno-gpopt%> necesita %<-mexplicit-relocs%>" | |
29916 | ||
29917 | -#: config/mips/mips.c:15998 config/mips/mips.c:16001 | |
29918 | +#: config/mips/mips.c:16004 config/mips/mips.c:16007 | |
29919 | #, gcc-internal-format | |
29920 | msgid "cannot use small-data accesses for %qs" | |
29921 | msgstr "no se pueden usar accesos de data small para %qs" | |
29922 | ||
29923 | -#: config/mips/mips.c:16015 | |
29924 | +#: config/mips/mips.c:16021 | |
29925 | #, gcc-internal-format | |
29926 | msgid "%<-mips3d%> requires %<-mpaired-single%>" | |
29927 | msgstr "%<-mips3d%> requiere %<-mpaired-single%>" | |
29928 | ||
29929 | -#: config/mips/mips.c:16024 | |
29930 | +#: config/mips/mips.c:16030 | |
29931 | #, gcc-internal-format | |
29932 | msgid "%qs must be used with %qs" | |
29933 | msgstr "%qs se debe usar con %qs" | |
29934 | ||
29935 | -#: config/mips/mips.c:16031 | |
29936 | +#: config/mips/mips.c:16037 | |
29937 | #, gcc-internal-format | |
29938 | msgid "the %qs architecture does not support paired-single instructions" | |
29939 | msgstr "la arquitectura %qs no admite las instrucciones par-sencillo" | |
29940 | ||
29941 | -#: config/mips/mips.c:16037 | |
29942 | +#: config/mips/mips.c:16043 | |
29943 | #, gcc-internal-format | |
29944 | msgid "%qs requires a target that provides the %qs instruction" | |
29945 | msgstr "%qs requiere un objetivo que provea la instrucción %qs" | |
29946 | ||
29947 | -#: config/mips/mips.c:16142 | |
29948 | +#: config/mips/mips.c:16148 | |
29949 | #, gcc-internal-format | |
29950 | msgid "%qs requires branch-likely instructions" | |
29951 | msgstr "%qs requiere instrucciones con probabilidad de ramificación" | |
29952 | ||
29953 | -#: config/mips/mips.c:16146 | |
29954 | +#: config/mips/mips.c:16152 | |
29955 | #, gcc-internal-format | |
29956 | msgid "the %qs architecture does not support the synci instruction" | |
29957 | msgstr "la arquitectura %qs no admite la instrucción synci" | |
29958 | ||
29959 | -#: config/mips/mips.c:16596 | |
29960 | +#: config/mips/mips.c:16602 | |
29961 | #, gcc-internal-format | |
29962 | msgid "mips16 function profiling" | |
29963 | msgstr "análisis de perfil de las funciones mips16" | |
29964 | @@ -24852,308 +24852,308 @@ | |
29965 | msgid "invalid parameter combination for AltiVec intrinsic" | |
29966 | msgstr "combinación de parámetros inválida para el intrínseco AltiVec" | |
29967 | ||
29968 | -#: config/rs6000/rs6000.c:2436 | |
29969 | +#: config/rs6000/rs6000.c:2435 | |
29970 | #, gcc-internal-format | |
29971 | msgid "-mrecip requires -ffinite-math or -ffast-math" | |
29972 | msgstr "-recip requiere -ffinite-math o -ffast-math" | |
29973 | ||
29974 | -#: config/rs6000/rs6000.c:2438 | |
29975 | +#: config/rs6000/rs6000.c:2437 | |
29976 | #, gcc-internal-format | |
29977 | msgid "-mrecip requires -fno-trapping-math or -ffast-math" | |
29978 | msgstr "-mrecip requiere -fno-trapping-math o -ffast-math" | |
29979 | ||
29980 | -#: config/rs6000/rs6000.c:2440 | |
29981 | +#: config/rs6000/rs6000.c:2439 | |
29982 | #, gcc-internal-format | |
29983 | msgid "-mrecip requires -freciprocal-math or -ffast-math" | |
29984 | msgstr "-mrecip requiere -freciprocal-math o -ffast-math" | |
29985 | ||
29986 | -#: config/rs6000/rs6000.c:2535 | |
29987 | +#: config/rs6000/rs6000.c:2534 | |
29988 | #, gcc-internal-format | |
29989 | msgid "-m64 requires PowerPC64 architecture, enabling" | |
29990 | msgstr "-m64 requiere la arquitectura PowerPC64, activando" | |
29991 | ||
29992 | -#: config/rs6000/rs6000.c:2616 | |
29993 | +#: config/rs6000/rs6000.c:2615 | |
29994 | #, gcc-internal-format | |
29995 | msgid "-malign-power is not supported for 64-bit Darwin; it is incompatible with the installed C and C++ libraries" | |
29996 | msgstr "no se admite -malign-power para Darwin de 64-bit; es incompatible con las bibliotecas C y C++ instaladas" | |
29997 | ||
29998 | -#: config/rs6000/rs6000.c:2622 | |
29999 | +#: config/rs6000/rs6000.c:2621 | |
30000 | #, gcc-internal-format | |
30001 | msgid "not configured for SPE ABI" | |
30002 | msgstr "no se configuró para ABI SPE" | |
30003 | ||
30004 | -#: config/rs6000/rs6000.c:2710 | |
30005 | +#: config/rs6000/rs6000.c:2709 | |
30006 | #, gcc-internal-format | |
30007 | msgid "AltiVec not supported in this target" | |
30008 | msgstr "no se admite AltiVec en este objetivo" | |
30009 | ||
30010 | -#: config/rs6000/rs6000.c:2712 | |
30011 | +#: config/rs6000/rs6000.c:2711 | |
30012 | #, gcc-internal-format | |
30013 | msgid "SPE not supported in this target" | |
30014 | msgstr "no se admite SPE en este objetivo" | |
30015 | ||
30016 | -#: config/rs6000/rs6000.c:2739 | |
30017 | +#: config/rs6000/rs6000.c:2738 | |
30018 | #, gcc-internal-format | |
30019 | msgid "-mmultiple is not supported on little endian systems" | |
30020 | msgstr "no se admite -mmultiple en sistemas little endian" | |
30021 | ||
30022 | -#: config/rs6000/rs6000.c:2746 | |
30023 | +#: config/rs6000/rs6000.c:2745 | |
30024 | #, gcc-internal-format | |
30025 | msgid "-mstring is not supported on little endian systems" | |
30026 | msgstr "no se admite -mstring en sistemas little endian" | |
30027 | ||
30028 | -#: config/rs6000/rs6000.c:2852 | |
30029 | +#: config/rs6000/rs6000.c:2851 | |
30030 | #, gcc-internal-format, gfc-internal-format | |
30031 | msgid "unknown vectorization library ABI type (%s) for -mveclibabi= switch" | |
30032 | msgstr "tipo de ABI de biblioteca de vectorización desconocida (%s) para la opción -mveclibabi=" | |
30033 | ||
30034 | -#: config/rs6000/rs6000.c:2864 | |
30035 | +#: config/rs6000/rs6000.c:2863 | |
30036 | #, gcc-internal-format | |
30037 | msgid "target attribute or pragma changes long double size" | |
30038 | msgstr "el atributo o pragma target cambia el tamaño de double long" | |
30039 | ||
30040 | -#: config/rs6000/rs6000.c:2885 config/rs6000/rs6000.c:2900 | |
30041 | +#: config/rs6000/rs6000.c:2884 config/rs6000/rs6000.c:2899 | |
30042 | #, gcc-internal-format | |
30043 | msgid "target attribute or pragma changes AltiVec ABI" | |
30044 | msgstr "el atributo o pragma target cambia la ABI Altivec" | |
30045 | ||
30046 | -#: config/rs6000/rs6000.c:2917 | |
30047 | +#: config/rs6000/rs6000.c:2916 | |
30048 | #, gcc-internal-format | |
30049 | msgid "target attribute or pragma changes darwin64 ABI" | |
30050 | msgstr "el atributo o pragma target cambia la ABI darwin64" | |
30051 | ||
30052 | -#: config/rs6000/rs6000.c:2958 | |
30053 | +#: config/rs6000/rs6000.c:2957 | |
30054 | #, gcc-internal-format | |
30055 | msgid "target attribute or pragma changes SPE ABI" | |
30056 | msgstr "el atributo o pragma target cabia la ABI SPE" | |
30057 | ||
30058 | -#: config/rs6000/rs6000.c:3281 | |
30059 | +#: config/rs6000/rs6000.c:3280 | |
30060 | #, gcc-internal-format | |
30061 | msgid "target attribute or pragma changes single precision floating point" | |
30062 | msgstr "el atributo o pragma target cambia la coma flotante de precisión sencilla" | |
30063 | ||
30064 | -#: config/rs6000/rs6000.c:3284 | |
30065 | +#: config/rs6000/rs6000.c:3283 | |
30066 | #, gcc-internal-format | |
30067 | msgid "target attribute or pragma changes double precision floating point" | |
30068 | msgstr "el atributo o pragma target cambia la coma flotante de precisión doble" | |
30069 | ||
30070 | -#: config/rs6000/rs6000.c:7420 | |
30071 | +#: config/rs6000/rs6000.c:7419 | |
30072 | #, gcc-internal-format | |
30073 | msgid "GCC vector returned by reference: non-standard ABI extension with no compatibility guarantee" | |
30074 | msgstr "Se devolvió un vector GCC por referencia: extensión de ABI no estándar sin garantía de compatibilidad" | |
30075 | ||
30076 | -#: config/rs6000/rs6000.c:7561 | |
30077 | +#: config/rs6000/rs6000.c:7560 | |
30078 | #, gcc-internal-format | |
30079 | msgid "cannot return value in vector register because altivec instructions are disabled, use -maltivec to enable them" | |
30080 | msgstr "no se puede devolver un valor en el registro vector porque las instrucciones altivec están desactivadas, use -maltivec para activarlas" | |
30081 | ||
30082 | -#: config/rs6000/rs6000.c:7904 | |
30083 | +#: config/rs6000/rs6000.c:7903 | |
30084 | #, gcc-internal-format | |
30085 | msgid "cannot pass argument in vector register because altivec instructions are disabled, use -maltivec to enable them" | |
30086 | msgstr "no se puede pasar argumentos en el registro vector porque las instrucciones altivec están desactivadas, use -maltivec para activarlas" | |
30087 | ||
30088 | -#: config/rs6000/rs6000.c:8830 | |
30089 | +#: config/rs6000/rs6000.c:8829 | |
30090 | #, gcc-internal-format | |
30091 | msgid "GCC vector passed by reference: non-standard ABI extension with no compatibility guarantee" | |
30092 | msgstr "vector GCC pasado por referencia: extensión ABI que no es estándar sin garantía de compatibilidad" | |
30093 | ||
30094 | -#: config/rs6000/rs6000.c:9459 | |
30095 | +#: config/rs6000/rs6000.c:9458 | |
30096 | #, gcc-internal-format, gfc-internal-format | |
30097 | msgid "internal error: builtin function %s already processed" | |
30098 | msgstr "error interno: la función interna %s ya se procesó" | |
30099 | ||
30100 | -#: config/rs6000/rs6000.c:9832 | |
30101 | +#: config/rs6000/rs6000.c:9831 | |
30102 | #, gcc-internal-format | |
30103 | msgid "argument 1 must be a 5-bit signed literal" | |
30104 | msgstr "el argumento 1 debe ser una literal con signo de 5-bit" | |
30105 | ||
30106 | -#: config/rs6000/rs6000.c:9935 config/rs6000/rs6000.c:10952 | |
30107 | +#: config/rs6000/rs6000.c:9934 config/rs6000/rs6000.c:10951 | |
30108 | #, gcc-internal-format | |
30109 | msgid "argument 2 must be a 5-bit unsigned literal" | |
30110 | msgstr "el argumento 2 debe ser una literal sin signo de 5-bit" | |
30111 | ||
30112 | -#: config/rs6000/rs6000.c:9974 | |
30113 | +#: config/rs6000/rs6000.c:9973 | |
30114 | #, gcc-internal-format | |
30115 | msgid "argument 1 of __builtin_altivec_predicate must be a constant" | |
30116 | msgstr "el argumento 1 de __builtin_altivec_predicate debe ser una constante" | |
30117 | ||
30118 | -#: config/rs6000/rs6000.c:10026 | |
30119 | +#: config/rs6000/rs6000.c:10025 | |
30120 | #, gcc-internal-format | |
30121 | msgid "argument 1 of __builtin_altivec_predicate is out of range" | |
30122 | msgstr "el argumento 1 de __builtin_altivec_predicate está fuera de rango" | |
30123 | ||
30124 | -#: config/rs6000/rs6000.c:10283 | |
30125 | +#: config/rs6000/rs6000.c:10282 | |
30126 | #, gcc-internal-format | |
30127 | msgid "argument 3 must be a 4-bit unsigned literal" | |
30128 | msgstr "el argumento 3 debe ser una literal sin signo de 4-bit" | |
30129 | ||
30130 | -#: config/rs6000/rs6000.c:10301 | |
30131 | +#: config/rs6000/rs6000.c:10300 | |
30132 | #, gcc-internal-format | |
30133 | msgid "argument 3 must be a 2-bit unsigned literal" | |
30134 | msgstr "el argumento 3 debe ser una literal sin signo de 2-bit" | |
30135 | ||
30136 | -#: config/rs6000/rs6000.c:10313 | |
30137 | +#: config/rs6000/rs6000.c:10312 | |
30138 | #, gcc-internal-format | |
30139 | msgid "argument 3 must be a 1-bit unsigned literal" | |
30140 | msgstr "el argumento 3 debe ser una literal sin signo de 1-bit" | |
30141 | ||
30142 | -#: config/rs6000/rs6000.c:10496 | |
30143 | +#: config/rs6000/rs6000.c:10495 | |
30144 | #, gcc-internal-format | |
30145 | msgid "argument to %qs must be a 2-bit unsigned literal" | |
30146 | msgstr "el argumento para %qs debe ser una literal sin signo de 2-bit" | |
30147 | ||
30148 | -#: config/rs6000/rs6000.c:10637 | |
30149 | +#: config/rs6000/rs6000.c:10636 | |
30150 | #, gcc-internal-format | |
30151 | msgid "unresolved overload for Altivec builtin %qF" | |
30152 | msgstr "sobrecarga sin resolver para el interno Altivec %qF" | |
30153 | ||
30154 | -#: config/rs6000/rs6000.c:10743 | |
30155 | +#: config/rs6000/rs6000.c:10742 | |
30156 | #, gcc-internal-format | |
30157 | msgid "argument to dss must be a 2-bit unsigned literal" | |
30158 | msgstr "el argumento para dss debe ser una literal sin signo de 2-bit" | |
30159 | ||
30160 | # continuar aqui | |
30161 | -#: config/rs6000/rs6000.c:11072 | |
30162 | +#: config/rs6000/rs6000.c:11071 | |
30163 | #, gcc-internal-format | |
30164 | msgid "argument 1 of __builtin_paired_predicate must be a constant" | |
30165 | msgstr "el argumento 1 de __builtin_paired_predicate debe ser una constante" | |
30166 | ||
30167 | -#: config/rs6000/rs6000.c:11119 | |
30168 | +#: config/rs6000/rs6000.c:11118 | |
30169 | #, gcc-internal-format | |
30170 | msgid "argument 1 of __builtin_paired_predicate is out of range" | |
30171 | msgstr "el argumento 1 de __builtin_paired_predicate está fuera de rango" | |
30172 | ||
30173 | -#: config/rs6000/rs6000.c:11144 | |
30174 | +#: config/rs6000/rs6000.c:11143 | |
30175 | #, gcc-internal-format | |
30176 | msgid "argument 1 of __builtin_spe_predicate must be a constant" | |
30177 | msgstr "el argumento 1 de __builtin_spe_predicate debe ser una constante" | |
30178 | ||
30179 | -#: config/rs6000/rs6000.c:11216 | |
30180 | +#: config/rs6000/rs6000.c:11215 | |
30181 | #, gcc-internal-format | |
30182 | msgid "argument 1 of __builtin_spe_predicate is out of range" | |
30183 | msgstr "el argumento 1 de __builtin_spe_predicate está fuera de rango" | |
30184 | ||
30185 | -#: config/rs6000/rs6000.c:11298 | |
30186 | +#: config/rs6000/rs6000.c:11297 | |
30187 | #, gcc-internal-format, gfc-internal-format | |
30188 | msgid "Builtin function %s is only valid for the cell processor" | |
30189 | msgstr "La función interna %s sólo es válida para el procesador cell" | |
30190 | ||
30191 | -#: config/rs6000/rs6000.c:11300 | |
30192 | +#: config/rs6000/rs6000.c:11299 | |
30193 | #, gcc-internal-format, gfc-internal-format | |
30194 | msgid "Builtin function %s requires the -mvsx option" | |
30195 | msgstr "La función interna %s requiere la opción -mvsx" | |
30196 | ||
30197 | -#: config/rs6000/rs6000.c:11302 | |
30198 | +#: config/rs6000/rs6000.c:11301 | |
30199 | #, gcc-internal-format, gfc-internal-format | |
30200 | msgid "Builtin function %s requires the -maltivec option" | |
30201 | msgstr "La función interna %s requiere la opción -maltivec" | |
30202 | ||
30203 | -#: config/rs6000/rs6000.c:11304 | |
30204 | +#: config/rs6000/rs6000.c:11303 | |
30205 | #, gcc-internal-format, gfc-internal-format | |
30206 | msgid "Builtin function %s requires the -mpaired option" | |
30207 | msgstr "La función interna %s requiere la opción -mpaired" | |
30208 | ||
30209 | -#: config/rs6000/rs6000.c:11306 | |
30210 | +#: config/rs6000/rs6000.c:11305 | |
30211 | #, gcc-internal-format, gfc-internal-format | |
30212 | msgid "Builtin function %s requires the -mspe option" | |
30213 | msgstr "La función interna %s requiere la opción -mspe" | |
30214 | ||
30215 | -#: config/rs6000/rs6000.c:11308 | |
30216 | +#: config/rs6000/rs6000.c:11307 | |
30217 | #, gcc-internal-format, gfc-internal-format | |
30218 | msgid "Builtin function %s is not supported with the current options" | |
30219 | msgstr "La función interna %s no se admite con las opciones actuales" | |
30220 | ||
30221 | -#: config/rs6000/rs6000.c:12568 | |
30222 | +#: config/rs6000/rs6000.c:12567 | |
30223 | #, gcc-internal-format, gfc-internal-format | |
30224 | msgid "internal error: builtin function %s had no type" | |
30225 | msgstr "error interno: la función interna %s no tiene tipo" | |
30226 | ||
30227 | -#: config/rs6000/rs6000.c:12575 | |
30228 | +#: config/rs6000/rs6000.c:12574 | |
30229 | #, gcc-internal-format, gfc-internal-format | |
30230 | msgid "internal error: builtin function %s had an unexpected return type %s" | |
30231 | msgstr "error interno: la función interna %s tiene un tipo de devolución inesperado %s" | |
30232 | ||
30233 | -#: config/rs6000/rs6000.c:12591 | |
30234 | +#: config/rs6000/rs6000.c:12590 | |
30235 | #, gcc-internal-format, gfc-internal-format | |
30236 | msgid "internal error: builtin function %s, argument %d had unexpected argument type %s" | |
30237 | msgstr "error interno: función interna %s, el argumento %d tiene el tipo de argumento inesperado %s" | |
30238 | ||
30239 | -#: config/rs6000/rs6000.c:18577 | |
30240 | +#: config/rs6000/rs6000.c:18576 | |
30241 | #, gcc-internal-format | |
30242 | msgid "stack frame too large" | |
30243 | msgstr "marco de pila demasiado grande" | |
30244 | ||
30245 | -#: config/rs6000/rs6000.c:22051 | |
30246 | +#: config/rs6000/rs6000.c:22050 | |
30247 | #, gcc-internal-format | |
30248 | msgid "no profiling of 64-bit code for this ABI" | |
30249 | msgstr "no hay análisis de perfil del código de 64-bit para esta ABI" | |
30250 | ||
30251 | -#: config/rs6000/rs6000.c:24036 | |
30252 | +#: config/rs6000/rs6000.c:24059 | |
30253 | #, gcc-internal-format | |
30254 | msgid "You cannot take the address of a nested function if you use the -mno-pointers-to-nested-functions option." | |
30255 | msgstr "No se puede tomar la dirección de una función anindada si se usa la opción -mno-pointers-to-nested-functions." | |
30256 | ||
30257 | -#: config/rs6000/rs6000.c:24117 | |
30258 | +#: config/rs6000/rs6000.c:24140 | |
30259 | #, gcc-internal-format | |
30260 | msgid "use of %<long double%> in AltiVec types is invalid" | |
30261 | msgstr "el uso de %<long double%> en tipos AltiVec es inválido" | |
30262 | ||
30263 | -#: config/rs6000/rs6000.c:24119 | |
30264 | +#: config/rs6000/rs6000.c:24142 | |
30265 | #, gcc-internal-format | |
30266 | msgid "use of boolean types in AltiVec types is invalid" | |
30267 | msgstr "el uso de tipos booleanos en tipos AltiVec es inválido" | |
30268 | ||
30269 | -#: config/rs6000/rs6000.c:24121 | |
30270 | +#: config/rs6000/rs6000.c:24144 | |
30271 | #, gcc-internal-format | |
30272 | msgid "use of %<complex%> in AltiVec types is invalid" | |
30273 | msgstr "el uso de %<complex%> en tipos AltiVec es inválido" | |
30274 | ||
30275 | -#: config/rs6000/rs6000.c:24123 | |
30276 | +#: config/rs6000/rs6000.c:24146 | |
30277 | #, gcc-internal-format | |
30278 | msgid "use of decimal floating point types in AltiVec types is invalid" | |
30279 | msgstr "el uso de tipos de coma flotante decimal en tipos AltiVec es inválido" | |
30280 | ||
30281 | -#: config/rs6000/rs6000.c:24129 | |
30282 | +#: config/rs6000/rs6000.c:24152 | |
30283 | #, gcc-internal-format | |
30284 | msgid "use of %<long%> in AltiVec types is invalid for 64-bit code without -mvsx" | |
30285 | msgstr "el uso de %<long%> en tipos AltiVec es inválido para código de 64 bit sin -mvsx" | |
30286 | ||
30287 | -#: config/rs6000/rs6000.c:24132 | |
30288 | +#: config/rs6000/rs6000.c:24155 | |
30289 | #, gcc-internal-format | |
30290 | msgid "use of %<long%> in AltiVec types is deprecated; use %<int%>" | |
30291 | msgstr "el uso de %<long%> en tipos AltiVec es obsoleto; use %<int%>" | |
30292 | ||
30293 | -#: config/rs6000/rs6000.c:24137 | |
30294 | +#: config/rs6000/rs6000.c:24160 | |
30295 | #, gcc-internal-format | |
30296 | msgid "use of %<long long%> in AltiVec types is invalid without -mvsx" | |
30297 | msgstr "el uso de %<long long%> en tipos AltiVec es inválido sin -mvsx" | |
30298 | ||
30299 | -#: config/rs6000/rs6000.c:24140 | |
30300 | +#: config/rs6000/rs6000.c:24163 | |
30301 | #, gcc-internal-format | |
30302 | msgid "use of %<double%> in AltiVec types is invalid without -mvsx" | |
30303 | msgstr "el uso de %<double%> en tipos AltiVec es inválido sin -mvsx" | |
30304 | ||
30305 | -#: config/rs6000/rs6000.c:26979 | |
30306 | +#: config/rs6000/rs6000.c:27002 | |
30307 | #, gcc-internal-format, gfc-internal-format | |
30308 | msgid "emitting microcode insn %s\t[%s] #%d" | |
30309 | msgstr "se emite el insn de microcódigo %s\t[%s] #%d" | |
30310 | ||
30311 | -#: config/rs6000/rs6000.c:26983 | |
30312 | +#: config/rs6000/rs6000.c:27006 | |
30313 | #, gcc-internal-format, gfc-internal-format | |
30314 | msgid "emitting conditional microcode insn %s\t[%s] #%d" | |
30315 | msgstr "se emite el insn de microcódigo condicional %s\t[%s] #%d" | |
30316 | ||
30317 | -#: config/rs6000/rs6000.c:27207 | |
30318 | +#: config/rs6000/rs6000.c:27230 | |
30319 | #, gcc-internal-format, gfc-internal-format | |
30320 | msgid "invalid cpu \"%s\" for %s\"%s\"%s" | |
30321 | msgstr "cpu \"%s\" inválido para %s\"%s\"%s" | |
30322 | ||
30323 | -#: config/rs6000/rs6000.c:27210 | |
30324 | +#: config/rs6000/rs6000.c:27233 | |
30325 | #, gcc-internal-format, gfc-internal-format | |
30326 | msgid "%s\"%s\"%s is not allowed" | |
30327 | msgstr "%s\"%s\"%s no está definido" | |
30328 | ||
30329 | -#: config/rs6000/rs6000.c:27212 | |
30330 | +#: config/rs6000/rs6000.c:27235 | |
30331 | #, gcc-internal-format, gfc-internal-format | |
30332 | msgid "%s\"%s\"%s is invalid" | |
30333 | msgstr "%s\"%s\"%s es inválido" | |
30334 | @@ -25386,63 +25386,63 @@ | |
30335 | msgid "%qs uses dynamic stack allocation" | |
30336 | msgstr "%qs utiliza alojamiento dinámico de pila" | |
30337 | ||
30338 | -#: config/sh/sh.c:775 | |
30339 | +#: config/sh/sh.c:768 | |
30340 | #, gcc-internal-format | |
30341 | msgid "ignoring -fschedule-insns because of exception handling bug" | |
30342 | msgstr "se descarta -fschedule-insns debido a un error de manejo de excepciones" | |
30343 | ||
30344 | -#: config/sh/sh.c:796 | |
30345 | +#: config/sh/sh.c:784 | |
30346 | #, gcc-internal-format | |
30347 | msgid "unwind tables currently require either a frame pointer or -maccumulate-outgoing-args for correctness" | |
30348 | msgstr "actualmente las tablas de desenredo requieren un puntero de marco o -maccumulate-outgoing-args para ser correctas" | |
30349 | ||
30350 | -#: config/sh/sh.c:7674 | |
30351 | +#: config/sh/sh.c:7677 | |
30352 | #, gcc-internal-format | |
30353 | msgid "__builtin_saveregs not supported by this subtarget" | |
30354 | msgstr "no se admite __builtin_saveregs en este subobjetivo" | |
30355 | ||
30356 | -#: config/sh/sh.c:8838 | |
30357 | +#: config/sh/sh.c:8841 | |
30358 | #, gcc-internal-format | |
30359 | msgid "%qE attribute only applies to interrupt functions" | |
30360 | msgstr "el atributo %qE se aplica solamente a funciones de interrupción" | |
30361 | ||
30362 | -#: config/sh/sh.c:8896 | |
30363 | +#: config/sh/sh.c:8899 | |
30364 | #, gcc-internal-format | |
30365 | msgid "%qE attribute is supported only for SH2A" | |
30366 | msgstr "el atributo %qE solo se admite para SH2A" | |
30367 | ||
30368 | -#: config/sh/sh.c:8926 | |
30369 | +#: config/sh/sh.c:8929 | |
30370 | #, gcc-internal-format | |
30371 | msgid "attribute interrupt_handler is not compatible with -m5-compact" | |
30372 | msgstr "el atributo interrupt_handler no es compatible con -m5-compact" | |
30373 | ||
30374 | -#: config/sh/sh.c:8943 | |
30375 | +#: config/sh/sh.c:8946 | |
30376 | #, gcc-internal-format | |
30377 | msgid "%qE attribute only applies to SH2A" | |
30378 | msgstr "el atributo %qE solo se aplica a SH2A" | |
30379 | ||
30380 | -#: config/sh/sh.c:8965 | |
30381 | +#: config/sh/sh.c:8968 | |
30382 | #, gcc-internal-format | |
30383 | msgid "%qE attribute argument should be between 0 to 255" | |
30384 | msgstr "el argumento del atributo %qE debe estar entre 0 y 255" | |
30385 | ||
30386 | #. The argument must be a constant string. | |
30387 | -#: config/sh/sh.c:9038 | |
30388 | +#: config/sh/sh.c:9041 | |
30389 | #, gcc-internal-format | |
30390 | msgid "%qE attribute argument not a string constant" | |
30391 | msgstr "el argumento del atributo %qE no es una constante de cadena" | |
30392 | ||
30393 | -#: config/sh/sh.c:11618 | |
30394 | +#: config/sh/sh.c:11621 | |
30395 | #, gcc-internal-format | |
30396 | msgid "r0 needs to be available as a call-clobbered register" | |
30397 | msgstr "r0 necesita estar disponible como un registro sobreescrito por llamada" | |
30398 | ||
30399 | -#: config/sh/sh.c:11639 | |
30400 | +#: config/sh/sh.c:11642 | |
30401 | #, gcc-internal-format | |
30402 | msgid "need a second call-clobbered general purpose register" | |
30403 | msgstr "se necesita un segundo registro de propósito general sobreescrito por llamada" | |
30404 | ||
30405 | -#: config/sh/sh.c:11647 | |
30406 | +#: config/sh/sh.c:11650 | |
30407 | #, gcc-internal-format | |
30408 | msgid "need a call-clobbered target register" | |
30409 | msgstr "se necesita un registro objetivo sobreescrito por llamada" | |
30410 | @@ -25564,12 +25564,12 @@ | |
30411 | msgid "__BELOW100__ attribute not allowed with auto storage class" | |
30412 | msgstr "no se permite el atributo __BELOW100__ con una clase de auto almacenamiento" | |
30413 | ||
30414 | -#: config/tilegx/tilegx.c:3397 config/tilepro/tilepro.c:3101 | |
30415 | +#: config/tilegx/tilegx.c:3398 config/tilepro/tilepro.c:3101 | |
30416 | #, gcc-internal-format | |
30417 | msgid "bad builtin icode" | |
30418 | msgstr "icode interno erróneo" | |
30419 | ||
30420 | -#: config/tilegx/tilegx.c:3438 config/tilepro/tilepro.c:3127 | |
30421 | +#: config/tilegx/tilegx.c:3439 config/tilepro/tilepro.c:3127 | |
30422 | #, gcc-internal-format | |
30423 | msgid "operand must be an immediate of the right size" | |
30424 | msgstr "el operando debe ser un inmediato del tamaño correcto" | |
30425 | @@ -25784,38 +25784,38 @@ | |
30426 | msgid "-fexcess-precision=standard for Ada" | |
30427 | msgstr "-fexcess-precision=standard para Ada" | |
30428 | ||
30429 | -#: ada/gcc-interface/utils.c:5312 ada/gcc-interface/utils.c:5487 | |
30430 | -#: ada/gcc-interface/utils.c:5529 ada/gcc-interface/utils.c:5583 | |
30431 | +#: ada/gcc-interface/utils.c:5303 ada/gcc-interface/utils.c:5478 | |
30432 | +#: ada/gcc-interface/utils.c:5520 ada/gcc-interface/utils.c:5574 | |
30433 | #, gcc-internal-format | |
30434 | msgid "%qs attribute ignored" | |
30435 | msgstr "se descarta el atributo %qs" | |
30436 | ||
30437 | -#: ada/gcc-interface/utils.c:5430 | |
30438 | +#: ada/gcc-interface/utils.c:5421 | |
30439 | #, gcc-internal-format | |
30440 | msgid "%qs attribute requires prototypes with named arguments" | |
30441 | msgstr "el atributo %qs requiere prototipos con argumentos nombrados" | |
30442 | ||
30443 | -#: ada/gcc-interface/utils.c:5439 | |
30444 | +#: ada/gcc-interface/utils.c:5430 | |
30445 | #, gcc-internal-format | |
30446 | msgid "%qs attribute only applies to variadic functions" | |
30447 | msgstr "el atributo %qs se aplica solamente a funciones variadic" | |
30448 | ||
30449 | -#: ada/gcc-interface/utils.c:5510 | |
30450 | +#: ada/gcc-interface/utils.c:5501 | |
30451 | #, gcc-internal-format | |
30452 | msgid "%qE attribute has no effect" | |
30453 | msgstr "el atributo %qE no tiene efecto" | |
30454 | ||
30455 | -#: ada/gcc-interface/utils.c:5616 | |
30456 | +#: ada/gcc-interface/utils.c:5607 | |
30457 | #, gcc-internal-format | |
30458 | msgid "invalid vector type for attribute %qs" | |
30459 | msgstr "tipo de vector inválido para el atributo %qs" | |
30460 | ||
30461 | -#: ada/gcc-interface/utils.c:5679 | |
30462 | +#: ada/gcc-interface/utils.c:5670 | |
30463 | #, gcc-internal-format | |
30464 | msgid "attribute %qs applies to array types only" | |
30465 | msgstr "el atributo %qs solamente se aplica a tipos de matriz" | |
30466 | ||
30467 | -#: ada/gcc-interface/utils.c:5706 | |
30468 | +#: ada/gcc-interface/utils.c:5697 | |
30469 | #, gcc-internal-format | |
30470 | msgid "invalid element type for attribute %qs" | |
30471 | msgstr "tipo de elemento inválido para el atributo %qs" | |
30472 | @@ -26252,7 +26252,7 @@ | |
30473 | msgid "passing %qT chooses %qT over %qT" | |
30474 | msgstr "al pasar %qT se escoge %qT sobre %qT" | |
30475 | ||
30476 | -#: cp/call.c:8070 cp/name-lookup.c:5495 | |
30477 | +#: cp/call.c:8070 cp/name-lookup.c:5500 | |
30478 | #, gcc-internal-format | |
30479 | msgid " in call to %qD" | |
30480 | msgstr " en la llamada a %qD" | |
30481 | @@ -26312,426 +26312,426 @@ | |
30482 | msgid "invalid initialization of reference of type %qT from expression of type %qT" | |
30483 | msgstr "inicialización inválida de la referencia de tipo %qT desde una expresión de tipo %qT" | |
30484 | ||
30485 | -#: cp/class.c:296 | |
30486 | +#: cp/class.c:297 | |
30487 | #, gcc-internal-format | |
30488 | msgid "cannot convert from base %qT to derived type %qT via virtual base %qT" | |
30489 | msgstr "no se puede convertir de la base %qT al tipo derivado %qT a través de la base virtual %qT" | |
30490 | ||
30491 | -#: cp/class.c:998 | |
30492 | +#: cp/class.c:999 | |
30493 | #, gcc-internal-format | |
30494 | msgid "Java class %qT cannot have a destructor" | |
30495 | msgstr "la clase Java %qT no puede tener un destructor" | |
30496 | ||
30497 | -#: cp/class.c:1000 | |
30498 | +#: cp/class.c:1001 | |
30499 | #, gcc-internal-format | |
30500 | msgid "Java class %qT cannot have an implicit non-trivial destructor" | |
30501 | msgstr "la clase Java %qT no puede tener un destructor implícito que no es trivial" | |
30502 | ||
30503 | -#: cp/class.c:1103 | |
30504 | +#: cp/class.c:1104 | |
30505 | #, gcc-internal-format | |
30506 | msgid "%q+#D cannot be overloaded" | |
30507 | msgstr "no se puede sobrecargar %q+#D" | |
30508 | ||
30509 | -#: cp/class.c:1104 | |
30510 | +#: cp/class.c:1105 | |
30511 | #, gcc-internal-format | |
30512 | msgid "with %q+#D" | |
30513 | msgstr "con %q+#D" | |
30514 | ||
30515 | -#: cp/class.c:1173 | |
30516 | +#: cp/class.c:1174 | |
30517 | #, gcc-internal-format | |
30518 | msgid "conflicting access specifications for method %q+D, ignored" | |
30519 | msgstr "especificaciones de acceso en conflicto para el método %q+D, descartado" | |
30520 | ||
30521 | -#: cp/class.c:1176 | |
30522 | +#: cp/class.c:1177 | |
30523 | #, gcc-internal-format | |
30524 | msgid "conflicting access specifications for field %qE, ignored" | |
30525 | msgstr "especificaciones de acceso en conflicto para el campo %qE, descartado" | |
30526 | ||
30527 | -#: cp/class.c:1238 cp/class.c:1246 | |
30528 | +#: cp/class.c:1239 cp/class.c:1247 | |
30529 | #, gcc-internal-format | |
30530 | msgid "%q+D invalid in %q#T" | |
30531 | msgstr "%q+D inválido en %q#T" | |
30532 | ||
30533 | -#: cp/class.c:1239 | |
30534 | +#: cp/class.c:1240 | |
30535 | #, gcc-internal-format | |
30536 | msgid " because of local method %q+#D with same name" | |
30537 | msgstr " debido al método local %q+#D con el mismo nombre" | |
30538 | ||
30539 | -#: cp/class.c:1247 | |
30540 | +#: cp/class.c:1248 | |
30541 | #, gcc-internal-format | |
30542 | msgid " because of local member %q+#D with same name" | |
30543 | msgstr " debido al miembro local %q+#D con el mismo nombre" | |
30544 | ||
30545 | -#: cp/class.c:1291 | |
30546 | +#: cp/class.c:1292 | |
30547 | #, gcc-internal-format | |
30548 | msgid "cannot derive from %<final%> base %qT in derived type %qT" | |
30549 | msgstr "no se puede derivar de la base %<final%> %qT al tipo derivado %qT" | |
30550 | ||
30551 | -#: cp/class.c:1303 | |
30552 | +#: cp/class.c:1304 | |
30553 | #, gcc-internal-format | |
30554 | msgid "base class %q#T has a non-virtual destructor" | |
30555 | msgstr "la clase base %q#T tiene un destructor no virtual" | |
30556 | ||
30557 | -#: cp/class.c:1707 | |
30558 | +#: cp/class.c:1708 | |
30559 | #, gcc-internal-format | |
30560 | msgid "all member functions in class %qT are private" | |
30561 | msgstr "todos las funciones miembros en la clase %qT son privadas" | |
30562 | ||
30563 | -#: cp/class.c:1719 | |
30564 | +#: cp/class.c:1720 | |
30565 | #, gcc-internal-format | |
30566 | msgid "%q#T only defines a private destructor and has no friends" | |
30567 | msgstr "%q#T solamente define un destructor privado y no tiene friends" | |
30568 | ||
30569 | -#: cp/class.c:1764 | |
30570 | +#: cp/class.c:1765 | |
30571 | #, gcc-internal-format | |
30572 | msgid "%q#T only defines private constructors and has no friends" | |
30573 | msgstr "%q#T solamente define constructores privados y no tiene friends" | |
30574 | ||
30575 | # Ojo, no es impostor, sino impositor, el que impone. cfuga | |
30576 | -#: cp/class.c:2157 | |
30577 | +#: cp/class.c:2158 | |
30578 | #, gcc-internal-format | |
30579 | msgid "no unique final overrider for %qD in %qT" | |
30580 | msgstr "no hay un impositor único final para %qD en %qT" | |
30581 | ||
30582 | -#: cp/class.c:2524 | |
30583 | +#: cp/class.c:2525 | |
30584 | #, gcc-internal-format | |
30585 | msgid "%q+#D marked final, but is not virtual" | |
30586 | msgstr "se marca %q+#D como final, pero no es virtual" | |
30587 | ||
30588 | -#: cp/class.c:2526 | |
30589 | +#: cp/class.c:2527 | |
30590 | #, gcc-internal-format | |
30591 | msgid "%q+#D marked override, but does not override" | |
30592 | msgstr "%q+#D se marca como override, pero no hace override" | |
30593 | ||
30594 | #. Here we know it is a hider, and no overrider exists. | |
30595 | -#: cp/class.c:2595 | |
30596 | +#: cp/class.c:2596 | |
30597 | #, gcc-internal-format | |
30598 | msgid "%q+D was hidden" | |
30599 | msgstr "%q+D estaba escondido" | |
30600 | ||
30601 | -#: cp/class.c:2596 | |
30602 | +#: cp/class.c:2597 | |
30603 | #, gcc-internal-format | |
30604 | msgid " by %q+D" | |
30605 | msgstr " por %q+D" | |
30606 | ||
30607 | -#: cp/class.c:2639 cp/decl2.c:1359 | |
30608 | +#: cp/class.c:2640 cp/decl2.c:1359 | |
30609 | #, gcc-internal-format | |
30610 | msgid "%q+#D invalid; an anonymous union can only have non-static data members" | |
30611 | msgstr "%q+#D inválido; un union anónimo sólo puede tener miembros con datos no estáticos" | |
30612 | ||
30613 | -#: cp/class.c:2642 | |
30614 | +#: cp/class.c:2643 | |
30615 | #, gcc-internal-format | |
30616 | msgid "%q+#D invalid; an anonymous struct can only have non-static data members" | |
30617 | msgstr "%q+#D inválido; un struct anónimo sólo puede tener miembros con datos no estáticos" | |
30618 | ||
30619 | -#: cp/class.c:2650 cp/decl2.c:1365 | |
30620 | +#: cp/class.c:2651 cp/decl2.c:1365 | |
30621 | #, gcc-internal-format | |
30622 | msgid "private member %q+#D in anonymous union" | |
30623 | msgstr "miembro privado %q+#D en union anónima" | |
30624 | ||
30625 | -#: cp/class.c:2652 | |
30626 | +#: cp/class.c:2653 | |
30627 | #, gcc-internal-format | |
30628 | msgid "private member %q+#D in anonymous struct" | |
30629 | msgstr "miembro privado %q+#D en struct anónimo" | |
30630 | ||
30631 | -#: cp/class.c:2657 cp/decl2.c:1367 | |
30632 | +#: cp/class.c:2658 cp/decl2.c:1367 | |
30633 | #, gcc-internal-format | |
30634 | msgid "protected member %q+#D in anonymous union" | |
30635 | msgstr "miembro protegido %q+#D en union anónima" | |
30636 | ||
30637 | -#: cp/class.c:2659 | |
30638 | +#: cp/class.c:2660 | |
30639 | #, gcc-internal-format | |
30640 | msgid "protected member %q+#D in anonymous struct" | |
30641 | msgstr "miembro protegido %q+#D en struct anónimo" | |
30642 | ||
30643 | -#: cp/class.c:2887 | |
30644 | +#: cp/class.c:2904 | |
30645 | #, gcc-internal-format | |
30646 | msgid "bit-field %q+#D with non-integral type" | |
30647 | msgstr "campo de bits %q+#D con tipo no entero" | |
30648 | ||
30649 | -#: cp/class.c:2903 | |
30650 | +#: cp/class.c:2920 | |
30651 | #, gcc-internal-format | |
30652 | msgid "bit-field %q+D width not an integer constant" | |
30653 | msgstr "la anchura del campo de bits %q+D no es una constante entera" | |
30654 | ||
30655 | -#: cp/class.c:2908 | |
30656 | +#: cp/class.c:2925 | |
30657 | #, gcc-internal-format | |
30658 | msgid "negative width in bit-field %q+D" | |
30659 | msgstr "anchura negativa en el campo de bits %q+D" | |
30660 | ||
30661 | -#: cp/class.c:2913 | |
30662 | +#: cp/class.c:2930 | |
30663 | #, gcc-internal-format | |
30664 | msgid "zero width for bit-field %q+D" | |
30665 | msgstr "anchura cero para el campo de bits %q+D" | |
30666 | ||
30667 | -#: cp/class.c:2919 | |
30668 | +#: cp/class.c:2936 | |
30669 | #, gcc-internal-format | |
30670 | msgid "width of %q+D exceeds its type" | |
30671 | msgstr "la anchura de %q+D excede su tipo" | |
30672 | ||
30673 | -#: cp/class.c:2923 | |
30674 | +#: cp/class.c:2940 | |
30675 | #, gcc-internal-format | |
30676 | msgid "%q+D is too small to hold all values of %q#T" | |
30677 | msgstr "%q+D es demasiado pequeño para contener todos los valores de %q#T" | |
30678 | ||
30679 | -#: cp/class.c:2982 | |
30680 | +#: cp/class.c:2999 | |
30681 | #, gcc-internal-format | |
30682 | msgid "member %q+#D with constructor not allowed in union" | |
30683 | msgstr "no se permite el miembro %q+#D con constructor en la union" | |
30684 | ||
30685 | -#: cp/class.c:2985 | |
30686 | +#: cp/class.c:3002 | |
30687 | #, gcc-internal-format | |
30688 | msgid "member %q+#D with destructor not allowed in union" | |
30689 | msgstr "no se permite el miembro %q+#D con destructor en la union" | |
30690 | ||
30691 | -#: cp/class.c:2987 | |
30692 | +#: cp/class.c:3004 | |
30693 | #, gcc-internal-format | |
30694 | msgid "member %q+#D with copy assignment operator not allowed in union" | |
30695 | msgstr "no se permite el miembro %q+#D con operador de asignación de copia en la union" | |
30696 | ||
30697 | -#: cp/class.c:2991 | |
30698 | +#: cp/class.c:3008 | |
30699 | #, gcc-internal-format | |
30700 | msgid "unrestricted unions only available with -std=c++11 or -std=gnu++11" | |
30701 | msgstr "las uniones sin restricción sólo están disponibles con -std=c++11 o -std=gnu++11" | |
30702 | ||
30703 | -#: cp/class.c:3025 | |
30704 | +#: cp/class.c:3042 | |
30705 | #, gcc-internal-format | |
30706 | msgid "multiple fields in union %qT initialized" | |
30707 | msgstr "múltiples campos inicializados en la unión %qT" | |
30708 | ||
30709 | -#: cp/class.c:3109 | |
30710 | +#: cp/class.c:3126 | |
30711 | #, gcc-internal-format | |
30712 | msgid "%q+D may not be static because it is a member of a union" | |
30713 | msgstr "%q+D no debe ser static porque es el miembro de una unión" | |
30714 | ||
30715 | -#: cp/class.c:3114 | |
30716 | +#: cp/class.c:3131 | |
30717 | #, gcc-internal-format | |
30718 | msgid "%q+D may not have reference type %qT because it is a member of a union" | |
30719 | msgstr "%q+D no puede tener el tipo de referencia %qT porque es el miembro de una unión" | |
30720 | ||
30721 | -#: cp/class.c:3125 | |
30722 | +#: cp/class.c:3142 | |
30723 | #, gcc-internal-format | |
30724 | msgid "field %q+D invalidly declared function type" | |
30725 | msgstr "el campo %q+D inválidamente se declara como un tipo de función" | |
30726 | ||
30727 | -#: cp/class.c:3131 | |
30728 | +#: cp/class.c:3148 | |
30729 | #, gcc-internal-format | |
30730 | msgid "field %q+D invalidly declared method type" | |
30731 | msgstr "el campo %q+D inválidamente se declara como un tipo de método" | |
30732 | ||
30733 | -#: cp/class.c:3187 | |
30734 | +#: cp/class.c:3204 | |
30735 | #, gcc-internal-format | |
30736 | msgid "ignoring packed attribute because of unpacked non-POD field %q+#D" | |
30737 | msgstr "se descartan los atributos packed por el campo %q+#D sin empacar que no es POD" | |
30738 | ||
30739 | -#: cp/class.c:3285 | |
30740 | +#: cp/class.c:3302 | |
30741 | #, gcc-internal-format | |
30742 | msgid "field %q+#D with same name as class" | |
30743 | msgstr "campo %q+#D con el mismo nombre que la clase" | |
30744 | ||
30745 | -#: cp/class.c:3308 | |
30746 | +#: cp/class.c:3325 | |
30747 | #, gcc-internal-format | |
30748 | msgid "%q#T has pointer data members" | |
30749 | msgstr "%q#T tiene miembros punteros a datos" | |
30750 | ||
30751 | -#: cp/class.c:3313 | |
30752 | +#: cp/class.c:3330 | |
30753 | #, gcc-internal-format | |
30754 | msgid " but does not override %<%T(const %T&)%>" | |
30755 | msgstr " pero no se impone a %<%T(const %T&)%>" | |
30756 | ||
30757 | -#: cp/class.c:3315 | |
30758 | +#: cp/class.c:3332 | |
30759 | #, gcc-internal-format | |
30760 | msgid " or %<operator=(const %T&)%>" | |
30761 | msgstr " o a %<operator=(cont %T&)%>" | |
30762 | ||
30763 | -#: cp/class.c:3319 | |
30764 | +#: cp/class.c:3336 | |
30765 | #, gcc-internal-format | |
30766 | msgid " but does not override %<operator=(const %T&)%>" | |
30767 | msgstr " pero no se impone a %<operator=(const %T&)%>" | |
30768 | ||
30769 | -#: cp/class.c:3790 | |
30770 | +#: cp/class.c:3807 | |
30771 | #, gcc-internal-format | |
30772 | msgid "offset of empty base %qT may not be ABI-compliant and maychange in a future version of GCC" | |
30773 | msgstr "el desplazamiento de la base vacía %qT puede no cumplir con la ABI y puede cambiar en una versión futura de GCC" | |
30774 | ||
30775 | -#: cp/class.c:3917 | |
30776 | +#: cp/class.c:3934 | |
30777 | #, gcc-internal-format | |
30778 | msgid "class %qT will be considered nearly empty in a future version of GCC" | |
30779 | msgstr "la clase %qT se considerará casi vacía en una versión futura de GCC" | |
30780 | ||
30781 | -#: cp/class.c:3999 | |
30782 | +#: cp/class.c:4016 | |
30783 | #, gcc-internal-format | |
30784 | msgid "initializer specified for non-virtual method %q+D" | |
30785 | msgstr "se especificó un inicializador para el método %q+D que no es virtual" | |
30786 | ||
30787 | -#: cp/class.c:4390 | |
30788 | +#: cp/class.c:4407 | |
30789 | #, gcc-internal-format | |
30790 | msgid "method overrides both %<transaction_pure%> and %qE methods" | |
30791 | msgstr "el método anula tanto %<transaction_pure%> como los métodos %qE" | |
30792 | ||
30793 | -#: cp/class.c:4411 | |
30794 | +#: cp/class.c:4428 | |
30795 | #, gcc-internal-format | |
30796 | msgid "method declared %qE overriding %qE method" | |
30797 | msgstr "el método declarado como %qE anula el método %qE" | |
30798 | ||
30799 | -#: cp/class.c:4877 cp/semantics.c:5729 | |
30800 | +#: cp/class.c:4894 cp/semantics.c:5729 | |
30801 | #, gcc-internal-format | |
30802 | msgid "enclosing class of constexpr non-static member function %q+#D is not a literal type" | |
30803 | msgstr "la clase envolvente de la función miembro que no es estática constexpr %q+#D no es un tipo literal" | |
30804 | ||
30805 | -#: cp/class.c:4902 | |
30806 | +#: cp/class.c:4919 | |
30807 | #, gcc-internal-format | |
30808 | msgid "%q+T is not literal because:" | |
30809 | msgstr "%q+T no es literal porque:" | |
30810 | ||
30811 | -#: cp/class.c:4904 | |
30812 | +#: cp/class.c:4921 | |
30813 | #, gcc-internal-format | |
30814 | msgid " %q+T has a non-trivial destructor" | |
30815 | msgstr " %q+T tiene un destructor que no es trivial" | |
30816 | ||
30817 | -#: cp/class.c:4909 | |
30818 | +#: cp/class.c:4926 | |
30819 | #, gcc-internal-format | |
30820 | msgid " %q+T is not an aggregate, does not have a trivial default constructor, and has no constexpr constructor that is not a copy or move constructor" | |
30821 | msgstr " %q+T no es un agregado, no tiene un constructor trivial por defecto y no tiene un constructor constexpr que no es un constructor copy o move" | |
30822 | ||
30823 | -#: cp/class.c:4945 | |
30824 | +#: cp/class.c:4962 | |
30825 | #, gcc-internal-format | |
30826 | msgid " base class %qT of %q+T is non-literal" | |
30827 | msgstr " la clase base %qT de %q+T no es literal" | |
30828 | ||
30829 | -#: cp/class.c:4959 | |
30830 | +#: cp/class.c:4976 | |
30831 | #, gcc-internal-format | |
30832 | msgid " non-static data member %q+D has non-literal type" | |
30833 | msgstr " el dato miembro que no es estático %q+D tiene un tipo que no es literal" | |
30834 | ||
30835 | -#: cp/class.c:5071 | |
30836 | +#: cp/class.c:5089 | |
30837 | #, gcc-internal-format | |
30838 | msgid "non-static reference %q+#D in class without a constructor" | |
30839 | msgstr "referencia %q+#D que no es static en una clase sin un constructor" | |
30840 | ||
30841 | -#: cp/class.c:5076 | |
30842 | +#: cp/class.c:5094 | |
30843 | #, gcc-internal-format | |
30844 | msgid "non-static const member %q+#D in class without a constructor" | |
30845 | msgstr "miembro const %q+#D que no es static en una clase sin un constructor" | |
30846 | ||
30847 | #. If the function is defaulted outside the class, we just | |
30848 | #. give the synthesis error. | |
30849 | -#: cp/class.c:5102 | |
30850 | +#: cp/class.c:5120 | |
30851 | #, gcc-internal-format | |
30852 | msgid "%q+D declared to take const reference, but implicit declaration would take non-const" | |
30853 | msgstr "se declaró %q+D para tomar referencia const, pero la declaración implícita tomaría algo que no es const" | |
30854 | ||
30855 | -#: cp/class.c:5105 | |
30856 | +#: cp/class.c:5123 | |
30857 | #, gcc-internal-format | |
30858 | msgid "%q+D declared to take non-const reference cannot be defaulted in the class body" | |
30859 | msgstr "se declaró %q+D para tomar referencia que no es const y no se puede definir por omisión en el cuerpo de clase" | |
30860 | ||
30861 | -#: cp/class.c:5329 | |
30862 | +#: cp/class.c:5347 | |
30863 | #, gcc-internal-format | |
30864 | msgid "offset of virtual base %qT is not ABI-compliant and may change in a future version of GCC" | |
30865 | msgstr "el desplazamiento de la base virtual %qT no cumple con la ABI y puede cambiar en una versión futura de GCC" | |
30866 | ||
30867 | -#: cp/class.c:5430 | |
30868 | +#: cp/class.c:5448 | |
30869 | #, gcc-internal-format | |
30870 | msgid "direct base %qT inaccessible in %qT due to ambiguity" | |
30871 | msgstr "base directa %qT inaccesible en %qT debido a ambigüedad" | |
30872 | ||
30873 | -#: cp/class.c:5442 | |
30874 | +#: cp/class.c:5460 | |
30875 | #, gcc-internal-format | |
30876 | msgid "virtual base %qT inaccessible in %qT due to ambiguity" | |
30877 | msgstr "base virtual %qT inaccesible en %qT debido a ambigüedad" | |
30878 | ||
30879 | -#: cp/class.c:5628 | |
30880 | +#: cp/class.c:5646 | |
30881 | #, gcc-internal-format | |
30882 | msgid "size assigned to %qT may not be ABI-compliant and may change in a future version of GCC" | |
30883 | msgstr "el tamaño asignado a %qT puede no cumplir con la ABI y puede cambiar en una versión futura de GCC" | |
30884 | ||
30885 | -#: cp/class.c:5668 | |
30886 | +#: cp/class.c:5686 | |
30887 | #, gcc-internal-format | |
30888 | msgid "the offset of %qD may not be ABI-compliant and may change in a future version of GCC" | |
30889 | msgstr "el desplazamiento de %qD tal vez no cumple con la ABI y puede cambiar en una versión futura de GCC" | |
30890 | ||
30891 | -#: cp/class.c:5696 | |
30892 | +#: cp/class.c:5714 | |
30893 | #, gcc-internal-format | |
30894 | msgid "offset of %q+D is not ABI-compliant and may change in a future version of GCC" | |
30895 | msgstr "el desplazamiento de %q+D no cumple con la ABI y puede cambiar en una versión futura de GCC" | |
30896 | ||
30897 | -#: cp/class.c:5706 | |
30898 | +#: cp/class.c:5724 | |
30899 | #, gcc-internal-format | |
30900 | msgid "%q+D contains empty classes which may cause base classes to be placed at different locations in a future version of GCC" | |
30901 | msgstr "%q+D contiene clases vacías las cuales pueden causar que las clases base se coloquen en diferentes ubicaciones en una versión futura de GCC" | |
30902 | ||
30903 | -#: cp/class.c:5794 | |
30904 | +#: cp/class.c:5812 | |
30905 | #, gcc-internal-format | |
30906 | msgid "layout of classes derived from empty class %qT may change in a future version of GCC" | |
30907 | msgstr "la disposición de clases derivadas de la clase vacía %qT puede cambiar en una versión futura de GCC" | |
30908 | ||
30909 | -#: cp/class.c:5963 cp/decl.c:11829 cp/parser.c:18586 | |
30910 | +#: cp/class.c:5980 cp/decl.c:11840 cp/parser.c:18573 | |
30911 | #, gcc-internal-format | |
30912 | msgid "redefinition of %q#T" | |
30913 | msgstr "redefinición de %q#T" | |
30914 | ||
30915 | -#: cp/class.c:6114 | |
30916 | +#: cp/class.c:6123 | |
30917 | #, gcc-internal-format | |
30918 | msgid "%q#T has virtual functions and accessible non-virtual destructor" | |
30919 | msgstr "%q#T tiene funciones virtuales y destructor no virtual accesible" | |
30920 | ||
30921 | -#: cp/class.c:6140 | |
30922 | +#: cp/class.c:6149 | |
30923 | #, gcc-internal-format | |
30924 | msgid "type transparent class %qT does not have any fields" | |
30925 | msgstr "la clase transparente tipo %qT no tiene ningún campo" | |
30926 | ||
30927 | -#: cp/class.c:6146 | |
30928 | +#: cp/class.c:6155 | |
30929 | #, gcc-internal-format | |
30930 | msgid "type transparent class %qT has base classes" | |
30931 | msgstr "la clase transparente tipo %qT tiene clases base" | |
30932 | ||
30933 | -#: cp/class.c:6150 | |
30934 | +#: cp/class.c:6159 | |
30935 | #, gcc-internal-format | |
30936 | msgid "type transparent class %qT has virtual functions" | |
30937 | msgstr "la clase transparente tipo %qT tiene funciones virtuales" | |
30938 | ||
30939 | -#: cp/class.c:6252 | |
30940 | +#: cp/class.c:6300 | |
30941 | #, gcc-internal-format | |
30942 | msgid "trying to finish struct, but kicked out due to previous parse errors" | |
30943 | msgstr "se trató de terminar struct, pero fue sacado debido a errores previos de decodificación" | |
30944 | ||
30945 | -#: cp/class.c:6758 | |
30946 | +#: cp/class.c:6810 | |
30947 | #, gcc-internal-format | |
30948 | msgid "language string %<\"%E\"%> not recognized" | |
30949 | msgstr "no se reconoce la cadena de lenguaje %<\"%E\"%>" | |
30950 | ||
30951 | -#: cp/class.c:6848 | |
30952 | +#: cp/class.c:6900 | |
30953 | #, gcc-internal-format | |
30954 | msgid "cannot resolve overloaded function %qD based on conversion to type %qT" | |
30955 | msgstr "no se puede resolver la función sobrecargada %qD basándose en la conversión al tipo %qT" | |
30956 | ||
30957 | -#: cp/class.c:6972 | |
30958 | +#: cp/class.c:7024 | |
30959 | #, gcc-internal-format | |
30960 | msgid "no matches converting function %qD to type %q#T" | |
30961 | msgstr "no hay coincidencias al convertir la función %qD al tipo %q#T" | |
30962 | ||
30963 | -#: cp/class.c:6995 | |
30964 | +#: cp/class.c:7047 | |
30965 | #, gcc-internal-format | |
30966 | msgid "converting overloaded function %qD to type %q#T is ambiguous" | |
30967 | msgstr "la conversión de la función sobrecargada %qD al tipo %q#T es ambigua" | |
30968 | ||
30969 | -#: cp/class.c:7022 | |
30970 | +#: cp/class.c:7074 | |
30971 | #, gcc-internal-format | |
30972 | msgid "assuming pointer to member %qD" | |
30973 | msgstr "asumiendo el puntero a miembro %qD" | |
30974 | ||
30975 | -#: cp/class.c:7025 | |
30976 | +#: cp/class.c:7077 | |
30977 | #, gcc-internal-format | |
30978 | msgid "(a pointer to member can only be formed with %<&%E%>)" | |
30979 | msgstr "(un puntero a miembro solamente se puede formar con %<&%E%>)" | |
30980 | ||
30981 | -#: cp/class.c:7087 cp/class.c:7121 | |
30982 | +#: cp/class.c:7139 cp/class.c:7173 | |
30983 | #, gcc-internal-format | |
30984 | msgid "not enough type information" | |
30985 | msgstr "no hay suficiente información de tipo" | |
30986 | ||
30987 | -#: cp/class.c:7104 cp/cvt.c:169 cp/cvt.c:194 cp/cvt.c:244 | |
30988 | +#: cp/class.c:7156 cp/cvt.c:169 cp/cvt.c:194 cp/cvt.c:244 | |
30989 | #, gcc-internal-format | |
30990 | msgid "cannot convert %qE from type %qT to type %qT" | |
30991 | msgstr "no se puede convertir %qE desde el tipo %qT al tipo %qT" | |
30992 | @@ -26741,12 +26741,12 @@ | |
30993 | #. A name N used in a class S shall refer to the same declaration | |
30994 | #. in its context and when re-evaluated in the completed scope of | |
30995 | #. S. | |
30996 | -#: cp/class.c:7415 cp/decl.c:1287 | |
30997 | +#: cp/class.c:7467 cp/decl.c:1287 | |
30998 | #, gcc-internal-format | |
30999 | msgid "declaration of %q#D" | |
31000 | msgstr "la declaración de %q#D" | |
31001 | ||
31002 | -#: cp/class.c:7416 | |
31003 | +#: cp/class.c:7468 | |
31004 | #, gcc-internal-format | |
31005 | msgid "changes meaning of %qD from %q+#D" | |
31006 | msgstr "cambia el significado de %qD a partir de %q+#D" | |
31007 | @@ -26766,7 +26766,7 @@ | |
31008 | msgid "conversion of %qE from %qT to %qT is ambiguous" | |
31009 | msgstr "la conversión de %qE desde %qT a %qT es ambigua" | |
31010 | ||
31011 | -#: cp/cvt.c:204 cp/decl.c:10586 cp/typeck.c:4101 | |
31012 | +#: cp/cvt.c:204 cp/decl.c:10584 cp/typeck.c:4101 | |
31013 | #, gcc-internal-format | |
31014 | msgid "zero as null pointer constant" | |
31015 | msgstr "cero como constante de puntero nulo" | |
31016 | @@ -27669,7 +27669,7 @@ | |
31017 | msgid "name used in a GNU-style designated initializer for an array" | |
31018 | msgstr "se usó un nombre en un inicializador designado de estilo GNU para una matriz" | |
31019 | ||
31020 | -#: cp/decl.c:4698 cp/typeck2.c:1084 cp/typeck2.c:1189 | |
31021 | +#: cp/decl.c:4698 cp/typeck2.c:1087 cp/typeck2.c:1192 | |
31022 | #, gcc-internal-format | |
31023 | msgid "non-trivial designated initializers not supported" | |
31024 | msgstr "no se admiten los inicializadores designados como no triviales" | |
31025 | @@ -27762,8 +27762,8 @@ | |
31026 | msgid "C99 designator %qE outside aggregate initializer" | |
31027 | msgstr "asignador C99 %qE fuera del inicializador agregado" | |
31028 | ||
31029 | -#: cp/decl.c:5195 cp/decl.c:5380 cp/typeck2.c:1071 cp/typeck2.c:1270 | |
31030 | -#: cp/typeck2.c:1299 cp/typeck2.c:1346 | |
31031 | +#: cp/decl.c:5195 cp/decl.c:5380 cp/typeck2.c:1074 cp/typeck2.c:1273 | |
31032 | +#: cp/typeck2.c:1302 cp/typeck2.c:1349 | |
31033 | #, gcc-internal-format | |
31034 | msgid "too many initializers for %qT" | |
31035 | msgstr "demasiados inicializadores para %qT" | |
31036 | @@ -28294,7 +28294,7 @@ | |
31037 | msgstr "el tipo %qT no es derivado del tipo %T" | |
31038 | ||
31039 | # FIXME traducción | |
31040 | -#: cp/decl.c:8519 cp/decl.c:8611 cp/decl.c:8620 cp/decl.c:9963 | |
31041 | +#: cp/decl.c:8519 cp/decl.c:8611 cp/decl.c:8620 cp/decl.c:9961 | |
31042 | #, gcc-internal-format | |
31043 | msgid "declaration of %qD as non-function" | |
31044 | msgstr "la declaración de %qD como algo que no es función" | |
31045 | @@ -28605,374 +28605,369 @@ | |
31046 | ||
31047 | #: cp/decl.c:9497 | |
31048 | #, gcc-internal-format | |
31049 | -msgid "both %<const%> and %<constexpr%> cannot be used here" | |
31050 | -msgstr "no se pueden usar aquí %<const%> ni %<constexpr%>" | |
31051 | - | |
31052 | -#: cp/decl.c:9499 | |
31053 | -#, gcc-internal-format | |
31054 | msgid "both %<volatile%> and %<constexpr%> cannot be used here" | |
31055 | msgstr "no se pueden usar aquí %<volatile%> ni %<constexpr%>" | |
31056 | ||
31057 | -#: cp/decl.c:9511 | |
31058 | +#: cp/decl.c:9509 | |
31059 | #, gcc-internal-format | |
31060 | msgid "template-id %qD used as a declarator" | |
31061 | msgstr "el id de plantilla %qD se usa como un declarador" | |
31062 | ||
31063 | -#: cp/decl.c:9562 | |
31064 | +#: cp/decl.c:9560 | |
31065 | #, gcc-internal-format | |
31066 | msgid "member functions are implicitly friends of their class" | |
31067 | msgstr "las funciones miembros son implícitamente friends de su clase" | |
31068 | ||
31069 | -#: cp/decl.c:9567 | |
31070 | +#: cp/decl.c:9565 | |
31071 | #, gcc-internal-format | |
31072 | msgid "extra qualification %<%T::%> on member %qs" | |
31073 | msgstr "calificación extra %<%T::%> en el miembro %qs" | |
31074 | ||
31075 | -#: cp/decl.c:9597 | |
31076 | +#: cp/decl.c:9595 | |
31077 | #, gcc-internal-format | |
31078 | msgid "cannot define member function %<%T::%s%> within %<%T%>" | |
31079 | msgstr "no se puede definir la función miembro %<%T::%s%> dentro de %<%T%>" | |
31080 | ||
31081 | -#: cp/decl.c:9599 | |
31082 | +#: cp/decl.c:9597 | |
31083 | #, gcc-internal-format | |
31084 | msgid "cannot declare member function %<%T::%s%> within %<%T%>" | |
31085 | msgstr "no se puede declarar la función miembro %<%T::%s%> dentro de %<%T%>" | |
31086 | ||
31087 | -#: cp/decl.c:9608 | |
31088 | +#: cp/decl.c:9606 | |
31089 | #, gcc-internal-format | |
31090 | msgid "cannot declare member %<%T::%s%> within %qT" | |
31091 | msgstr "no se puede declarar el miembro %<%T::%s%> dentro de %qT" | |
31092 | ||
31093 | -#: cp/decl.c:9634 | |
31094 | +#: cp/decl.c:9632 | |
31095 | #, gcc-internal-format | |
31096 | msgid "non-parameter %qs cannot be a parameter pack" | |
31097 | msgstr "%qs que no es parámetro no puede ser un paquete de parámetro" | |
31098 | ||
31099 | -#: cp/decl.c:9644 | |
31100 | +#: cp/decl.c:9642 | |
31101 | #, gcc-internal-format | |
31102 | msgid "size of array %qs is too large" | |
31103 | msgstr "el tamaño de la matriz %qs es demasiado grande" | |
31104 | ||
31105 | -#: cp/decl.c:9655 | |
31106 | +#: cp/decl.c:9653 | |
31107 | #, gcc-internal-format | |
31108 | msgid "data member may not have variably modified type %qT" | |
31109 | msgstr "los datos miembro pueden no tener el tipo modificado variablemente %qT" | |
31110 | ||
31111 | -#: cp/decl.c:9657 | |
31112 | +#: cp/decl.c:9655 | |
31113 | #, gcc-internal-format | |
31114 | msgid "parameter may not have variably modified type %qT" | |
31115 | msgstr "el parámetro puede no tener el tipo modificado variablemente %qT" | |
31116 | ||
31117 | #. [dcl.fct.spec] The explicit specifier shall only be used in | |
31118 | #. declarations of constructors within a class definition. | |
31119 | -#: cp/decl.c:9665 | |
31120 | +#: cp/decl.c:9663 | |
31121 | #, gcc-internal-format | |
31122 | msgid "only declarations of constructors can be %<explicit%>" | |
31123 | msgstr "solamente las declaraciones de constructores pueden ser %<explicit%>" | |
31124 | ||
31125 | -#: cp/decl.c:9673 | |
31126 | +#: cp/decl.c:9671 | |
31127 | #, gcc-internal-format | |
31128 | msgid "non-member %qs cannot be declared %<mutable%>" | |
31129 | msgstr "el no-miembro %qs no se puede declarar %<mutable%>" | |
31130 | ||
31131 | -#: cp/decl.c:9678 | |
31132 | +#: cp/decl.c:9676 | |
31133 | #, gcc-internal-format | |
31134 | msgid "non-object member %qs cannot be declared %<mutable%>" | |
31135 | msgstr "el miembro que no es objeto %qs no se puede declarar %<mutable%>" | |
31136 | ||
31137 | -#: cp/decl.c:9684 | |
31138 | +#: cp/decl.c:9682 | |
31139 | #, gcc-internal-format | |
31140 | msgid "function %qs cannot be declared %<mutable%>" | |
31141 | msgstr "la función %qs no se puede declarar %<mutable%>" | |
31142 | ||
31143 | -#: cp/decl.c:9689 | |
31144 | +#: cp/decl.c:9687 | |
31145 | #, gcc-internal-format | |
31146 | msgid "static %qs cannot be declared %<mutable%>" | |
31147 | msgstr "static %qs no se puede declarar %<mutable%>" | |
31148 | ||
31149 | -#: cp/decl.c:9694 | |
31150 | +#: cp/decl.c:9692 | |
31151 | #, gcc-internal-format | |
31152 | msgid "const %qs cannot be declared %<mutable%>" | |
31153 | msgstr "const %qs no se puede declarar %<mutable%>" | |
31154 | ||
31155 | -#: cp/decl.c:9699 | |
31156 | +#: cp/decl.c:9697 | |
31157 | #, gcc-internal-format | |
31158 | msgid "reference %qs cannot be declared %<mutable%>" | |
31159 | msgstr "la referencia %qs no se puede declarar %<mutable%>" | |
31160 | ||
31161 | -#: cp/decl.c:9734 | |
31162 | +#: cp/decl.c:9732 | |
31163 | #, gcc-internal-format | |
31164 | msgid "typedef declared %<auto%>" | |
31165 | msgstr "la definición de tipo se declaró %<auto%>" | |
31166 | ||
31167 | -#: cp/decl.c:9744 | |
31168 | +#: cp/decl.c:9742 | |
31169 | #, gcc-internal-format | |
31170 | msgid "typedef name may not be a nested-name-specifier" | |
31171 | msgstr "el nombre del typedef puede no ser un especificador-de-nombre-anidado" | |
31172 | ||
31173 | -#: cp/decl.c:9762 | |
31174 | +#: cp/decl.c:9760 | |
31175 | #, gcc-internal-format | |
31176 | msgid "ISO C++ forbids nested type %qD with same name as enclosing class" | |
31177 | msgstr "ISO C++ prohíbe el tipo anidado %qD con el mismo nombre que la clase que lo contiene" | |
31178 | ||
31179 | -#: cp/decl.c:9864 | |
31180 | +#: cp/decl.c:9862 | |
31181 | #, gcc-internal-format | |
31182 | msgid "qualified function types cannot be used to declare static member functions" | |
31183 | msgstr "los tipos de función calificados no se pueden usar para declarar una función miembro estática" | |
31184 | ||
31185 | -#: cp/decl.c:9866 | |
31186 | +#: cp/decl.c:9864 | |
31187 | #, gcc-internal-format | |
31188 | msgid "qualified function types cannot be used to declare free functions" | |
31189 | msgstr "los tipos de función calificados no se pueden usar para declarar funciones libres" | |
31190 | ||
31191 | -#: cp/decl.c:9893 | |
31192 | +#: cp/decl.c:9891 | |
31193 | #, gcc-internal-format | |
31194 | msgid "type qualifiers specified for friend class declaration" | |
31195 | msgstr "se especificaron calificadores de tipo para la declaración de clase friend" | |
31196 | ||
31197 | -#: cp/decl.c:9898 | |
31198 | +#: cp/decl.c:9896 | |
31199 | #, gcc-internal-format | |
31200 | msgid "%<inline%> specified for friend class declaration" | |
31201 | msgstr "se especificó %<inline%> para la declaración de clase friend" | |
31202 | ||
31203 | -#: cp/decl.c:9906 | |
31204 | +#: cp/decl.c:9904 | |
31205 | #, gcc-internal-format | |
31206 | msgid "template parameters cannot be friends" | |
31207 | msgstr "los parámetros de la plantilla no pueden ser friends" | |
31208 | ||
31209 | -#: cp/decl.c:9908 | |
31210 | +#: cp/decl.c:9906 | |
31211 | #, gcc-internal-format | |
31212 | msgid "friend declaration requires class-key, i.e. %<friend class %T::%D%>" | |
31213 | msgstr "la declaración friend requere una llave de clase, p.e. %<friend class %T::%D%>" | |
31214 | ||
31215 | -#: cp/decl.c:9912 | |
31216 | +#: cp/decl.c:9910 | |
31217 | #, gcc-internal-format | |
31218 | msgid "friend declaration requires class-key, i.e. %<friend %#T%>" | |
31219 | msgstr "la declaración friend requiere una llave de clase, p.e. %<friend %#T%>" | |
31220 | ||
31221 | -#: cp/decl.c:9925 | |
31222 | +#: cp/decl.c:9923 | |
31223 | #, gcc-internal-format | |
31224 | msgid "trying to make class %qT a friend of global scope" | |
31225 | msgstr "se intenta hacer que la clase %qT sea un friend de ámbito global" | |
31226 | ||
31227 | -#: cp/decl.c:9943 | |
31228 | +#: cp/decl.c:9941 | |
31229 | #, gcc-internal-format | |
31230 | msgid "invalid qualifiers on non-member function type" | |
31231 | msgstr "calificadores inválidos en el tipo de función que no es miembro" | |
31232 | ||
31233 | -#: cp/decl.c:9953 | |
31234 | +#: cp/decl.c:9951 | |
31235 | #, gcc-internal-format | |
31236 | msgid "abstract declarator %qT used as declaration" | |
31237 | msgstr "el declarador abstracto %qT se usó como declaración" | |
31238 | ||
31239 | -#: cp/decl.c:9982 | |
31240 | +#: cp/decl.c:9980 | |
31241 | #, gcc-internal-format | |
31242 | msgid "cannot use %<::%> in parameter declaration" | |
31243 | msgstr "no se puede usar %<::%> en la declaración de parámetros" | |
31244 | ||
31245 | -#: cp/decl.c:9986 | |
31246 | +#: cp/decl.c:9984 | |
31247 | #, gcc-internal-format | |
31248 | msgid "parameter declared %<auto%>" | |
31249 | msgstr "el parámetro se declaró %<auto%>" | |
31250 | ||
31251 | -#: cp/decl.c:10028 | |
31252 | +#: cp/decl.c:10026 | |
31253 | #, gcc-internal-format | |
31254 | msgid "non-static data member declared %<auto%>" | |
31255 | msgstr "se declaró el miembro dato que no es static como %<auto%>" | |
31256 | ||
31257 | #. Something like struct S { int N::j; }; | |
31258 | -#: cp/decl.c:10050 | |
31259 | +#: cp/decl.c:10048 | |
31260 | #, gcc-internal-format | |
31261 | msgid "invalid use of %<::%>" | |
31262 | msgstr "uso inválido de %<::%>" | |
31263 | ||
31264 | -#: cp/decl.c:10072 | |
31265 | +#: cp/decl.c:10070 | |
31266 | #, gcc-internal-format | |
31267 | msgid "declaration of function %qD in invalid context" | |
31268 | msgstr "declaración de la función %qD en un contexto inválido" | |
31269 | ||
31270 | -#: cp/decl.c:10081 | |
31271 | +#: cp/decl.c:10079 | |
31272 | #, gcc-internal-format | |
31273 | msgid "function %qD declared virtual inside a union" | |
31274 | msgstr "la función %qD se declaró virtual dentro de un union" | |
31275 | ||
31276 | -#: cp/decl.c:10090 | |
31277 | +#: cp/decl.c:10088 | |
31278 | #, gcc-internal-format | |
31279 | msgid "%qD cannot be declared virtual, since it is always static" | |
31280 | msgstr "%qD no se puede declarar virtual, ya que siempre es static" | |
31281 | ||
31282 | -#: cp/decl.c:10106 | |
31283 | +#: cp/decl.c:10104 | |
31284 | #, gcc-internal-format | |
31285 | msgid "expected qualified name in friend declaration for destructor %qD" | |
31286 | msgstr "se esperaba un nombre calificado en la declaración friend para el destructor %qD" | |
31287 | ||
31288 | -#: cp/decl.c:10113 | |
31289 | +#: cp/decl.c:10111 | |
31290 | #, gcc-internal-format | |
31291 | msgid "declaration of %qD as member of %qT" | |
31292 | msgstr "declaración de %qD como miembro de %qT" | |
31293 | ||
31294 | -#: cp/decl.c:10119 | |
31295 | +#: cp/decl.c:10117 | |
31296 | #, gcc-internal-format | |
31297 | msgid "a destructor cannot be %<constexpr%>" | |
31298 | msgstr "un destructor no puede ser %<constexpr%>" | |
31299 | ||
31300 | -#: cp/decl.c:10125 | |
31301 | +#: cp/decl.c:10123 | |
31302 | #, gcc-internal-format | |
31303 | msgid "expected qualified name in friend declaration for constructor %qD" | |
31304 | msgstr "se esperaba un nombre calificado en la declaración friend para el constructor %qD" | |
31305 | ||
31306 | -#: cp/decl.c:10171 | |
31307 | +#: cp/decl.c:10169 | |
31308 | #, gcc-internal-format | |
31309 | msgid "field %qD has incomplete type" | |
31310 | msgstr "el campo %qD tiene tipo de dato incompleto" | |
31311 | ||
31312 | -#: cp/decl.c:10173 | |
31313 | +#: cp/decl.c:10171 | |
31314 | #, gcc-internal-format | |
31315 | msgid "name %qT has incomplete type" | |
31316 | msgstr "el nombre %qT tiene tipo de dato incompleto" | |
31317 | ||
31318 | -#: cp/decl.c:10182 | |
31319 | +#: cp/decl.c:10180 | |
31320 | #, gcc-internal-format | |
31321 | msgid " in instantiation of template %qT" | |
31322 | msgstr " en la instanciación de la plantilla %qT" | |
31323 | ||
31324 | -#: cp/decl.c:10191 | |
31325 | +#: cp/decl.c:10189 | |
31326 | #, gcc-internal-format | |
31327 | msgid "%qE is neither function nor member function; cannot be declared friend" | |
31328 | msgstr "%qE no es ni función ni función miembro; no se puede declarar friend" | |
31329 | ||
31330 | -#: cp/decl.c:10243 | |
31331 | +#: cp/decl.c:10241 | |
31332 | #, gcc-internal-format | |
31333 | msgid "constexpr static data member %qD must have an initializer" | |
31334 | msgstr "el miembro dato static constexpr %qD debe tener un inicializador" | |
31335 | ||
31336 | -#: cp/decl.c:10252 | |
31337 | +#: cp/decl.c:10250 | |
31338 | #, gcc-internal-format | |
31339 | msgid "non-static data member %qE declared %<constexpr%>" | |
31340 | msgstr "se declaró el miembro dato que no es static %qE como %<constexpr%>" | |
31341 | ||
31342 | -#: cp/decl.c:10302 | |
31343 | +#: cp/decl.c:10300 | |
31344 | #, gcc-internal-format | |
31345 | msgid "storage class %<auto%> invalid for function %qs" | |
31346 | msgstr "la clase de almacenamiento %<auto%> es inválida para la función %qs" | |
31347 | ||
31348 | -#: cp/decl.c:10304 | |
31349 | +#: cp/decl.c:10302 | |
31350 | #, gcc-internal-format | |
31351 | msgid "storage class %<register%> invalid for function %qs" | |
31352 | msgstr "la clase de almacenamiento %<register%> es inválida para la función %qs" | |
31353 | ||
31354 | -#: cp/decl.c:10306 | |
31355 | +#: cp/decl.c:10304 | |
31356 | #, gcc-internal-format | |
31357 | msgid "storage class %<__thread%> invalid for function %qs" | |
31358 | msgstr "la clase de almacenamiento %<__thread%> es inválida para la función %qs" | |
31359 | ||
31360 | -#: cp/decl.c:10309 | |
31361 | +#: cp/decl.c:10307 | |
31362 | #, gcc-internal-format | |
31363 | msgid "virt-specifiers in %qs not allowed outside a class definition" | |
31364 | msgstr "no se permiten los especificadores-virt en %qs fuera de una definición de clase" | |
31365 | ||
31366 | -#: cp/decl.c:10320 | |
31367 | +#: cp/decl.c:10318 | |
31368 | #, gcc-internal-format | |
31369 | msgid "%<static%> specified invalid for function %qs declared out of global scope" | |
31370 | msgstr "el especificador %<static%> es inválido para la función %qs declarada fuera del ámbito global" | |
31371 | ||
31372 | -#: cp/decl.c:10324 | |
31373 | +#: cp/decl.c:10322 | |
31374 | #, gcc-internal-format | |
31375 | msgid "%<inline%> specifier invalid for function %qs declared out of global scope" | |
31376 | msgstr "el especificador %<inline%> es inválido para la función %qs declarada fuera del ámbito global" | |
31377 | ||
31378 | -#: cp/decl.c:10332 | |
31379 | +#: cp/decl.c:10330 | |
31380 | #, gcc-internal-format | |
31381 | msgid "virtual non-class function %qs" | |
31382 | msgstr "función virtual %qs que no es clase" | |
31383 | ||
31384 | -#: cp/decl.c:10339 | |
31385 | +#: cp/decl.c:10337 | |
31386 | #, gcc-internal-format | |
31387 | msgid "%qs defined in a non-class scope" | |
31388 | msgstr "se definió %qs en un ámbito que no es una clase" | |
31389 | ||
31390 | -#: cp/decl.c:10340 | |
31391 | +#: cp/decl.c:10338 | |
31392 | #, gcc-internal-format | |
31393 | msgid "%qs declared in a non-class scope" | |
31394 | msgstr "se declaró %qs en un ámbito que no es una clase" | |
31395 | ||
31396 | -#: cp/decl.c:10368 | |
31397 | +#: cp/decl.c:10366 | |
31398 | #, gcc-internal-format | |
31399 | msgid "cannot declare member function %qD to have static linkage" | |
31400 | msgstr "no se puede declarar que la función miembro %qD tenga enlace estático" | |
31401 | ||
31402 | #. FIXME need arm citation | |
31403 | -#: cp/decl.c:10375 | |
31404 | +#: cp/decl.c:10373 | |
31405 | #, gcc-internal-format | |
31406 | msgid "cannot declare static function inside another function" | |
31407 | msgstr "no se puede declarar una función static dentro de otra función" | |
31408 | ||
31409 | -#: cp/decl.c:10405 | |
31410 | +#: cp/decl.c:10403 | |
31411 | #, gcc-internal-format | |
31412 | msgid "%<static%> may not be used when defining (as opposed to declaring) a static data member" | |
31413 | msgstr "%<static%> puede no ser utilizado cuando se define (opuesto a la declaración) un dato miembro static" | |
31414 | ||
31415 | -#: cp/decl.c:10412 | |
31416 | +#: cp/decl.c:10410 | |
31417 | #, gcc-internal-format | |
31418 | msgid "static member %qD declared %<register%>" | |
31419 | msgstr "se declaró el miembro static %qD como %<register%>" | |
31420 | ||
31421 | -#: cp/decl.c:10418 | |
31422 | +#: cp/decl.c:10416 | |
31423 | #, gcc-internal-format | |
31424 | msgid "cannot explicitly declare member %q#D to have extern linkage" | |
31425 | msgstr "no se puede declarar explícitamente que el miembro %q#D tenga un enlace externo" | |
31426 | ||
31427 | -#: cp/decl.c:10425 | |
31428 | +#: cp/decl.c:10423 | |
31429 | #, gcc-internal-format | |
31430 | msgid "declaration of constexpr variable %qD is not a definition" | |
31431 | msgstr "la declaración de la variable constexpr %qD no es una definición" | |
31432 | ||
31433 | -#: cp/decl.c:10438 | |
31434 | +#: cp/decl.c:10436 | |
31435 | #, gcc-internal-format | |
31436 | msgid "%qs initialized and declared %<extern%>" | |
31437 | msgstr "%qs inicializado y declarado como %<extern%>" | |
31438 | ||
31439 | -#: cp/decl.c:10442 | |
31440 | +#: cp/decl.c:10440 | |
31441 | #, gcc-internal-format | |
31442 | msgid "%qs has both %<extern%> and initializer" | |
31443 | msgstr "%qs tiene %<extern%> e inicializador al mismo tiempo" | |
31444 | ||
31445 | -#: cp/decl.c:10570 | |
31446 | +#: cp/decl.c:10568 | |
31447 | #, gcc-internal-format | |
31448 | msgid "default argument for %q#D has type %qT" | |
31449 | msgstr "el argumento por defecto de %q#D tiene tipo %qT" | |
31450 | ||
31451 | -#: cp/decl.c:10573 | |
31452 | +#: cp/decl.c:10571 | |
31453 | #, gcc-internal-format | |
31454 | msgid "default argument for parameter of type %qT has type %qT" | |
31455 | msgstr "el argumento por defecto para el parámetro del tipo %qT tiene el tipo %qT" | |
31456 | ||
31457 | -#: cp/decl.c:10601 | |
31458 | +#: cp/decl.c:10599 | |
31459 | #, gcc-internal-format | |
31460 | msgid "default argument %qE uses %qD" | |
31461 | msgstr "el argumento por defecto %qE usa %qD" | |
31462 | ||
31463 | -#: cp/decl.c:10603 | |
31464 | +#: cp/decl.c:10601 | |
31465 | #, gcc-internal-format | |
31466 | msgid "default argument %qE uses local variable %qD" | |
31467 | msgstr "el argumento por defecto %qE usa la variable local %qD" | |
31468 | ||
31469 | -#: cp/decl.c:10691 | |
31470 | +#: cp/decl.c:10689 | |
31471 | #, gcc-internal-format | |
31472 | msgid "parameter %qD has Java class type" | |
31473 | msgstr "el parámetro %qD tiene tipo de clase Java" | |
31474 | ||
31475 | -#: cp/decl.c:10719 | |
31476 | +#: cp/decl.c:10717 | |
31477 | #, gcc-internal-format | |
31478 | msgid "parameter %qD invalidly declared method type" | |
31479 | msgstr "el parámetro %qD se declaró inválidamente como tipo de método" | |
31480 | ||
31481 | -#: cp/decl.c:10744 | |
31482 | +#: cp/decl.c:10742 | |
31483 | #, gcc-internal-format | |
31484 | msgid "parameter %qD includes pointer to array of unknown bound %qT" | |
31485 | msgstr "el parámetro %qD incluye un puntero a matriz %qT de límite desconocido" | |
31486 | ||
31487 | -#: cp/decl.c:10746 | |
31488 | +#: cp/decl.c:10744 | |
31489 | #, gcc-internal-format | |
31490 | msgid "parameter %qD includes reference to array of unknown bound %qT" | |
31491 | msgstr "el parámetro %qD incluye una referencia a matriz %qT de límite desconocido" | |
31492 | @@ -28992,170 +28987,170 @@ | |
31493 | #. or implicitly defined), there's no need to worry about their | |
31494 | #. existence. Theoretically, they should never even be | |
31495 | #. instantiated, but that's hard to forestall. | |
31496 | -#: cp/decl.c:10987 | |
31497 | +#: cp/decl.c:10998 | |
31498 | #, gcc-internal-format | |
31499 | msgid "invalid constructor; you probably meant %<%T (const %T&)%>" | |
31500 | msgstr "constructor inválido; tal vez quiso decir %<%T (const %T&)%>" | |
31501 | ||
31502 | -#: cp/decl.c:11109 | |
31503 | +#: cp/decl.c:11120 | |
31504 | #, gcc-internal-format | |
31505 | msgid "%qD may not be declared within a namespace" | |
31506 | msgstr "%qD no se puede declarar dentro de un espacio de nombres" | |
31507 | ||
31508 | -#: cp/decl.c:11114 | |
31509 | +#: cp/decl.c:11125 | |
31510 | #, gcc-internal-format | |
31511 | msgid "%qD may not be declared as static" | |
31512 | msgstr "%qD no se puede declarar como static" | |
31513 | ||
31514 | -#: cp/decl.c:11140 | |
31515 | +#: cp/decl.c:11151 | |
31516 | #, gcc-internal-format | |
31517 | msgid "%qD must be a nonstatic member function" | |
31518 | msgstr "%qD debe ser una función miembro que no sea static" | |
31519 | ||
31520 | -#: cp/decl.c:11149 | |
31521 | +#: cp/decl.c:11160 | |
31522 | #, gcc-internal-format | |
31523 | msgid "%qD must be either a non-static member function or a non-member function" | |
31524 | msgstr "%qD debe ser una función miembro que no sea static o una función que no sea miembro" | |
31525 | ||
31526 | -#: cp/decl.c:11171 | |
31527 | +#: cp/decl.c:11182 | |
31528 | #, gcc-internal-format | |
31529 | msgid "%qD must have an argument of class or enumerated type" | |
31530 | msgstr "%qD debe tener un argumento de tipo clase o enumerado" | |
31531 | ||
31532 | -#: cp/decl.c:11200 | |
31533 | +#: cp/decl.c:11211 | |
31534 | #, gcc-internal-format | |
31535 | msgid "conversion to a reference to void will never use a type conversion operator" | |
31536 | msgstr "la conversión a una referencia a void nunca usará un operador de conversión de tipo" | |
31537 | ||
31538 | -#: cp/decl.c:11202 | |
31539 | +#: cp/decl.c:11213 | |
31540 | #, gcc-internal-format | |
31541 | msgid "conversion to void will never use a type conversion operator" | |
31542 | msgstr "la conversión a void nunca usará un operador de conversión de tipo" | |
31543 | ||
31544 | -#: cp/decl.c:11209 | |
31545 | +#: cp/decl.c:11220 | |
31546 | #, gcc-internal-format | |
31547 | msgid "conversion to a reference to the same type will never use a type conversion operator" | |
31548 | msgstr "la conversión a una referencia al mismo tipo nunca usará un operador de conversión de tipo" | |
31549 | ||
31550 | -#: cp/decl.c:11211 | |
31551 | +#: cp/decl.c:11222 | |
31552 | #, gcc-internal-format | |
31553 | msgid "conversion to the same type will never use a type conversion operator" | |
31554 | msgstr "la conversión al mismo tipo nunca usará un operador de conversión de tipo" | |
31555 | ||
31556 | -#: cp/decl.c:11219 | |
31557 | +#: cp/decl.c:11230 | |
31558 | #, gcc-internal-format | |
31559 | msgid "conversion to a reference to a base class will never use a type conversion operator" | |
31560 | msgstr "la conversión a una referencia a una clase base nunca usará un operador de conversión de tipo" | |
31561 | ||
31562 | -#: cp/decl.c:11221 | |
31563 | +#: cp/decl.c:11232 | |
31564 | #, gcc-internal-format | |
31565 | msgid "conversion to a base class will never use a type conversion operator" | |
31566 | msgstr "la conversión a una clase base nunca usará un operador de conversión de tipo" | |
31567 | ||
31568 | #. 13.4.0.3 | |
31569 | -#: cp/decl.c:11230 | |
31570 | +#: cp/decl.c:11241 | |
31571 | #, gcc-internal-format | |
31572 | msgid "ISO C++ prohibits overloading operator ?:" | |
31573 | msgstr "ISO C++ prohíbe la sobrecarga del operador ?:" | |
31574 | ||
31575 | -#: cp/decl.c:11235 | |
31576 | +#: cp/decl.c:11246 | |
31577 | #, gcc-internal-format | |
31578 | msgid "%qD must not have variable number of arguments" | |
31579 | msgstr "%qD no debe tener un número variable de argumentos" | |
31580 | ||
31581 | -#: cp/decl.c:11286 | |
31582 | +#: cp/decl.c:11297 | |
31583 | #, gcc-internal-format | |
31584 | msgid "postfix %qD must take %<int%> as its argument" | |
31585 | msgstr "el postfijo %qD debe tomar %<int%> como su argumento" | |
31586 | ||
31587 | -#: cp/decl.c:11289 | |
31588 | +#: cp/decl.c:11300 | |
31589 | #, gcc-internal-format | |
31590 | msgid "postfix %qD must take %<int%> as its second argument" | |
31591 | msgstr "el postfijo %qD debe tomar %<int%> como su segundo argumento" | |
31592 | ||
31593 | -#: cp/decl.c:11297 | |
31594 | +#: cp/decl.c:11308 | |
31595 | #, gcc-internal-format | |
31596 | msgid "%qD must take either zero or one argument" | |
31597 | msgstr "%qD debe tomar cero o un argumentos" | |
31598 | ||
31599 | -#: cp/decl.c:11299 | |
31600 | +#: cp/decl.c:11310 | |
31601 | #, gcc-internal-format | |
31602 | msgid "%qD must take either one or two arguments" | |
31603 | msgstr "%qD debe tomar uno o dos argumentos" | |
31604 | ||
31605 | # En esta traducción se emplea 'devolver' por 'return'. Si embargo, aquí | |
31606 | # se cambió por cacofonía: no es agradable escuchar 'debe devolver'. cfuga | |
31607 | -#: cp/decl.c:11321 | |
31608 | +#: cp/decl.c:11332 | |
31609 | #, gcc-internal-format | |
31610 | msgid "prefix %qD should return %qT" | |
31611 | msgstr "el prefijo %qD debe regresar %qT" | |
31612 | ||
31613 | -#: cp/decl.c:11327 | |
31614 | +#: cp/decl.c:11338 | |
31615 | #, gcc-internal-format | |
31616 | msgid "postfix %qD should return %qT" | |
31617 | msgstr "el postfijo %qD debe regresar %qT" | |
31618 | ||
31619 | -#: cp/decl.c:11336 | |
31620 | +#: cp/decl.c:11347 | |
31621 | #, gcc-internal-format | |
31622 | msgid "%qD must take %<void%>" | |
31623 | msgstr "%qD debe tomar %<void%>" | |
31624 | ||
31625 | -#: cp/decl.c:11338 cp/decl.c:11347 | |
31626 | +#: cp/decl.c:11349 cp/decl.c:11358 | |
31627 | #, gcc-internal-format | |
31628 | msgid "%qD must take exactly one argument" | |
31629 | msgstr "%qD debe tomar un argumento exactamente" | |
31630 | ||
31631 | -#: cp/decl.c:11349 | |
31632 | +#: cp/decl.c:11360 | |
31633 | #, gcc-internal-format | |
31634 | msgid "%qD must take exactly two arguments" | |
31635 | msgstr "%qD debe tomar dos argumentos exactamente" | |
31636 | ||
31637 | -#: cp/decl.c:11358 | |
31638 | +#: cp/decl.c:11369 | |
31639 | #, gcc-internal-format | |
31640 | msgid "user-defined %qD always evaluates both arguments" | |
31641 | msgstr "el %qD definido por el usuario siempre evalúa ambos argumentos" | |
31642 | ||
31643 | -#: cp/decl.c:11372 | |
31644 | +#: cp/decl.c:11383 | |
31645 | #, gcc-internal-format | |
31646 | msgid "%qD should return by value" | |
31647 | msgstr "%qD debe devolver por valor" | |
31648 | ||
31649 | -#: cp/decl.c:11383 cp/decl.c:11388 | |
31650 | +#: cp/decl.c:11394 cp/decl.c:11399 | |
31651 | #, gcc-internal-format | |
31652 | msgid "%qD cannot have default arguments" | |
31653 | msgstr "%qD no puede tener argumentos por defecto" | |
31654 | ||
31655 | -#: cp/decl.c:11449 | |
31656 | +#: cp/decl.c:11460 | |
31657 | #, gcc-internal-format | |
31658 | msgid "using template type parameter %qT after %qs" | |
31659 | msgstr "usando el parámetro de tipo plantilla %qT después de %qs" | |
31660 | ||
31661 | -#: cp/decl.c:11471 | |
31662 | +#: cp/decl.c:11482 | |
31663 | #, gcc-internal-format | |
31664 | msgid "using alias template specialization %qT after %qs" | |
31665 | msgstr "se usa especialización de plantilla %qT alias después de %qs" | |
31666 | ||
31667 | -#: cp/decl.c:11474 | |
31668 | +#: cp/decl.c:11485 | |
31669 | #, gcc-internal-format | |
31670 | msgid "using typedef-name %qD after %qs" | |
31671 | msgstr "se usó el nombre de definición de tipo %qD después de %qs" | |
31672 | ||
31673 | -#: cp/decl.c:11476 | |
31674 | +#: cp/decl.c:11487 | |
31675 | #, gcc-internal-format | |
31676 | msgid "%qD has a previous declaration here" | |
31677 | msgstr "%qD tiene una declaración previa aquí" | |
31678 | ||
31679 | -#: cp/decl.c:11484 | |
31680 | +#: cp/decl.c:11495 | |
31681 | #, gcc-internal-format | |
31682 | msgid "%qT referred to as %qs" | |
31683 | msgstr "se refirió a %qT como %qs" | |
31684 | ||
31685 | -#: cp/decl.c:11485 cp/decl.c:11492 | |
31686 | +#: cp/decl.c:11496 cp/decl.c:11503 | |
31687 | #, gcc-internal-format | |
31688 | msgid "%q+T has a previous declaration here" | |
31689 | msgstr "%q+T tiene una declaración previa aquí" | |
31690 | ||
31691 | -#: cp/decl.c:11491 | |
31692 | +#: cp/decl.c:11502 | |
31693 | #, gcc-internal-format | |
31694 | msgid "%qT referred to as enum" | |
31695 | msgstr "se refirió a %qT como un enum" | |
31696 | @@ -29167,90 +29162,90 @@ | |
31697 | #. void f(class C); // No template header here | |
31698 | #. | |
31699 | #. then the required template argument is missing. | |
31700 | -#: cp/decl.c:11506 | |
31701 | +#: cp/decl.c:11517 | |
31702 | #, gcc-internal-format | |
31703 | msgid "template argument required for %<%s %T%>" | |
31704 | msgstr "se requiere un argumento de plantilla para %<%s %T%>" | |
31705 | ||
31706 | -#: cp/decl.c:11554 cp/name-lookup.c:3052 | |
31707 | +#: cp/decl.c:11565 cp/name-lookup.c:3057 | |
31708 | #, gcc-internal-format | |
31709 | msgid "%qD has the same name as the class in which it is declared" | |
31710 | msgstr "%qD tiene el mismo nombre que la clase en la cual se declaró" | |
31711 | ||
31712 | -#: cp/decl.c:11584 cp/name-lookup.c:2551 cp/name-lookup.c:3376 | |
31713 | -#: cp/name-lookup.c:3421 cp/parser.c:5060 cp/parser.c:20517 | |
31714 | +#: cp/decl.c:11595 cp/name-lookup.c:2556 cp/name-lookup.c:3381 | |
31715 | +#: cp/name-lookup.c:3426 cp/parser.c:5060 cp/parser.c:20512 | |
31716 | #, gcc-internal-format | |
31717 | msgid "reference to %qD is ambiguous" | |
31718 | msgstr "la referencia a %qD es ambigua" | |
31719 | ||
31720 | -#: cp/decl.c:11696 | |
31721 | +#: cp/decl.c:11707 | |
31722 | #, gcc-internal-format | |
31723 | msgid "use of enum %q#D without previous declaration" | |
31724 | msgstr "uso del enum %q#D sin declaración previa" | |
31725 | ||
31726 | -#: cp/decl.c:11717 | |
31727 | +#: cp/decl.c:11728 | |
31728 | #, gcc-internal-format | |
31729 | msgid "redeclaration of %qT as a non-template" | |
31730 | msgstr "redeclaración de %qT como algo que no es plantilla" | |
31731 | ||
31732 | -#: cp/decl.c:11718 | |
31733 | +#: cp/decl.c:11729 | |
31734 | #, gcc-internal-format | |
31735 | msgid "previous declaration %q+D" | |
31736 | msgstr "declaración previa de %q+D" | |
31737 | ||
31738 | -#: cp/decl.c:11852 | |
31739 | +#: cp/decl.c:11863 | |
31740 | #, gcc-internal-format | |
31741 | msgid "derived union %qT invalid" | |
31742 | msgstr "union derivada %qT inválida" | |
31743 | ||
31744 | -#: cp/decl.c:11861 | |
31745 | +#: cp/decl.c:11872 | |
31746 | #, gcc-internal-format | |
31747 | msgid "Java class %qT cannot have multiple bases" | |
31748 | msgstr "la clase Java %qT no puede tener bases múltiples" | |
31749 | ||
31750 | -#: cp/decl.c:11872 | |
31751 | +#: cp/decl.c:11883 | |
31752 | #, gcc-internal-format | |
31753 | msgid "Java class %qT cannot have virtual bases" | |
31754 | msgstr "la clase Java %qT no puede tener bases virtuales" | |
31755 | ||
31756 | # No me gusta mucho esta traducción. Creo que es mejor | |
31757 | # "el tipo base %qT no es de tipo struct o clase". cfuga | |
31758 | -#: cp/decl.c:11892 | |
31759 | +#: cp/decl.c:11903 | |
31760 | #, gcc-internal-format | |
31761 | msgid "base type %qT fails to be a struct or class type" | |
31762 | msgstr "el tipo base %qT falla en ser un tipo struct o clase" | |
31763 | ||
31764 | -#: cp/decl.c:11925 | |
31765 | +#: cp/decl.c:11936 | |
31766 | #, gcc-internal-format | |
31767 | msgid "recursive type %qT undefined" | |
31768 | msgstr "tipo recursivo %qT sin definir" | |
31769 | ||
31770 | -#: cp/decl.c:11927 | |
31771 | +#: cp/decl.c:11938 | |
31772 | #, gcc-internal-format | |
31773 | msgid "duplicate base type %qT invalid" | |
31774 | msgstr "tipo base duplicado %qT inválido" | |
31775 | ||
31776 | -#: cp/decl.c:12051 | |
31777 | +#: cp/decl.c:12062 | |
31778 | #, gcc-internal-format | |
31779 | msgid "scoped/unscoped mismatch in enum %q#T" | |
31780 | msgstr "no coinciden scoped/unscoped en el enum %q#T" | |
31781 | ||
31782 | -#: cp/decl.c:12054 cp/decl.c:12062 cp/decl.c:12074 cp/parser.c:14523 | |
31783 | +#: cp/decl.c:12065 cp/decl.c:12073 cp/decl.c:12085 cp/parser.c:14523 | |
31784 | #, gcc-internal-format | |
31785 | msgid "previous definition here" | |
31786 | msgstr "la definición previa está aquí" | |
31787 | ||
31788 | -#: cp/decl.c:12059 | |
31789 | +#: cp/decl.c:12070 | |
31790 | #, gcc-internal-format | |
31791 | msgid "underlying type mismatch in enum %q#T" | |
31792 | msgstr "no coincide el tipo subyacente en el enum %q#T" | |
31793 | ||
31794 | -#: cp/decl.c:12071 | |
31795 | +#: cp/decl.c:12082 | |
31796 | #, gcc-internal-format | |
31797 | msgid "different underlying type in enum %q#T" | |
31798 | msgstr "tipos subyacentes diferentes en el enum %q#T" | |
31799 | ||
31800 | -#: cp/decl.c:12138 | |
31801 | +#: cp/decl.c:12149 | |
31802 | #, gcc-internal-format | |
31803 | msgid "underlying type %<%T%> of %<%T%> must be an integral type" | |
31804 | msgstr "el tipo subyacente %<%T%> de %<%T%> debe ser un tipo integral" | |
31805 | @@ -29259,72 +29254,72 @@ | |
31806 | #. | |
31807 | #. IF no integral type can represent all the enumerator values, the | |
31808 | #. enumeration is ill-formed. | |
31809 | -#: cp/decl.c:12272 | |
31810 | +#: cp/decl.c:12283 | |
31811 | #, gcc-internal-format | |
31812 | msgid "no integral type can represent all of the enumerator values for %qT" | |
31813 | msgstr "ningún tipo integral puede representar todos los valores de enumerador de %qT" | |
31814 | ||
31815 | -#: cp/decl.c:12407 | |
31816 | +#: cp/decl.c:12424 | |
31817 | #, gcc-internal-format | |
31818 | msgid "enumerator value for %qD is not an integer constant" | |
31819 | msgstr "el valor de enumerador para %qD no es una constante entera" | |
31820 | ||
31821 | -#: cp/decl.c:12457 | |
31822 | +#: cp/decl.c:12474 | |
31823 | #, gcc-internal-format | |
31824 | msgid "incremented enumerator value is too large for %<unsigned long%>" | |
31825 | msgstr "el valor del enumerador incrementado es demasiado grande para %<unsigned long%>" | |
31826 | ||
31827 | -#: cp/decl.c:12469 | |
31828 | +#: cp/decl.c:12486 | |
31829 | #, gcc-internal-format | |
31830 | msgid "overflow in enumeration values at %qD" | |
31831 | msgstr "desbordamiento en valores de enumeración en %qD" | |
31832 | ||
31833 | -#: cp/decl.c:12489 | |
31834 | +#: cp/decl.c:12506 | |
31835 | #, gcc-internal-format | |
31836 | msgid "enumerator value %E is too large for underlying type %<%T%>" | |
31837 | msgstr "el valor de enumerador %E es demasiado grande para el tipo subyacente %<%T%>" | |
31838 | ||
31839 | -#: cp/decl.c:12586 | |
31840 | +#: cp/decl.c:12603 | |
31841 | #, gcc-internal-format | |
31842 | msgid "return type %q#T is incomplete" | |
31843 | msgstr "el tipo de devolución %q#T es un tipo de dato incompleto" | |
31844 | ||
31845 | -#: cp/decl.c:12588 | |
31846 | +#: cp/decl.c:12605 | |
31847 | #, gcc-internal-format | |
31848 | msgid "return type has Java class type %q#T" | |
31849 | msgstr "el tipo de devolución tiene tipo de clase Java %q#T" | |
31850 | ||
31851 | -#: cp/decl.c:12712 cp/typeck.c:7909 | |
31852 | +#: cp/decl.c:12729 cp/typeck.c:7909 | |
31853 | #, gcc-internal-format | |
31854 | msgid "%<operator=%> should return a reference to %<*this%>" | |
31855 | msgstr "%<operator=%> debe devolver una referencia a %<*this%>" | |
31856 | ||
31857 | -#: cp/decl.c:12807 | |
31858 | +#: cp/decl.c:12824 | |
31859 | #, gcc-internal-format | |
31860 | msgid "no previous declaration for %q+D" | |
31861 | msgstr "no hay declaración previa para %q+D" | |
31862 | ||
31863 | -#: cp/decl.c:13022 | |
31864 | +#: cp/decl.c:13039 | |
31865 | #, gcc-internal-format | |
31866 | msgid "invalid function declaration" | |
31867 | msgstr "declaración de función inválida" | |
31868 | ||
31869 | -#: cp/decl.c:13106 | |
31870 | +#: cp/decl.c:13123 | |
31871 | #, gcc-internal-format | |
31872 | msgid "parameter %qD declared void" | |
31873 | msgstr "el parámetro %qD se declaró void" | |
31874 | ||
31875 | -#: cp/decl.c:13559 | |
31876 | +#: cp/decl.c:13576 | |
31877 | #, gcc-internal-format | |
31878 | msgid "parameter %q+D set but not used" | |
31879 | msgstr "se define el parámetro %q+D pero no se usa" | |
31880 | ||
31881 | -#: cp/decl.c:13654 | |
31882 | +#: cp/decl.c:13671 | |
31883 | #, gcc-internal-format | |
31884 | msgid "invalid member function declaration" | |
31885 | msgstr "declaración de la función miembro inválida" | |
31886 | ||
31887 | -#: cp/decl.c:13668 | |
31888 | +#: cp/decl.c:13685 | |
31889 | #, gcc-internal-format | |
31890 | msgid "%qD is already defined in class %qT" | |
31891 | msgstr "%qD ya se definió en la clase %qT" | |
31892 | @@ -29672,7 +29667,7 @@ | |
31893 | msgid "throwing NULL, which has integral, not pointer type" | |
31894 | msgstr "arrojando NULL, que tiene un tipo integral, que no es puntero" | |
31895 | ||
31896 | -#: cp/except.c:743 cp/init.c:2308 | |
31897 | +#: cp/except.c:743 cp/init.c:2310 | |
31898 | #, gcc-internal-format | |
31899 | msgid "%qD should never be overloaded" | |
31900 | msgstr "%qD nunca se debe sobrecargar" | |
31901 | @@ -29931,152 +29926,152 @@ | |
31902 | msgid "bad array initializer" | |
31903 | msgstr "inicializador de matriz erróneo" | |
31904 | ||
31905 | -#: cp/init.c:1778 cp/semantics.c:2780 | |
31906 | +#: cp/init.c:1780 cp/semantics.c:2780 | |
31907 | #, gcc-internal-format | |
31908 | msgid "%qT is not a class type" | |
31909 | msgstr "%qT no es un tipo de clase" | |
31910 | ||
31911 | -#: cp/init.c:1832 | |
31912 | +#: cp/init.c:1834 | |
31913 | #, gcc-internal-format | |
31914 | msgid "incomplete type %qT does not have member %qD" | |
31915 | msgstr "el tipo incompleto %qT no tiene al miembro %qD" | |
31916 | ||
31917 | -#: cp/init.c:1845 | |
31918 | +#: cp/init.c:1847 | |
31919 | #, gcc-internal-format | |
31920 | msgid "invalid pointer to bit-field %qD" | |
31921 | msgstr "puntero inválido al campo de bits %qD" | |
31922 | ||
31923 | -#: cp/init.c:1922 | |
31924 | +#: cp/init.c:1924 | |
31925 | #, gcc-internal-format | |
31926 | msgid "invalid use of non-static member function %qD" | |
31927 | msgstr "uso inválido de la función miembro no static %qD" | |
31928 | ||
31929 | -#: cp/init.c:1928 | |
31930 | +#: cp/init.c:1930 | |
31931 | #, gcc-internal-format | |
31932 | msgid "invalid use of non-static data member %qD" | |
31933 | msgstr "uso inválido del dato miembro no static %qD" | |
31934 | ||
31935 | -#: cp/init.c:2110 | |
31936 | +#: cp/init.c:2112 | |
31937 | #, gcc-internal-format | |
31938 | msgid "uninitialized reference member in %q#T using %<new%> without new-initializer" | |
31939 | msgstr "un miembro referencia sin inicializar en %q#T usa %<new%> sin un inicializador new" | |
31940 | ||
31941 | -#: cp/init.c:2113 | |
31942 | +#: cp/init.c:2115 | |
31943 | #, gcc-internal-format | |
31944 | msgid "uninitialized reference member in %q#T" | |
31945 | msgstr "miembro referencia sin inicializar en %q#T" | |
31946 | ||
31947 | -#: cp/init.c:2125 | |
31948 | +#: cp/init.c:2127 | |
31949 | #, gcc-internal-format | |
31950 | msgid "uninitialized const member in %q#T using %<new%> without new-initializer" | |
31951 | msgstr "un miembro const sin inicializar en %q#T usa %<new%> sin un inicializador new" | |
31952 | ||
31953 | -#: cp/init.c:2128 | |
31954 | +#: cp/init.c:2130 | |
31955 | #, gcc-internal-format | |
31956 | msgid "uninitialized const member in %q#T" | |
31957 | msgstr "miembro const sin inicializar en %q#T" | |
31958 | ||
31959 | -#: cp/init.c:2225 | |
31960 | +#: cp/init.c:2227 | |
31961 | #, gcc-internal-format | |
31962 | msgid "invalid type %<void%> for new" | |
31963 | msgstr "tipo %<void%> inválido para new" | |
31964 | ||
31965 | -#: cp/init.c:2268 | |
31966 | +#: cp/init.c:2270 | |
31967 | #, gcc-internal-format | |
31968 | msgid "uninitialized const in %<new%> of %q#T" | |
31969 | msgstr "const sin inicializar en %<new%> de %q#T" | |
31970 | ||
31971 | -#: cp/init.c:2302 | |
31972 | +#: cp/init.c:2304 | |
31973 | #, gcc-internal-format | |
31974 | msgid "call to Java constructor with %qs undefined" | |
31975 | msgstr "llamado a constructor Java con %qs sin definir" | |
31976 | ||
31977 | -#: cp/init.c:2318 | |
31978 | +#: cp/init.c:2320 | |
31979 | #, gcc-internal-format | |
31980 | msgid "Java class %q#T object allocated using placement new" | |
31981 | msgstr "se aloja el objeto de clase Java %q#T usando una ubicación new" | |
31982 | ||
31983 | -#: cp/init.c:2348 | |
31984 | +#: cp/init.c:2350 | |
31985 | #, gcc-internal-format | |
31986 | msgid "no suitable %qD found in class %qT" | |
31987 | msgstr "no se encontró un %qD adecuado en la clase %qT" | |
31988 | ||
31989 | -#: cp/init.c:2355 cp/search.c:1107 | |
31990 | +#: cp/init.c:2357 cp/search.c:1107 | |
31991 | #, gcc-internal-format | |
31992 | msgid "request for member %qD is ambiguous" | |
31993 | msgstr "la petición para el miembro %qD es ambigua" | |
31994 | ||
31995 | -#: cp/init.c:2563 | |
31996 | +#: cp/init.c:2565 | |
31997 | #, gcc-internal-format | |
31998 | msgid "non-constant array size in new, unable to verify length of initializer-list" | |
31999 | msgstr "tamaño de matriz no constante en new, no se puede verificar la longitud de la lista del inicializador" | |
32000 | ||
32001 | -#: cp/init.c:2574 | |
32002 | +#: cp/init.c:2576 | |
32003 | #, gcc-internal-format | |
32004 | msgid "parenthesized initializer in array new" | |
32005 | msgstr "inicializador entre paréntesis en la matriz new" | |
32006 | ||
32007 | -#: cp/init.c:2808 | |
32008 | +#: cp/init.c:2810 | |
32009 | #, gcc-internal-format | |
32010 | msgid "size in array new must have integral type" | |
32011 | msgstr "el tamaño de la matriz nueva debe tener un tipo integral" | |
32012 | ||
32013 | -#: cp/init.c:2822 | |
32014 | +#: cp/init.c:2824 | |
32015 | #, gcc-internal-format | |
32016 | msgid "new cannot be applied to a reference type" | |
32017 | msgstr "new no se puede aplicar a un tipo de referencia" | |
32018 | ||
32019 | -#: cp/init.c:2831 | |
32020 | +#: cp/init.c:2833 | |
32021 | #, gcc-internal-format | |
32022 | msgid "new cannot be applied to a function type" | |
32023 | msgstr "new no se puede aplicar a un tipo de función" | |
32024 | ||
32025 | -#: cp/init.c:2875 | |
32026 | +#: cp/init.c:2877 | |
32027 | #, gcc-internal-format | |
32028 | msgid "call to Java constructor, while %<jclass%> undefined" | |
32029 | msgstr "llamado a constructor Java, mientras %<jclass%> está indefinido" | |
32030 | ||
32031 | -#: cp/init.c:2893 | |
32032 | +#: cp/init.c:2895 | |
32033 | #, gcc-internal-format | |
32034 | msgid "can%'t find %<class$%> in %qT" | |
32035 | msgstr "no se puede encontrar %<class$%> en %qT" | |
32036 | ||
32037 | -#: cp/init.c:3382 | |
32038 | +#: cp/init.c:3384 | |
32039 | #, gcc-internal-format | |
32040 | msgid "initializer ends prematurely" | |
32041 | msgstr "el inicializador termina prematuramente" | |
32042 | ||
32043 | -#: cp/init.c:3446 | |
32044 | +#: cp/init.c:3448 | |
32045 | #, gcc-internal-format | |
32046 | msgid "cannot initialize multi-dimensional array with initializer" | |
32047 | msgstr "no se pueden inicializar matrices multidimensionales con el inicializador" | |
32048 | ||
32049 | -#: cp/init.c:3620 | |
32050 | +#: cp/init.c:3622 | |
32051 | #, gcc-internal-format | |
32052 | msgid "possible problem detected in invocation of delete operator:" | |
32053 | msgstr "se detectó un posible problema en la invocación del operador delete:" | |
32054 | ||
32055 | -#: cp/init.c:3624 | |
32056 | +#: cp/init.c:3626 | |
32057 | #, gcc-internal-format | |
32058 | msgid "neither the destructor nor the class-specific operator delete will be called, even if they are declared when the class is defined" | |
32059 | msgstr "no se llamará ni al destructor ni al operador delete específico de la clase, aún si se declaran cuando se defina la clase" | |
32060 | ||
32061 | -#: cp/init.c:3640 | |
32062 | +#: cp/init.c:3642 | |
32063 | #, gcc-internal-format | |
32064 | msgid "deleting object of abstract class type %qT which has non-virtual destructor will cause undefined behaviour" | |
32065 | msgstr "si borra un objeto de tipo de clase abstracta %qT que tiene un destructor que no es virtual, puede causar conducta indefinida" | |
32066 | ||
32067 | -#: cp/init.c:3645 | |
32068 | +#: cp/init.c:3647 | |
32069 | #, gcc-internal-format | |
32070 | msgid "deleting object of polymorphic class type %qT which has non-virtual destructor might cause undefined behaviour" | |
32071 | msgstr "si borra un objeto de tipo de clase polimórfica %qT que tiene un destructor que no es virtual, puede causar conducta indefinida" | |
32072 | ||
32073 | -#: cp/init.c:3667 | |
32074 | +#: cp/init.c:3669 | |
32075 | #, gcc-internal-format | |
32076 | msgid "unknown array size in delete" | |
32077 | msgstr "tamaño de matriz desconocida en delete" | |
32078 | ||
32079 | -#: cp/init.c:3936 | |
32080 | +#: cp/init.c:3938 | |
32081 | #, gcc-internal-format | |
32082 | msgid "type to vector delete is neither pointer or array type" | |
32083 | msgstr "el tipo de vector delete no es del tipo puntero ni matriz" | |
32084 | @@ -30166,12 +30161,12 @@ | |
32085 | msgid "string literal in function template signature" | |
32086 | msgstr "literal de cadena en la firma de plantilla de función" | |
32087 | ||
32088 | -#: cp/mangle.c:3244 | |
32089 | +#: cp/mangle.c:3249 | |
32090 | #, gcc-internal-format | |
32091 | msgid "the mangled name of %qD will change in a future version of GCC" | |
32092 | msgstr "el nombre revuelto de %qD cambiará en una versión futura de GCC" | |
32093 | ||
32094 | -#: cp/mangle.c:3388 | |
32095 | +#: cp/mangle.c:3393 | |
32096 | #, gcc-internal-format | |
32097 | msgid "-fabi-version=6 (or =0) avoids this error with a change in mangling" | |
32098 | msgstr "-fabi-version=6 (o =0) evita este error con un cambio en la decodificación" | |
32099 | @@ -30181,12 +30176,12 @@ | |
32100 | msgid "generic thunk code fails for method %q#D which uses %<...%>" | |
32101 | msgstr "el código de thunk genérico falló para el método %q#D que utiliza %<...%>" | |
32102 | ||
32103 | -#: cp/method.c:664 cp/method.c:1003 | |
32104 | +#: cp/method.c:664 cp/method.c:1002 | |
32105 | #, gcc-internal-format | |
32106 | msgid "non-static const member %q#D, can%'t use default assignment operator" | |
32107 | msgstr "el miembro const %q#D que no es static, no puede usar el operador de asignación por defecto" | |
32108 | ||
32109 | -#: cp/method.c:670 cp/method.c:1009 | |
32110 | +#: cp/method.c:670 cp/method.c:1008 | |
32111 | #, gcc-internal-format | |
32112 | msgid "non-static reference member %q#D, can%'t use default assignment operator" | |
32113 | msgstr "el miembro de referencia %q#D que no es static, no puede usar el operador de asignación por defecto" | |
32114 | @@ -30201,98 +30196,98 @@ | |
32115 | msgid "union member %q+D with non-trivial %qD" | |
32116 | msgstr "miembro union %q+D con %qD que no es trivial" | |
32117 | ||
32118 | -#: cp/method.c:964 | |
32119 | +#: cp/method.c:963 | |
32120 | #, gcc-internal-format | |
32121 | msgid "defaulted constructor calls non-constexpr %q+D" | |
32122 | msgstr "un constructor por defecto llama a %q+D que no es constexpr" | |
32123 | ||
32124 | -#: cp/method.c:1025 | |
32125 | +#: cp/method.c:1024 | |
32126 | #, gcc-internal-format | |
32127 | msgid "initializer for %q+#D is invalid" | |
32128 | msgstr "el inicializador para %q+#D es inválido" | |
32129 | ||
32130 | -#: cp/method.c:1048 | |
32131 | +#: cp/method.c:1047 | |
32132 | #, gcc-internal-format | |
32133 | msgid "uninitialized non-static const member %q#D" | |
32134 | msgstr "miembro const que no es estático %q#D sin inicializar" | |
32135 | ||
32136 | -#: cp/method.c:1055 | |
32137 | +#: cp/method.c:1054 | |
32138 | #, gcc-internal-format | |
32139 | msgid "uninitialized non-static reference member %q#D" | |
32140 | msgstr "miembro referencia que no es estático %q#D sin inicializar" | |
32141 | ||
32142 | -#: cp/method.c:1071 | |
32143 | +#: cp/method.c:1070 | |
32144 | #, gcc-internal-format | |
32145 | msgid "defaulted default constructor does not initialize %q+#D" | |
32146 | msgstr "el constructor por defecto en efecto no inicializa %q+#D" | |
32147 | ||
32148 | #. A trivial constructor doesn't have any NSDMI. | |
32149 | -#: cp/method.c:1220 | |
32150 | +#: cp/method.c:1223 | |
32151 | #, gcc-internal-format | |
32152 | msgid "defaulted default constructor does not initialize any non-static data member" | |
32153 | msgstr "el constructor por defecto en efecto no inicializa ningún dato miembro que no es static" | |
32154 | ||
32155 | -#: cp/method.c:1298 | |
32156 | +#: cp/method.c:1304 | |
32157 | #, gcc-internal-format | |
32158 | msgid "%qT has virtual bases, default move assignment operator cannot be generated" | |
32159 | msgstr "%qT tiene bases virtuales, no se puede generar el operador de asignación move por defecto" | |
32160 | ||
32161 | -#: cp/method.c:1388 | |
32162 | +#: cp/method.c:1395 | |
32163 | #, gcc-internal-format | |
32164 | msgid "a lambda closure type has a deleted default constructor" | |
32165 | msgstr "un tipo de conclusión lambda tiene un constructor por defecto borrado" | |
32166 | ||
32167 | -#: cp/method.c:1391 | |
32168 | +#: cp/method.c:1398 | |
32169 | #, gcc-internal-format | |
32170 | msgid "a lambda closure type has a deleted copy assignment operator" | |
32171 | msgstr "un tipo de conclusión lambda tiene un operador de asignación por copia borrado" | |
32172 | ||
32173 | -#: cp/method.c:1401 | |
32174 | +#: cp/method.c:1408 | |
32175 | #, gcc-internal-format | |
32176 | msgid "%q+#D is implicitly declared as deleted because %qT declares a move constructor or move assignment operator" | |
32177 | msgstr "%q+#D se declara implícitamente como deleted porque %qT declara un constructor move o un operador de asignación move" | |
32178 | ||
32179 | -#: cp/method.c:1411 | |
32180 | +#: cp/method.c:1418 | |
32181 | #, gcc-internal-format | |
32182 | msgid "%q+#D is implicitly deleted because the default definition would be ill-formed:" | |
32183 | msgstr "%q+#D es implícitamente deleted por que la definición por defecto estaría mal formada:" | |
32184 | ||
32185 | -#: cp/method.c:1621 | |
32186 | +#: cp/method.c:1630 | |
32187 | #, gcc-internal-format | |
32188 | msgid "defaulted declaration %q+D" | |
32189 | msgstr "declaración definida por defecto %q+D" | |
32190 | ||
32191 | -#: cp/method.c:1623 | |
32192 | +#: cp/method.c:1632 | |
32193 | #, gcc-internal-format | |
32194 | msgid "does not match expected signature %qD" | |
32195 | msgstr "no coincide la firma esperada %qD" | |
32196 | ||
32197 | -#: cp/method.c:1637 | |
32198 | +#: cp/method.c:1646 | |
32199 | #, gcc-internal-format | |
32200 | msgid "function %q+D defaulted on its first declaration with an exception-specification that differs from the implicit declaration %q#D" | |
32201 | msgstr "la función %q+D definida por defecto en su primera declaración tiene una excepción de especificación que difiere de la declaración implícita %q#D" | |
32202 | ||
32203 | -#: cp/method.c:1658 | |
32204 | +#: cp/method.c:1667 | |
32205 | #, gcc-internal-format | |
32206 | msgid "explicitly defaulted function %q+D cannot be declared as constexpr because the implicit declaration is not constexpr:" | |
32207 | msgstr "la función %q+D explícitamente por defecto no se puede declarar como constexpr porque la declaración implícita no es constexpr:" | |
32208 | ||
32209 | -#: cp/method.c:1680 | |
32210 | +#: cp/method.c:1689 | |
32211 | #, gcc-internal-format | |
32212 | msgid "a template cannot be defaulted" | |
32213 | msgstr "una plantilla no se puede definir por defecto" | |
32214 | ||
32215 | -#: cp/method.c:1708 | |
32216 | +#: cp/method.c:1717 | |
32217 | #, gcc-internal-format | |
32218 | msgid "%qD cannot be defaulted" | |
32219 | msgstr "%qD no se puede definir por defecto" | |
32220 | ||
32221 | -#: cp/method.c:1717 | |
32222 | +#: cp/method.c:1726 | |
32223 | #, gcc-internal-format | |
32224 | msgid "defaulted function %q+D with default argument" | |
32225 | msgstr "función definida por defecto %q+D con argumento por defecto" | |
32226 | ||
32227 | -#: cp/method.c:1805 | |
32228 | +#: cp/method.c:1818 | |
32229 | #, gcc-internal-format | |
32230 | msgid "vtable layout for class %qT may not be ABI-compliantand may change in a future version of GCC due to implicit virtual destructor" | |
32231 | msgstr "la disposición vtable para la clase %qT puede no cumplir con la ABI y puede cambiar en una versión futura de GCC debido al destructor virtual implícito" | |
32232 | @@ -30429,154 +30424,154 @@ | |
32233 | msgid "%s %s %p %d\n" | |
32234 | msgstr "%s %s %p %d\n" | |
32235 | ||
32236 | -#: cp/name-lookup.c:2252 | |
32237 | +#: cp/name-lookup.c:2257 | |
32238 | #, gcc-internal-format | |
32239 | msgid "%q#D hides constructor for %q#T" | |
32240 | msgstr "%q#D esconde el destructor para %q#T" | |
32241 | ||
32242 | -#: cp/name-lookup.c:2269 | |
32243 | +#: cp/name-lookup.c:2274 | |
32244 | #, gcc-internal-format | |
32245 | msgid "%q#D conflicts with previous using declaration %q#D" | |
32246 | msgstr "%q#D genera un conflicto con la declaración previa en uso %q#D" | |
32247 | ||
32248 | -#: cp/name-lookup.c:2292 | |
32249 | +#: cp/name-lookup.c:2297 | |
32250 | #, gcc-internal-format | |
32251 | msgid "previous non-function declaration %q+#D" | |
32252 | msgstr "la declaración previa %q+#D que no es función" | |
32253 | ||
32254 | -#: cp/name-lookup.c:2293 | |
32255 | +#: cp/name-lookup.c:2298 | |
32256 | #, gcc-internal-format | |
32257 | msgid "conflicts with function declaration %q#D" | |
32258 | msgstr "genera un conflicto con la declaración de la función %q#D" | |
32259 | ||
32260 | #. It's a nested name with template parameter dependent scope. | |
32261 | #. This can only be using-declaration for class member. | |
32262 | -#: cp/name-lookup.c:2383 cp/name-lookup.c:2408 | |
32263 | +#: cp/name-lookup.c:2388 cp/name-lookup.c:2413 | |
32264 | #, gcc-internal-format | |
32265 | msgid "%qT is not a namespace" | |
32266 | msgstr "%qT no es un espacio de nombres" | |
32267 | ||
32268 | #. 7.3.3/5 | |
32269 | #. A using-declaration shall not name a template-id. | |
32270 | -#: cp/name-lookup.c:2393 | |
32271 | +#: cp/name-lookup.c:2398 | |
32272 | #, gcc-internal-format | |
32273 | msgid "a using-declaration cannot specify a template-id. Try %<using %D%>" | |
32274 | msgstr "una declaración de uso no puede especificar un id de plantilla. Intente %<using %D%>" | |
32275 | ||
32276 | -#: cp/name-lookup.c:2400 | |
32277 | +#: cp/name-lookup.c:2405 | |
32278 | #, gcc-internal-format | |
32279 | msgid "namespace %qD not allowed in using-declaration" | |
32280 | msgstr "no se permite el espacio de nombres %qD en la declaración using" | |
32281 | ||
32282 | -#: cp/name-lookup.c:2436 | |
32283 | +#: cp/name-lookup.c:2441 | |
32284 | #, gcc-internal-format | |
32285 | msgid "%qD not declared" | |
32286 | msgstr "no se declaró %qD" | |
32287 | ||
32288 | -#: cp/name-lookup.c:2472 cp/name-lookup.c:2509 cp/name-lookup.c:2543 | |
32289 | -#: cp/name-lookup.c:2558 | |
32290 | +#: cp/name-lookup.c:2477 cp/name-lookup.c:2514 cp/name-lookup.c:2548 | |
32291 | +#: cp/name-lookup.c:2563 | |
32292 | #, gcc-internal-format | |
32293 | msgid "%qD is already declared in this scope" | |
32294 | msgstr "%qD ya se declaró en este ámbito" | |
32295 | ||
32296 | -#: cp/name-lookup.c:3201 | |
32297 | +#: cp/name-lookup.c:3206 | |
32298 | #, gcc-internal-format | |
32299 | msgid "using-declaration for non-member at class scope" | |
32300 | msgstr "declaración de uso para un no miembro en el ámbito de la clase" | |
32301 | ||
32302 | -#: cp/name-lookup.c:3208 | |
32303 | +#: cp/name-lookup.c:3213 | |
32304 | #, gcc-internal-format | |
32305 | msgid "%<%T::%D%> names destructor" | |
32306 | msgstr "%<%T::%D%> nombra al destructor" | |
32307 | ||
32308 | -#: cp/name-lookup.c:3213 | |
32309 | +#: cp/name-lookup.c:3218 | |
32310 | #, gcc-internal-format | |
32311 | msgid "%<%T::%D%> names constructor" | |
32312 | msgstr "%<%T::%D%> nombra al constructor" | |
32313 | ||
32314 | -#: cp/name-lookup.c:3218 | |
32315 | +#: cp/name-lookup.c:3223 | |
32316 | #, gcc-internal-format | |
32317 | msgid "%<%T::%D%> names constructor in %qT" | |
32318 | msgstr "%<%T::%D%> nombra al constructor en %qT" | |
32319 | ||
32320 | -#: cp/name-lookup.c:3268 | |
32321 | +#: cp/name-lookup.c:3273 | |
32322 | #, gcc-internal-format | |
32323 | msgid "no members matching %<%T::%D%> in %q#T" | |
32324 | msgstr "no hay miembros que coincidan con %<%T::%D%> en %q#T" | |
32325 | ||
32326 | -#: cp/name-lookup.c:3355 | |
32327 | +#: cp/name-lookup.c:3360 | |
32328 | #, gcc-internal-format | |
32329 | msgid "declaration of %qD not in a namespace surrounding %qD" | |
32330 | msgstr "la declaración de %qD no está en un espacio de nombres alrededor de %qD" | |
32331 | ||
32332 | -#: cp/name-lookup.c:3363 | |
32333 | +#: cp/name-lookup.c:3368 | |
32334 | #, gcc-internal-format | |
32335 | msgid "explicit qualification in declaration of %qD" | |
32336 | msgstr "calificación explícita en la declaración de %qD" | |
32337 | ||
32338 | -#: cp/name-lookup.c:3446 | |
32339 | +#: cp/name-lookup.c:3451 | |
32340 | #, gcc-internal-format | |
32341 | msgid "%qD should have been declared inside %qD" | |
32342 | msgstr "%qD se debería declarar dentro de %qD" | |
32343 | ||
32344 | -#: cp/name-lookup.c:3490 | |
32345 | +#: cp/name-lookup.c:3495 | |
32346 | #, gcc-internal-format | |
32347 | msgid "%qD attribute requires a single NTBS argument" | |
32348 | msgstr "el atributo %qD requiere un solo argumento NTBS" | |
32349 | ||
32350 | -#: cp/name-lookup.c:3497 | |
32351 | +#: cp/name-lookup.c:3502 | |
32352 | #, gcc-internal-format | |
32353 | msgid "%qD attribute is meaningless since members of the anonymous namespace get local symbols" | |
32354 | msgstr "el atributo %qD no tiene signifcado porque los miembros del espacio de nombres anónimo tiene símbolos locales" | |
32355 | ||
32356 | -#: cp/name-lookup.c:3505 cp/name-lookup.c:3894 | |
32357 | +#: cp/name-lookup.c:3510 cp/name-lookup.c:3899 | |
32358 | #, gcc-internal-format | |
32359 | msgid "%qD attribute directive ignored" | |
32360 | msgstr "se descarta la directiva de atributo %qD" | |
32361 | ||
32362 | -#: cp/name-lookup.c:3550 | |
32363 | +#: cp/name-lookup.c:3555 | |
32364 | #, gcc-internal-format | |
32365 | msgid "namespace alias %qD not allowed here, assuming %qD" | |
32366 | msgstr "no se permite aquí el alias del espacio de nombres %qD, se asume que es %qD" | |
32367 | ||
32368 | -#: cp/name-lookup.c:3882 | |
32369 | +#: cp/name-lookup.c:3887 | |
32370 | #, gcc-internal-format | |
32371 | msgid "strong using only meaningful at namespace scope" | |
32372 | msgstr "el uso de strong solamente tiene significado en el ámbito de espacio de nombres" | |
32373 | ||
32374 | -#: cp/name-lookup.c:3886 | |
32375 | +#: cp/name-lookup.c:3891 | |
32376 | #, gcc-internal-format | |
32377 | msgid "current namespace %qD does not enclose strongly used namespace %qD" | |
32378 | msgstr "el espacio de nombres actual %qD no contiene al espacio de nombres %qD usado con frecuencia" | |
32379 | ||
32380 | -#: cp/name-lookup.c:4224 | |
32381 | +#: cp/name-lookup.c:4229 | |
32382 | #, gcc-internal-format | |
32383 | msgid "maximum limit of %d namespaces searched for %qE" | |
32384 | msgstr "límite máximo de %d espacios de nombres buscados para %qE" | |
32385 | ||
32386 | -#: cp/name-lookup.c:4234 | |
32387 | +#: cp/name-lookup.c:4239 | |
32388 | #, gcc-internal-format | |
32389 | msgid "suggested alternative:" | |
32390 | msgid_plural "suggested alternatives:" | |
32391 | msgstr[0] "alternativa sugerida:" | |
32392 | msgstr[1] "alternativas sugeridas:" | |
32393 | ||
32394 | -#: cp/name-lookup.c:4238 | |
32395 | +#: cp/name-lookup.c:4243 | |
32396 | #, gcc-internal-format | |
32397 | msgid " %qE" | |
32398 | msgstr " %qE" | |
32399 | ||
32400 | -#: cp/name-lookup.c:5494 | |
32401 | +#: cp/name-lookup.c:5499 | |
32402 | #, gcc-internal-format | |
32403 | msgid "argument dependent lookup finds %q+D" | |
32404 | msgstr "la búsqueda dependiente del argumento encuentra %q+D" | |
32405 | ||
32406 | -#: cp/name-lookup.c:5990 | |
32407 | +#: cp/name-lookup.c:5995 | |
32408 | #, gcc-internal-format | |
32409 | msgid "XXX entering pop_everything ()\n" | |
32410 | msgstr "XXX entrando a pop_everything ()\n" | |
32411 | ||
32412 | -#: cp/name-lookup.c:5999 | |
32413 | +#: cp/name-lookup.c:6004 | |
32414 | #, gcc-internal-format | |
32415 | msgid "XXX leaving pop_everything ()\n" | |
32416 | msgstr "XXX saliendo de pop_everything ()\n" | |
32417 | @@ -30706,7 +30701,7 @@ | |
32418 | msgid "floating-point literal cannot appear in a constant-expression" | |
32419 | msgstr "una literal de coma flotante no puede aparecer en una expresión constante" | |
32420 | ||
32421 | -#: cp/parser.c:2645 cp/pt.c:13536 | |
32422 | +#: cp/parser.c:2645 cp/pt.c:13562 | |
32423 | #, gcc-internal-format | |
32424 | msgid "a cast to a type other than an integral or enumeration type cannot appear in a constant-expression" | |
32425 | msgstr "una conversión a un tipo diferente de un tipo integral o de enumeración no puede aparecer en una expresión constante" | |
32426 | @@ -30934,7 +30929,7 @@ | |
32427 | msgid "literal operator suffixes not preceded by %<_%> are reserved for future standardization" | |
32428 | msgstr "los sufijos de operador literal que no están precedidos por %<_%> están reservados para estandarización futura" | |
32429 | ||
32430 | -#: cp/parser.c:4841 cp/parser.c:16238 | |
32431 | +#: cp/parser.c:4841 cp/parser.c:16241 | |
32432 | #, gcc-internal-format | |
32433 | msgid "expected unqualified-id" | |
32434 | msgstr "se esperaba un id sin calificar" | |
32435 | @@ -31126,7 +31121,7 @@ | |
32436 | msgid "compound-statement in constexpr function" | |
32437 | msgstr "declaración compuesta en una función constexpr" | |
32438 | ||
32439 | -#: cp/parser.c:9160 cp/parser.c:22274 | |
32440 | +#: cp/parser.c:9160 cp/parser.c:22269 | |
32441 | #, gcc-internal-format | |
32442 | msgid "expected selection-statement" | |
32443 | msgstr "se esperaba una declaración de selección" | |
32444 | @@ -31156,7 +31151,7 @@ | |
32445 | msgid "inconsistent begin/end types in range-based %<for%> statement: %qT and %qT" | |
32446 | msgstr "tipos begin/end inconsistentes para la declaración %<for%> basada en rango: %qT y %qT" | |
32447 | ||
32448 | -#: cp/parser.c:9749 cp/parser.c:22277 | |
32449 | +#: cp/parser.c:9749 cp/parser.c:22272 | |
32450 | #, gcc-internal-format | |
32451 | msgid "expected iteration-statement" | |
32452 | msgstr "se esperaba una declaración de iteración" | |
32453 | @@ -31172,12 +31167,12 @@ | |
32454 | msgid "ISO C++ forbids computed gotos" | |
32455 | msgstr "ISO C++ prohíbe los gotos calculados" | |
32456 | ||
32457 | -#: cp/parser.c:9931 cp/parser.c:22280 | |
32458 | +#: cp/parser.c:9931 cp/parser.c:22275 | |
32459 | #, gcc-internal-format | |
32460 | msgid "expected jump-statement" | |
32461 | msgstr "se esperaba una declaración de salto" | |
32462 | ||
32463 | -#: cp/parser.c:10063 cp/parser.c:18871 | |
32464 | +#: cp/parser.c:10063 cp/parser.c:18866 | |
32465 | #, gcc-internal-format | |
32466 | msgid "extra %<;%>" | |
32467 | msgstr "<;%> extra" | |
32468 | @@ -31214,7 +31209,7 @@ | |
32469 | msgid "class definition may not be declared a friend" | |
32470 | msgstr "la definición de clase no se puede declarar como friend" | |
32471 | ||
32472 | -#: cp/parser.c:10847 cp/parser.c:19243 | |
32473 | +#: cp/parser.c:10847 cp/parser.c:19238 | |
32474 | #, gcc-internal-format | |
32475 | msgid "templates may not be %<virtual%>" | |
32476 | msgstr "las plantillas no pueden ser %<virtual%>" | |
32477 | @@ -31290,12 +31285,12 @@ | |
32478 | msgid "keyword %<export%> not implemented, and will be ignored" | |
32479 | msgstr "no se admite la palabra clave %<export%>, y se descartará" | |
32480 | ||
32481 | -#: cp/parser.c:12115 cp/parser.c:12213 cp/parser.c:12320 cp/parser.c:17340 | |
32482 | +#: cp/parser.c:12115 cp/parser.c:12213 cp/parser.c:12320 cp/parser.c:17343 | |
32483 | #, gcc-internal-format | |
32484 | msgid "template parameter pack %qD cannot have a default argument" | |
32485 | msgstr "el paquete de parámetros plantilla %qD no puede tener un argumento por defecto" | |
32486 | ||
32487 | -#: cp/parser.c:12119 cp/parser.c:17348 | |
32488 | +#: cp/parser.c:12119 cp/parser.c:17351 | |
32489 | #, gcc-internal-format | |
32490 | msgid "template parameter pack cannot have a default argument" | |
32491 | msgstr "el paquete de parámetros plantilla no puede tener un argumento por defecto" | |
32492 | @@ -31310,7 +31305,7 @@ | |
32493 | msgid "expected template-id" | |
32494 | msgstr "se esperaba un id de plantilla" | |
32495 | ||
32496 | -#: cp/parser.c:12453 cp/parser.c:22238 | |
32497 | +#: cp/parser.c:12453 cp/parser.c:22233 | |
32498 | #, gcc-internal-format | |
32499 | msgid "expected %<<%>" | |
32500 | msgstr "se esperaba %<<%>" | |
32501 | @@ -31437,12 +31432,12 @@ | |
32502 | msgid "cannot add an enumerator list to a template instantiation" | |
32503 | msgstr "no se puede agregar una lista de enumerador a una instanciación de plantilla" | |
32504 | ||
32505 | -#: cp/parser.c:14493 cp/parser.c:18444 | |
32506 | +#: cp/parser.c:14493 cp/parser.c:18431 | |
32507 | #, gcc-internal-format | |
32508 | msgid "declaration of %qD in namespace %qD which does not enclose %qD" | |
32509 | msgstr "la declaración de %qD en el espacio de nombres %qD el cual no incluye a %qD" | |
32510 | ||
32511 | -#: cp/parser.c:14498 cp/parser.c:18449 | |
32512 | +#: cp/parser.c:14498 cp/parser.c:18436 | |
32513 | #, gcc-internal-format | |
32514 | msgid "declaration of %qD in %qD which does not enclose %qD" | |
32515 | msgstr "la declaración de %qD en %qD la cual no incluye a %qD" | |
32516 | @@ -31487,73 +31482,73 @@ | |
32517 | msgid "access declarations are deprecated in favour of using-declarations; suggestion: add the %<using%> keyword" | |
32518 | msgstr "las declaraciones access son obsoletas en favor de las declaraciones using: sugerencia: use la palabra clave %<using%>" | |
32519 | ||
32520 | -#: cp/parser.c:15094 | |
32521 | +#: cp/parser.c:15097 | |
32522 | #, gcc-internal-format | |
32523 | msgid "types may not be defined in alias template declarations" | |
32524 | msgstr "no se pueden definir tipos en declaraciones de plantilla alias" | |
32525 | ||
32526 | -#: cp/parser.c:15541 | |
32527 | +#: cp/parser.c:15544 | |
32528 | #, gcc-internal-format | |
32529 | msgid "a function-definition is not allowed here" | |
32530 | msgstr "una definición de función no se permite aquí" | |
32531 | ||
32532 | -#: cp/parser.c:15553 | |
32533 | +#: cp/parser.c:15556 | |
32534 | #, gcc-internal-format | |
32535 | msgid "an asm-specification is not allowed on a function-definition" | |
32536 | msgstr "no se permite una especificación-asm en una definición-de-función" | |
32537 | ||
32538 | -#: cp/parser.c:15557 | |
32539 | +#: cp/parser.c:15560 | |
32540 | #, gcc-internal-format | |
32541 | msgid "attributes are not allowed on a function-definition" | |
32542 | msgstr "no se permiten atributos en una definición-de-función" | |
32543 | ||
32544 | -#: cp/parser.c:15594 | |
32545 | +#: cp/parser.c:15597 | |
32546 | #, gcc-internal-format | |
32547 | msgid "expected constructor, destructor, or type conversion" | |
32548 | msgstr "se esperaba un constructor, un destructor, o una conversión de tipo" | |
32549 | ||
32550 | #. Anything else is an error. | |
32551 | -#: cp/parser.c:15629 cp/parser.c:17509 | |
32552 | +#: cp/parser.c:15632 cp/parser.c:17512 | |
32553 | #, gcc-internal-format | |
32554 | msgid "expected initializer" | |
32555 | msgstr "se esperaba un inicializador" | |
32556 | ||
32557 | -#: cp/parser.c:15649 | |
32558 | +#: cp/parser.c:15652 | |
32559 | #, gcc-internal-format | |
32560 | msgid "invalid type in declaration" | |
32561 | msgstr "tipo inválido en la declaración" | |
32562 | ||
32563 | -#: cp/parser.c:15725 | |
32564 | +#: cp/parser.c:15728 | |
32565 | #, gcc-internal-format | |
32566 | msgid "initializer provided for function" | |
32567 | msgstr "se proporcionó un inicializador para la función" | |
32568 | ||
32569 | -#: cp/parser.c:15757 | |
32570 | +#: cp/parser.c:15760 | |
32571 | #, gcc-internal-format | |
32572 | msgid "attributes after parenthesized initializer ignored" | |
32573 | msgstr "se descartan los atributos después del inicializador entre paréntesis" | |
32574 | ||
32575 | -#: cp/parser.c:16161 | |
32576 | +#: cp/parser.c:16164 | |
32577 | #, gcc-internal-format | |
32578 | msgid "array bound is not an integer constant" | |
32579 | msgstr "el límite de la matriz no es una constante entera" | |
32580 | ||
32581 | -#: cp/parser.c:16282 | |
32582 | +#: cp/parser.c:16285 | |
32583 | #, gcc-internal-format | |
32584 | msgid "cannot define member of dependent typedef %qT" | |
32585 | msgstr "no se puede definir el miembro de la definición de tipo dependiente %qT" | |
32586 | ||
32587 | -#: cp/parser.c:16286 | |
32588 | +#: cp/parser.c:16289 | |
32589 | #, gcc-internal-format | |
32590 | msgid "%<%T::%E%> is not a type" | |
32591 | msgstr "%<%T::%E%> no es un tipo" | |
32592 | ||
32593 | -#: cp/parser.c:16314 | |
32594 | +#: cp/parser.c:16317 | |
32595 | #, gcc-internal-format | |
32596 | msgid "invalid use of constructor as a template" | |
32597 | msgstr "uso inválido del constructor como una plantilla" | |
32598 | ||
32599 | -#: cp/parser.c:16316 | |
32600 | +#: cp/parser.c:16319 | |
32601 | #, gcc-internal-format | |
32602 | msgid "use %<%T::%D%> instead of %<%T::%D%> to name the constructor in a qualified name" | |
32603 | msgstr "use %<%T::%D%> en lugar de %<%T::%D%> para nombrar el constructor en un nombre calificado" | |
32604 | @@ -31562,247 +31557,247 @@ | |
32605 | #. here because we do not have enough | |
32606 | #. information about its original syntactic | |
32607 | #. form. | |
32608 | -#: cp/parser.c:16333 | |
32609 | +#: cp/parser.c:16336 | |
32610 | #, gcc-internal-format | |
32611 | msgid "invalid declarator" | |
32612 | msgstr "declarador inválido" | |
32613 | ||
32614 | -#: cp/parser.c:16399 | |
32615 | +#: cp/parser.c:16402 | |
32616 | #, gcc-internal-format | |
32617 | msgid "expected declarator" | |
32618 | msgstr "se esperaba un declarador" | |
32619 | ||
32620 | -#: cp/parser.c:16494 | |
32621 | +#: cp/parser.c:16497 | |
32622 | #, gcc-internal-format | |
32623 | msgid "%qD is a namespace" | |
32624 | msgstr "%qD es un espacio de nombres" | |
32625 | ||
32626 | -#: cp/parser.c:16496 | |
32627 | +#: cp/parser.c:16499 | |
32628 | #, gcc-internal-format | |
32629 | msgid "cannot form pointer to member of non-class %q#T" | |
32630 | msgstr "no se puede formar un puntero al miembro de %q#T que no es clase" | |
32631 | ||
32632 | -#: cp/parser.c:16513 | |
32633 | +#: cp/parser.c:16516 | |
32634 | #, gcc-internal-format | |
32635 | msgid "expected ptr-operator" | |
32636 | msgstr "se esperaba un operador puntero" | |
32637 | ||
32638 | -#: cp/parser.c:16572 | |
32639 | +#: cp/parser.c:16575 | |
32640 | #, gcc-internal-format | |
32641 | msgid "duplicate cv-qualifier" | |
32642 | msgstr "calificador-cv duplicado" | |
32643 | ||
32644 | -#: cp/parser.c:16630 | |
32645 | +#: cp/parser.c:16633 | |
32646 | #, gcc-internal-format | |
32647 | msgid "duplicate virt-specifier" | |
32648 | msgstr "especificador-virt duplicado" | |
32649 | ||
32650 | -#: cp/parser.c:16792 cp/typeck2.c:450 cp/typeck2.c:1670 | |
32651 | +#: cp/parser.c:16795 cp/typeck2.c:450 cp/typeck2.c:1673 | |
32652 | #, gcc-internal-format | |
32653 | msgid "invalid use of %<auto%>" | |
32654 | msgstr "uso inválido de %<auto%>" | |
32655 | ||
32656 | -#: cp/parser.c:16811 | |
32657 | +#: cp/parser.c:16814 | |
32658 | #, gcc-internal-format | |
32659 | msgid "types may not be defined in template arguments" | |
32660 | msgstr "no se pueden definir tipos en argumentos de plantilla" | |
32661 | ||
32662 | -#: cp/parser.c:16892 | |
32663 | +#: cp/parser.c:16895 | |
32664 | #, gcc-internal-format | |
32665 | msgid "expected type-specifier" | |
32666 | msgstr "se esperaba un especificador de tipo" | |
32667 | ||
32668 | -#: cp/parser.c:17136 | |
32669 | +#: cp/parser.c:17139 | |
32670 | #, gcc-internal-format | |
32671 | msgid "expected %<,%> or %<...%>" | |
32672 | msgstr "se esperaba %<,%> o %<...%>" | |
32673 | ||
32674 | -#: cp/parser.c:17193 | |
32675 | +#: cp/parser.c:17196 | |
32676 | #, gcc-internal-format | |
32677 | msgid "types may not be defined in parameter types" | |
32678 | msgstr "no se pueden definir tipos en tipos de parámetro" | |
32679 | ||
32680 | -#: cp/parser.c:17319 | |
32681 | +#: cp/parser.c:17322 | |
32682 | #, gcc-internal-format | |
32683 | msgid "deprecated use of default argument for parameter of non-function" | |
32684 | msgstr "uso obsoleto del argumento por defecto para el parámetro de una no función" | |
32685 | ||
32686 | -#: cp/parser.c:17323 | |
32687 | +#: cp/parser.c:17326 | |
32688 | #, gcc-internal-format | |
32689 | msgid "default arguments are only permitted for function parameters" | |
32690 | msgstr "los argumentos por defecto sólo se permiten para parámetros de función" | |
32691 | ||
32692 | -#: cp/parser.c:17342 | |
32693 | +#: cp/parser.c:17345 | |
32694 | #, gcc-internal-format | |
32695 | msgid "parameter pack %qD cannot have a default argument" | |
32696 | msgstr "el paquete de parámetros %qD no puede tener un argumento por defecto" | |
32697 | ||
32698 | -#: cp/parser.c:17350 | |
32699 | +#: cp/parser.c:17353 | |
32700 | #, gcc-internal-format | |
32701 | msgid "parameter pack cannot have a default argument" | |
32702 | msgstr "el paquete de parámetros no puede tener un argumento por defecto" | |
32703 | ||
32704 | -#: cp/parser.c:17637 | |
32705 | +#: cp/parser.c:17640 | |
32706 | #, gcc-internal-format | |
32707 | msgid "ISO C++ does not allow designated initializers" | |
32708 | msgstr "ISO C++ no permite inicializadores designados" | |
32709 | ||
32710 | -#: cp/parser.c:17651 | |
32711 | +#: cp/parser.c:17654 | |
32712 | #, gcc-internal-format | |
32713 | msgid "ISO C++ does not allow C99 designated initializers" | |
32714 | msgstr "ISO C++ no permite inicializadores designados de C99" | |
32715 | ||
32716 | -#: cp/parser.c:17755 cp/parser.c:17879 | |
32717 | +#: cp/parser.c:17758 cp/parser.c:17882 | |
32718 | #, gcc-internal-format | |
32719 | msgid "expected class-name" | |
32720 | msgstr "se esperaba un nombre de clase" | |
32721 | ||
32722 | -#: cp/parser.c:18067 | |
32723 | +#: cp/parser.c:18056 | |
32724 | #, gcc-internal-format | |
32725 | msgid "expected %<;%> after class definition" | |
32726 | msgstr "se esperaba %<;%> después de la definición de clase" | |
32727 | ||
32728 | -#: cp/parser.c:18069 | |
32729 | +#: cp/parser.c:18058 | |
32730 | #, gcc-internal-format | |
32731 | msgid "expected %<;%> after struct definition" | |
32732 | msgstr "se esperaba %<;%> después de la definición de struct" | |
32733 | ||
32734 | -#: cp/parser.c:18071 | |
32735 | +#: cp/parser.c:18060 | |
32736 | #, gcc-internal-format | |
32737 | msgid "expected %<;%> after union definition" | |
32738 | msgstr "se esperaba %<;%> después de la definición de union" | |
32739 | ||
32740 | -#: cp/parser.c:18392 | |
32741 | +#: cp/parser.c:18379 | |
32742 | #, gcc-internal-format | |
32743 | msgid "expected %<{%> or %<:%>" | |
32744 | msgstr "se esperaba %<{%> o %<:%>" | |
32745 | ||
32746 | -#: cp/parser.c:18403 | |
32747 | +#: cp/parser.c:18390 | |
32748 | #, gcc-internal-format | |
32749 | msgid "cannot specify %<override%> for a class" | |
32750 | msgstr "no se puede especificar %<override%> para una clase" | |
32751 | ||
32752 | -#: cp/parser.c:18411 | |
32753 | +#: cp/parser.c:18398 | |
32754 | #, gcc-internal-format | |
32755 | msgid "global qualification of class name is invalid" | |
32756 | msgstr "la calificación global del nombre de clase es inválida" | |
32757 | ||
32758 | -#: cp/parser.c:18418 | |
32759 | +#: cp/parser.c:18405 | |
32760 | #, gcc-internal-format | |
32761 | msgid "qualified name does not name a class" | |
32762 | msgstr "el nombre calificado no nombra una clase" | |
32763 | ||
32764 | -#: cp/parser.c:18430 | |
32765 | +#: cp/parser.c:18417 | |
32766 | #, gcc-internal-format | |
32767 | msgid "invalid class name in declaration of %qD" | |
32768 | msgstr "nombre de clase inválido en la declaración de %qD" | |
32769 | ||
32770 | -#: cp/parser.c:18463 | |
32771 | +#: cp/parser.c:18450 | |
32772 | #, gcc-internal-format | |
32773 | msgid "extra qualification not allowed" | |
32774 | msgstr "no se permite la calificación extra" | |
32775 | ||
32776 | -#: cp/parser.c:18475 | |
32777 | +#: cp/parser.c:18462 | |
32778 | #, gcc-internal-format | |
32779 | msgid "an explicit specialization must be preceded by %<template <>%>" | |
32780 | msgstr "una especialización explícita se debe preceder con %<template <>%>" | |
32781 | ||
32782 | -#: cp/parser.c:18505 | |
32783 | +#: cp/parser.c:18492 | |
32784 | #, gcc-internal-format | |
32785 | msgid "function template %qD redeclared as a class template" | |
32786 | msgstr "la plantilla de función %qD se redeclaró commo una plantilla de clase" | |
32787 | ||
32788 | -#: cp/parser.c:18536 | |
32789 | +#: cp/parser.c:18523 | |
32790 | #, gcc-internal-format | |
32791 | msgid "could not resolve typename type" | |
32792 | msgstr "no se puede resolver el tipo typename" | |
32793 | ||
32794 | -#: cp/parser.c:18588 | |
32795 | +#: cp/parser.c:18575 | |
32796 | #, gcc-internal-format | |
32797 | msgid "previous definition of %q+#T" | |
32798 | msgstr "definición previa de %q+#T" | |
32799 | ||
32800 | -#: cp/parser.c:18661 cp/parser.c:22283 | |
32801 | +#: cp/parser.c:18656 cp/parser.c:22278 | |
32802 | #, gcc-internal-format | |
32803 | msgid "expected class-key" | |
32804 | msgstr "se esperaba una llave de clase" | |
32805 | ||
32806 | -#: cp/parser.c:18890 | |
32807 | +#: cp/parser.c:18885 | |
32808 | #, gcc-internal-format | |
32809 | msgid "in C++03 a class-key must be used when declaring a friend" | |
32810 | msgstr "en C++03 se debe usar una llave-clase cuando se declara un friend" | |
32811 | ||
32812 | -#: cp/parser.c:18908 | |
32813 | +#: cp/parser.c:18903 | |
32814 | #, gcc-internal-format | |
32815 | msgid "friend declaration does not name a class or function" | |
32816 | msgstr "la declaración friend no nombra una clase o función" | |
32817 | ||
32818 | -#: cp/parser.c:19118 | |
32819 | +#: cp/parser.c:19113 | |
32820 | #, gcc-internal-format | |
32821 | msgid "pure-specifier on function-definition" | |
32822 | msgstr "especificador-pure en la definición-de-función" | |
32823 | ||
32824 | -#: cp/parser.c:19166 | |
32825 | +#: cp/parser.c:19161 | |
32826 | #, gcc-internal-format | |
32827 | msgid "expected %<;%> at end of member declaration" | |
32828 | msgstr "se esperaba %<;%> al final de la declaración miembro" | |
32829 | ||
32830 | -#: cp/parser.c:19237 | |
32831 | +#: cp/parser.c:19232 | |
32832 | #, gcc-internal-format | |
32833 | msgid "invalid pure specifier (only %<= 0%> is allowed)" | |
32834 | msgstr "especificador pure inválido (sólo se permite %<= 0%>)" | |
32835 | ||
32836 | -#: cp/parser.c:19272 | |
32837 | +#: cp/parser.c:19267 | |
32838 | #, gcc-internal-format | |
32839 | msgid "a brace-enclosed initializer is not allowed here" | |
32840 | msgstr "un inicializador dentro de llaves no se permite aquí" | |
32841 | ||
32842 | -#: cp/parser.c:19403 | |
32843 | +#: cp/parser.c:19398 | |
32844 | #, gcc-internal-format | |
32845 | msgid "%<virtual%> specified more than once in base-specified" | |
32846 | msgstr "se especificó %<virtual%> más de una vez en la base especificada" | |
32847 | ||
32848 | -#: cp/parser.c:19423 | |
32849 | +#: cp/parser.c:19418 | |
32850 | #, gcc-internal-format | |
32851 | msgid "more than one access specifier in base-specified" | |
32852 | msgstr "más de un especificador de acceso en la base especificada" | |
32853 | ||
32854 | -#: cp/parser.c:19447 | |
32855 | +#: cp/parser.c:19442 | |
32856 | #, gcc-internal-format | |
32857 | msgid "keyword %<typename%> not allowed outside of templates" | |
32858 | msgstr "no se permite la palabra clave %<typename%> fuera de las plantillas" | |
32859 | ||
32860 | -#: cp/parser.c:19450 | |
32861 | +#: cp/parser.c:19445 | |
32862 | #, gcc-internal-format | |
32863 | msgid "keyword %<typename%> not allowed in this context (the base class is implicitly a type)" | |
32864 | msgstr "no se permite la palabra clave %<typename%> en este contexto (la clase base es implícitamente un tipo)" | |
32865 | ||
32866 | -#: cp/parser.c:19543 cp/parser.c:19625 | |
32867 | +#: cp/parser.c:19538 cp/parser.c:19620 | |
32868 | #, gcc-internal-format | |
32869 | msgid "types may not be defined in an exception-specification" | |
32870 | msgstr "no se pueden definir tipos en una especificación de excepción" | |
32871 | ||
32872 | -#: cp/parser.c:19607 | |
32873 | +#: cp/parser.c:19602 | |
32874 | #, gcc-internal-format | |
32875 | msgid "dynamic exception specifications are deprecated in C++0x; use %<noexcept%> instead" | |
32876 | msgstr "las especificaciones de excepción dinámicas son obsoletas en C++0x; utilice %<noexcept%> en su lugar" | |
32877 | ||
32878 | -#: cp/parser.c:19806 | |
32879 | +#: cp/parser.c:19801 | |
32880 | #, gcc-internal-format | |
32881 | msgid "types may not be defined in exception-declarations" | |
32882 | msgstr "no se pueden definir tipos en declaraciones de excepción" | |
32883 | ||
32884 | -#: cp/parser.c:20706 | |
32885 | +#: cp/parser.c:20701 | |
32886 | #, gcc-internal-format | |
32887 | msgid "specializing member %<%T::%E%> requires %<template<>%> syntax" | |
32888 | msgstr "el miembro especializado %<%T::%E%> requiere sintaxis %<template<>%>" | |
32889 | ||
32890 | -#: cp/parser.c:20711 | |
32891 | +#: cp/parser.c:20706 | |
32892 | #, gcc-internal-format | |
32893 | msgid "invalid declaration of %<%T::%E%>" | |
32894 | msgstr "declaración inválida de %<%T::%E%>" | |
32895 | ||
32896 | -#: cp/parser.c:20715 | |
32897 | +#: cp/parser.c:20710 | |
32898 | #, gcc-internal-format | |
32899 | msgid "too few template-parameter-lists" | |
32900 | msgstr "faltan listas-de-parámetros-de-plantilla" | |
32901 | @@ -31811,317 +31806,317 @@ | |
32902 | #. something like: | |
32903 | #. | |
32904 | #. template <class T> template <class U> void S::f(); | |
32905 | -#: cp/parser.c:20722 | |
32906 | +#: cp/parser.c:20717 | |
32907 | #, gcc-internal-format | |
32908 | msgid "too many template-parameter-lists" | |
32909 | msgstr "demasiadas listas-de-parámetros-de-plantilla" | |
32910 | ||
32911 | -#: cp/parser.c:21019 | |
32912 | +#: cp/parser.c:21014 | |
32913 | #, gcc-internal-format | |
32914 | msgid "named return values are no longer supported" | |
32915 | msgstr "ya no se admiten los valores de devolución nombrados" | |
32916 | ||
32917 | -#: cp/parser.c:21106 | |
32918 | +#: cp/parser.c:21101 | |
32919 | #, gcc-internal-format | |
32920 | msgid "invalid declaration of member template in local class" | |
32921 | msgstr "declaración inválida de plantilla miembro en la clase local" | |
32922 | ||
32923 | -#: cp/parser.c:21115 | |
32924 | +#: cp/parser.c:21110 | |
32925 | #, gcc-internal-format | |
32926 | msgid "template with C linkage" | |
32927 | msgstr "plantilla con enlace C" | |
32928 | ||
32929 | -#: cp/parser.c:21134 | |
32930 | +#: cp/parser.c:21129 | |
32931 | #, gcc-internal-format | |
32932 | msgid "invalid explicit specialization" | |
32933 | msgstr "especialización explícita inválida" | |
32934 | ||
32935 | -#: cp/parser.c:21220 | |
32936 | +#: cp/parser.c:21215 | |
32937 | #, gcc-internal-format | |
32938 | msgid "literal operator template %qD has invalid parameter list. Expected non-type template argument pack <char...>" | |
32939 | msgstr "la plantilla de operador literal %qD tiene una lista de parámetros inválida. Se esperaba un paquete de argumentos de plantilla que no sean de tipo <char...>" | |
32940 | ||
32941 | -#: cp/parser.c:21294 | |
32942 | +#: cp/parser.c:21289 | |
32943 | #, gcc-internal-format | |
32944 | msgid "template declaration of %<typedef%>" | |
32945 | msgstr "declaración plantilla de %<typedef%>" | |
32946 | ||
32947 | -#: cp/parser.c:21371 | |
32948 | +#: cp/parser.c:21366 | |
32949 | #, gcc-internal-format | |
32950 | msgid "explicit template specialization cannot have a storage class" | |
32951 | msgstr "la especialización de plantilla explícita no puede tener una clase de almacenamiento" | |
32952 | ||
32953 | -#: cp/parser.c:21606 | |
32954 | +#: cp/parser.c:21601 | |
32955 | #, gcc-internal-format | |
32956 | msgid "%<>>%> should be %<> >%> within a nested template argument list" | |
32957 | msgstr "%<>>%> debe ser %<> >%> dentro de una lista de argumentos de plantilla anidada" | |
32958 | ||
32959 | -#: cp/parser.c:21619 | |
32960 | +#: cp/parser.c:21614 | |
32961 | #, gcc-internal-format | |
32962 | msgid "spurious %<>>%>, use %<>%> to terminate a template argument list" | |
32963 | msgstr "%<>>%> sobrante, use %<>%> para terminar una lista de argumentos de plantilla" | |
32964 | ||
32965 | -#: cp/parser.c:22025 | |
32966 | +#: cp/parser.c:22020 | |
32967 | #, gcc-internal-format | |
32968 | msgid "invalid use of %qD in linkage specification" | |
32969 | msgstr "uso inválido de %qD en la especificación de enlace" | |
32970 | ||
32971 | -#: cp/parser.c:22038 | |
32972 | +#: cp/parser.c:22033 | |
32973 | #, gcc-internal-format | |
32974 | msgid "%<__thread%> before %qD" | |
32975 | msgstr "%<__thread%> antes de %qD" | |
32976 | ||
32977 | -#: cp/parser.c:22141 | |
32978 | +#: cp/parser.c:22136 | |
32979 | #, gcc-internal-format | |
32980 | msgid "expected %<new%>" | |
32981 | msgstr "se esperaba %<new%>" | |
32982 | ||
32983 | -#: cp/parser.c:22144 | |
32984 | +#: cp/parser.c:22139 | |
32985 | #, gcc-internal-format | |
32986 | msgid "expected %<delete%>" | |
32987 | msgstr "se esperaba %<delete%>" | |
32988 | ||
32989 | -#: cp/parser.c:22147 | |
32990 | +#: cp/parser.c:22142 | |
32991 | #, gcc-internal-format | |
32992 | msgid "expected %<return%>" | |
32993 | msgstr "se esperaba %<return%>" | |
32994 | ||
32995 | -#: cp/parser.c:22153 | |
32996 | +#: cp/parser.c:22148 | |
32997 | #, gcc-internal-format | |
32998 | msgid "expected %<extern%>" | |
32999 | msgstr "se esperaba %<extern%>" | |
33000 | ||
33001 | -#: cp/parser.c:22156 | |
33002 | +#: cp/parser.c:22151 | |
33003 | #, gcc-internal-format | |
33004 | msgid "expected %<static_assert%>" | |
33005 | msgstr "se esperaba %<static_assert%>" | |
33006 | ||
33007 | -#: cp/parser.c:22159 | |
33008 | +#: cp/parser.c:22154 | |
33009 | #, gcc-internal-format | |
33010 | msgid "expected %<decltype%>" | |
33011 | msgstr "se esperaba %<decltype%>" | |
33012 | ||
33013 | -#: cp/parser.c:22162 | |
33014 | +#: cp/parser.c:22157 | |
33015 | #, gcc-internal-format | |
33016 | msgid "expected %<operator%>" | |
33017 | msgstr "se esperaba %<operator%>" | |
33018 | ||
33019 | -#: cp/parser.c:22165 | |
33020 | +#: cp/parser.c:22160 | |
33021 | #, gcc-internal-format | |
33022 | msgid "expected %<class%>" | |
33023 | msgstr "se esperaba %<class%>" | |
33024 | ||
33025 | -#: cp/parser.c:22168 | |
33026 | +#: cp/parser.c:22163 | |
33027 | #, gcc-internal-format | |
33028 | msgid "expected %<template%>" | |
33029 | msgstr "se esperaba %<template%>" | |
33030 | ||
33031 | -#: cp/parser.c:22171 | |
33032 | +#: cp/parser.c:22166 | |
33033 | #, gcc-internal-format | |
33034 | msgid "expected %<namespace%>" | |
33035 | msgstr "se esperaba %<namespace%>" | |
33036 | ||
33037 | -#: cp/parser.c:22174 | |
33038 | +#: cp/parser.c:22169 | |
33039 | #, gcc-internal-format | |
33040 | msgid "expected %<using%>" | |
33041 | msgstr "se esperaba %<using%>" | |
33042 | ||
33043 | -#: cp/parser.c:22177 | |
33044 | +#: cp/parser.c:22172 | |
33045 | #, gcc-internal-format | |
33046 | msgid "expected %<asm%>" | |
33047 | msgstr "se esperaba %<asm%>" | |
33048 | ||
33049 | -#: cp/parser.c:22180 | |
33050 | +#: cp/parser.c:22175 | |
33051 | #, gcc-internal-format | |
33052 | msgid "expected %<try%>" | |
33053 | msgstr "se esperaba %<try%>" | |
33054 | ||
33055 | -#: cp/parser.c:22183 | |
33056 | +#: cp/parser.c:22178 | |
33057 | #, gcc-internal-format | |
33058 | msgid "expected %<catch%>" | |
33059 | msgstr "se esperaba %<catch%>" | |
33060 | ||
33061 | -#: cp/parser.c:22186 | |
33062 | +#: cp/parser.c:22181 | |
33063 | #, gcc-internal-format | |
33064 | msgid "expected %<throw%>" | |
33065 | msgstr "se esperaba %<throw%>" | |
33066 | ||
33067 | -#: cp/parser.c:22189 | |
33068 | +#: cp/parser.c:22184 | |
33069 | #, gcc-internal-format | |
33070 | msgid "expected %<__label__%>" | |
33071 | msgstr "se esperaba %<__label__%>" | |
33072 | ||
33073 | -#: cp/parser.c:22192 | |
33074 | +#: cp/parser.c:22187 | |
33075 | #, gcc-internal-format | |
33076 | msgid "expected %<@try%>" | |
33077 | msgstr "se esperaba %<@try%>" | |
33078 | ||
33079 | -#: cp/parser.c:22195 | |
33080 | +#: cp/parser.c:22190 | |
33081 | #, gcc-internal-format | |
33082 | msgid "expected %<@synchronized%>" | |
33083 | msgstr "se esperaba %<@synchronized%>" | |
33084 | ||
33085 | -#: cp/parser.c:22198 | |
33086 | +#: cp/parser.c:22193 | |
33087 | #, gcc-internal-format | |
33088 | msgid "expected %<@throw%>" | |
33089 | msgstr "se esperaba %<@throw%>" | |
33090 | ||
33091 | -#: cp/parser.c:22201 | |
33092 | +#: cp/parser.c:22196 | |
33093 | #, gcc-internal-format | |
33094 | msgid "expected %<__transaction_atomic%>" | |
33095 | msgstr "se esperaba %<__transaction_atomic%>" | |
33096 | ||
33097 | -#: cp/parser.c:22204 | |
33098 | +#: cp/parser.c:22199 | |
33099 | #, gcc-internal-format | |
33100 | msgid "expected %<__transaction_relaxed%>" | |
33101 | msgstr "se esperaba %<__transaction_relaxed%>" | |
33102 | ||
33103 | -#: cp/parser.c:22235 | |
33104 | +#: cp/parser.c:22230 | |
33105 | #, gcc-internal-format | |
33106 | msgid "expected %<::%>" | |
33107 | msgstr "se esperaba %<::%>" | |
33108 | ||
33109 | -#: cp/parser.c:22247 | |
33110 | +#: cp/parser.c:22242 | |
33111 | #, gcc-internal-format | |
33112 | msgid "expected %<...%>" | |
33113 | msgstr "se esperaba %<...%>" | |
33114 | ||
33115 | -#: cp/parser.c:22250 | |
33116 | +#: cp/parser.c:22245 | |
33117 | #, gcc-internal-format | |
33118 | msgid "expected %<*%>" | |
33119 | msgstr "se esperaba %<*%>" | |
33120 | ||
33121 | -#: cp/parser.c:22253 | |
33122 | +#: cp/parser.c:22248 | |
33123 | #, gcc-internal-format | |
33124 | msgid "expected %<~%>" | |
33125 | msgstr "se esperaba %<~%>" | |
33126 | ||
33127 | -#: cp/parser.c:22259 | |
33128 | +#: cp/parser.c:22254 | |
33129 | #, gcc-internal-format | |
33130 | msgid "expected %<:%> or %<::%>" | |
33131 | msgstr "se esperaba %<:%> o %<::%>" | |
33132 | ||
33133 | -#: cp/parser.c:22287 | |
33134 | +#: cp/parser.c:22282 | |
33135 | #, gcc-internal-format | |
33136 | msgid "expected %<class%>, %<typename%>, or %<template%>" | |
33137 | msgstr "se esperaba %<class%>, %<typename%> o %<template%>" | |
33138 | ||
33139 | -#: cp/parser.c:22525 | |
33140 | +#: cp/parser.c:22520 | |
33141 | #, gcc-internal-format | |
33142 | msgid "%qs tag used in naming %q#T" | |
33143 | msgstr "se usó la etiqueta %qs al nombrar a %q#T" | |
33144 | ||
33145 | -#: cp/parser.c:22530 | |
33146 | +#: cp/parser.c:22525 | |
33147 | #, gcc-internal-format | |
33148 | msgid "%q#T was previously declared here" | |
33149 | msgstr "%q#T se declaró previamente aquí" | |
33150 | ||
33151 | -#: cp/parser.c:22549 | |
33152 | +#: cp/parser.c:22544 | |
33153 | #, gcc-internal-format | |
33154 | msgid "%qD redeclared with different access" | |
33155 | msgstr "%qD se redeclaró con acceso diferente" | |
33156 | ||
33157 | -#: cp/parser.c:22568 | |
33158 | +#: cp/parser.c:22563 | |
33159 | #, gcc-internal-format | |
33160 | msgid "%<template%> (as a disambiguator) is only allowed within templates" | |
33161 | msgstr "%<template%> (como desambiguador) sólo se permite dentro de plantillas" | |
33162 | ||
33163 | -#: cp/parser.c:22801 | |
33164 | +#: cp/parser.c:22796 | |
33165 | #, gcc-internal-format | |
33166 | msgid "file ends in default argument" | |
33167 | msgstr "el fichero termina en el argumento por defecto" | |
33168 | ||
33169 | -#: cp/parser.c:23005 cp/parser.c:24267 cp/parser.c:24453 | |
33170 | +#: cp/parser.c:23000 cp/parser.c:24262 cp/parser.c:24448 | |
33171 | #, gcc-internal-format | |
33172 | msgid "misplaced %<@%D%> Objective-C++ construct" | |
33173 | msgstr "construct Objective-C++ %<@%D%> mal ubicado" | |
33174 | ||
33175 | -#: cp/parser.c:23127 | |
33176 | +#: cp/parser.c:23122 | |
33177 | #, gcc-internal-format | |
33178 | msgid "objective-c++ message argument(s) are expected" | |
33179 | msgstr "se esperaba(n) argumento(s) de mensaje de objective-c++" | |
33180 | ||
33181 | -#: cp/parser.c:23156 | |
33182 | +#: cp/parser.c:23151 | |
33183 | #, gcc-internal-format | |
33184 | msgid "%<@encode%> must specify a type as an argument" | |
33185 | msgstr "%<@encode%> debe especificar un tipo como un argumento" | |
33186 | ||
33187 | -#: cp/parser.c:23532 | |
33188 | +#: cp/parser.c:23527 | |
33189 | #, gcc-internal-format | |
33190 | msgid "invalid Objective-C++ selector name" | |
33191 | msgstr "nombre de selector Objective-C++ inválido" | |
33192 | ||
33193 | -#: cp/parser.c:23607 cp/parser.c:23625 | |
33194 | +#: cp/parser.c:23602 cp/parser.c:23620 | |
33195 | #, gcc-internal-format | |
33196 | msgid "objective-c++ method declaration is expected" | |
33197 | msgstr "se esperaba una declaración de método de objective-c++" | |
33198 | ||
33199 | -#: cp/parser.c:23619 cp/parser.c:23684 | |
33200 | +#: cp/parser.c:23614 cp/parser.c:23679 | |
33201 | #, gcc-internal-format | |
33202 | msgid "method attributes must be specified at the end" | |
33203 | msgstr "los atributos de método se deben especificar al final" | |
33204 | ||
33205 | -#: cp/parser.c:23727 | |
33206 | +#: cp/parser.c:23722 | |
33207 | #, gcc-internal-format | |
33208 | msgid "stray %qs between Objective-C++ methods" | |
33209 | msgstr "%qs sobrante después de los métodos Objective-C++" | |
33210 | ||
33211 | -#: cp/parser.c:23933 cp/parser.c:23940 cp/parser.c:23947 | |
33212 | +#: cp/parser.c:23928 cp/parser.c:23935 cp/parser.c:23942 | |
33213 | #, gcc-internal-format | |
33214 | msgid "invalid type for instance variable" | |
33215 | msgstr "tipo inválido para la variable de de instancia" | |
33216 | ||
33217 | -#: cp/parser.c:24061 | |
33218 | +#: cp/parser.c:24056 | |
33219 | #, gcc-internal-format | |
33220 | msgid "identifier expected after %<@protocol%>" | |
33221 | msgstr "se esperaba un identificador después de %<@protocol%>" | |
33222 | ||
33223 | -#: cp/parser.c:24232 | |
33224 | +#: cp/parser.c:24227 | |
33225 | #, gcc-internal-format | |
33226 | msgid "attributes may not be specified before the %<@%D%> Objective-C++ keyword" | |
33227 | msgstr "los atributos no se pueden especificar antes de la palabra clave de Objective-C++ %<@%D%>" | |
33228 | ||
33229 | -#: cp/parser.c:24239 | |
33230 | +#: cp/parser.c:24234 | |
33231 | #, gcc-internal-format | |
33232 | msgid "prefix attributes are ignored before %<@%D%>" | |
33233 | msgstr "se descartan los atributos de prefijo antes de %<@%D%>" | |
33234 | ||
33235 | -#: cp/parser.c:24512 cp/parser.c:24519 cp/parser.c:24526 | |
33236 | +#: cp/parser.c:24507 cp/parser.c:24514 cp/parser.c:24521 | |
33237 | #, gcc-internal-format | |
33238 | msgid "invalid type for property" | |
33239 | msgstr "tipo inválido para la propiedad" | |
33240 | ||
33241 | -#: cp/parser.c:26256 | |
33242 | +#: cp/parser.c:26251 | |
33243 | #, gcc-internal-format | |
33244 | msgid "parenthesized initialization is not allowed in OpenMP %<for%> loop" | |
33245 | msgstr "no se permite la inicialización entre paréntesis para el bucle %<for%> en OpenMP" | |
33246 | ||
33247 | -#: cp/parser.c:26423 cp/pt.c:12731 | |
33248 | +#: cp/parser.c:26418 cp/pt.c:12757 | |
33249 | #, gcc-internal-format | |
33250 | msgid "iteration variable %qD should not be reduction" | |
33251 | msgstr "la variable de iteración %qD no debe ser reduction" | |
33252 | ||
33253 | -#: cp/parser.c:26491 | |
33254 | +#: cp/parser.c:26486 | |
33255 | #, gcc-internal-format | |
33256 | msgid "not enough collapsed for loops" | |
33257 | msgstr "no se colapsó lo suficiente para los bucles" | |
33258 | ||
33259 | -#: cp/parser.c:27049 cp/semantics.c:5019 | |
33260 | +#: cp/parser.c:27044 cp/semantics.c:5019 | |
33261 | #, gcc-internal-format | |
33262 | msgid "%<__transaction_relaxed%> without transactional memory support enabled" | |
33263 | msgstr "%<__transaction_relaxed%> sin activar el soporte de memoria transaccional" | |
33264 | ||
33265 | -#: cp/parser.c:27051 cp/semantics.c:5021 | |
33266 | +#: cp/parser.c:27046 cp/semantics.c:5021 | |
33267 | #, gcc-internal-format | |
33268 | msgid "%<__transaction_atomic%> without transactional memory support enabled" | |
33269 | msgstr "%<__transaction_atomic%> sin activar el soporte de memoria transaccional" | |
33270 | ||
33271 | -#: cp/parser.c:27248 | |
33272 | +#: cp/parser.c:27243 | |
33273 | #, gcc-internal-format | |
33274 | msgid "junk at end of %<#pragma GCC pch_preprocess%>" | |
33275 | msgstr "basura al final de %<#pragma GCC pch_preprocess%>" | |
33276 | ||
33277 | -#: cp/parser.c:27427 | |
33278 | +#: cp/parser.c:27422 | |
33279 | #, gcc-internal-format | |
33280 | msgid "inter-module optimizations not implemented for C++" | |
33281 | msgstr "no se han implementado las optimizaciones intermódulos para C++" | |
33282 | @@ -32827,17 +32822,17 @@ | |
33283 | msgid "template instantiation depth exceeds maximum of %d (use -ftemplate-depth= to increase the maximum) instantiating %qD" | |
33284 | msgstr "la profundidad de instanciación de la plantilla excede el máximo de %d (use -ftemplate-depth= para incrementar el máximo) al instanciar %qD" | |
33285 | ||
33286 | -#: cp/pt.c:9443 | |
33287 | +#: cp/pt.c:9455 | |
33288 | #, gcc-internal-format | |
33289 | msgid "mismatched argument pack lengths while expanding %<%T%>" | |
33290 | msgstr "no coinciden las longitudes de los paquetes de argumentos al expandir %<%T%>" | |
33291 | ||
33292 | -#: cp/pt.c:9447 | |
33293 | +#: cp/pt.c:9459 | |
33294 | #, gcc-internal-format | |
33295 | msgid "mismatched argument pack lengths while expanding %<%E%>" | |
33296 | msgstr "no coinciden las longitudes de los paquetes de argumentos al expandir %<%E%>" | |
33297 | ||
33298 | -#: cp/pt.c:10573 | |
33299 | +#: cp/pt.c:10585 | |
33300 | #, gcc-internal-format | |
33301 | msgid "instantiation of %q+D as type %qT" | |
33302 | msgstr "instanciación de %q+D como tipo %qT" | |
33303 | @@ -32855,257 +32850,257 @@ | |
33304 | #. | |
33305 | #. is an attempt to declare a variable with function | |
33306 | #. type. | |
33307 | -#: cp/pt.c:10731 | |
33308 | +#: cp/pt.c:10757 | |
33309 | #, gcc-internal-format | |
33310 | msgid "variable %qD has function type" | |
33311 | msgstr "la variable %qD tiene tipo de función" | |
33312 | ||
33313 | -#: cp/pt.c:10900 | |
33314 | +#: cp/pt.c:10926 | |
33315 | #, gcc-internal-format | |
33316 | msgid "invalid parameter type %qT" | |
33317 | msgstr "tipo de parámetro %qT inválido" | |
33318 | ||
33319 | -#: cp/pt.c:10902 | |
33320 | +#: cp/pt.c:10928 | |
33321 | #, gcc-internal-format | |
33322 | msgid "in declaration %q+D" | |
33323 | msgstr "en la declaración %q+D" | |
33324 | ||
33325 | -#: cp/pt.c:10979 | |
33326 | +#: cp/pt.c:11005 | |
33327 | #, gcc-internal-format | |
33328 | msgid "function returning an array" | |
33329 | msgstr "la función devuelve una matriz" | |
33330 | ||
33331 | -#: cp/pt.c:10981 | |
33332 | +#: cp/pt.c:11007 | |
33333 | #, gcc-internal-format | |
33334 | msgid "function returning a function" | |
33335 | msgstr "la función devuelve una función" | |
33336 | ||
33337 | -#: cp/pt.c:11011 | |
33338 | +#: cp/pt.c:11037 | |
33339 | #, gcc-internal-format | |
33340 | msgid "creating pointer to member function of non-class type %qT" | |
33341 | msgstr "se crea un puntero a función miembro del tipo %qT que no es clase" | |
33342 | ||
33343 | -#: cp/pt.c:11552 | |
33344 | +#: cp/pt.c:11578 | |
33345 | #, gcc-internal-format | |
33346 | msgid "forming reference to void" | |
33347 | msgstr "se forma la referencia a void" | |
33348 | ||
33349 | -#: cp/pt.c:11554 | |
33350 | +#: cp/pt.c:11580 | |
33351 | #, gcc-internal-format | |
33352 | msgid "forming pointer to reference type %qT" | |
33353 | msgstr "se forma un puntero para referenciar al tipo %qT" | |
33354 | ||
33355 | -#: cp/pt.c:11556 | |
33356 | +#: cp/pt.c:11582 | |
33357 | #, gcc-internal-format | |
33358 | msgid "forming reference to reference type %qT" | |
33359 | msgstr "se forma una referencia para referenciar al tipo %qT" | |
33360 | ||
33361 | -#: cp/pt.c:11605 | |
33362 | +#: cp/pt.c:11631 | |
33363 | #, gcc-internal-format | |
33364 | msgid "creating pointer to member of non-class type %qT" | |
33365 | msgstr "se crea un puntero al miembro del tipo %qT que no es clase" | |
33366 | ||
33367 | -#: cp/pt.c:11611 | |
33368 | +#: cp/pt.c:11637 | |
33369 | #, gcc-internal-format | |
33370 | msgid "creating pointer to member reference type %qT" | |
33371 | msgstr "se crea un puntero al miembro de referencia de tipo %qT" | |
33372 | ||
33373 | -#: cp/pt.c:11617 | |
33374 | +#: cp/pt.c:11643 | |
33375 | #, gcc-internal-format | |
33376 | msgid "creating pointer to member of type void" | |
33377 | msgstr "se crea un puntero al miembro de tipo void" | |
33378 | ||
33379 | -#: cp/pt.c:11679 | |
33380 | +#: cp/pt.c:11705 | |
33381 | #, gcc-internal-format | |
33382 | msgid "creating array of %qT" | |
33383 | msgstr "se crea la matriz de %qT" | |
33384 | ||
33385 | -#: cp/pt.c:11685 | |
33386 | +#: cp/pt.c:11711 | |
33387 | #, gcc-internal-format | |
33388 | msgid "creating array of %qT, which is an abstract class type" | |
33389 | msgstr "se crea la matriz de %qT, la cual es un tipo de clase abstracta" | |
33390 | ||
33391 | -#: cp/pt.c:11714 | |
33392 | +#: cp/pt.c:11740 | |
33393 | #, gcc-internal-format | |
33394 | msgid "%qT is not a class, struct, or union type" | |
33395 | msgstr "%qT no es de tipo clase, struct o union" | |
33396 | ||
33397 | -#: cp/pt.c:11751 | |
33398 | +#: cp/pt.c:11777 | |
33399 | #, gcc-internal-format | |
33400 | msgid "%qT resolves to %qT, which is not an enumeration type" | |
33401 | msgstr "%qT resuelve a %qT, el cual no es un tipo enumerado" | |
33402 | ||
33403 | -#: cp/pt.c:11759 | |
33404 | +#: cp/pt.c:11785 | |
33405 | #, gcc-internal-format | |
33406 | msgid "%qT resolves to %qT, which is is not a class type" | |
33407 | msgstr "%qT resuelve a %qT, el cual no es un tipo de clase" | |
33408 | ||
33409 | -#: cp/pt.c:11876 | |
33410 | +#: cp/pt.c:11902 | |
33411 | #, gcc-internal-format | |
33412 | msgid "use of %qs in template" | |
33413 | msgstr "uso de %qs en la plantilla" | |
33414 | ||
33415 | -#: cp/pt.c:12016 | |
33416 | +#: cp/pt.c:12042 | |
33417 | #, gcc-internal-format | |
33418 | msgid "qualifying type %qT does not match destructor name ~%qT" | |
33419 | msgstr "el tipo calificador %qT no coincide con el nombre del destructor ~%qT" | |
33420 | ||
33421 | -#: cp/pt.c:12031 | |
33422 | +#: cp/pt.c:12057 | |
33423 | #, gcc-internal-format | |
33424 | msgid "dependent-name %qE is parsed as a non-type, but instantiation yields a type" | |
33425 | msgstr "el nombre dependiente %qE se decodifica como un no tipo, pero la instanciación genera un tipo" | |
33426 | ||
33427 | -#: cp/pt.c:12033 | |
33428 | +#: cp/pt.c:12059 | |
33429 | #, gcc-internal-format | |
33430 | msgid "say %<typename %E%> if a type is meant" | |
33431 | msgstr "escriba %<typename %E%> si quiere un tipo" | |
33432 | ||
33433 | -#: cp/pt.c:12186 | |
33434 | +#: cp/pt.c:12212 | |
33435 | #, gcc-internal-format | |
33436 | msgid "using invalid field %qD" | |
33437 | msgstr "se usa el campo inválido %qD" | |
33438 | ||
33439 | -#: cp/pt.c:12541 cp/pt.c:13351 | |
33440 | +#: cp/pt.c:12567 cp/pt.c:13377 | |
33441 | #, gcc-internal-format | |
33442 | msgid "invalid use of pack expansion expression" | |
33443 | msgstr "uso inválido de la expresión de expansión de paquete" | |
33444 | ||
33445 | -#: cp/pt.c:12545 cp/pt.c:13355 | |
33446 | +#: cp/pt.c:12571 cp/pt.c:13381 | |
33447 | #, gcc-internal-format | |
33448 | msgid "use %<...%> to expand argument pack" | |
33449 | msgstr "use %<...%> para expandir el paquete de argumentos" | |
33450 | ||
33451 | -#: cp/pt.c:13931 | |
33452 | +#: cp/pt.c:13957 | |
33453 | #, gcc-internal-format | |
33454 | msgid "%qD was not declared in this scope, and no declarations were found by argument-dependent lookup at the point of instantiation" | |
33455 | msgstr "%qD no se declaró en este ámbito, y no se encontraron declaraciones en la búsqueda dependiente de argumentos en el punto de la instanciación" | |
33456 | ||
33457 | -#: cp/pt.c:13940 | |
33458 | +#: cp/pt.c:13966 | |
33459 | #, gcc-internal-format | |
33460 | msgid "declarations in dependent base %qT are not found by unqualified lookup" | |
33461 | msgstr "no se encontraron declaraciones en la base dependiente %qT pur la búsqueda no calificada" | |
33462 | ||
33463 | -#: cp/pt.c:13945 | |
33464 | +#: cp/pt.c:13971 | |
33465 | #, gcc-internal-format | |
33466 | msgid "use %<this->%D%> instead" | |
33467 | msgstr "use %<this->%D%> en su lugar" | |
33468 | ||
33469 | -#: cp/pt.c:13948 | |
33470 | +#: cp/pt.c:13974 | |
33471 | #, gcc-internal-format | |
33472 | msgid "use %<%T::%D%> instead" | |
33473 | msgstr "use %<%T::%D%> en su lugar" | |
33474 | ||
33475 | -#: cp/pt.c:13952 | |
33476 | +#: cp/pt.c:13978 | |
33477 | #, gcc-internal-format | |
33478 | msgid "%q+D declared here, later in the translation unit" | |
33479 | msgstr "%q+D se declaró aquí, después en la unidad de translación" | |
33480 | ||
33481 | -#: cp/pt.c:14185 | |
33482 | +#: cp/pt.c:14211 | |
33483 | #, gcc-internal-format | |
33484 | msgid "%qT is not a class or namespace" | |
33485 | msgstr "%qT no es una clase o un espacio de nombres" | |
33486 | ||
33487 | -#: cp/pt.c:14188 | |
33488 | +#: cp/pt.c:14214 | |
33489 | #, gcc-internal-format | |
33490 | msgid "%qD is not a class or namespace" | |
33491 | msgstr "%qD no es una clase o un espacio de nombres" | |
33492 | ||
33493 | -#: cp/pt.c:14480 | |
33494 | +#: cp/pt.c:14506 | |
33495 | #, gcc-internal-format | |
33496 | msgid "%qT is/uses anonymous type" | |
33497 | msgstr "%qT es/usa un tipo anónimo" | |
33498 | ||
33499 | -#: cp/pt.c:14482 | |
33500 | +#: cp/pt.c:14508 | |
33501 | #, gcc-internal-format | |
33502 | msgid "template argument for %qD uses local type %qT" | |
33503 | msgstr "el argumento de plantilla para %qD usa el tipo local %qT" | |
33504 | ||
33505 | -#: cp/pt.c:14492 | |
33506 | +#: cp/pt.c:14518 | |
33507 | #, gcc-internal-format | |
33508 | msgid "%qT is a variably modified type" | |
33509 | msgstr "%qT es un tipo modificado variablemente" | |
33510 | ||
33511 | -#: cp/pt.c:14503 | |
33512 | +#: cp/pt.c:14529 | |
33513 | #, gcc-internal-format | |
33514 | msgid "integral expression %qE is not constant" | |
33515 | msgstr "la expresión integral %qE no es una constante" | |
33516 | ||
33517 | -#: cp/pt.c:14521 | |
33518 | +#: cp/pt.c:14547 | |
33519 | #, gcc-internal-format | |
33520 | msgid " trying to instantiate %qD" | |
33521 | msgstr " se trata de instanciar %qD" | |
33522 | ||
33523 | -#: cp/pt.c:17842 | |
33524 | +#: cp/pt.c:17868 | |
33525 | #, gcc-internal-format | |
33526 | msgid "ambiguous class template instantiation for %q#T" | |
33527 | msgstr "instanciación de plantilla clase ambigua para %q#T" | |
33528 | ||
33529 | -#: cp/pt.c:17846 | |
33530 | +#: cp/pt.c:17872 | |
33531 | #, gcc-internal-format | |
33532 | msgid "%s %+#T" | |
33533 | msgstr "%s %+#T" | |
33534 | ||
33535 | -#: cp/pt.c:17870 cp/pt.c:17953 | |
33536 | +#: cp/pt.c:17896 cp/pt.c:17979 | |
33537 | #, gcc-internal-format | |
33538 | msgid "explicit instantiation of non-template %q#D" | |
33539 | msgstr "instanciación explícita de %q#D que no es plantilla" | |
33540 | ||
33541 | -#: cp/pt.c:17885 | |
33542 | +#: cp/pt.c:17911 | |
33543 | #, gcc-internal-format | |
33544 | msgid "%qD is not a static data member of a class template" | |
33545 | msgstr "%qD no es un dato miembro static de una plantilla de clase" | |
33546 | ||
33547 | -#: cp/pt.c:17891 cp/pt.c:17948 | |
33548 | +#: cp/pt.c:17917 cp/pt.c:17974 | |
33549 | #, gcc-internal-format | |
33550 | msgid "no matching template for %qD found" | |
33551 | msgstr "no se encontró una plantilla coincidente para %qD" | |
33552 | ||
33553 | -#: cp/pt.c:17896 | |
33554 | +#: cp/pt.c:17922 | |
33555 | #, gcc-internal-format | |
33556 | msgid "type %qT for explicit instantiation %qD does not match declared type %qT" | |
33557 | msgstr "el tipo %qT para la instanciación explícita %qD no coincide con el tipo declarado %qT" | |
33558 | ||
33559 | -#: cp/pt.c:17904 | |
33560 | +#: cp/pt.c:17930 | |
33561 | #, gcc-internal-format | |
33562 | msgid "explicit instantiation of %q#D" | |
33563 | msgstr "instanciación explícita de %q#D" | |
33564 | ||
33565 | -#: cp/pt.c:17940 | |
33566 | +#: cp/pt.c:17966 | |
33567 | #, gcc-internal-format | |
33568 | msgid "duplicate explicit instantiation of %q#D" | |
33569 | msgstr "instanciación explícita duplicada de %q#D" | |
33570 | ||
33571 | -#: cp/pt.c:17963 cp/pt.c:18060 | |
33572 | +#: cp/pt.c:17989 cp/pt.c:18086 | |
33573 | #, gcc-internal-format | |
33574 | msgid "ISO C++ 1998 forbids the use of %<extern%> on explicit instantiations" | |
33575 | msgstr "ISO C++ 1998 prohíbe el uso de %<extern%> en instanciaciones explícitas" | |
33576 | ||
33577 | -#: cp/pt.c:17968 cp/pt.c:18077 | |
33578 | +#: cp/pt.c:17994 cp/pt.c:18103 | |
33579 | #, gcc-internal-format | |
33580 | msgid "storage class %qD applied to template instantiation" | |
33581 | msgstr "clase de almacenamiento %qD aplicada a la instanciación de una plantilla" | |
33582 | ||
33583 | -#: cp/pt.c:18036 | |
33584 | +#: cp/pt.c:18062 | |
33585 | #, gcc-internal-format | |
33586 | msgid "explicit instantiation of non-class template %qD" | |
33587 | msgstr "instanciación explícita de la plantilla %qD que no es clase" | |
33588 | ||
33589 | -#: cp/pt.c:18038 | |
33590 | +#: cp/pt.c:18064 | |
33591 | #, gcc-internal-format | |
33592 | msgid "explicit instantiation of non-template type %qT" | |
33593 | msgstr "instanciación explícita del tipo %qT que no es plantilla" | |
33594 | ||
33595 | -#: cp/pt.c:18047 | |
33596 | +#: cp/pt.c:18073 | |
33597 | #, gcc-internal-format | |
33598 | msgid "explicit instantiation of %q#T before definition of template" | |
33599 | msgstr "instanciación explícita de %q#T antes de la definición de la plantilla" | |
33600 | ||
33601 | -#: cp/pt.c:18065 | |
33602 | +#: cp/pt.c:18091 | |
33603 | #, gcc-internal-format | |
33604 | msgid "ISO C++ forbids the use of %qE on explicit instantiations" | |
33605 | msgstr "ISO C++ prohíbe el uso de %qE en las instanciaciones explícitas" | |
33606 | ||
33607 | -#: cp/pt.c:18111 | |
33608 | +#: cp/pt.c:18137 | |
33609 | #, gcc-internal-format | |
33610 | msgid "duplicate explicit instantiation of %q#T" | |
33611 | msgstr "instanciación explícita duplicada de %q#T" | |
33612 | @@ -33117,32 +33112,32 @@ | |
33613 | #. member function or static data member of a class template | |
33614 | #. shall be present in every translation unit in which it is | |
33615 | #. explicitly instantiated. | |
33616 | -#: cp/pt.c:18665 | |
33617 | +#: cp/pt.c:18692 | |
33618 | #, gcc-internal-format | |
33619 | msgid "explicit instantiation of %qD but no definition available" | |
33620 | msgstr "instanciación explícita de %qD pero no hay una definición disponible" | |
33621 | ||
33622 | -#: cp/pt.c:18841 | |
33623 | +#: cp/pt.c:18873 | |
33624 | #, gcc-internal-format | |
33625 | msgid "template instantiation depth exceeds maximum of %d instantiating %q+D, possibly from virtual table generation (use -ftemplate-depth= to increase the maximum)" | |
33626 | msgstr "la profundidad de instanciación de la plantilla excede el máximo de %d al instanciar %q+D, posiblemente de la generación de tabla virtual (use -ftemplate-depth= para incrementar el máximo)" | |
33627 | ||
33628 | -#: cp/pt.c:19221 | |
33629 | +#: cp/pt.c:19253 | |
33630 | #, gcc-internal-format | |
33631 | msgid "invalid template non-type parameter" | |
33632 | msgstr "parámetro que no es tipo plantilla inválido" | |
33633 | ||
33634 | -#: cp/pt.c:19223 | |
33635 | +#: cp/pt.c:19255 | |
33636 | #, gcc-internal-format | |
33637 | msgid "%q#T is not a valid type for a template non-type parameter" | |
33638 | msgstr "%q#T no es un tipo válido para un parámetro que no es tipo plantilla" | |
33639 | ||
33640 | -#: cp/pt.c:20309 | |
33641 | +#: cp/pt.c:20346 | |
33642 | #, gcc-internal-format | |
33643 | msgid "deducing from brace-enclosed initializer list requires #include <initializer_list>" | |
33644 | msgstr "la deducción de una lista inicializadora encerrada entre llaves requiere #include <initializer_list>" | |
33645 | ||
33646 | -#: cp/pt.c:20367 | |
33647 | +#: cp/pt.c:20404 | |
33648 | #, gcc-internal-format | |
33649 | msgid "variable %q#D with %<auto%> type used in its own initializer" | |
33650 | msgstr "se usó la variable %q#D con tipo %<auto%> en su propio inicializador" | |
33651 | @@ -33150,12 +33145,12 @@ | |
33652 | #. If type is error_mark_node a diagnostic must have been | |
33653 | #. emitted by now. Also, having a mention to '<type error>' | |
33654 | #. in the diagnostic is not really useful to the user. | |
33655 | -#: cp/pt.c:20399 | |
33656 | +#: cp/pt.c:20436 | |
33657 | #, gcc-internal-format | |
33658 | msgid "unable to deduce %qT from %qE" | |
33659 | msgstr "no se puede deducir %qT de %qE" | |
33660 | ||
33661 | -#: cp/pt.c:20410 | |
33662 | +#: cp/pt.c:20447 | |
33663 | #, gcc-internal-format | |
33664 | msgid "inconsistent deduction for %qT: %qT and then %qT" | |
33665 | msgstr "deducción inconsistente para %qT: %qT y después %qT" | |
33666 | @@ -33392,7 +33387,7 @@ | |
33667 | msgid "invalid base-class specification" | |
33668 | msgstr "especificación de clase base inválida" | |
33669 | ||
33670 | -#: cp/semantics.c:2996 cp/semantics.c:8816 | |
33671 | +#: cp/semantics.c:2996 cp/semantics.c:8857 | |
33672 | #, gcc-internal-format | |
33673 | msgid "%qD is not captured" | |
33674 | msgstr "%qD no se capturó" | |
33675 | @@ -33565,263 +33560,263 @@ | |
33676 | msgid "%q#T has virtual base classes" | |
33677 | msgstr "%q#T tiene clases base virtuales" | |
33678 | ||
33679 | -#: cp/semantics.c:5876 | |
33680 | +#: cp/semantics.c:5873 | |
33681 | #, gcc-internal-format | |
33682 | msgid "constexpr constructor does not have empty body" | |
33683 | msgstr "el constructor constexpr no tiene cuerpo vacío" | |
33684 | ||
33685 | -#: cp/semantics.c:6039 | |
33686 | +#: cp/semantics.c:6068 | |
33687 | #, gcc-internal-format | |
33688 | msgid "%<constexpr%> constructor for union %qT must initialize exactly one non-static data member" | |
33689 | msgstr "el constructor %<constexpr%> para union %qT debe inicializar exactamente un dato miembro que no es static" | |
33690 | ||
33691 | -#: cp/semantics.c:6077 | |
33692 | +#: cp/semantics.c:6108 | |
33693 | #, gcc-internal-format | |
33694 | msgid "uninitialized member %qD in %<constexpr%> constructor" | |
33695 | msgstr "miembro %qD sin inicializar en el constructor %<constexpr%>" | |
33696 | ||
33697 | -#: cp/semantics.c:6108 | |
33698 | +#: cp/semantics.c:6139 | |
33699 | #, gcc-internal-format | |
33700 | msgid "body of constexpr function %qD not a return-statement" | |
33701 | msgstr "el cuerpo de la función constexpr %qD no es una declaración de devolución" | |
33702 | ||
33703 | -#: cp/semantics.c:6163 | |
33704 | +#: cp/semantics.c:6194 | |
33705 | #, gcc-internal-format | |
33706 | msgid "%q+D is not usable as a constexpr function because:" | |
33707 | msgstr "%q+D no se puede usar como una función constexpr porque:" | |
33708 | ||
33709 | -#: cp/semantics.c:6487 | |
33710 | +#: cp/semantics.c:6518 | |
33711 | #, gcc-internal-format | |
33712 | msgid "expression %qE does not designate a constexpr function" | |
33713 | msgstr "la expresión %qE no designa una función constexpr" | |
33714 | ||
33715 | -#: cp/semantics.c:6501 cp/semantics.c:8085 | |
33716 | +#: cp/semantics.c:6532 cp/semantics.c:8126 | |
33717 | #, gcc-internal-format | |
33718 | msgid "call to non-constexpr function %qD" | |
33719 | msgstr "llamada a la función %qD que no es constexpr" | |
33720 | ||
33721 | #. The definition of fun was somehow unsuitable. | |
33722 | -#: cp/semantics.c:6529 | |
33723 | +#: cp/semantics.c:6560 | |
33724 | #, gcc-internal-format | |
33725 | msgid "%qD called in a constant expression" | |
33726 | msgstr "se llamó %qD en una expresión constante" | |
33727 | ||
33728 | -#: cp/semantics.c:6533 | |
33729 | +#: cp/semantics.c:6564 | |
33730 | #, gcc-internal-format | |
33731 | msgid "%qD used before its definition" | |
33732 | msgstr "se usó %qD antes de su definición" | |
33733 | ||
33734 | -#: cp/semantics.c:6567 | |
33735 | +#: cp/semantics.c:6598 | |
33736 | #, gcc-internal-format | |
33737 | msgid "call has circular dependency" | |
33738 | msgstr "la llamada tiene una dependencia circular" | |
33739 | ||
33740 | -#: cp/semantics.c:6575 | |
33741 | +#: cp/semantics.c:6606 | |
33742 | #, gcc-internal-format, gfc-internal-format | |
33743 | msgid "constexpr evaluation depth exceeds maximum of %d (use -fconstexpr-depth= to increase the maximum)" | |
33744 | msgstr "la profundidad de evaluación de constexpr excede el máximo de %d (use -fconstexpr-depth= para incrementar el máximo)" | |
33745 | ||
33746 | -#: cp/semantics.c:6653 | |
33747 | +#: cp/semantics.c:6684 | |
33748 | #, gcc-internal-format | |
33749 | msgid "%q+E is not a constant expression" | |
33750 | msgstr "%q+E no es una expresión constante" | |
33751 | ||
33752 | -#: cp/semantics.c:6793 | |
33753 | +#: cp/semantics.c:6824 | |
33754 | #, gcc-internal-format | |
33755 | msgid "array subscript out of bound" | |
33756 | msgstr "el subíndice de la matriz está fuera de los límites" | |
33757 | ||
33758 | -#: cp/semantics.c:6839 cp/semantics.c:6899 cp/semantics.c:7536 | |
33759 | +#: cp/semantics.c:6870 cp/semantics.c:6930 cp/semantics.c:7577 | |
33760 | #, gcc-internal-format | |
33761 | msgid "%qE is not a constant expression" | |
33762 | msgstr "%qE no es una expresión constante" | |
33763 | ||
33764 | -#: cp/semantics.c:6845 | |
33765 | +#: cp/semantics.c:6876 | |
33766 | #, gcc-internal-format | |
33767 | msgid "mutable %qD is not usable in a constant expression" | |
33768 | msgstr "%qD mutable no se puede usar en una expresión constante" | |
33769 | ||
33770 | -#: cp/semantics.c:6860 | |
33771 | +#: cp/semantics.c:6891 | |
33772 | #, gcc-internal-format | |
33773 | msgid "accessing %qD member instead of initialized %qD member in constant expression" | |
33774 | msgstr "se accede al miembro %qD en lugar del miembro inicializado %qD en la expresión constante" | |
33775 | ||
33776 | -#: cp/semantics.c:7401 | |
33777 | +#: cp/semantics.c:7438 | |
33778 | #, gcc-internal-format | |
33779 | msgid "accessing value of %qE through a %qT glvalue in a constant expression" | |
33780 | msgstr "se accede al valor de %qE a través de glvalue %qT en una expresión constante" | |
33781 | ||
33782 | -#: cp/semantics.c:7432 | |
33783 | +#: cp/semantics.c:7473 | |
33784 | #, gcc-internal-format | |
33785 | msgid "the value of %qD is not usable in a constant expression" | |
33786 | msgstr "el valor de %qD no se puede usar en una expresión constante" | |
33787 | ||
33788 | -#: cp/semantics.c:7439 | |
33789 | +#: cp/semantics.c:7480 | |
33790 | #, gcc-internal-format | |
33791 | msgid "%qD used in its own initializer" | |
33792 | msgstr "se usó %qD en su propio inicializador" | |
33793 | ||
33794 | -#: cp/semantics.c:7444 | |
33795 | +#: cp/semantics.c:7485 | |
33796 | #, gcc-internal-format | |
33797 | msgid "%q#D is not const" | |
33798 | msgstr "%q#D no es const" | |
33799 | ||
33800 | -#: cp/semantics.c:7447 | |
33801 | +#: cp/semantics.c:7488 | |
33802 | #, gcc-internal-format | |
33803 | msgid "%q#D is volatile" | |
33804 | msgstr "%q+#D es volatile" | |
33805 | ||
33806 | -#: cp/semantics.c:7451 | |
33807 | +#: cp/semantics.c:7492 | |
33808 | #, gcc-internal-format | |
33809 | msgid "%qD was not initialized with a constant expression" | |
33810 | msgstr "%qD no se inicializó con una expresion constante" | |
33811 | ||
33812 | -#: cp/semantics.c:7460 | |
33813 | +#: cp/semantics.c:7501 | |
33814 | #, gcc-internal-format | |
33815 | msgid "%qD was not declared %<constexpr%>" | |
33816 | msgstr "%qD no se declaró %<constexpr%>" | |
33817 | ||
33818 | -#: cp/semantics.c:7463 | |
33819 | +#: cp/semantics.c:7504 | |
33820 | #, gcc-internal-format | |
33821 | msgid "%qD does not have integral or enumeration type" | |
33822 | msgstr "%qD no tiene tipo integral o de enumeración" | |
33823 | ||
33824 | -#: cp/semantics.c:7524 cp/semantics.c:8217 | |
33825 | +#: cp/semantics.c:7565 cp/semantics.c:8258 | |
33826 | #, gcc-internal-format | |
33827 | msgid "use of the value of the object being constructed in a constant expression" | |
33828 | msgstr "uso del valor del objeto en construcción en una expresión constante" | |
33829 | ||
33830 | -#: cp/semantics.c:7552 cp/semantics.c:8355 | |
33831 | +#: cp/semantics.c:7593 cp/semantics.c:8396 | |
33832 | #, gcc-internal-format | |
33833 | msgid "temporary of non-literal type %qT in a constant expression" | |
33834 | msgstr "temporal del tipo %qT que no es literal en una expresión constante" | |
33835 | ||
33836 | -#: cp/semantics.c:7800 cp/semantics.c:8259 cp/semantics.c:8509 | |
33837 | +#: cp/semantics.c:7841 cp/semantics.c:8300 cp/semantics.c:8550 | |
33838 | #, gcc-internal-format | |
33839 | msgid "expression %qE is not a constant-expression" | |
33840 | msgstr "la expresión %qE no es una expresión constante" | |
33841 | ||
33842 | -#: cp/semantics.c:7805 | |
33843 | +#: cp/semantics.c:7846 | |
33844 | #, gcc-internal-format | |
33845 | msgid "unexpected expression %qE of kind %s" | |
33846 | msgstr "expresión %qE inesperada de género %s" | |
33847 | ||
33848 | -#: cp/semantics.c:7836 | |
33849 | +#: cp/semantics.c:7877 | |
33850 | #, gcc-internal-format | |
33851 | msgid "%qT cannot be the type of a complete constant expression because it has mutable sub-objects" | |
33852 | msgstr "%qT no puede ser el tipo de una expresión constante completa porque tiene sub-objetos mutables" | |
33853 | ||
33854 | -#: cp/semantics.c:7849 | |
33855 | +#: cp/semantics.c:7890 | |
33856 | #, gcc-internal-format | |
33857 | msgid "conversion from pointer type %qT to arithmetic type %qT in a constant-expression" | |
33858 | msgstr "conversión del tipo puntero %qT al tipo aritmético %qT en una expresión constante" | |
33859 | ||
33860 | -#: cp/semantics.c:8020 | |
33861 | +#: cp/semantics.c:8061 | |
33862 | #, gcc-internal-format | |
33863 | msgid "expression %qE has side-effects" | |
33864 | msgstr "la expresión %qE tiene efectos colaterales" | |
33865 | ||
33866 | -#: cp/semantics.c:8103 | |
33867 | +#: cp/semantics.c:8144 | |
33868 | #, gcc-internal-format | |
33869 | msgid "calling a member function of the object being constructed in a constant expression" | |
33870 | msgstr "se llamó a una función miembro del objeto en construcción en una expresión constante" | |
33871 | ||
33872 | -#: cp/semantics.c:8185 | |
33873 | +#: cp/semantics.c:8226 | |
33874 | #, gcc-internal-format | |
33875 | msgid "address-of an object %qE with thread local or automatic storage is not a constant expression" | |
33876 | msgstr "la dirección de un objeto %qE con hilo local o almacenamiento automático no es una expresión constante" | |
33877 | ||
33878 | -#: cp/semantics.c:8271 | |
33879 | +#: cp/semantics.c:8312 | |
33880 | #, gcc-internal-format | |
33881 | msgid "typeid-expression is not a constant expression because %qE is of polymorphic type" | |
33882 | msgstr "la expresión id de tipo no es una expresión constante porque %qE es de tipo polimórfico" | |
33883 | ||
33884 | -#: cp/semantics.c:8284 | |
33885 | +#: cp/semantics.c:8325 | |
33886 | #, gcc-internal-format | |
33887 | msgid "difference of two pointer expressions is not a constant expression" | |
33888 | msgstr "la diferencia de dos expresiones puntero no es una expresión constante" | |
33889 | ||
33890 | -#: cp/semantics.c:8303 | |
33891 | +#: cp/semantics.c:8344 | |
33892 | #, gcc-internal-format | |
33893 | msgid "pointer comparison expression is not a constant expression" | |
33894 | msgstr "la expresión de comparación de punteros no es una expresión constante" | |
33895 | ||
33896 | -#: cp/semantics.c:8404 | |
33897 | +#: cp/semantics.c:8445 | |
33898 | #, gcc-internal-format | |
33899 | msgid "division by zero is not a constant-expression" | |
33900 | msgstr "la división entre cero no es una expresión constante" | |
33901 | ||
33902 | -#: cp/semantics.c:8517 | |
33903 | +#: cp/semantics.c:8558 | |
33904 | #, gcc-internal-format | |
33905 | msgid "non-constant array initialization" | |
33906 | msgstr "inicialización de una matriz que no es constante" | |
33907 | ||
33908 | -#: cp/semantics.c:8523 | |
33909 | +#: cp/semantics.c:8564 | |
33910 | #, gcc-internal-format, gfc-internal-format | |
33911 | msgid "unexpected AST of kind %s" | |
33912 | msgstr "AST inesperado de género %s" | |
33913 | ||
33914 | -#: cp/semantics.c:9013 | |
33915 | +#: cp/semantics.c:9054 | |
33916 | #, gcc-internal-format | |
33917 | msgid "cannot capture %qE by reference" | |
33918 | msgstr "no se puede capturar %qE por referencia" | |
33919 | ||
33920 | -#: cp/semantics.c:9036 | |
33921 | +#: cp/semantics.c:9077 | |
33922 | #, gcc-internal-format | |
33923 | msgid "already captured %qD in lambda expression" | |
33924 | msgstr "ya se capturó %qD en la expresión lambda" | |
33925 | ||
33926 | -#: cp/semantics.c:9182 | |
33927 | +#: cp/semantics.c:9223 | |
33928 | #, gcc-internal-format | |
33929 | msgid "%<this%> was not captured for this lambda function" | |
33930 | msgstr "no se capturó %<this%> para esta función lambda" | |
33931 | ||
33932 | -#: cp/tree.c:1025 | |
33933 | +#: cp/tree.c:1037 | |
33934 | #, gcc-internal-format | |
33935 | msgid "%qV qualifiers cannot be applied to %qT" | |
33936 | msgstr "los calificadores %qV no se pueden aplicar a %qT" | |
33937 | ||
33938 | -#: cp/tree.c:2805 | |
33939 | +#: cp/tree.c:2817 | |
33940 | #, gcc-internal-format | |
33941 | msgid "%qE attribute can only be applied to Java class definitions" | |
33942 | msgstr "el atributo %qE sólo se puede aplicar a definiciones de clases Java" | |
33943 | ||
33944 | -#: cp/tree.c:2834 | |
33945 | +#: cp/tree.c:2846 | |
33946 | #, gcc-internal-format | |
33947 | msgid "%qE attribute can only be applied to class definitions" | |
33948 | msgstr "el atributo %qE sólo se puede aplicar a definiciones de clase" | |
33949 | ||
33950 | -#: cp/tree.c:2840 | |
33951 | +#: cp/tree.c:2852 | |
33952 | #, gcc-internal-format | |
33953 | msgid "%qE is obsolete; g++ vtables are now COM-compatible by default" | |
33954 | msgstr "%qE es obsoleto; las vtables de g++ ahora son compatibles con COM por defecto" | |
33955 | ||
33956 | -#: cp/tree.c:2864 | |
33957 | +#: cp/tree.c:2876 | |
33958 | #, gcc-internal-format | |
33959 | msgid "requested init_priority is not an integer constant" | |
33960 | msgstr "la init_priority solicitada no es una constante entera" | |
33961 | ||
33962 | -#: cp/tree.c:2885 | |
33963 | +#: cp/tree.c:2897 | |
33964 | #, gcc-internal-format | |
33965 | msgid "can only use %qE attribute on file-scope definitions of objects of class type" | |
33966 | msgstr "solo se puede usar el atributo %qE en definiciones de rango de fichero de objetos de tipo class" | |
33967 | ||
33968 | -#: cp/tree.c:2893 | |
33969 | +#: cp/tree.c:2905 | |
33970 | #, gcc-internal-format | |
33971 | msgid "requested init_priority is out of range" | |
33972 | msgstr "la init_priority solicitada está fuera de rango" | |
33973 | ||
33974 | -#: cp/tree.c:2903 | |
33975 | +#: cp/tree.c:2915 | |
33976 | #, gcc-internal-format | |
33977 | msgid "requested init_priority is reserved for internal use" | |
33978 | msgstr "la init_priority solicitada está reservada para uso interno" | |
33979 | ||
33980 | -#: cp/tree.c:2914 | |
33981 | +#: cp/tree.c:2926 | |
33982 | #, gcc-internal-format | |
33983 | msgid "%qE attribute is not supported on this platform" | |
33984 | msgstr "el atributo %qE no se admite en esta plataforma" | |
33985 | ||
33986 | -#: cp/tree.c:3594 | |
33987 | +#: cp/tree.c:3606 | |
33988 | #, gcc-internal-format, gfc-internal-format | |
33989 | msgid "lang_* check: failed in %s, at %s:%d" | |
33990 | msgstr "revisión lang_*: falló en %s, en %s:%d" | |
33991 | @@ -34764,122 +34759,122 @@ | |
33992 | msgid "cannot initialize arrays using this syntax" | |
33993 | msgstr "no se puede inicializar matrices usando esta sintaxis" | |
33994 | ||
33995 | -#: cp/typeck2.c:832 | |
33996 | +#: cp/typeck2.c:835 | |
33997 | #, gcc-internal-format | |
33998 | msgid "narrowing conversion of %qE from %qT to %qT inside { }" | |
33999 | msgstr "conversión estrechadora de %qE desde %qT a %qT dentro de { }" | |
34000 | ||
34001 | -#: cp/typeck2.c:836 | |
34002 | +#: cp/typeck2.c:839 | |
34003 | #, gcc-internal-format | |
34004 | msgid "narrowing conversion of %qE from %qT to %qT inside { } is ill-formed in C++11" | |
34005 | msgstr "la conversión estrechadora de %qE desde %qT a %qT dentro de { } está mal formada en C++11" | |
34006 | ||
34007 | -#: cp/typeck2.c:899 | |
34008 | +#: cp/typeck2.c:902 | |
34009 | #, gcc-internal-format | |
34010 | msgid "int-array initialized from non-wide string" | |
34011 | msgstr "matriz de enteros inicializada con una cadena que no es ancha" | |
34012 | ||
34013 | -#: cp/typeck2.c:905 | |
34014 | +#: cp/typeck2.c:908 | |
34015 | #, gcc-internal-format | |
34016 | msgid "int-array initialized from incompatible wide string" | |
34017 | msgstr "matriz de enteros inicializada con una cadena ancha incompatible" | |
34018 | ||
34019 | -#: cp/typeck2.c:925 | |
34020 | +#: cp/typeck2.c:928 | |
34021 | #, gcc-internal-format | |
34022 | msgid "initializer-string for array of chars is too long" | |
34023 | msgstr "la cadena del inicializador para la matriz de caracteres es demasiado larga" | |
34024 | ||
34025 | -#: cp/typeck2.c:973 | |
34026 | +#: cp/typeck2.c:976 | |
34027 | #, gcc-internal-format | |
34028 | msgid "cannot initialize aggregate of type %qT with a compound literal" | |
34029 | msgstr "no se puede inicializar el agregado del tipo %qT con una literal compuesta" | |
34030 | ||
34031 | -#: cp/typeck2.c:991 | |
34032 | +#: cp/typeck2.c:994 | |
34033 | #, gcc-internal-format | |
34034 | msgid "array must be initialized with a brace-enclosed initializer" | |
34035 | msgstr "la matriz se debe inicializar con un inicializador dentro de llaves" | |
34036 | ||
34037 | -#: cp/typeck2.c:1220 cp/typeck2.c:1249 | |
34038 | +#: cp/typeck2.c:1223 cp/typeck2.c:1252 | |
34039 | #, gcc-internal-format | |
34040 | msgid "missing initializer for member %qD" | |
34041 | msgstr "falta el inicializador para el miembro %qD" | |
34042 | ||
34043 | -#: cp/typeck2.c:1227 | |
34044 | +#: cp/typeck2.c:1230 | |
34045 | #, gcc-internal-format | |
34046 | msgid "uninitialized const member %qD" | |
34047 | msgstr "miembro const %qD sin inicializar" | |
34048 | ||
34049 | -#: cp/typeck2.c:1234 | |
34050 | +#: cp/typeck2.c:1237 | |
34051 | #, gcc-internal-format | |
34052 | msgid "member %qD with uninitialized const fields" | |
34053 | msgstr "miembro %qD con campos const sin inicializar" | |
34054 | ||
34055 | -#: cp/typeck2.c:1241 | |
34056 | +#: cp/typeck2.c:1244 | |
34057 | #, gcc-internal-format | |
34058 | msgid "member %qD is uninitialized reference" | |
34059 | msgstr "el miembro %qD es una referencia sin inicializar" | |
34060 | ||
34061 | -#: cp/typeck2.c:1321 | |
34062 | +#: cp/typeck2.c:1324 | |
34063 | #, gcc-internal-format | |
34064 | msgid "no field %qD found in union being initialized" | |
34065 | msgstr "no existe el campo %qD en la union que se está inicializando" | |
34066 | ||
34067 | -#: cp/typeck2.c:1332 | |
34068 | +#: cp/typeck2.c:1335 | |
34069 | #, gcc-internal-format | |
34070 | msgid "index value instead of field name in union initializer" | |
34071 | msgstr "valor de índice en lugar del nombre del campo en el inicializador de union" | |
34072 | ||
34073 | -#: cp/typeck2.c:1500 | |
34074 | +#: cp/typeck2.c:1503 | |
34075 | #, gcc-internal-format | |
34076 | msgid "circular pointer delegation detected" | |
34077 | msgstr "se detectó una delegación de puntero circular" | |
34078 | ||
34079 | -#: cp/typeck2.c:1513 | |
34080 | +#: cp/typeck2.c:1516 | |
34081 | #, gcc-internal-format | |
34082 | msgid "base operand of %<->%> has non-pointer type %qT" | |
34083 | msgstr "el operando base de %<->%> tiene el tipo %qT que no es puntero" | |
34084 | ||
34085 | -#: cp/typeck2.c:1537 | |
34086 | +#: cp/typeck2.c:1540 | |
34087 | #, gcc-internal-format | |
34088 | msgid "result of %<operator->()%> yields non-pointer result" | |
34089 | msgstr "el resultado de %<operator->()%> produce un resultado que no es puntero" | |
34090 | ||
34091 | -#: cp/typeck2.c:1539 | |
34092 | +#: cp/typeck2.c:1542 | |
34093 | #, gcc-internal-format | |
34094 | msgid "base operand of %<->%> is not a pointer" | |
34095 | msgstr "el operando base de %<->%> no es un puntero" | |
34096 | ||
34097 | -#: cp/typeck2.c:1564 | |
34098 | +#: cp/typeck2.c:1567 | |
34099 | #, gcc-internal-format | |
34100 | msgid "%qE cannot be used as a member pointer, since it is of type %qT" | |
34101 | msgstr "no se puede usar %qE como un puntero miembro, porque es de tipo %qT" | |
34102 | ||
34103 | -#: cp/typeck2.c:1573 | |
34104 | +#: cp/typeck2.c:1576 | |
34105 | #, gcc-internal-format | |
34106 | msgid "cannot apply member pointer %qE to %qE, which is of non-class type %qT" | |
34107 | msgstr "no se puede aplicar el puntero a miembro %qE a %qE, el cual es del tipo %qT que no es clase" | |
34108 | ||
34109 | -#: cp/typeck2.c:1595 | |
34110 | +#: cp/typeck2.c:1598 | |
34111 | #, gcc-internal-format | |
34112 | msgid "pointer to member type %qT incompatible with object type %qT" | |
34113 | msgstr "el tipo de puntero a miembro %qT es incompatible con el tipo objeto %qT" | |
34114 | ||
34115 | -#: cp/typeck2.c:1663 | |
34116 | +#: cp/typeck2.c:1666 | |
34117 | #, gcc-internal-format | |
34118 | msgid "functional cast to array type %qT" | |
34119 | msgstr "conversión funcional al tipo de matriz %qT" | |
34120 | ||
34121 | -#: cp/typeck2.c:1684 | |
34122 | +#: cp/typeck2.c:1687 | |
34123 | #, gcc-internal-format | |
34124 | msgid "invalid value-initialization of reference type" | |
34125 | msgstr "inicialización por valor inválida del tipo de referencia" | |
34126 | ||
34127 | -#: cp/typeck2.c:1913 | |
34128 | +#: cp/typeck2.c:1916 | |
34129 | #, gcc-internal-format | |
34130 | msgid "call to function %qD which throws incomplete type %q#T" | |
34131 | msgstr "llamada a la función %qD la cual arroja el tipo incompleto %q#T" | |
34132 | ||
34133 | -#: cp/typeck2.c:1916 | |
34134 | +#: cp/typeck2.c:1919 | |
34135 | #, gcc-internal-format | |
34136 | msgid "call to function which throws incomplete type %q#T" | |
34137 | msgstr "llamada a una función la cual arroja el tipo incompleto %q#T" | |
34138 | @@ -34939,187 +34934,187 @@ | |
34139 | msgid "The Hollerith constant at %L is too long to convert to %s" | |
34140 | msgstr "La constante Hollerith en %L es demasiado grande para convertirse a %s" | |
34141 | ||
34142 | -#: fortran/array.c:98 | |
34143 | +#: fortran/array.c:96 | |
34144 | #, gcc-internal-format, gfc-internal-format | |
34145 | msgid "Expected array subscript at %C" | |
34146 | msgstr "Se esperaba un subíndice de matriz en %C" | |
34147 | ||
34148 | -#: fortran/array.c:107 | |
34149 | +#: fortran/array.c:105 | |
34150 | #, gcc-internal-format, gfc-internal-format | |
34151 | msgid "Unexpected '*' in coarray subscript at %C" | |
34152 | msgstr "'*' inesperado en el subíndice de comatriz en %C" | |
34153 | ||
34154 | -#: fortran/array.c:131 | |
34155 | +#: fortran/array.c:129 | |
34156 | #, gcc-internal-format, gfc-internal-format | |
34157 | msgid "Strides not allowed in coarray subscript at %C" | |
34158 | msgstr "no se permiten trancos en el subíndice de comatriz en %C" | |
34159 | ||
34160 | -#: fortran/array.c:139 | |
34161 | +#: fortran/array.c:137 | |
34162 | #, gcc-internal-format, gfc-internal-format | |
34163 | msgid "Expected array subscript stride at %C" | |
34164 | msgstr "Se esperaba un gran tranco de subíndice de matriz en %C" | |
34165 | ||
34166 | -#: fortran/array.c:196 | |
34167 | +#: fortran/array.c:194 | |
34168 | #, gcc-internal-format, gfc-internal-format | |
34169 | msgid "Invalid form of array reference at %C" | |
34170 | msgstr "Forma inválida de referencia a matriz en %C" | |
34171 | ||
34172 | -#: fortran/array.c:201 fortran/array.c:267 | |
34173 | +#: fortran/array.c:199 fortran/array.c:272 | |
34174 | #, gcc-internal-format, gfc-internal-format | |
34175 | msgid "Array reference at %C cannot have more than %d dimensions" | |
34176 | msgstr "La referencia a matriz en %C no puede tener más de %d dimensiones" | |
34177 | ||
34178 | -#: fortran/array.c:216 fortran/array.c:576 fortran/check.c:2149 | |
34179 | -#: fortran/check.c:3915 fortran/check.c:3953 fortran/check.c:4120 | |
34180 | +#: fortran/array.c:214 fortran/array.c:581 fortran/check.c:2149 | |
34181 | +#: fortran/check.c:3915 fortran/check.c:3953 fortran/check.c:4124 | |
34182 | #: fortran/match.c:1766 fortran/match.c:2833 fortran/match.c:3029 | |
34183 | -#: fortran/simplify.c:4538 | |
34184 | +#: fortran/simplify.c:4541 | |
34185 | #, gcc-internal-format, gfc-internal-format | |
34186 | msgid "Coarrays disabled at %C, use -fcoarray= to enable" | |
34187 | msgstr "Comatrices desactivadas en %C, use -fcoarray= para activar" | |
34188 | ||
34189 | -#: fortran/array.c:222 | |
34190 | +#: fortran/array.c:220 | |
34191 | #, gcc-internal-format, gfc-internal-format | |
34192 | msgid "Unexpected coarray designator at %C" | |
34193 | msgstr "Designador de comatriz inesperado en %C" | |
34194 | ||
34195 | -#: fortran/array.c:237 | |
34196 | +#: fortran/array.c:235 | |
34197 | #, gcc-internal-format, gfc-internal-format | |
34198 | msgid "Too few codimensions at %C, expected %d not %d" | |
34199 | msgstr "Faltan codimensiones en %C, se esperaban %d no %d" | |
34200 | ||
34201 | -#: fortran/array.c:243 | |
34202 | +#: fortran/array.c:241 | |
34203 | #, gcc-internal-format, gfc-internal-format | |
34204 | msgid "Too many codimensions at %C, expected %d not %d" | |
34205 | msgstr "Demasiadas codimensiones en %C, se esperaban %d no %d" | |
34206 | ||
34207 | -#: fortran/array.c:253 | |
34208 | +#: fortran/array.c:251 fortran/array.c:259 | |
34209 | #, gcc-internal-format, gfc-internal-format | |
34210 | msgid "Unexpected '*' for codimension %d of %d at %C" | |
34211 | msgstr "'*' inesperado para la codimensión %d de %d en %C" | |
34212 | ||
34213 | -#: fortran/array.c:256 | |
34214 | +#: fortran/array.c:254 | |
34215 | #, gcc-internal-format, gfc-internal-format | |
34216 | msgid "Invalid form of coarray reference at %C" | |
34217 | msgstr "Forma inválida de referencia a comatriz en %C" | |
34218 | ||
34219 | -#: fortran/array.c:261 | |
34220 | +#: fortran/array.c:266 | |
34221 | #, gcc-internal-format, gfc-internal-format | |
34222 | msgid "Invalid codimension %d at %C, only %d codimensions exist" | |
34223 | msgstr "Codimensión %d inválida en %C, sólo existen %d codimensiones" | |
34224 | ||
34225 | -#: fortran/array.c:313 | |
34226 | +#: fortran/array.c:318 | |
34227 | #, gcc-internal-format, gfc-internal-format | |
34228 | msgid "Variable '%s' at %L in this context must be constant" | |
34229 | msgstr "La variable '%s' en %L en este contexto debe ser constante" | |
34230 | ||
34231 | -#: fortran/array.c:316 | |
34232 | +#: fortran/array.c:321 | |
34233 | #, gcc-internal-format, gfc-internal-format | |
34234 | msgid "Expression at %L in this context must be constant" | |
34235 | msgstr "La expresión en %L en este contexto debe ser constante" | |
34236 | ||
34237 | -#: fortran/array.c:407 | |
34238 | +#: fortran/array.c:412 | |
34239 | #, gcc-internal-format, gfc-internal-format | |
34240 | msgid "Expected expression in array specification at %C" | |
34241 | msgstr "Se esperaba una expresión en la especificación de matriz en %C" | |
34242 | ||
34243 | -#: fortran/array.c:486 | |
34244 | +#: fortran/array.c:491 | |
34245 | #, gcc-internal-format, gfc-internal-format | |
34246 | msgid "Bad array specification for implied-shape array at %C" | |
34247 | msgstr "Especificación de matriz errónea para una matriz de forma implícita en %C" | |
34248 | ||
34249 | -#: fortran/array.c:502 fortran/array.c:614 | |
34250 | +#: fortran/array.c:507 fortran/array.c:619 | |
34251 | #, gcc-internal-format, gfc-internal-format | |
34252 | msgid "Bad array specification for an explicitly shaped array at %C" | |
34253 | msgstr "Especificación de matriz errónea para una matriz formada explícita en %C" | |
34254 | ||
34255 | -#: fortran/array.c:512 fortran/array.c:624 | |
34256 | +#: fortran/array.c:517 fortran/array.c:629 | |
34257 | #, gcc-internal-format, gfc-internal-format | |
34258 | msgid "Bad array specification for assumed shape array at %C" | |
34259 | msgstr "Especificación de matriz errónea para una matriz de forma asumida en %C" | |
34260 | ||
34261 | -#: fortran/array.c:526 fortran/array.c:638 | |
34262 | +#: fortran/array.c:531 fortran/array.c:643 | |
34263 | #, gcc-internal-format, gfc-internal-format | |
34264 | msgid "Bad specification for deferred shape array at %C" | |
34265 | msgstr "Especificación de matriz errónea para una matriz de forma diferida en %C" | |
34266 | ||
34267 | -#: fortran/array.c:536 fortran/array.c:642 | |
34268 | +#: fortran/array.c:541 fortran/array.c:647 | |
34269 | #, gcc-internal-format, gfc-internal-format | |
34270 | msgid "Bad specification for assumed size array at %C" | |
34271 | msgstr "Especificación errónea para la matriz de tamaño asumido en %C" | |
34272 | ||
34273 | -#: fortran/array.c:545 fortran/array.c:651 | |
34274 | +#: fortran/array.c:550 fortran/array.c:656 | |
34275 | #, gcc-internal-format, gfc-internal-format | |
34276 | msgid "Expected another dimension in array declaration at %C" | |
34277 | msgstr "Se esperaba otra dimensión en la declaración de matriz %C" | |
34278 | ||
34279 | -#: fortran/array.c:551 fortran/array.c:582 fortran/array.c:657 | |
34280 | +#: fortran/array.c:556 fortran/array.c:587 fortran/array.c:662 | |
34281 | #, gcc-internal-format, gfc-internal-format | |
34282 | msgid "Array specification at %C has more than %d dimensions" | |
34283 | msgstr "La especificación de matriz en %C tiene más de %d dimensiones" | |
34284 | ||
34285 | -#: fortran/array.c:557 | |
34286 | +#: fortran/array.c:562 | |
34287 | #, gcc-internal-format, gfc-internal-format | |
34288 | msgid "Fortran 2008: Array specification at %C with more than 7 dimensions" | |
34289 | msgstr "Fortran 2008: La especificación de matriz en %C tiene más de 7 dimensiones" | |
34290 | ||
34291 | -#: fortran/array.c:570 | |
34292 | +#: fortran/array.c:575 | |
34293 | #, gcc-internal-format, gfc-internal-format | |
34294 | msgid "Fortran 2008: Coarray declaration at %C" | |
34295 | msgstr "Fortran 2008: Declaración de comatriz en %C" | |
34296 | ||
34297 | -#: fortran/array.c:665 | |
34298 | +#: fortran/array.c:670 | |
34299 | #, gcc-internal-format, gfc-internal-format | |
34300 | msgid "Upper bound of last coarray dimension must be '*' at %C" | |
34301 | msgstr "El límite superior de la última dimensión de comatriz debe ser '*' en %C" | |
34302 | ||
34303 | -#: fortran/array.c:885 | |
34304 | +#: fortran/array.c:890 | |
34305 | #, gcc-internal-format, gfc-internal-format | |
34306 | msgid "DO-iterator '%s' at %L is inside iterator of the same name" | |
34307 | msgstr "El iterador-DO '%s' en %L está dentro de un iterador del mismo nombre" | |
34308 | ||
34309 | -#: fortran/array.c:977 fortran/array.c:1109 | |
34310 | +#: fortran/array.c:982 fortran/array.c:1114 | |
34311 | #, gcc-internal-format, gfc-internal-format | |
34312 | msgid "Syntax error in array constructor at %C" | |
34313 | msgstr "Error sintáctico en el constructor de matriz en %C" | |
34314 | ||
34315 | -#: fortran/array.c:1029 | |
34316 | +#: fortran/array.c:1034 | |
34317 | #, gcc-internal-format, gfc-internal-format | |
34318 | msgid "Fortran 2003: [...] style array constructors at %C" | |
34319 | msgstr "Fortran 2003: Constructores de matriz de estilo [...] en %C" | |
34320 | ||
34321 | -#: fortran/array.c:1049 | |
34322 | +#: fortran/array.c:1054 | |
34323 | #, gcc-internal-format, gfc-internal-format | |
34324 | msgid "Fortran 2003: Array constructor including type specification at %C" | |
34325 | msgstr "Fortran 2003: Los constructores de matriz incluyen especificación de tipo en %C" | |
34326 | ||
34327 | -#: fortran/array.c:1055 fortran/match.c:3465 | |
34328 | +#: fortran/array.c:1060 fortran/match.c:3465 | |
34329 | #, gcc-internal-format, gfc-internal-format | |
34330 | msgid "Type-spec at %L cannot contain a deferred type parameter" | |
34331 | msgstr "La especificación de tipo en %L no puede tener un parámetro de tipo diferido" | |
34332 | ||
34333 | -#: fortran/array.c:1071 | |
34334 | +#: fortran/array.c:1076 | |
34335 | #, gcc-internal-format, gfc-internal-format | |
34336 | msgid "Empty array constructor at %C is not allowed" | |
34337 | msgstr "No se permite un constructor de matriz vacío en %C" | |
34338 | ||
34339 | -#: fortran/array.c:1156 | |
34340 | +#: fortran/array.c:1161 | |
34341 | #, gcc-internal-format, gfc-internal-format | |
34342 | msgid "Element in %s array constructor at %L is %s" | |
34343 | msgstr "El elemento en el constructor de matriz %s en %L es %s" | |
34344 | ||
34345 | -#: fortran/array.c:1484 | |
34346 | +#: fortran/array.c:1489 | |
34347 | #, gcc-internal-format, gfc-internal-format | |
34348 | msgid "Iterator step at %L cannot be zero" | |
34349 | msgstr "El paso de iterador en %L no puede ser cero" | |
34350 | ||
34351 | #. Problems occur when we get something like | |
34352 | #. integer :: a(lots) = (/(i, i=1, lots)/) | |
34353 | -#: fortran/array.c:1621 fortran/expr.c:1538 fortran/trans-array.c:5264 | |
34354 | +#: fortran/array.c:1626 fortran/expr.c:1538 fortran/trans-array.c:5258 | |
34355 | #, gcc-internal-format, gfc-internal-format | |
34356 | msgid "The number of elements in the array constructor at %L requires an increase of the allowed %d upper limit. See -fmax-array-constructor option" | |
34357 | msgstr "El número de elementos en el constructor de matriz en %L requiere un incremento del límite superior %d permitido. Vea la opción -fmax-array-constructor" | |
34358 | ||
34359 | -#: fortran/array.c:1818 | |
34360 | +#: fortran/array.c:1823 | |
34361 | #, gcc-internal-format, gfc-internal-format | |
34362 | msgid "Different CHARACTER lengths (%d/%d) in array constructor at %L" | |
34363 | msgstr "Longitudes de CHARACTER diferentes (%d/%d) en el constructor de matriz en %L" | |
34364 | @@ -35154,7 +35149,7 @@ | |
34365 | msgid "'%s' argument of '%s' intrinsic at %L must be INTEGER or PROCEDURE" | |
34366 | msgstr "El argumento '%s' del intrínseco '%s' en %L debe ser INTEGER o PROCEDURE" | |
34367 | ||
34368 | -#: fortran/check.c:168 fortran/check.c:5193 | |
34369 | +#: fortran/check.c:168 fortran/check.c:5197 | |
34370 | #, gcc-internal-format, gfc-internal-format | |
34371 | msgid "'%s' argument of '%s' intrinsic at %L must be a constant" | |
34372 | msgstr "El argumento '%s' del intrínseco '%s' en %L debe ser una constante" | |
34373 | @@ -35266,7 +35261,7 @@ | |
34374 | msgid "Unequal character lengths (%ld/%ld) in %s at %L" | |
34375 | msgstr "Longitudes de caracteres desiguales (%ld/%ld) en %s en %L" | |
34376 | ||
34377 | -#: fortran/check.c:854 fortran/check.c:5162 | |
34378 | +#: fortran/check.c:854 fortran/check.c:5166 | |
34379 | #, gcc-internal-format, gfc-internal-format | |
34380 | msgid "'%s' and '%s' arguments of '%s' intrinsic at %L must have the same type" | |
34381 | msgstr "Los argumentos '%s' y '%s' del intrínseco '%s' en %L deben tener el mismo tipo" | |
34382 | @@ -35349,8 +35344,8 @@ | |
34383 | ||
34384 | #: fortran/check.c:1307 fortran/check.c:1838 fortran/check.c:1941 | |
34385 | #: fortran/check.c:2135 fortran/check.c:2180 fortran/check.c:3382 | |
34386 | -#: fortran/check.c:3516 fortran/check.c:3571 fortran/check.c:4106 | |
34387 | -#: fortran/check.c:4235 | |
34388 | +#: fortran/check.c:3516 fortran/check.c:3571 fortran/check.c:4110 | |
34389 | +#: fortran/check.c:4239 | |
34390 | #, gcc-internal-format, gfc-internal-format | |
34391 | msgid "Fortran 2003: '%s' intrinsic with KIND argument at %L" | |
34392 | msgstr "Fortran 2003: Intrínseco '%s' con argumento KIND en %L" | |
34393 | @@ -35495,7 +35490,7 @@ | |
34394 | msgid "Fortran 2003: NULL intrinsic with allocatable MOLD at %L" | |
34395 | msgstr "Fortran 2003: Intrínseco NULL con MOLD alojable en %L" | |
34396 | ||
34397 | -#: fortran/check.c:2925 fortran/check.c:4182 | |
34398 | +#: fortran/check.c:2925 fortran/check.c:4186 | |
34399 | #, gcc-internal-format, gfc-internal-format | |
34400 | msgid "'%s' argument of '%s' intrinsic at %L must provide at least as many elements as there are .TRUE. values in '%s' (%ld/%d)" | |
34401 | msgstr "El argumento '%s' del intrínseco '%s' en %L debe proveer por lo menos tantos elementos como valores .TRUE. presentes en '%s' (%ld/%d)" | |
34402 | @@ -35625,42 +35620,42 @@ | |
34403 | msgid "DIM argument without ARRAY argument not allowed for THIS_IMAGE intrinsic at %L" | |
34404 | msgstr "No se permite el argumento DIM sin un argumento ARRAY para el intrínseco THIS_IMAGE en %L" | |
34405 | ||
34406 | -#: fortran/check.c:4046 | |
34407 | +#: fortran/check.c:4050 | |
34408 | #, gcc-internal-format, gfc-internal-format | |
34409 | msgid "'MOLD' argument of 'TRANSFER' intrinsic at %L must not be %s" | |
34410 | msgstr "El argumento 'MOLD' del intrínseco 'TRANSFER' en %L no debe ser %s" | |
34411 | ||
34412 | -#: fortran/check.c:4074 | |
34413 | +#: fortran/check.c:4078 | |
34414 | #, gcc-internal-format, gfc-internal-format | |
34415 | msgid "Intrinsic TRANSFER at %L has partly undefined result: source size %ld < result size %ld" | |
34416 | msgstr "El TRANSFER intrínseco en %L tiene un resultado parcialmente indefinido: tamaño de la fuente %ld < tamaño del resultado %ld" | |
34417 | ||
34418 | -#: fortran/check.c:4196 | |
34419 | +#: fortran/check.c:4200 | |
34420 | #, gcc-internal-format, gfc-internal-format | |
34421 | msgid "'%s' argument of '%s' intrinsic at %L must have the same rank as '%s' or be a scalar" | |
34422 | msgstr "El argumento '%s' del intrínseco '%s' en %L debe ser del mismo rango que '%s' o ser un escalar" | |
34423 | ||
34424 | -#: fortran/check.c:4209 | |
34425 | +#: fortran/check.c:4213 | |
34426 | #, gcc-internal-format, gfc-internal-format | |
34427 | msgid "'%s' and '%s' arguments of '%s' intrinsic at %L must have identical shape." | |
34428 | msgstr "Los argumentos '%s' y '%s' del intrínseco '%s' en %L deben tener forma idéntica." | |
34429 | ||
34430 | -#: fortran/check.c:4468 fortran/check.c:4500 | |
34431 | +#: fortran/check.c:4472 fortran/check.c:4504 | |
34432 | #, gcc-internal-format, gfc-internal-format | |
34433 | msgid "Size of '%s' argument of '%s' intrinsic at %L too small (%i/%i)" | |
34434 | msgstr "El tamaño del argumento '%s' del intrínseco '%s' en %L es demasiado pequeño (%i/%i)" | |
34435 | ||
34436 | -#: fortran/check.c:4508 | |
34437 | +#: fortran/check.c:4512 | |
34438 | #, gcc-internal-format, gfc-internal-format | |
34439 | msgid "Too many arguments to %s at %L" | |
34440 | msgstr "Demasiados argumentos para %s en %L" | |
34441 | ||
34442 | -#: fortran/check.c:4794 | |
34443 | +#: fortran/check.c:4798 | |
34444 | #, gcc-internal-format, gfc-internal-format | |
34445 | msgid "'%s' argument of '%s' intrinsic at %L must be of a kind not wider than the default kind (%d)" | |
34446 | msgstr "El argumento '%s' del intrínseco '%s' en %L debe ser de un género que no sea más ancho que el género por defecto (%d)" | |
34447 | ||
34448 | -#: fortran/check.c:5146 fortran/check.c:5154 | |
34449 | +#: fortran/check.c:5150 fortran/check.c:5158 | |
34450 | #, gcc-internal-format, gfc-internal-format | |
34451 | msgid "'%s' argument of '%s' intrinsic at %L must be INTEGER or LOGICAL" | |
34452 | msgstr "El argumento '%s' del intrínseco '%s' en %L debe ser INTEGER o LOGICAL" | |
34453 | @@ -35672,7 +35667,7 @@ | |
34454 | ||
34455 | #. Since the extension field is 8 bit wide, we can only have | |
34456 | #. up to 255 extension levels. | |
34457 | -#: fortran/class.c:556 fortran/decl.c:7561 | |
34458 | +#: fortran/class.c:556 fortran/decl.c:7562 | |
34459 | #, gcc-internal-format, gfc-internal-format | |
34460 | msgid "Maximum extension level reached with type '%s' at %L" | |
34461 | msgstr "Se alcanzó el nivel de extensión máximo con el tipo '%s' en %L" | |
34462 | @@ -35957,7 +35952,7 @@ | |
34463 | # como `apuntado'. cfuga | |
34464 | # Referencia: http://gcc.gnu.org/onlinedocs/gfortran/Cray-pointers.html | |
34465 | # | |
34466 | -#: fortran/decl.c:1898 fortran/decl.c:6418 | |
34467 | +#: fortran/decl.c:1898 fortran/decl.c:6419 | |
34468 | #, gcc-internal-format, gfc-internal-format | |
34469 | msgid "Duplicate array spec for Cray pointee at %C" | |
34470 | msgstr "Especificación de matriz duplicada para el apuntado Cray en %C" | |
34471 | @@ -35972,7 +35967,7 @@ | |
34472 | msgid "Extension: Old-style initialization at %C" | |
34473 | msgstr "Extensión: Inicialización de estilo antiguo en %C" | |
34474 | ||
34475 | -#: fortran/decl.c:2008 fortran/decl.c:4916 | |
34476 | +#: fortran/decl.c:2008 fortran/decl.c:4917 | |
34477 | #, gcc-internal-format, gfc-internal-format | |
34478 | msgid "Initialization at %C isn't for a pointer variable" | |
34479 | msgstr "La inicialización en %C no es para una variable puntero" | |
34480 | @@ -35982,7 +35977,7 @@ | |
34481 | msgid "Pointer initialization at %C requires '=>', not '='" | |
34482 | msgstr "La inicialización de puntero en %C requiere '=>', no '='" | |
34483 | ||
34484 | -#: fortran/decl.c:2030 fortran/decl.c:7713 | |
34485 | +#: fortran/decl.c:2030 fortran/decl.c:7714 | |
34486 | #, gcc-internal-format, gfc-internal-format | |
34487 | msgid "Expected an initialization expression at %C" | |
34488 | msgstr "Se esperaba una expresión de inicialización en %C" | |
34489 | @@ -36179,7 +36174,7 @@ | |
34490 | msgid "Fortran 2008: CONTIGUOUS attribute at %C" | |
34491 | msgstr "Fortran 2008: Atributo CONTIGUOUS en %C" | |
34492 | ||
34493 | -#: fortran/decl.c:3724 fortran/decl.c:6713 | |
34494 | +#: fortran/decl.c:3724 fortran/decl.c:6714 | |
34495 | #, gcc-internal-format, gfc-internal-format | |
34496 | msgid "PROTECTED at %C only allowed in specification part of a module" | |
34497 | msgstr "Sólo se permite PROTECTED en %C en la parte de especificación de un módulo" | |
34498 | @@ -36199,834 +36194,834 @@ | |
34499 | msgid "Fortran 2003: VOLATILE attribute at %C" | |
34500 | msgstr "Fortran 2003: Atributo VOLATILE en %C" | |
34501 | ||
34502 | -#: fortran/decl.c:3816 | |
34503 | +#: fortran/decl.c:3817 | |
34504 | #, gcc-internal-format, gfc-internal-format | |
34505 | msgid "Multiple identifiers provided with single NAME= specifier at %C" | |
34506 | msgstr "Se proveen múltiples identificadores con un sólo especificador NAME= en %C" | |
34507 | ||
34508 | -#: fortran/decl.c:3913 | |
34509 | +#: fortran/decl.c:3914 | |
34510 | #, gcc-internal-format, gfc-internal-format | |
34511 | msgid "Implicitly declared BIND(C) function '%s' at %L may not be C interoperable" | |
34512 | msgstr "La función implícitamente declarada BIND(C) '%s' en %L no puede ser interoperable con C" | |
34513 | ||
34514 | -#: fortran/decl.c:3934 | |
34515 | +#: fortran/decl.c:3935 | |
34516 | #, gcc-internal-format, gfc-internal-format | |
34517 | msgid "Variable '%s' in common block '%s' at %L may not be a C interoperable kind though common block '%s' is BIND(C)" | |
34518 | msgstr "La variable '%s' en el bloque común '%s' en %L no puede ser un género interoperable con C ya que el bloque común '%s' es BIND(C)" | |
34519 | ||
34520 | -#: fortran/decl.c:3943 | |
34521 | +#: fortran/decl.c:3944 | |
34522 | #, gcc-internal-format, gfc-internal-format | |
34523 | msgid "Type declaration '%s' at %L is not C interoperable but it is BIND(C)" | |
34524 | msgstr "La declaración de tipo '%s' en %L no es interoperable con C pero es BIND(C)" | |
34525 | ||
34526 | -#: fortran/decl.c:3947 | |
34527 | +#: fortran/decl.c:3948 | |
34528 | #, gcc-internal-format, gfc-internal-format | |
34529 | msgid "Variable '%s' at %L may not be a C interoperable kind but it is bind(c)" | |
34530 | msgstr "La variable '%s' en %L no es de un género interoperable con C pero es BIND(C)" | |
34531 | ||
34532 | -#: fortran/decl.c:3959 | |
34533 | +#: fortran/decl.c:3960 | |
34534 | #, gcc-internal-format, gfc-internal-format | |
34535 | msgid "Variable '%s' in common block '%s' at %L cannot be declared with BIND(C) since it is not a global" | |
34536 | msgstr "La variable '%s' en el bloque común '%s' en %L no se puede declarar con BIND(C) porque no es un global" | |
34537 | ||
34538 | -#: fortran/decl.c:3973 | |
34539 | +#: fortran/decl.c:3974 | |
34540 | #, gcc-internal-format, gfc-internal-format | |
34541 | msgid "Variable '%s' at %L cannot have both the POINTER and BIND(C) attributes" | |
34542 | msgstr "La variable '%s' en %L no puede tener los atributos POINTER y BIND(C) al mismo tiempo" | |
34543 | ||
34544 | -#: fortran/decl.c:3981 | |
34545 | +#: fortran/decl.c:3982 | |
34546 | #, gcc-internal-format, gfc-internal-format | |
34547 | msgid "Variable '%s' at %L cannot have both the ALLOCATABLE and BIND(C) attributes" | |
34548 | msgstr "La variable '%s' en %L no puede tener los atributos ALLOCATABLE y BIND(C) al mismo tiempo" | |
34549 | ||
34550 | -#: fortran/decl.c:3993 | |
34551 | +#: fortran/decl.c:3994 | |
34552 | #, gcc-internal-format, gfc-internal-format | |
34553 | msgid "Return type of BIND(C) function '%s' at %L cannot be an array" | |
34554 | msgstr "El tipo de devolución de la función BIND(C) '%s' en %L no puede ser una matriz" | |
34555 | ||
34556 | -#: fortran/decl.c:4001 | |
34557 | +#: fortran/decl.c:4002 | |
34558 | #, gcc-internal-format, gfc-internal-format | |
34559 | msgid "Return type of BIND(C) function '%s' at %L cannot be a character string" | |
34560 | msgstr "El tipo de devolución de la función BIND(C) '%s' en %L no puede ser una cadena de caracteres" | |
34561 | ||
34562 | #. Use gfc_warning_now because we won't say that the symbol fails | |
34563 | #. just because of this. | |
34564 | -#: fortran/decl.c:4012 | |
34565 | +#: fortran/decl.c:4013 | |
34566 | #, gcc-internal-format, gfc-internal-format | |
34567 | msgid "Symbol '%s' at %L is marked PRIVATE but has been given the binding label '%s'" | |
34568 | msgstr "El símbolo '%s' en %L se marcó PRIVATE pero se le dio la etiqueta de asignación '%s'" | |
34569 | ||
34570 | -#: fortran/decl.c:4088 | |
34571 | +#: fortran/decl.c:4089 | |
34572 | #, gcc-internal-format, gfc-internal-format | |
34573 | msgid "Need either entity or common block name for attribute specification statement at %C" | |
34574 | msgstr "Se necesita una entidad o un nombre de bloque común para la declaración de especificación de atributo en %C" | |
34575 | ||
34576 | -#: fortran/decl.c:4135 | |
34577 | +#: fortran/decl.c:4136 | |
34578 | #, gcc-internal-format, gfc-internal-format | |
34579 | msgid "Missing entity or common block name for attribute specification statement at %C" | |
34580 | msgstr "Falta la entidad o el nombre de bloque común para la declaración de especificación de atributo en %C" | |
34581 | ||
34582 | #. Now we have an error, which we signal, and then fix up | |
34583 | #. because the knock-on is plain and simple confusing. | |
34584 | -#: fortran/decl.c:4244 | |
34585 | +#: fortran/decl.c:4245 | |
34586 | #, gcc-internal-format, gfc-internal-format | |
34587 | msgid "Derived type at %C has not been previously defined and so cannot appear in a derived type definition" | |
34588 | msgstr "El tipo derivado en %C no se definió previamente y no puede aparecer en una definición de tipo derivado" | |
34589 | ||
34590 | -#: fortran/decl.c:4276 | |
34591 | +#: fortran/decl.c:4277 | |
34592 | #, gcc-internal-format, gfc-internal-format | |
34593 | msgid "Syntax error in data declaration at %C" | |
34594 | msgstr "Error sintáctico en la declaración de datos en %C" | |
34595 | ||
34596 | -#: fortran/decl.c:4350 | |
34597 | +#: fortran/decl.c:4351 | |
34598 | #, gcc-internal-format, gfc-internal-format | |
34599 | msgid "Fortran 2008: IMPURE procedure at %C" | |
34600 | msgstr "Fortran 2008: Procedimiento IMPURE en %C" | |
34601 | ||
34602 | -#: fortran/decl.c:4363 | |
34603 | +#: fortran/decl.c:4364 | |
34604 | #, gcc-internal-format, gfc-internal-format | |
34605 | msgid "PURE and IMPURE must not appear both at %C" | |
34606 | msgstr "No deben aparecer PURE con IMPURE en %C" | |
34607 | ||
34608 | -#: fortran/decl.c:4469 | |
34609 | +#: fortran/decl.c:4470 | |
34610 | #, gcc-internal-format, gfc-internal-format | |
34611 | msgid "Name '%s' at %C is the name of the procedure" | |
34612 | msgstr "El nombre '%s' en %C es el nombre del procedimiento" | |
34613 | ||
34614 | -#: fortran/decl.c:4481 | |
34615 | +#: fortran/decl.c:4482 | |
34616 | #, gcc-internal-format, gfc-internal-format | |
34617 | msgid "Unexpected junk in formal argument list at %C" | |
34618 | msgstr "Basura inesperada en la lista de argumentos formales en %C" | |
34619 | ||
34620 | -#: fortran/decl.c:4498 | |
34621 | +#: fortran/decl.c:4499 | |
34622 | #, gcc-internal-format, gfc-internal-format | |
34623 | msgid "Duplicate symbol '%s' in formal argument list at %C" | |
34624 | msgstr "Símbolo '%s' duplicado en la lista de argumentos formales en %C" | |
34625 | ||
34626 | -#: fortran/decl.c:4549 | |
34627 | +#: fortran/decl.c:4550 | |
34628 | #, gcc-internal-format, gfc-internal-format | |
34629 | msgid "RESULT variable at %C must be different than function name" | |
34630 | msgstr "La variable RESULT en %C debe ser diferente que el nombre de la función" | |
34631 | ||
34632 | -#: fortran/decl.c:4626 | |
34633 | +#: fortran/decl.c:4627 | |
34634 | #, gcc-internal-format, gfc-internal-format | |
34635 | msgid "Unexpected junk after function declaration at %C" | |
34636 | msgstr "Basura inesperada después de la declaración de la función en %C" | |
34637 | ||
34638 | -#: fortran/decl.c:4636 fortran/decl.c:5670 | |
34639 | +#: fortran/decl.c:4637 fortran/decl.c:5671 | |
34640 | #, gcc-internal-format, gfc-internal-format | |
34641 | msgid "Fortran 2008: BIND(C) attribute at %L may not be specified for an internal procedure" | |
34642 | msgstr "Fortran 2008: El atributo BIND(C) en %L no se puede especificar para un procedimiento internal" | |
34643 | ||
34644 | -#: fortran/decl.c:4780 | |
34645 | +#: fortran/decl.c:4781 | |
34646 | #, gcc-internal-format, gfc-internal-format | |
34647 | msgid "Interface '%s' at %C may not be generic" | |
34648 | msgstr "La interfaz '%s' en %C puede no ser generic" | |
34649 | ||
34650 | -#: fortran/decl.c:4786 | |
34651 | +#: fortran/decl.c:4787 | |
34652 | #, gcc-internal-format, gfc-internal-format | |
34653 | msgid "Interface '%s' at %C may not be a statement function" | |
34654 | msgstr "La interfaz '%s' en %C puede no ser una función de declaración" | |
34655 | ||
34656 | -#: fortran/decl.c:4799 | |
34657 | +#: fortran/decl.c:4800 | |
34658 | #, gcc-internal-format, gfc-internal-format | |
34659 | msgid "Intrinsic procedure '%s' not allowed in PROCEDURE statement at %C" | |
34660 | msgstr "El procedimiento intrínseco '%s' no se permite en la declaración PROCEDURE en %C" | |
34661 | ||
34662 | -#: fortran/decl.c:4854 | |
34663 | +#: fortran/decl.c:4855 | |
34664 | #, gcc-internal-format, gfc-internal-format | |
34665 | msgid "BIND(C) attribute at %C requires an interface with BIND(C)" | |
34666 | msgstr "El atributo BIND(C) en %C requiere una interfaz con BIND(C)" | |
34667 | ||
34668 | -#: fortran/decl.c:4861 | |
34669 | +#: fortran/decl.c:4862 | |
34670 | #, gcc-internal-format, gfc-internal-format | |
34671 | msgid "BIND(C) procedure with NAME may not have POINTER attribute at %C" | |
34672 | msgstr "El procedimiento BIND(C) con NAME no debe tener atributo POINTER en %C" | |
34673 | ||
34674 | -#: fortran/decl.c:4867 | |
34675 | +#: fortran/decl.c:4868 | |
34676 | #, gcc-internal-format, gfc-internal-format | |
34677 | msgid "Dummy procedure at %C may not have BIND(C) attribute with NAME" | |
34678 | msgstr "El procedimiento dummy en %C no puede tener atributo BIND(C) con NAME" | |
34679 | ||
34680 | -#: fortran/decl.c:4891 | |
34681 | +#: fortran/decl.c:4892 | |
34682 | #, gcc-internal-format, gfc-internal-format | |
34683 | msgid "Procedure '%s' at %L already has basic type of %s" | |
34684 | msgstr "El procedimiento '%s' en %L ya tenía el tipo básico de %s" | |
34685 | ||
34686 | -#: fortran/decl.c:4940 fortran/decl.c:5108 fortran/decl.c:8195 | |
34687 | +#: fortran/decl.c:4941 fortran/decl.c:5109 fortran/decl.c:8196 | |
34688 | #, gcc-internal-format, gfc-internal-format | |
34689 | msgid "Syntax error in PROCEDURE statement at %C" | |
34690 | msgstr "Error sintáctico en la declaración PROCEDURE en %C" | |
34691 | ||
34692 | -#: fortran/decl.c:4989 fortran/decl.c:8096 | |
34693 | +#: fortran/decl.c:4990 fortran/decl.c:8097 | |
34694 | #, gcc-internal-format, gfc-internal-format | |
34695 | msgid "Expected '::' after binding-attributes at %C" | |
34696 | msgstr "Se esperaba '::' después de los atributos de enlazado en %C" | |
34697 | ||
34698 | -#: fortran/decl.c:4996 | |
34699 | +#: fortran/decl.c:4997 | |
34700 | #, gcc-internal-format, gfc-internal-format | |
34701 | msgid "NOPASS or explicit interface required at %C" | |
34702 | msgstr "Se requiere NOPASS o una interfaz explícita en %C" | |
34703 | ||
34704 | -#: fortran/decl.c:5000 | |
34705 | +#: fortran/decl.c:5001 | |
34706 | #, gcc-internal-format, gfc-internal-format | |
34707 | msgid "Fortran 2003: Procedure pointer component at %C" | |
34708 | msgstr "Fortran 2003: Procedimiento de componente puntero en %C" | |
34709 | ||
34710 | -#: fortran/decl.c:5065 | |
34711 | +#: fortran/decl.c:5066 | |
34712 | #, gcc-internal-format, gfc-internal-format | |
34713 | msgid "Syntax error in procedure pointer component at %C" | |
34714 | msgstr "Error sintáctico en el procedimiento de componente puntero en %C" | |
34715 | ||
34716 | -#: fortran/decl.c:5082 | |
34717 | +#: fortran/decl.c:5083 | |
34718 | #, gcc-internal-format, gfc-internal-format | |
34719 | msgid "PROCEDURE at %C must be in a generic interface" | |
34720 | msgstr "PROCEDURE en %C debe estar en una interfaz genérica" | |
34721 | ||
34722 | -#: fortran/decl.c:5148 | |
34723 | +#: fortran/decl.c:5149 | |
34724 | #, gcc-internal-format, gfc-internal-format | |
34725 | msgid "Fortran 2003: PROCEDURE statement at %C" | |
34726 | msgstr "Fortran 2003: Declaración PROCEDURE en %C" | |
34727 | ||
34728 | -#: fortran/decl.c:5216 | |
34729 | +#: fortran/decl.c:5217 | |
34730 | #, gcc-internal-format, gfc-internal-format | |
34731 | msgid "Expected formal argument list in function definition at %C" | |
34732 | msgstr "Se esperaba una lista de argumentos formales en la definición de la función en %C" | |
34733 | ||
34734 | -#: fortran/decl.c:5240 fortran/decl.c:5244 fortran/decl.c:5448 | |
34735 | -#: fortran/decl.c:5452 fortran/decl.c:5638 fortran/decl.c:5642 | |
34736 | +#: fortran/decl.c:5241 fortran/decl.c:5245 fortran/decl.c:5449 | |
34737 | +#: fortran/decl.c:5453 fortran/decl.c:5639 fortran/decl.c:5643 | |
34738 | #: fortran/symbol.c:1588 | |
34739 | #, gcc-internal-format, gfc-internal-format | |
34740 | msgid "BIND(C) attribute at %L can only be used for variables or common blocks" | |
34741 | msgstr "El atributo BIND(C) en %L sólo se puede usar para variables o bloques comunes" | |
34742 | ||
34743 | -#: fortran/decl.c:5359 | |
34744 | +#: fortran/decl.c:5360 | |
34745 | #, gcc-internal-format, gfc-internal-format | |
34746 | msgid "Fortran 2008 obsolescent feature: ENTRY statement at %C" | |
34747 | msgstr "Característica obsoleta de Fortran 2008: declaración ENTRY en %C" | |
34748 | ||
34749 | -#: fortran/decl.c:5369 | |
34750 | +#: fortran/decl.c:5370 | |
34751 | #, gcc-internal-format, gfc-internal-format | |
34752 | msgid "ENTRY statement at %C cannot appear within a PROGRAM" | |
34753 | msgstr "La declaración ENTRY en %C no puede aparecer dentro de un PROGRAM" | |
34754 | ||
34755 | -#: fortran/decl.c:5372 | |
34756 | +#: fortran/decl.c:5373 | |
34757 | #, gcc-internal-format, gfc-internal-format | |
34758 | msgid "ENTRY statement at %C cannot appear within a MODULE" | |
34759 | msgstr "La declaración ENTRY en %C no puede aparecer dentro de un MODULE" | |
34760 | ||
34761 | -#: fortran/decl.c:5375 | |
34762 | +#: fortran/decl.c:5376 | |
34763 | #, gcc-internal-format, gfc-internal-format | |
34764 | msgid "ENTRY statement at %C cannot appear within a BLOCK DATA" | |
34765 | msgstr "La declaración ENTRY en %C no puede aparecer dentro de un BLOCK DATA" | |
34766 | ||
34767 | -#: fortran/decl.c:5379 | |
34768 | +#: fortran/decl.c:5380 | |
34769 | #, gcc-internal-format, gfc-internal-format | |
34770 | msgid "ENTRY statement at %C cannot appear within an INTERFACE" | |
34771 | msgstr "La declaración ENTRY en %C no puede aparecer dentro de un INTERFACE" | |
34772 | ||
34773 | -#: fortran/decl.c:5383 | |
34774 | +#: fortran/decl.c:5384 | |
34775 | #, gcc-internal-format, gfc-internal-format | |
34776 | msgid "ENTRY statement at %C cannot appear within a DERIVED TYPE block" | |
34777 | msgstr "La declaración ENTRY en %C no puede aparecer dentro de un bloque DERIVED TYPE" | |
34778 | ||
34779 | -#: fortran/decl.c:5387 | |
34780 | +#: fortran/decl.c:5388 | |
34781 | #, gcc-internal-format, gfc-internal-format | |
34782 | msgid "ENTRY statement at %C cannot appear within an IF-THEN block" | |
34783 | msgstr "La declaración ENTRY en %C no puede aparecer dentro de un bloque IF-THEN" | |
34784 | ||
34785 | -#: fortran/decl.c:5392 | |
34786 | +#: fortran/decl.c:5393 | |
34787 | #, gcc-internal-format, gfc-internal-format | |
34788 | msgid "ENTRY statement at %C cannot appear within a DO block" | |
34789 | msgstr "La declaración ENTRY en %C no puede aparecer dentro de un bloque DO" | |
34790 | ||
34791 | -#: fortran/decl.c:5396 | |
34792 | +#: fortran/decl.c:5397 | |
34793 | #, gcc-internal-format, gfc-internal-format | |
34794 | msgid "ENTRY statement at %C cannot appear within a SELECT block" | |
34795 | msgstr "La declaración ENTRY en %C no puede aparecer dentro de un bloque SELECT" | |
34796 | ||
34797 | -#: fortran/decl.c:5400 | |
34798 | +#: fortran/decl.c:5401 | |
34799 | #, gcc-internal-format, gfc-internal-format | |
34800 | msgid "ENTRY statement at %C cannot appear within a FORALL block" | |
34801 | msgstr "La declaración ENTRY en %C no puede aparecer dentro de un bloque FORALL" | |
34802 | ||
34803 | -#: fortran/decl.c:5404 | |
34804 | +#: fortran/decl.c:5405 | |
34805 | #, gcc-internal-format, gfc-internal-format | |
34806 | msgid "ENTRY statement at %C cannot appear within a WHERE block" | |
34807 | msgstr "La declaración ENTRY en %C no puede aparecer dentro de un bloque WHERE" | |
34808 | ||
34809 | -#: fortran/decl.c:5408 | |
34810 | +#: fortran/decl.c:5409 | |
34811 | #, gcc-internal-format, gfc-internal-format | |
34812 | msgid "ENTRY statement at %C cannot appear within a contained subprogram" | |
34813 | msgstr "La declaración ENTRY en %C no puede aparecer dentro de un subprograma contenido" | |
34814 | ||
34815 | -#: fortran/decl.c:5426 | |
34816 | +#: fortran/decl.c:5427 | |
34817 | #, gcc-internal-format, gfc-internal-format | |
34818 | msgid "ENTRY statement at %C cannot appear in a contained procedure" | |
34819 | msgstr "La declaración ENTRY en %C no puede aparecer dentro de un procedimiento contenido" | |
34820 | ||
34821 | -#: fortran/decl.c:5480 fortran/decl.c:5678 | |
34822 | +#: fortran/decl.c:5481 fortran/decl.c:5679 | |
34823 | #, gcc-internal-format, gfc-internal-format | |
34824 | msgid "Missing required parentheses before BIND(C) at %C" | |
34825 | msgstr "Faltan los paréntesis requeridos antes de BIND(C) en %C" | |
34826 | ||
34827 | -#: fortran/decl.c:5736 fortran/decl.c:5752 | |
34828 | +#: fortran/decl.c:5737 fortran/decl.c:5753 | |
34829 | #, gcc-internal-format, gfc-internal-format | |
34830 | msgid "Syntax error in NAME= specifier for binding label at %C" | |
34831 | msgstr "Error sintáctico en el especificador NAME= para la etiqueta de asignación %C" | |
34832 | ||
34833 | -#: fortran/decl.c:5767 | |
34834 | +#: fortran/decl.c:5768 | |
34835 | #, gcc-internal-format, gfc-internal-format | |
34836 | msgid "Missing closing quote '\"' for binding label at %C" | |
34837 | msgstr "Falta la comilla '\"' que cierra en la etiqueta de asignación en %C" | |
34838 | ||
34839 | -#: fortran/decl.c:5776 | |
34840 | +#: fortran/decl.c:5777 | |
34841 | #, gcc-internal-format, gfc-internal-format | |
34842 | msgid "Missing closing quote ''' for binding label at %C" | |
34843 | msgstr "Falta la comilla ''' que cierra en la etiqueta de asignación en %C" | |
34844 | ||
34845 | -#: fortran/decl.c:5786 | |
34846 | +#: fortran/decl.c:5787 | |
34847 | #, gcc-internal-format, gfc-internal-format | |
34848 | msgid "Missing closing paren for binding label at %C" | |
34849 | msgstr "Falta el paréntesis que cierra en la etiqueta de asignación en %C" | |
34850 | ||
34851 | -#: fortran/decl.c:5792 | |
34852 | +#: fortran/decl.c:5793 | |
34853 | #, gcc-internal-format, gfc-internal-format | |
34854 | msgid "No binding name is allowed in BIND(C) at %C" | |
34855 | msgstr "No se permite un nombre de enlazado en BIND(C) en %C" | |
34856 | ||
34857 | -#: fortran/decl.c:5798 | |
34858 | +#: fortran/decl.c:5799 | |
34859 | #, gcc-internal-format, gfc-internal-format | |
34860 | msgid "For dummy procedure %s, no binding name is allowed in BIND(C) at %C" | |
34861 | msgstr "Para el procedimiento dummy %s, no se permite un nombre de enlazado en BIND(C) en %C" | |
34862 | ||
34863 | -#: fortran/decl.c:5827 | |
34864 | +#: fortran/decl.c:5828 | |
34865 | #, gcc-internal-format, gfc-internal-format | |
34866 | msgid "NAME not allowed on BIND(C) for ABSTRACT INTERFACE at %C" | |
34867 | msgstr "No se permite NAME en BIND(C) para ABSTRACT INTERFACE en %C" | |
34868 | ||
34869 | -#: fortran/decl.c:6032 | |
34870 | +#: fortran/decl.c:6033 | |
34871 | #, gcc-internal-format, gfc-internal-format | |
34872 | msgid "Unexpected END statement at %C" | |
34873 | msgstr "Declaración END inesperada en %C" | |
34874 | ||
34875 | -#: fortran/decl.c:6040 | |
34876 | +#: fortran/decl.c:6041 | |
34877 | #, gcc-internal-format, gfc-internal-format | |
34878 | msgid "Fortran 2008: END statement instead of %s statement at %L" | |
34879 | msgstr "Fortran 2008: Declaración END en lugar de una declaración %s en %L" | |
34880 | ||
34881 | #. We would have required END [something]. | |
34882 | -#: fortran/decl.c:6048 | |
34883 | +#: fortran/decl.c:6049 | |
34884 | #, gcc-internal-format, gfc-internal-format | |
34885 | msgid "%s statement expected at %L" | |
34886 | msgstr "Se esperaba %s en la declaración en %L" | |
34887 | ||
34888 | -#: fortran/decl.c:6059 | |
34889 | +#: fortran/decl.c:6060 | |
34890 | #, gcc-internal-format, gfc-internal-format | |
34891 | msgid "Expecting %s statement at %C" | |
34892 | msgstr "Se esperaba la declaración %s en %C" | |
34893 | ||
34894 | -#: fortran/decl.c:6075 | |
34895 | +#: fortran/decl.c:6076 | |
34896 | #, gcc-internal-format, gfc-internal-format | |
34897 | msgid "Expected block name of '%s' in %s statement at %C" | |
34898 | msgstr "Se esperaba el nombre de bloque de '%s' en la declaración %s en %C" | |
34899 | ||
34900 | -#: fortran/decl.c:6092 | |
34901 | +#: fortran/decl.c:6093 | |
34902 | #, gcc-internal-format, gfc-internal-format | |
34903 | msgid "Expected terminating name at %C" | |
34904 | msgstr "Se esperaba un nombre terminal en %C" | |
34905 | ||
34906 | -#: fortran/decl.c:6101 fortran/decl.c:6109 | |
34907 | +#: fortran/decl.c:6102 fortran/decl.c:6110 | |
34908 | #, gcc-internal-format, gfc-internal-format | |
34909 | msgid "Expected label '%s' for %s statement at %C" | |
34910 | msgstr "Se esperaba la etiqueta '%s' para la declaración %s en %C" | |
34911 | ||
34912 | -#: fortran/decl.c:6174 | |
34913 | +#: fortran/decl.c:6175 | |
34914 | #, gcc-internal-format, gfc-internal-format | |
34915 | msgid "Missing array specification at %L in DIMENSION statement" | |
34916 | msgstr "Falta la especificación de matriz en %L en la declaración DIMENSION" | |
34917 | ||
34918 | -#: fortran/decl.c:6182 | |
34919 | +#: fortran/decl.c:6183 | |
34920 | #, gcc-internal-format, gfc-internal-format | |
34921 | msgid "Dimensions specified for %s at %L after its initialisation" | |
34922 | msgstr "Se especificarion dimensiones para %s en %L después de su inicialización" | |
34923 | ||
34924 | -#: fortran/decl.c:6190 | |
34925 | +#: fortran/decl.c:6191 | |
34926 | #, gcc-internal-format, gfc-internal-format | |
34927 | msgid "Missing array specification at %L in CODIMENSION statement" | |
34928 | msgstr "Falta la especificación de matriz en %L en la declaración CODIMENSION" | |
34929 | ||
34930 | -#: fortran/decl.c:6199 | |
34931 | +#: fortran/decl.c:6200 | |
34932 | #, gcc-internal-format, gfc-internal-format | |
34933 | msgid "Array specification must be deferred at %L" | |
34934 | msgstr "La especificación de matriz se debe diferir en %L" | |
34935 | ||
34936 | -#: fortran/decl.c:6298 | |
34937 | +#: fortran/decl.c:6299 | |
34938 | #, gcc-internal-format, gfc-internal-format | |
34939 | msgid "Unexpected character in variable list at %C" | |
34940 | msgstr "Carácter inesperado en la lista de variables en %C" | |
34941 | ||
34942 | -#: fortran/decl.c:6335 | |
34943 | +#: fortran/decl.c:6336 | |
34944 | #, gcc-internal-format, gfc-internal-format | |
34945 | msgid "Expected '(' at %C" | |
34946 | msgstr "Se esperaba '(' en %C" | |
34947 | ||
34948 | -#: fortran/decl.c:6349 fortran/decl.c:6389 | |
34949 | +#: fortran/decl.c:6350 fortran/decl.c:6390 | |
34950 | #, gcc-internal-format, gfc-internal-format | |
34951 | msgid "Expected variable name at %C" | |
34952 | msgstr "se esperaba un nombre variable en %C" | |
34953 | ||
34954 | -#: fortran/decl.c:6365 | |
34955 | +#: fortran/decl.c:6366 | |
34956 | #, gcc-internal-format, gfc-internal-format | |
34957 | msgid "Cray pointer at %C must be an integer" | |
34958 | msgstr "El puntero Cray en %C debe ser un entero" | |
34959 | ||
34960 | -#: fortran/decl.c:6369 | |
34961 | +#: fortran/decl.c:6370 | |
34962 | #, gcc-internal-format, gfc-internal-format | |
34963 | msgid "Cray pointer at %C has %d bytes of precision; memory addresses require %d bytes" | |
34964 | msgstr "El puntero Cray en %C tiene %d bytes de precisión; las direcciones de memoria requieren %d bytes" | |
34965 | ||
34966 | -#: fortran/decl.c:6375 | |
34967 | +#: fortran/decl.c:6376 | |
34968 | #, gcc-internal-format, gfc-internal-format | |
34969 | msgid "Expected \",\" at %C" | |
34970 | msgstr "Se esperaba \",\" en %C" | |
34971 | ||
34972 | -#: fortran/decl.c:6438 | |
34973 | +#: fortran/decl.c:6439 | |
34974 | #, gcc-internal-format, gfc-internal-format | |
34975 | msgid "Expected \")\" at %C" | |
34976 | msgstr "Se esperaba \")\" en %C" | |
34977 | ||
34978 | -#: fortran/decl.c:6450 | |
34979 | +#: fortran/decl.c:6451 | |
34980 | #, gcc-internal-format, gfc-internal-format | |
34981 | msgid "Expected \",\" or end of statement at %C" | |
34982 | msgstr "Se esperaba \",\" o el final de la declaración en %C" | |
34983 | ||
34984 | -#: fortran/decl.c:6476 | |
34985 | +#: fortran/decl.c:6477 | |
34986 | #, gcc-internal-format, gfc-internal-format | |
34987 | msgid "INTENT is not allowed inside of BLOCK at %C" | |
34988 | msgstr "No se permite INTENT dentro de BLOCK en %C" | |
34989 | ||
34990 | -#: fortran/decl.c:6508 | |
34991 | +#: fortran/decl.c:6509 | |
34992 | #, gcc-internal-format, gfc-internal-format | |
34993 | msgid "OPTIONAL is not allowed inside of BLOCK at %C" | |
34994 | msgstr "No se permite OPTIONAL dentro de BLOCK en %C" | |
34995 | ||
34996 | -#: fortran/decl.c:6527 | |
34997 | +#: fortran/decl.c:6528 | |
34998 | #, gcc-internal-format, gfc-internal-format | |
34999 | msgid "Cray pointer declaration at %C requires -fcray-pointer flag" | |
35000 | msgstr "La declaración de punteros Cray en %C requiere la opción -fcray-pointer" | |
35001 | ||
35002 | -#: fortran/decl.c:6566 | |
35003 | +#: fortran/decl.c:6567 | |
35004 | #, gcc-internal-format, gfc-internal-format | |
35005 | msgid "Fortran 2008: CONTIGUOUS statement at %C" | |
35006 | msgstr "Fortran 2008: Declaración CONTIGUOUS en %C" | |
35007 | ||
35008 | -#: fortran/decl.c:6664 | |
35009 | +#: fortran/decl.c:6665 | |
35010 | #, gcc-internal-format, gfc-internal-format | |
35011 | msgid "Access specification of the %s operator at %C has already been specified" | |
35012 | msgstr "La especificación de acceso del operador %s en %C ya se había especificado" | |
35013 | ||
35014 | -#: fortran/decl.c:6681 | |
35015 | +#: fortran/decl.c:6682 | |
35016 | #, gcc-internal-format, gfc-internal-format | |
35017 | msgid "Access specification of the .%s. operator at %C has already been specified" | |
35018 | msgstr "La especificación de acceso del operador .%s. en %C ya se había especificado" | |
35019 | ||
35020 | -#: fortran/decl.c:6719 | |
35021 | +#: fortran/decl.c:6720 | |
35022 | #, gcc-internal-format, gfc-internal-format | |
35023 | msgid "Fortran 2003: PROTECTED statement at %C" | |
35024 | msgstr "Fortran 2003: Declaración PROTECTED en %C" | |
35025 | ||
35026 | -#: fortran/decl.c:6759 | |
35027 | +#: fortran/decl.c:6760 | |
35028 | #, gcc-internal-format, gfc-internal-format | |
35029 | msgid "Syntax error in PROTECTED statement at %C" | |
35030 | msgstr "Error sintáctico en la declaración PROTECTED en %C" | |
35031 | ||
35032 | -#: fortran/decl.c:6783 | |
35033 | +#: fortran/decl.c:6784 | |
35034 | #, gcc-internal-format, gfc-internal-format | |
35035 | msgid "PRIVATE statement at %C is only allowed in the specification part of a module" | |
35036 | msgstr "Sólo se permite la declaración PRIVATE en %C en la parte de especificación de un módulo" | |
35037 | ||
35038 | -#: fortran/decl.c:6820 | |
35039 | +#: fortran/decl.c:6821 | |
35040 | #, gcc-internal-format, gfc-internal-format | |
35041 | msgid "PUBLIC statement at %C is only allowed in the specification part of a module" | |
35042 | msgstr "Sólo se permite la declaración PRIVATE en %C en la parte de especificación de un módulo" | |
35043 | ||
35044 | -#: fortran/decl.c:6848 | |
35045 | +#: fortran/decl.c:6849 | |
35046 | #, gcc-internal-format, gfc-internal-format | |
35047 | msgid "Expected variable name at %C in PARAMETER statement" | |
35048 | msgstr "Se esperaba un nombre de variable en %C en la declaración PARAMETER" | |
35049 | ||
35050 | -#: fortran/decl.c:6855 | |
35051 | +#: fortran/decl.c:6856 | |
35052 | #, gcc-internal-format, gfc-internal-format | |
35053 | msgid "Expected = sign in PARAMETER statement at %C" | |
35054 | msgstr "Se esperaba un signo = en la declaración PARAMETER en %C" | |
35055 | ||
35056 | -#: fortran/decl.c:6861 | |
35057 | +#: fortran/decl.c:6862 | |
35058 | #, gcc-internal-format, gfc-internal-format | |
35059 | msgid "Expected expression at %C in PARAMETER statement" | |
35060 | msgstr "Se esperaba una expresión en %C en la declaración PARAMETER" | |
35061 | ||
35062 | -#: fortran/decl.c:6881 | |
35063 | +#: fortran/decl.c:6882 | |
35064 | #, gcc-internal-format, gfc-internal-format | |
35065 | msgid "Initializing already initialized variable at %C" | |
35066 | msgstr "Se inicializa una variable ya inicializada en %C" | |
35067 | ||
35068 | -#: fortran/decl.c:6916 | |
35069 | +#: fortran/decl.c:6917 | |
35070 | #, gcc-internal-format, gfc-internal-format | |
35071 | msgid "Unexpected characters in PARAMETER statement at %C" | |
35072 | msgstr "Caracteres inesperados en la declaración PARAMETER en %C" | |
35073 | ||
35074 | -#: fortran/decl.c:6940 | |
35075 | +#: fortran/decl.c:6941 | |
35076 | #, gcc-internal-format, gfc-internal-format | |
35077 | msgid "Blanket SAVE statement at %C follows previous SAVE statement" | |
35078 | msgstr "Declaración SAVE incondicional en %C después de una declaración SAVE previa" | |
35079 | ||
35080 | -#: fortran/decl.c:6952 | |
35081 | +#: fortran/decl.c:6953 | |
35082 | #, gcc-internal-format, gfc-internal-format | |
35083 | msgid "SAVE statement at %C follows blanket SAVE statement" | |
35084 | msgstr "Declaración SAVE en %C después de una declaración SAVE incondicional" | |
35085 | ||
35086 | -#: fortran/decl.c:6999 | |
35087 | +#: fortran/decl.c:7000 | |
35088 | #, gcc-internal-format, gfc-internal-format | |
35089 | msgid "Syntax error in SAVE statement at %C" | |
35090 | msgstr "Error sintáctico en la declaración SAVE en %C" | |
35091 | ||
35092 | -#: fortran/decl.c:7013 | |
35093 | +#: fortran/decl.c:7014 | |
35094 | #, gcc-internal-format, gfc-internal-format | |
35095 | msgid "VALUE is not allowed inside of BLOCK at %C" | |
35096 | msgstr "No se permite VALUE dentro de BLOCK en %C" | |
35097 | ||
35098 | -#: fortran/decl.c:7017 | |
35099 | +#: fortran/decl.c:7018 | |
35100 | #, gcc-internal-format, gfc-internal-format | |
35101 | msgid "Fortran 2003: VALUE statement at %C" | |
35102 | msgstr "Fortran 2003: Declaración VALUE en %C" | |
35103 | ||
35104 | -#: fortran/decl.c:7057 | |
35105 | +#: fortran/decl.c:7058 | |
35106 | #, gcc-internal-format, gfc-internal-format | |
35107 | msgid "Syntax error in VALUE statement at %C" | |
35108 | msgstr "Error sintáctico en la declaración VALUE en %C" | |
35109 | ||
35110 | -#: fortran/decl.c:7068 | |
35111 | +#: fortran/decl.c:7069 | |
35112 | #, gcc-internal-format, gfc-internal-format | |
35113 | msgid "Fortran 2003: VOLATILE statement at %C" | |
35114 | msgstr "Fortran 2003: Declaración VOLATILE en %C" | |
35115 | ||
35116 | -#: fortran/decl.c:7092 | |
35117 | +#: fortran/decl.c:7093 | |
35118 | #, gcc-internal-format, gfc-internal-format | |
35119 | msgid "Specifying VOLATILE for coarray variable '%s' at %C, which is use-/host-associated" | |
35120 | msgstr "Se especifica VOLATILE para la variable de comatriz '%s' en %C, la cual es asociada a uso/anfitrión" | |
35121 | ||
35122 | -#: fortran/decl.c:7118 | |
35123 | +#: fortran/decl.c:7119 | |
35124 | #, gcc-internal-format, gfc-internal-format | |
35125 | msgid "Syntax error in VOLATILE statement at %C" | |
35126 | msgstr "Error sintáctico en la declaración VOLATILE en %C" | |
35127 | ||
35128 | -#: fortran/decl.c:7129 | |
35129 | +#: fortran/decl.c:7130 | |
35130 | #, gcc-internal-format, gfc-internal-format | |
35131 | msgid "Fortran 2003: ASYNCHRONOUS statement at %C" | |
35132 | msgstr "Fortran 2003: Declaración ASYNCHRONOUS en %C" | |
35133 | ||
35134 | -#: fortran/decl.c:7171 | |
35135 | +#: fortran/decl.c:7172 | |
35136 | #, gcc-internal-format, gfc-internal-format | |
35137 | msgid "Syntax error in ASYNCHRONOUS statement at %C" | |
35138 | msgstr "Error sintáctico en la declaración ASYNCHRONOUS en %C" | |
35139 | ||
35140 | -#: fortran/decl.c:7195 | |
35141 | +#: fortran/decl.c:7196 | |
35142 | #, gcc-internal-format, gfc-internal-format | |
35143 | msgid "MODULE PROCEDURE at %C must be in a generic module interface" | |
35144 | msgstr "MODULE PROCEDURE en %C debe estar en una interfaz genérica de módulo" | |
35145 | ||
35146 | -#: fortran/decl.c:7220 | |
35147 | +#: fortran/decl.c:7221 | |
35148 | #, gcc-internal-format, gfc-internal-format | |
35149 | msgid "Fortran 2008: double colon in MODULE PROCEDURE statement at %L" | |
35150 | msgstr "Fortran 2008: dos puntos dobles en la declaración MODULE PROCEDURE en %L" | |
35151 | ||
35152 | -#: fortran/decl.c:7254 | |
35153 | +#: fortran/decl.c:7255 | |
35154 | #, gcc-internal-format, gfc-internal-format | |
35155 | msgid "Intrinsic procedure at %L cannot be a MODULE PROCEDURE" | |
35156 | msgstr "El procedimiento intrínseco en %L no puede ser un MODULE PROCEDURE" | |
35157 | ||
35158 | -#: fortran/decl.c:7303 | |
35159 | +#: fortran/decl.c:7304 | |
35160 | #, gcc-internal-format, gfc-internal-format | |
35161 | msgid "Ambiguous symbol in TYPE definition at %C" | |
35162 | msgstr "Símbolo ambiguo en la definición TYPE en %C" | |
35163 | ||
35164 | -#: fortran/decl.c:7309 | |
35165 | +#: fortran/decl.c:7310 | |
35166 | #, gcc-internal-format, gfc-internal-format | |
35167 | msgid "No such symbol in TYPE definition at %C" | |
35168 | msgstr "No existe ese símbolo en la definición TYPE en %C" | |
35169 | ||
35170 | -#: fortran/decl.c:7317 | |
35171 | +#: fortran/decl.c:7318 | |
35172 | #, gcc-internal-format, gfc-internal-format | |
35173 | msgid "'%s' in EXTENDS expression at %C is not a derived type" | |
35174 | msgstr "'%s' en la expresión EXTENDS en %C no es un tipo derivado" | |
35175 | ||
35176 | -#: fortran/decl.c:7324 | |
35177 | +#: fortran/decl.c:7325 | |
35178 | #, gcc-internal-format, gfc-internal-format | |
35179 | msgid "'%s' cannot be extended at %C because it is BIND(C)" | |
35180 | msgstr "'%s' no se puede extender en %C porque es BIND(C)" | |
35181 | ||
35182 | -#: fortran/decl.c:7331 | |
35183 | +#: fortran/decl.c:7332 | |
35184 | #, gcc-internal-format, gfc-internal-format | |
35185 | msgid "'%s' cannot be extended at %C because it is a SEQUENCE type" | |
35186 | msgstr "'%s' no se puede extender en %C porque es un tipo SEQUENCE" | |
35187 | ||
35188 | -#: fortran/decl.c:7354 | |
35189 | +#: fortran/decl.c:7355 | |
35190 | #, gcc-internal-format, gfc-internal-format | |
35191 | msgid "Derived type at %C can only be PRIVATE in the specification part of a module" | |
35192 | msgstr "El tipo derivado en %C sólo puede ser PRIVATE en la parte de especificación de un módulo" | |
35193 | ||
35194 | -#: fortran/decl.c:7366 | |
35195 | +#: fortran/decl.c:7367 | |
35196 | #, gcc-internal-format, gfc-internal-format | |
35197 | msgid "Derived type at %C can only be PUBLIC in the specification part of a module" | |
35198 | msgstr "El tipo derivado en %C sólo puede ser PUBLIC en la parte de especificación de un módulo" | |
35199 | ||
35200 | -#: fortran/decl.c:7387 | |
35201 | +#: fortran/decl.c:7388 | |
35202 | #, gcc-internal-format, gfc-internal-format | |
35203 | msgid "Fortran 2003: ABSTRACT type at %C" | |
35204 | msgstr "Fortran 2003: Tipo ABSTRACT en %C" | |
35205 | ||
35206 | -#: fortran/decl.c:7452 | |
35207 | +#: fortran/decl.c:7453 | |
35208 | #, gcc-internal-format, gfc-internal-format | |
35209 | msgid "Expected :: in TYPE definition at %C" | |
35210 | msgstr "Se esperaba :: en la definición TYPE en %C" | |
35211 | ||
35212 | -#: fortran/decl.c:7463 | |
35213 | +#: fortran/decl.c:7464 | |
35214 | #, gcc-internal-format, gfc-internal-format | |
35215 | msgid "Type name '%s' at %C cannot be the same as an intrinsic type" | |
35216 | msgstr "El nombre de tipo '%s' en %C no puede ser el mismo que un tipo intrínseco" | |
35217 | ||
35218 | -#: fortran/decl.c:7473 | |
35219 | +#: fortran/decl.c:7474 | |
35220 | #, gcc-internal-format, gfc-internal-format | |
35221 | msgid "Derived type name '%s' at %C already has a basic type of %s" | |
35222 | msgstr "El nombre de tipo derivado '%s' en %C ya tiene un tipo básico de %s" | |
35223 | ||
35224 | -#: fortran/decl.c:7490 | |
35225 | +#: fortran/decl.c:7491 | |
35226 | #, gcc-internal-format, gfc-internal-format | |
35227 | msgid "Derived type definition of '%s' at %C has already been defined" | |
35228 | msgstr "La definición del tipo derivado de '%s' en %C ya se había definido" | |
35229 | ||
35230 | -#: fortran/decl.c:7598 | |
35231 | +#: fortran/decl.c:7599 | |
35232 | #, gcc-internal-format, gfc-internal-format | |
35233 | msgid "Cray Pointee at %C cannot be assumed shape array" | |
35234 | msgstr "El Apuntado Cray en %C no puede ser una matriz de forma asumida" | |
35235 | ||
35236 | -#: fortran/decl.c:7618 | |
35237 | +#: fortran/decl.c:7619 | |
35238 | #, gcc-internal-format, gfc-internal-format | |
35239 | msgid "Fortran 2003: ENUM and ENUMERATOR at %C" | |
35240 | msgstr "Fortran 2003: ENUM y ENUMERATOR en %C" | |
35241 | ||
35242 | -#: fortran/decl.c:7651 | |
35243 | +#: fortran/decl.c:7652 | |
35244 | #, gcc-internal-format, gfc-internal-format | |
35245 | msgid "Enumerator exceeds the C integer type at %C" | |
35246 | msgstr "El enumerador excede el tipo entero de C en %C" | |
35247 | ||
35248 | -#: fortran/decl.c:7730 | |
35249 | +#: fortran/decl.c:7731 | |
35250 | #, gcc-internal-format, gfc-internal-format | |
35251 | msgid "ENUMERATOR %L not initialized with integer expression" | |
35252 | msgstr "ENUMERATOR %L no se inicializó con una expresión entera" | |
35253 | ||
35254 | -#: fortran/decl.c:7778 | |
35255 | +#: fortran/decl.c:7779 | |
35256 | #, gcc-internal-format, gfc-internal-format | |
35257 | msgid "ENUM definition statement expected before %C" | |
35258 | msgstr "Se esperaba una declaración de definición ENUM antes de %C" | |
35259 | ||
35260 | -#: fortran/decl.c:7814 | |
35261 | +#: fortran/decl.c:7815 | |
35262 | #, gcc-internal-format, gfc-internal-format | |
35263 | msgid "Syntax error in ENUMERATOR definition at %C" | |
35264 | msgstr "Error sintáctico en la definición ENUMERATOR en %C" | |
35265 | ||
35266 | -#: fortran/decl.c:7861 fortran/decl.c:7876 | |
35267 | +#: fortran/decl.c:7862 fortran/decl.c:7877 | |
35268 | #, gcc-internal-format, gfc-internal-format | |
35269 | msgid "Duplicate access-specifier at %C" | |
35270 | msgstr "Especificador de acceso duplicado en %C" | |
35271 | ||
35272 | -#: fortran/decl.c:7896 | |
35273 | +#: fortran/decl.c:7897 | |
35274 | #, gcc-internal-format, gfc-internal-format | |
35275 | msgid "Binding attributes already specify passing, illegal NOPASS at %C" | |
35276 | msgstr "Los atributos de enlace ya especifican paso, NOPASS ilegal en %C" | |
35277 | ||
35278 | -#: fortran/decl.c:7916 | |
35279 | +#: fortran/decl.c:7917 | |
35280 | #, gcc-internal-format, gfc-internal-format | |
35281 | msgid "Binding attributes already specify passing, illegal PASS at %C" | |
35282 | msgstr "Los atributos de enlace ya especifican paso, PASS ilegal en %C" | |
35283 | ||
35284 | -#: fortran/decl.c:7943 | |
35285 | +#: fortran/decl.c:7944 | |
35286 | #, gcc-internal-format, gfc-internal-format | |
35287 | msgid "Duplicate POINTER attribute at %C" | |
35288 | msgstr "Atributo POINTER duplicado en %C" | |
35289 | ||
35290 | -#: fortran/decl.c:7961 | |
35291 | +#: fortran/decl.c:7962 | |
35292 | #, gcc-internal-format, gfc-internal-format | |
35293 | msgid "Duplicate NON_OVERRIDABLE at %C" | |
35294 | msgstr "NON_OVERRIDABLE duplicado en %C" | |
35295 | ||
35296 | -#: fortran/decl.c:7977 | |
35297 | +#: fortran/decl.c:7978 | |
35298 | #, gcc-internal-format, gfc-internal-format | |
35299 | msgid "Duplicate DEFERRED at %C" | |
35300 | msgstr "DEFERRED duplicado en %C" | |
35301 | ||
35302 | -#: fortran/decl.c:7990 | |
35303 | +#: fortran/decl.c:7991 | |
35304 | #, gcc-internal-format, gfc-internal-format | |
35305 | msgid "Expected access-specifier at %C" | |
35306 | msgstr "Se esperaba un especificador de acceso en %C" | |
35307 | ||
35308 | -#: fortran/decl.c:7992 | |
35309 | +#: fortran/decl.c:7993 | |
35310 | #, gcc-internal-format, gfc-internal-format | |
35311 | msgid "Expected binding attribute at %C" | |
35312 | msgstr "Se esperaba un atributo de enlace en %C" | |
35313 | ||
35314 | -#: fortran/decl.c:8000 | |
35315 | +#: fortran/decl.c:8001 | |
35316 | #, gcc-internal-format, gfc-internal-format | |
35317 | msgid "NON_OVERRIDABLE and DEFERRED can't both appear at %C" | |
35318 | msgstr "No pueden aparecer NON_OVERRIDABLE y DEFERRED al mismo tiempo en %C" | |
35319 | ||
35320 | -#: fortran/decl.c:8012 | |
35321 | +#: fortran/decl.c:8013 | |
35322 | #, gcc-internal-format, gfc-internal-format | |
35323 | msgid "POINTER attribute is required for procedure pointer component at %C" | |
35324 | msgstr "Se requiere el atributo POINTER para el procedimiento de componente puntero en %C" | |
35325 | ||
35326 | -#: fortran/decl.c:8054 | |
35327 | +#: fortran/decl.c:8055 | |
35328 | #, gcc-internal-format, gfc-internal-format | |
35329 | msgid "Interface-name expected after '(' at %C" | |
35330 | msgstr "Se esperaba un nombre de interfaz después de '(' en %C" | |
35331 | ||
35332 | -#: fortran/decl.c:8060 | |
35333 | +#: fortran/decl.c:8061 | |
35334 | #, gcc-internal-format, gfc-internal-format | |
35335 | msgid "')' expected at %C" | |
35336 | msgstr "Se esperaba ')' en %C" | |
35337 | ||
35338 | -#: fortran/decl.c:8080 | |
35339 | +#: fortran/decl.c:8081 | |
35340 | #, gcc-internal-format, gfc-internal-format | |
35341 | msgid "Interface must be specified for DEFERRED binding at %C" | |
35342 | msgstr "Se debe especificar una interfaz para el enlace DEFERRED en %C" | |
35343 | ||
35344 | -#: fortran/decl.c:8085 | |
35345 | +#: fortran/decl.c:8086 | |
35346 | #, gcc-internal-format, gfc-internal-format | |
35347 | msgid "PROCEDURE(interface) at %C should be declared DEFERRED" | |
35348 | msgstr "PROCEDURE(interface) en %C se debe declarar DEFERRED" | |
35349 | ||
35350 | -#: fortran/decl.c:8108 | |
35351 | +#: fortran/decl.c:8109 | |
35352 | #, gcc-internal-format, gfc-internal-format | |
35353 | msgid "Expected binding name at %C" | |
35354 | msgstr "Se esperaba un nombre de enlace en %C" | |
35355 | ||
35356 | -#: fortran/decl.c:8112 | |
35357 | +#: fortran/decl.c:8113 | |
35358 | #, gcc-internal-format, gfc-internal-format | |
35359 | msgid "Fortran 2008: PROCEDURE list at %C" | |
35360 | msgstr "Fortran 2008: Lista PROCEDURE en %C" | |
35361 | ||
35362 | -#: fortran/decl.c:8125 | |
35363 | +#: fortran/decl.c:8126 | |
35364 | #, gcc-internal-format, gfc-internal-format | |
35365 | msgid "'=> target' is invalid for DEFERRED binding at %C" | |
35366 | msgstr "'=> objetivo' es inválido para el enlace DEFERRED en %C" | |
35367 | ||
35368 | -#: fortran/decl.c:8131 | |
35369 | +#: fortran/decl.c:8132 | |
35370 | #, gcc-internal-format, gfc-internal-format | |
35371 | msgid "'::' needed in PROCEDURE binding with explicit target at %C" | |
35372 | msgstr "Se necesita '::' en el enlace PROCEDURE con objetivo explícito en %C" | |
35373 | ||
35374 | -#: fortran/decl.c:8141 | |
35375 | +#: fortran/decl.c:8142 | |
35376 | #, gcc-internal-format, gfc-internal-format | |
35377 | msgid "Expected binding target after '=>' at %C" | |
35378 | msgstr "Se esperaba un objetivo de enlace después de '=>' en %C" | |
35379 | ||
35380 | -#: fortran/decl.c:8158 | |
35381 | +#: fortran/decl.c:8159 | |
35382 | #, gcc-internal-format, gfc-internal-format | |
35383 | msgid "Type '%s' containing DEFERRED binding at %C is not ABSTRACT" | |
35384 | msgstr "El tipo '%s' que contiene el enlace DEFERRED en %C no es ABSTRACT" | |
35385 | ||
35386 | -#: fortran/decl.c:8169 | |
35387 | +#: fortran/decl.c:8170 | |
35388 | #, gcc-internal-format, gfc-internal-format | |
35389 | msgid "There is already a procedure with binding name '%s' for the derived type '%s' at %C" | |
35390 | msgstr "Ya existe un procedimiento con nombre de enlazado '%s' para el tipo derivado '%s' en %C" | |
35391 | ||
35392 | -#: fortran/decl.c:8218 | |
35393 | +#: fortran/decl.c:8219 | |
35394 | #, gcc-internal-format, gfc-internal-format | |
35395 | msgid "GENERIC at %C must be inside a derived-type CONTAINS" | |
35396 | msgstr "GENERIC en %C debe estar dentro de un tipo derivado CONTAINS" | |
35397 | ||
35398 | -#: fortran/decl.c:8238 | |
35399 | +#: fortran/decl.c:8239 | |
35400 | #, gcc-internal-format, gfc-internal-format | |
35401 | msgid "Expected '::' at %C" | |
35402 | msgstr "Se esperaba '::' en %C" | |
35403 | ||
35404 | -#: fortran/decl.c:8250 | |
35405 | +#: fortran/decl.c:8251 | |
35406 | #, gcc-internal-format, gfc-internal-format | |
35407 | msgid "Expected generic name or operator descriptor at %C" | |
35408 | msgstr "Se esperaba un nombre genérico o un descriptor de operador en %C" | |
35409 | ||
35410 | -#: fortran/decl.c:8276 | |
35411 | +#: fortran/decl.c:8277 | |
35412 | #, gcc-internal-format, gfc-internal-format | |
35413 | msgid "Expected '=>' at %C" | |
35414 | msgstr "Se esperaba '=>' en %C" | |
35415 | ||
35416 | -#: fortran/decl.c:8318 | |
35417 | +#: fortran/decl.c:8319 | |
35418 | #, gcc-internal-format, gfc-internal-format | |
35419 | msgid "There's already a non-generic procedure with binding name '%s' for the derived type '%s' at %C" | |
35420 | msgstr "Ya existe un procedimiento que no es genérico con el nombre de enlace '%s' para el tipo derivado '%s' en %C" | |
35421 | ||
35422 | -#: fortran/decl.c:8326 | |
35423 | +#: fortran/decl.c:8327 | |
35424 | #, gcc-internal-format, gfc-internal-format | |
35425 | msgid "Binding at %C must have the same access as already defined binding '%s'" | |
35426 | msgstr "El enlace en %C debe tener el mismo acceso que el enlace '%s' que ya está definido" | |
35427 | ||
35428 | -#: fortran/decl.c:8375 | |
35429 | +#: fortran/decl.c:8376 | |
35430 | #, gcc-internal-format, gfc-internal-format | |
35431 | msgid "Expected specific binding name at %C" | |
35432 | msgstr "Se esperaba un nombre de enlace específico en %C" | |
35433 | ||
35434 | -#: fortran/decl.c:8385 | |
35435 | +#: fortran/decl.c:8386 | |
35436 | #, gcc-internal-format, gfc-internal-format | |
35437 | msgid "'%s' already defined as specific binding for the generic '%s' at %C" | |
35438 | msgstr "Ya se definió '%s' como un enlace específico para el genérico '%s' en %C" | |
35439 | ||
35440 | -#: fortran/decl.c:8403 | |
35441 | +#: fortran/decl.c:8404 | |
35442 | #, gcc-internal-format, gfc-internal-format | |
35443 | msgid "Junk after GENERIC binding at %C" | |
35444 | msgstr "Basura después del enlace GENERIC en %C" | |
35445 | ||
35446 | -#: fortran/decl.c:8438 | |
35447 | +#: fortran/decl.c:8439 | |
35448 | #, gcc-internal-format, gfc-internal-format | |
35449 | msgid "FINAL declaration at %C must be inside a derived type CONTAINS section" | |
35450 | msgstr "La declaración FINAL en %C debe estar dentro de una sección de tipo derivado CONTAINS" | |
35451 | ||
35452 | -#: fortran/decl.c:8449 | |
35453 | +#: fortran/decl.c:8450 | |
35454 | #, gcc-internal-format, gfc-internal-format | |
35455 | msgid "Derived type declaration with FINAL at %C must be in the specification part of a MODULE" | |
35456 | msgstr "La declaración de tipo derivado con FINAL en %C debe estar en la parte de especificación de un MODULE" | |
35457 | ||
35458 | -#: fortran/decl.c:8471 | |
35459 | +#: fortran/decl.c:8472 | |
35460 | #, gcc-internal-format, gfc-internal-format | |
35461 | msgid "Empty FINAL at %C" | |
35462 | msgstr "FINAL vacío en %C" | |
35463 | ||
35464 | -#: fortran/decl.c:8478 | |
35465 | +#: fortran/decl.c:8479 | |
35466 | #, gcc-internal-format, gfc-internal-format | |
35467 | msgid "Expected module procedure name at %C" | |
35468 | msgstr "Se esperaba un nombre de procedimiento de módulo en %C" | |
35469 | ||
35470 | -#: fortran/decl.c:8488 | |
35471 | +#: fortran/decl.c:8489 | |
35472 | #, gcc-internal-format, gfc-internal-format | |
35473 | msgid "Expected ',' at %C" | |
35474 | msgstr "Se esperaba ',' en %C" | |
35475 | ||
35476 | -#: fortran/decl.c:8494 | |
35477 | +#: fortran/decl.c:8495 | |
35478 | #, gcc-internal-format, gfc-internal-format | |
35479 | msgid "Unknown procedure name \"%s\" at %C" | |
35480 | msgstr "Nombre de procedimiento \"%s\" desconocido en %C" | |
35481 | ||
35482 | -#: fortran/decl.c:8508 | |
35483 | +#: fortran/decl.c:8509 | |
35484 | #, gcc-internal-format, gfc-internal-format | |
35485 | msgid "'%s' at %C is already defined as FINAL procedure!" | |
35486 | msgstr "¡'%s' en %C ya se había definido como un procedimiento FINAL!" | |
35487 | ||
35488 | -#: fortran/decl.c:8577 | |
35489 | +#: fortran/decl.c:8578 | |
35490 | #, gcc-internal-format, gfc-internal-format | |
35491 | msgid "Unknown attribute in !GCC$ ATTRIBUTES statement at %C" | |
35492 | msgstr "Atributo desconocido en la declaración !GCC$ ATTRIBUTES en %C" | |
35493 | ||
35494 | -#: fortran/decl.c:8624 | |
35495 | +#: fortran/decl.c:8625 | |
35496 | #, gcc-internal-format, gfc-internal-format | |
35497 | msgid "Syntax error in !GCC$ ATTRIBUTES statement at %C" | |
35498 | msgstr "Error sintáctico en la declaración !GCC$ ATTRIBUTES en %C" | |
35499 | @@ -37266,27 +37261,27 @@ | |
35500 | msgid "Extension: BOZ literal at %L used to initialize non-integer variable '%s'" | |
35501 | msgstr "Extensión: se usa la literal BOZ en %L para inicializar la variable '%s' que no es entera" | |
35502 | ||
35503 | -#: fortran/expr.c:3177 fortran/resolve.c:9095 | |
35504 | +#: fortran/expr.c:3177 fortran/resolve.c:9097 | |
35505 | #, gcc-internal-format, gfc-internal-format | |
35506 | msgid "Extension: BOZ literal at %L outside a DATA statement and outside INT/REAL/DBLE/CMPLX" | |
35507 | msgstr "Extensión: la literal BOZ en %L está fuera de una declaración DATA y fuera de INT/REAL/DBLE/CMPLX" | |
35508 | ||
35509 | -#: fortran/expr.c:3187 fortran/resolve.c:9105 | |
35510 | +#: fortran/expr.c:3187 fortran/resolve.c:9107 | |
35511 | #, gcc-internal-format, gfc-internal-format | |
35512 | msgid "BOZ literal at %L is bitwise transferred non-integer symbol '%s'" | |
35513 | msgstr "La literal BOZ en %L se transfiere por bits al símbolo '%s' que no es entero" | |
35514 | ||
35515 | -#: fortran/expr.c:3195 fortran/resolve.c:9114 | |
35516 | +#: fortran/expr.c:3195 fortran/resolve.c:9116 | |
35517 | #, gcc-internal-format, gfc-internal-format | |
35518 | msgid "Arithmetic underflow of bit-wise transferred BOZ at %L. This check can be disabled with the option -fno-range-check" | |
35519 | msgstr "Desborde aritmético por debajo del BOZ transferido por bits en %L. Esta revisión se puede desactivar con la opción -fno-range-check" | |
35520 | ||
35521 | -#: fortran/expr.c:3199 fortran/resolve.c:9118 | |
35522 | +#: fortran/expr.c:3199 fortran/resolve.c:9120 | |
35523 | #, gcc-internal-format, gfc-internal-format | |
35524 | msgid "Arithmetic overflow of bit-wise transferred BOZ at %L. This check can be disabled with the option -fno-range-check" | |
35525 | msgstr "Desborde aritmético del BOZ transferido por bits en %L. Esta revisión se puede desactivar con la opción -fno-range-check" | |
35526 | ||
35527 | -#: fortran/expr.c:3203 fortran/resolve.c:9122 | |
35528 | +#: fortran/expr.c:3203 fortran/resolve.c:9124 | |
35529 | #, gcc-internal-format, gfc-internal-format | |
35530 | msgid "Arithmetic NaN of bit-wise transferred BOZ at %L. This check can be disabled with the option -fno-range-check" | |
35531 | msgstr "NaN aritmético del BOZ transferido por bits en %L. Esta revisión se puede desactivar con la opción -fno-range-check" | |
35532 | @@ -37547,7 +37542,7 @@ | |
35533 | msgstr "no se puede abrir el fichero de entrada: %s" | |
35534 | ||
35535 | #: fortran/frontend-passes.c:354 fortran/trans-array.c:1024 | |
35536 | -#: fortran/trans-array.c:5760 fortran/trans-array.c:7006 | |
35537 | +#: fortran/trans-array.c:5754 fortran/trans-array.c:7000 | |
35538 | #: fortran/trans-intrinsic.c:5422 | |
35539 | #, gcc-internal-format, gfc-internal-format | |
35540 | msgid "Creating array temporary at %L" | |
35541 | @@ -37663,12 +37658,12 @@ | |
35542 | msgid "Second argument of defined assignment at %L must be INTENT(IN)" | |
35543 | msgstr "El segundo argumento de la asignación definida en %L debe ser INTENT(IN)" | |
35544 | ||
35545 | -#: fortran/interface.c:705 fortran/resolve.c:13759 | |
35546 | +#: fortran/interface.c:705 fortran/resolve.c:13761 | |
35547 | #, gcc-internal-format, gfc-internal-format | |
35548 | msgid "First argument of operator interface at %L must be INTENT(IN)" | |
35549 | msgstr "El primer argumento de la interfaz de operador en %L debe ser INTENT(IN)" | |
35550 | ||
35551 | -#: fortran/interface.c:712 fortran/resolve.c:13777 | |
35552 | +#: fortran/interface.c:712 fortran/resolve.c:13779 | |
35553 | #, gcc-internal-format, gfc-internal-format | |
35554 | msgid "Second argument of operator interface at %L must be INTENT(IN)" | |
35555 | msgstr "El segundo argumento de la interfaz de operador en %L debe ser INTENT(IN)" | |
35556 | @@ -39689,7 +39684,7 @@ | |
35557 | msgid "Unexpected junk after NOWAIT clause at %C" | |
35558 | msgstr "Basura inesperada después de la cláusula NOWAIT en %C" | |
35559 | ||
35560 | -#: fortran/openmp.c:819 fortran/resolve.c:8984 fortran/resolve.c:9462 | |
35561 | +#: fortran/openmp.c:819 fortran/resolve.c:8986 fortran/resolve.c:9464 | |
35562 | #, gcc-internal-format, gfc-internal-format | |
35563 | msgid "IF clause at %L requires a scalar LOGICAL expression" | |
35564 | msgstr "La cláusula IF en %L requiere una expresión LOGICAL escalar" | |
35565 | @@ -40778,943 +40773,943 @@ | |
35566 | msgid "Argument '%s' of pure subroutine '%s' at %L must have its INTENT specified or have the VALUE attribute" | |
35567 | msgstr "El argumento '%s' de la subrutina pure '%s' en %L debe tener especificado su INTENT o tener el atributo VALUE" | |
35568 | ||
35569 | -#: fortran/resolve.c:381 | |
35570 | +#: fortran/resolve.c:383 | |
35571 | #, gcc-internal-format, gfc-internal-format | |
35572 | msgid "Coarray dummy argument '%s' at %L to elemental procedure" | |
35573 | msgstr "El argumento dummy de comatriz '%s' en %L para un procedimiento elemental" | |
35574 | ||
35575 | -#: fortran/resolve.c:389 | |
35576 | +#: fortran/resolve.c:391 | |
35577 | #, gcc-internal-format, gfc-internal-format | |
35578 | msgid "Argument '%s' of elemental procedure at %L must be scalar" | |
35579 | msgstr "El argumento '%s' del procedimiento elemental en %L debe ser escalar" | |
35580 | ||
35581 | -#: fortran/resolve.c:398 | |
35582 | +#: fortran/resolve.c:400 | |
35583 | #, gcc-internal-format, gfc-internal-format | |
35584 | msgid "Argument '%s' of elemental procedure at %L cannot have the ALLOCATABLE attribute" | |
35585 | msgstr "El argumento '%s' del procedimiento elemental en %L no puede tener el atributo ALLOCATABLE" | |
35586 | ||
35587 | -#: fortran/resolve.c:408 | |
35588 | +#: fortran/resolve.c:410 | |
35589 | #, gcc-internal-format, gfc-internal-format | |
35590 | msgid "Argument '%s' of elemental procedure at %L cannot have the POINTER attribute" | |
35591 | msgstr "El argumento '%s' del procedimiento elemental en %L no puede tener el atributo POINTER" | |
35592 | ||
35593 | -#: fortran/resolve.c:416 | |
35594 | +#: fortran/resolve.c:418 | |
35595 | #, gcc-internal-format, gfc-internal-format | |
35596 | msgid "Dummy procedure '%s' not allowed in elemental procedure '%s' at %L" | |
35597 | msgstr "No se permite el procedimiento dummy '%s' en el procedimiento elemental '%s' en %L" | |
35598 | ||
35599 | -#: fortran/resolve.c:424 | |
35600 | +#: fortran/resolve.c:426 | |
35601 | #, gcc-internal-format, gfc-internal-format | |
35602 | msgid "Argument '%s' of elemental procedure '%s' at %L must have its INTENT specified" | |
35603 | msgstr "El argumento '%s' del procedimiento elemental '%s' en %L debe tener especificado su INTENT" | |
35604 | ||
35605 | -#: fortran/resolve.c:436 | |
35606 | +#: fortran/resolve.c:438 | |
35607 | #, gcc-internal-format, gfc-internal-format | |
35608 | msgid "Argument '%s' of statement function at %L must be scalar" | |
35609 | msgstr "El argumento '%s' de la función de declaración en %L debe ser escalar" | |
35610 | ||
35611 | -#: fortran/resolve.c:446 | |
35612 | +#: fortran/resolve.c:448 | |
35613 | #, gcc-internal-format, gfc-internal-format | |
35614 | msgid "Character-valued argument '%s' of statement function at %L must have constant length" | |
35615 | msgstr "El argumento con valor de carácter '%s' de la función de declaración en %L debe tener longitud constante" | |
35616 | ||
35617 | -#: fortran/resolve.c:504 | |
35618 | +#: fortran/resolve.c:506 | |
35619 | #, gcc-internal-format, gfc-internal-format | |
35620 | msgid "Contained function '%s' at %L has no IMPLICIT type" | |
35621 | msgstr "La función contenida '%s' en %L no es de tipo IMPLICIT" | |
35622 | ||
35623 | -#: fortran/resolve.c:507 | |
35624 | +#: fortran/resolve.c:509 | |
35625 | #, gcc-internal-format, gfc-internal-format | |
35626 | msgid "Result '%s' of contained function '%s' at %L has no IMPLICIT type" | |
35627 | msgstr "El resultado '%s ' de la función contenida '%s' en %L no es de tipo IMPLICIT" | |
35628 | ||
35629 | -#: fortran/resolve.c:531 | |
35630 | +#: fortran/resolve.c:533 | |
35631 | #, gcc-internal-format, gfc-internal-format | |
35632 | msgid "Character-valued %s '%s' at %L must not be assumed length" | |
35633 | msgstr "La función %s valuada con carácter '%s' en %L no debe tener longitud asumida" | |
35634 | ||
35635 | -#: fortran/resolve.c:706 | |
35636 | +#: fortran/resolve.c:708 | |
35637 | #, gcc-internal-format, gfc-internal-format | |
35638 | msgid "Function %s at %L has entries with mismatched array specifications" | |
35639 | msgstr "El procedimiento %s en %L tiene entradas con especificaciones de matriz no coincidentes" | |
35640 | ||
35641 | -#: fortran/resolve.c:723 | |
35642 | +#: fortran/resolve.c:725 | |
35643 | #, gcc-internal-format, gfc-internal-format | |
35644 | msgid "Extension: Function %s at %L with entries returning variables of different string lengths" | |
35645 | msgstr "Extensión: La función %s en %L con entradas que devuelven variables de longitudes de cadena diferentes" | |
35646 | ||
35647 | -#: fortran/resolve.c:750 | |
35648 | +#: fortran/resolve.c:752 | |
35649 | #, gcc-internal-format, gfc-internal-format | |
35650 | msgid "FUNCTION result %s can't be an array in FUNCTION %s at %L" | |
35651 | msgstr "El resultado de FUNCTION %s no puede ser una matriz en FUNCTION %s en %L" | |
35652 | ||
35653 | -#: fortran/resolve.c:754 | |
35654 | +#: fortran/resolve.c:756 | |
35655 | #, gcc-internal-format, gfc-internal-format | |
35656 | msgid "ENTRY result %s can't be an array in FUNCTION %s at %L" | |
35657 | msgstr "El resultado de ENTRY %s no puede ser una matriz en FUNCTION %s en %L" | |
35658 | ||
35659 | -#: fortran/resolve.c:761 | |
35660 | +#: fortran/resolve.c:763 | |
35661 | #, gcc-internal-format, gfc-internal-format | |
35662 | msgid "FUNCTION result %s can't be a POINTER in FUNCTION %s at %L" | |
35663 | msgstr "El resultado de FUNCTION %s no puede ser un POINTER en FUNCTION %s en %L" | |
35664 | ||
35665 | -#: fortran/resolve.c:765 | |
35666 | +#: fortran/resolve.c:767 | |
35667 | #, gcc-internal-format, gfc-internal-format | |
35668 | msgid "ENTRY result %s can't be a POINTER in FUNCTION %s at %L" | |
35669 | msgstr "El resultado de ENTRY %s no puede ser un POINTER en FUNCTION %s en %L" | |
35670 | ||
35671 | -#: fortran/resolve.c:803 | |
35672 | +#: fortran/resolve.c:805 | |
35673 | #, gcc-internal-format, gfc-internal-format | |
35674 | msgid "FUNCTION result %s can't be of type %s in FUNCTION %s at %L" | |
35675 | msgstr "El resultado de FUNCTION %s no puede ser de tipo %s en FUNCTION %s en %L" | |
35676 | ||
35677 | -#: fortran/resolve.c:808 | |
35678 | +#: fortran/resolve.c:810 | |
35679 | #, gcc-internal-format, gfc-internal-format | |
35680 | msgid "ENTRY result %s can't be of type %s in FUNCTION %s at %L" | |
35681 | msgstr "El resultado de ENTRY %s no puede ser de tipo %s en FUNCTION %s en %L" | |
35682 | ||
35683 | -#: fortran/resolve.c:851 | |
35684 | +#: fortran/resolve.c:853 | |
35685 | #, gcc-internal-format, gfc-internal-format | |
35686 | msgid "Variable '%s' at %L is in COMMON but only in BLOCK DATA initialization is allowed" | |
35687 | msgstr "La variable '%s' en %L está en COMMON pero sólo se permite la inicialización en BLOCK DATA" | |
35688 | ||
35689 | -#: fortran/resolve.c:855 | |
35690 | +#: fortran/resolve.c:857 | |
35691 | #, gcc-internal-format, gfc-internal-format | |
35692 | msgid "Initialized variable '%s' at %L is in a blank COMMON but initialization is only allowed in named common blocks" | |
35693 | msgstr "La variable inicializada '%s' en %L está en un COMMON vacío pero la inicialización sólo se permite en bloques common nombrados" | |
35694 | ||
35695 | -#: fortran/resolve.c:866 | |
35696 | +#: fortran/resolve.c:868 | |
35697 | #, gcc-internal-format, gfc-internal-format | |
35698 | msgid "Derived type variable '%s' in COMMON at %L has neither the SEQUENCE nor the BIND(C) attribute" | |
35699 | msgstr "La variable de tipo derivado '%s' en COMMON en %L no tiene el atributo SEQUENCE ni el atributo BIND(C)" | |
35700 | ||
35701 | -#: fortran/resolve.c:870 | |
35702 | +#: fortran/resolve.c:872 | |
35703 | #, gcc-internal-format, gfc-internal-format | |
35704 | msgid "Derived type variable '%s' in COMMON at %L has an ultimate component that is allocatable" | |
35705 | msgstr "La variable de tipo derivado '%s' en COMMON en %L tiene un componente ultimate que es allocatable" | |
35706 | ||
35707 | -#: fortran/resolve.c:874 | |
35708 | +#: fortran/resolve.c:876 | |
35709 | #, gcc-internal-format, gfc-internal-format | |
35710 | msgid "Derived type variable '%s' in COMMON at %L may not have default initializer" | |
35711 | msgstr "La variable de tipo derivado '%s' en COMMON en %L tal vez no tiene inicializador por defecto" | |
35712 | ||
35713 | -#: fortran/resolve.c:904 | |
35714 | +#: fortran/resolve.c:906 | |
35715 | #, gcc-internal-format, gfc-internal-format | |
35716 | msgid "COMMON block '%s' at %L is used as PARAMETER at %L" | |
35717 | msgstr "El bloque COMMON '%s' en %L se usa como PARAMETER en %L" | |
35718 | ||
35719 | -#: fortran/resolve.c:908 | |
35720 | +#: fortran/resolve.c:910 | |
35721 | #, gcc-internal-format, gfc-internal-format | |
35722 | msgid "COMMON block '%s' at %L can not have the EXTERNAL attribute" | |
35723 | msgstr "El bloque COMMON '%s' en %L no puede tener el atributo EXTERNAL" | |
35724 | ||
35725 | -#: fortran/resolve.c:912 | |
35726 | +#: fortran/resolve.c:914 | |
35727 | #, gcc-internal-format, gfc-internal-format | |
35728 | msgid "COMMON block '%s' at %L is also an intrinsic procedure" | |
35729 | msgstr "El bloque COMMON '%s' en %L también es un procedimiento intrínseco" | |
35730 | ||
35731 | -#: fortran/resolve.c:916 | |
35732 | +#: fortran/resolve.c:918 | |
35733 | #, gcc-internal-format, gfc-internal-format | |
35734 | msgid "Fortran 2003: COMMON block '%s' at %L that is also a function result" | |
35735 | msgstr "Fortran 2003: El bloque COMMON '%s' en %L también es un resultado de función" | |
35736 | ||
35737 | -#: fortran/resolve.c:921 | |
35738 | +#: fortran/resolve.c:923 | |
35739 | #, gcc-internal-format, gfc-internal-format | |
35740 | msgid "Fortran 2003: COMMON block '%s' at %L that is also a global procedure" | |
35741 | msgstr "Fortran 2003: El bloque COMMON '%s' en %L también es un procedimiento global" | |
35742 | ||
35743 | -#: fortran/resolve.c:985 | |
35744 | +#: fortran/resolve.c:987 | |
35745 | #, gcc-internal-format, gfc-internal-format | |
35746 | msgid "Components of structure constructor '%s' at %L are PRIVATE" | |
35747 | msgstr "Los componentes del constructor de estructura '%s' en %L son PRIVATE" | |
35748 | ||
35749 | -#: fortran/resolve.c:1021 | |
35750 | +#: fortran/resolve.c:1023 | |
35751 | #, gcc-internal-format, gfc-internal-format | |
35752 | msgid "The rank of the element in the structure constructor at %L does not match that of the component (%d/%d)" | |
35753 | msgstr "El rango del elemento en el constructor de estructura en %L no coincide con el del componente (%d/%d)" | |
35754 | ||
35755 | -#: fortran/resolve.c:1043 | |
35756 | +#: fortran/resolve.c:1045 | |
35757 | #, gcc-internal-format, gfc-internal-format | |
35758 | msgid "The element in the structure constructor at %L, for pointer component '%s', is %s but should be %s" | |
35759 | msgstr "El elemento en el constructor de estructura en %L, para el componente puntero '%s', es %s pero debería ser %s" | |
35760 | ||
35761 | -#: fortran/resolve.c:1122 | |
35762 | +#: fortran/resolve.c:1124 | |
35763 | #, gcc-internal-format, gfc-internal-format | |
35764 | msgid "The NULL in the structure constructor at %L is being applied to component '%s', which is neither a POINTER nor ALLOCATABLE" | |
35765 | msgstr "El NULL en el constructor de estructura en %L se aplica para el componente '%s', el cual no es ni POINTER ni ALLOCATABLE" | |
35766 | ||
35767 | -#: fortran/resolve.c:1155 | |
35768 | +#: fortran/resolve.c:1157 | |
35769 | #, gcc-internal-format, gfc-internal-format | |
35770 | msgid "Interface mismatch for procedure-pointer component '%s' in structure constructor at %L: %s" | |
35771 | msgstr "No coincide la interfaz en el componente puntero-a-procedimiento '%s' en el constructor de estructura en %L: %s" | |
35772 | ||
35773 | -#: fortran/resolve.c:1171 | |
35774 | +#: fortran/resolve.c:1173 | |
35775 | #, gcc-internal-format, gfc-internal-format | |
35776 | msgid "The element in the structure constructor at %L, for pointer component '%s' should be a POINTER or a TARGET" | |
35777 | msgstr "El elemento en el constructor de estructura en %L, para el componente puntero '%s', debe ser un POINTER o un TARGET" | |
35778 | ||
35779 | -#: fortran/resolve.c:1182 | |
35780 | +#: fortran/resolve.c:1184 | |
35781 | #, gcc-internal-format, gfc-internal-format | |
35782 | msgid "Pointer initialization target at %L must not be ALLOCATABLE " | |
35783 | msgstr "El objetivo de inicialización de puntero en %L no debe ser ALLOCATABLE" | |
35784 | ||
35785 | -#: fortran/resolve.c:1188 | |
35786 | +#: fortran/resolve.c:1190 | |
35787 | #, gcc-internal-format, gfc-internal-format | |
35788 | msgid "Pointer initialization target at %L must have the SAVE attribute" | |
35789 | msgstr "El objetivo de inicialización de puntero en %L debe tener el atributo SAVE" | |
35790 | ||
35791 | -#: fortran/resolve.c:1199 | |
35792 | +#: fortran/resolve.c:1201 | |
35793 | #, gcc-internal-format, gfc-internal-format | |
35794 | msgid "Invalid expression in the structure constructor for pointer component '%s' at %L in PURE procedure" | |
35795 | msgstr "Expresión inválida en el constructor de estructura para el componente puntero '%s' en %L en el procedimiento PURE" | |
35796 | ||
35797 | -#: fortran/resolve.c:1328 | |
35798 | +#: fortran/resolve.c:1330 | |
35799 | #, gcc-internal-format, gfc-internal-format | |
35800 | msgid "The upper bound in the last dimension must appear in the reference to the assumed size array '%s' at %L" | |
35801 | msgstr "El límite superior en la última dimensión debe aparecer en la referencia a la matriz de tamaño asumido '%s' en %L" | |
35802 | ||
35803 | -#: fortran/resolve.c:1390 | |
35804 | +#: fortran/resolve.c:1392 | |
35805 | #, gcc-internal-format, gfc-internal-format | |
35806 | msgid "'%s' at %L is ambiguous" | |
35807 | msgstr "'%s' en %L es ambiguo" | |
35808 | ||
35809 | -#: fortran/resolve.c:1394 | |
35810 | +#: fortran/resolve.c:1396 | |
35811 | #, gcc-internal-format, gfc-internal-format | |
35812 | msgid "GENERIC procedure '%s' is not allowed as an actual argument at %L" | |
35813 | msgstr "El procedimiento GENERIC '%s' no se permite como un argumento actual en %L" | |
35814 | ||
35815 | -#: fortran/resolve.c:1506 | |
35816 | +#: fortran/resolve.c:1508 | |
35817 | #, gcc-internal-format, gfc-internal-format | |
35818 | msgid "Type specified for intrinsic function '%s' at %L is ignored" | |
35819 | msgstr "Se descarta el tipo para la función intrínseca '%s' en %L" | |
35820 | ||
35821 | -#: fortran/resolve.c:1519 | |
35822 | +#: fortran/resolve.c:1521 | |
35823 | #, gcc-internal-format, gfc-internal-format | |
35824 | msgid "Intrinsic subroutine '%s' at %L shall not have a type specifier" | |
35825 | msgstr "La subrutina intrínseca '%s' en %L no debe tener un especificador de tipo" | |
35826 | ||
35827 | -#: fortran/resolve.c:1530 | |
35828 | +#: fortran/resolve.c:1532 | |
35829 | #, gcc-internal-format, gfc-internal-format | |
35830 | msgid "'%s' declared INTRINSIC at %L does not exist" | |
35831 | msgstr "No existe '%s' declarado como INTRINSIC en %L" | |
35832 | ||
35833 | -#: fortran/resolve.c:1541 | |
35834 | +#: fortran/resolve.c:1543 | |
35835 | #, gcc-internal-format, gfc-internal-format | |
35836 | msgid "The intrinsic '%s' declared INTRINSIC at %L is not available in the current standard settings but %s. Use an appropriate -std=* option or enable -fall-intrinsics in order to use it." | |
35837 | msgstr "El intrínseco '%s' declarado como INTRINSIC en %L no está disponible en la configuración actual de estándares pero %s. Use una opción -std=* apropiada o active -fall-intrinsics para poder usarlo." | |
35838 | ||
35839 | -#: fortran/resolve.c:1577 | |
35840 | +#: fortran/resolve.c:1579 | |
35841 | #, gcc-internal-format, gfc-internal-format | |
35842 | msgid "Non-RECURSIVE procedure '%s' at %L is possibly calling itself recursively. Declare it RECURSIVE or use -frecursive" | |
35843 | msgstr "El procedimiento que no es RECURSIVE '%s' en %L posiblemente se está llamando a sí mismo recursivamente. Declárelo RECURSIVE o utilice -frecursive" | |
35844 | ||
35845 | -#: fortran/resolve.c:1610 fortran/resolve.c:8520 fortran/resolve.c:9409 | |
35846 | +#: fortran/resolve.c:1612 fortran/resolve.c:8522 fortran/resolve.c:9411 | |
35847 | #, gcc-internal-format, gfc-internal-format | |
35848 | msgid "Label %d referenced at %L is never defined" | |
35849 | msgstr "La etiqueta %d referenciada en %L nunca se define" | |
35850 | ||
35851 | -#: fortran/resolve.c:1655 | |
35852 | +#: fortran/resolve.c:1657 | |
35853 | #, gcc-internal-format, gfc-internal-format | |
35854 | msgid "Statement function '%s' at %L is not allowed as an actual argument" | |
35855 | msgstr "La función de declaración '%s' en %L no se permite como un argumento actual" | |
35856 | ||
35857 | -#: fortran/resolve.c:1663 | |
35858 | +#: fortran/resolve.c:1665 | |
35859 | #, gcc-internal-format, gfc-internal-format | |
35860 | msgid "Intrinsic '%s' at %L is not allowed as an actual argument" | |
35861 | msgstr "El intrínseco '%s' en %L no se permite como un argumento actual" | |
35862 | ||
35863 | -#: fortran/resolve.c:1671 | |
35864 | +#: fortran/resolve.c:1673 | |
35865 | #, gcc-internal-format, gfc-internal-format | |
35866 | msgid "Fortran 2008: Internal procedure '%s' is used as actual argument at %L" | |
35867 | msgstr "Fortran 2008: Se usa el procedimiento interno '%s' como un argumento actual en %L" | |
35868 | ||
35869 | -#: fortran/resolve.c:1679 | |
35870 | +#: fortran/resolve.c:1681 | |
35871 | #, gcc-internal-format, gfc-internal-format | |
35872 | msgid "ELEMENTAL non-INTRINSIC procedure '%s' is not allowed as an actual argument at %L" | |
35873 | msgstr "El procedimiento ELEMENTAL que no es INTRINSIC '%s' no se permite como un argumento actual en %L" | |
35874 | ||
35875 | -#: fortran/resolve.c:1706 | |
35876 | +#: fortran/resolve.c:1708 | |
35877 | #, gcc-internal-format, gfc-internal-format | |
35878 | msgid "Unable to find a specific INTRINSIC procedure for the reference '%s' at %L" | |
35879 | msgstr "No se puede encontrar un procedimiento INTRINSIC específico para la referencia '%s' en %L" | |
35880 | ||
35881 | -#: fortran/resolve.c:1728 | |
35882 | +#: fortran/resolve.c:1730 | |
35883 | #, gcc-internal-format, gfc-internal-format | |
35884 | msgid "Symbol '%s' at %L is ambiguous" | |
35885 | msgstr "El símbolo '%s' en %L es ambiguo" | |
35886 | ||
35887 | -#: fortran/resolve.c:1783 | |
35888 | +#: fortran/resolve.c:1785 | |
35889 | #, gcc-internal-format, gfc-internal-format | |
35890 | msgid "By-value argument at %L is not of numeric type" | |
35891 | msgstr "El argumento por valor en %L no es de tipo numérico" | |
35892 | ||
35893 | -#: fortran/resolve.c:1790 | |
35894 | +#: fortran/resolve.c:1792 | |
35895 | #, gcc-internal-format, gfc-internal-format | |
35896 | msgid "By-value argument at %L cannot be an array or an array section" | |
35897 | msgstr "El argumento por valor en %L no puede ser una matriz o una sección de matriz" | |
35898 | ||
35899 | -#: fortran/resolve.c:1804 | |
35900 | +#: fortran/resolve.c:1806 | |
35901 | #, gcc-internal-format, gfc-internal-format | |
35902 | msgid "By-value argument at %L is not allowed in this context" | |
35903 | msgstr "El argumento por valor en %L no se permite en este contexto" | |
35904 | ||
35905 | -#: fortran/resolve.c:1816 | |
35906 | +#: fortran/resolve.c:1818 | |
35907 | #, gcc-internal-format, gfc-internal-format | |
35908 | msgid "Passing internal procedure at %L by location not allowed" | |
35909 | msgstr "No se permite el paso del procedimiento interno en %L por ubicación" | |
35910 | ||
35911 | -#: fortran/resolve.c:1827 | |
35912 | +#: fortran/resolve.c:1829 | |
35913 | #, gcc-internal-format, gfc-internal-format | |
35914 | msgid "Coindexed actual argument at %L with ultimate pointer component" | |
35915 | msgstr "Argumento actual coindizado en %L con componente puntero último" | |
35916 | ||
35917 | -#: fortran/resolve.c:1950 | |
35918 | +#: fortran/resolve.c:1952 | |
35919 | #, gcc-internal-format, gfc-internal-format | |
35920 | msgid "'%s' at %L is an array and OPTIONAL; IF IT IS MISSING, it cannot be the actual argument of an ELEMENTAL procedure unless there is a non-optional argument with the same rank (12.4.1.5)" | |
35921 | msgstr "'%s' en %L es una matriz y OPTIONAL; SI FALTA, no puede ser el argumento actual de un procedimiento ELEMENTAL a menos que exista un argumento que no sea opcional con el mismo rango (12.4.1.5)" | |
35922 | ||
35923 | -#: fortran/resolve.c:1989 | |
35924 | +#: fortran/resolve.c:1991 | |
35925 | #, gcc-internal-format, gfc-internal-format | |
35926 | msgid "Actual argument at %L for INTENT(%s) dummy '%s' of ELEMENTAL subroutine '%s' is a scalar, but another actual argument is an array" | |
35927 | msgstr "El argumento actual en %L para el dummy INTENT(%s) '%s' de la subrutina ELEMENTAL '%s' es un escalar, pero otro argumento actual es una matriz" | |
35928 | ||
35929 | -#: fortran/resolve.c:2151 | |
35930 | +#: fortran/resolve.c:2153 | |
35931 | #, gcc-internal-format, gfc-internal-format | |
35932 | msgid "Character length mismatch in return type of function '%s' at %L (%ld/%ld)" | |
35933 | msgstr "No coincide la longitud de caracteres en el tipo de devolución de la función '%s' en %L (%ld/%ld)" | |
35934 | ||
35935 | -#: fortran/resolve.c:2159 | |
35936 | +#: fortran/resolve.c:2161 | |
35937 | #, gcc-internal-format, gfc-internal-format | |
35938 | msgid "Return type mismatch of function '%s' at %L (%s/%s)" | |
35939 | msgstr "No coincide el tiop de devolución de la función '%s' en %L (%s/%s)" | |
35940 | ||
35941 | -#: fortran/resolve.c:2178 | |
35942 | +#: fortran/resolve.c:2180 | |
35943 | #, gcc-internal-format, gfc-internal-format | |
35944 | msgid "Dummy argument '%s' of procedure '%s' at %L has an attribute that requires an explicit interface for this procedure" | |
35945 | msgstr "El argumento dummy '%s' del procedimiento '%s' en %L tiene un atributo que requiere una interfaz explícita para este procedimiento" | |
35946 | ||
35947 | -#: fortran/resolve.c:2188 | |
35948 | +#: fortran/resolve.c:2190 | |
35949 | #, gcc-internal-format, gfc-internal-format | |
35950 | msgid "Procedure '%s' at %L with assumed-shape dummy argument '%s' must have an explicit interface" | |
35951 | msgstr "El procedimiento '%s' en %L con argumento dummy de forma asumida '%s' debe tener una interfaz explícita" | |
35952 | ||
35953 | -#: fortran/resolve.c:2196 | |
35954 | +#: fortran/resolve.c:2198 | |
35955 | #, gcc-internal-format, gfc-internal-format | |
35956 | msgid "Procedure '%s' at %L with coarray dummy argument '%s' must have an explicit interface" | |
35957 | msgstr "El procedimiento '%s' en %L con argumento dummy de comatriz '%s' debe tener una interfaz explícita" | |
35958 | ||
35959 | -#: fortran/resolve.c:2204 | |
35960 | +#: fortran/resolve.c:2206 | |
35961 | #, gcc-internal-format, gfc-internal-format | |
35962 | msgid "Procedure '%s' at %L with parametrized derived type argument '%s' must have an explicit interface" | |
35963 | msgstr "El procedimiento '%s' en %L con un argumento de tipo derivado parametrizado '%s' debe tener una interfaz explícita" | |
35964 | ||
35965 | -#: fortran/resolve.c:2213 | |
35966 | +#: fortran/resolve.c:2215 | |
35967 | #, gcc-internal-format, gfc-internal-format | |
35968 | msgid "Procedure '%s' at %L with polymorphic dummy argument '%s' must have an explicit interface" | |
35969 | msgstr "El procedimiento '%s' en %L con argumento dummy polimórfico '%s' debe tener una interfaz explícita" | |
35970 | ||
35971 | -#: fortran/resolve.c:2225 | |
35972 | +#: fortran/resolve.c:2227 | |
35973 | #, gcc-internal-format, gfc-internal-format | |
35974 | msgid "The reference to function '%s' at %L either needs an explicit INTERFACE or the rank is incorrect" | |
35975 | msgstr "La referencia a la función '%s' en %L necesita una INTERFACE explícita o el rango es incorrecto" | |
35976 | ||
35977 | -#: fortran/resolve.c:2237 | |
35978 | +#: fortran/resolve.c:2239 | |
35979 | #, gcc-internal-format, gfc-internal-format | |
35980 | msgid "Function '%s' at %L with a POINTER or ALLOCATABLE result must have an explicit interface" | |
35981 | msgstr "La función '%s' en %L con un resultado POINTER o ALLOCATABLE debe tener una interfaz explícita" | |
35982 | ||
35983 | -#: fortran/resolve.c:2250 | |
35984 | +#: fortran/resolve.c:2252 | |
35985 | #, gcc-internal-format, gfc-internal-format | |
35986 | msgid "Nonconstant character-length function '%s' at %L must have an explicit interface" | |
35987 | msgstr "La función de longitud de carácter automática '%s' que no es constante en %L debe una interfaz explícita" | |
35988 | ||
35989 | -#: fortran/resolve.c:2260 | |
35990 | +#: fortran/resolve.c:2262 | |
35991 | #, gcc-internal-format, gfc-internal-format | |
35992 | msgid "ELEMENTAL procedure '%s' at %L must have an explicit interface" | |
35993 | msgstr "El procedimiento ELEMENTAL '%s' en %L debe tener una interfaz explícita" | |
35994 | ||
35995 | -#: fortran/resolve.c:2267 | |
35996 | +#: fortran/resolve.c:2269 | |
35997 | #, gcc-internal-format, gfc-internal-format | |
35998 | msgid "Procedure '%s' at %L with BIND(C) attribute must have an explicit interface" | |
35999 | msgstr "El procedimiento '%s' en %L con atributo BIND(C) debe tener una interfaz explícita" | |
36000 | ||
36001 | -#: fortran/resolve.c:2373 | |
36002 | +#: fortran/resolve.c:2375 | |
36003 | #, gcc-internal-format, gfc-internal-format | |
36004 | msgid "There is no specific function for the generic '%s' at %L" | |
36005 | msgstr "No hay una función específica para el genérico '%s' en %L" | |
36006 | ||
36007 | -#: fortran/resolve.c:2391 | |
36008 | +#: fortran/resolve.c:2393 | |
36009 | #, gcc-internal-format, gfc-internal-format | |
36010 | msgid "Generic function '%s' at %L is not consistent with a specific intrinsic interface" | |
36011 | msgstr "La función genérica '%s' en %L no es consistente con una interfaz intrínseca específica" | |
36012 | ||
36013 | -#: fortran/resolve.c:2429 | |
36014 | +#: fortran/resolve.c:2431 | |
36015 | #, gcc-internal-format, gfc-internal-format | |
36016 | msgid "Function '%s' at %L is INTRINSIC but is not compatible with an intrinsic" | |
36017 | msgstr "La función '%s' en %L es INTRINSIC pero no es compatible con un intrínseco" | |
36018 | ||
36019 | -#: fortran/resolve.c:2478 | |
36020 | +#: fortran/resolve.c:2480 | |
36021 | #, gcc-internal-format, gfc-internal-format | |
36022 | msgid "Unable to resolve the specific function '%s' at %L" | |
36023 | msgstr "No se puede resolver la función específica '%s' en %L" | |
36024 | ||
36025 | -#: fortran/resolve.c:2534 fortran/resolve.c:13694 | |
36026 | +#: fortran/resolve.c:2536 fortran/resolve.c:13696 | |
36027 | #, gcc-internal-format, gfc-internal-format | |
36028 | msgid "Function '%s' at %L has no IMPLICIT type" | |
36029 | msgstr "La función '%s' en %L no es de tipo IMPLICIT" | |
36030 | ||
36031 | -#: fortran/resolve.c:2735 | |
36032 | +#: fortran/resolve.c:2737 | |
36033 | #, gcc-internal-format, gfc-internal-format | |
36034 | msgid "Argument to '%s' at %L is not a variable" | |
36035 | msgstr "El argumento de '%s' en %L no es una variable" | |
36036 | ||
36037 | -#: fortran/resolve.c:2779 | |
36038 | +#: fortran/resolve.c:2781 | |
36039 | #, gcc-internal-format, gfc-internal-format | |
36040 | msgid "More actual than formal arguments in '%s' call at %L" | |
36041 | msgstr "Más argumentos actuales que formales en la llamada '%s' en %L" | |
36042 | ||
36043 | -#: fortran/resolve.c:2791 | |
36044 | +#: fortran/resolve.c:2793 | |
36045 | #, gcc-internal-format, gfc-internal-format | |
36046 | msgid "Parameter '%s' to '%s' at %L must be either a TARGET or an associated pointer" | |
36047 | msgstr "El parámetro '%s' para '%s' en %L debe ser un TARGET o un puntero asociado" | |
36048 | ||
36049 | -#: fortran/resolve.c:2800 | |
36050 | +#: fortran/resolve.c:2802 | |
36051 | #, gcc-internal-format, gfc-internal-format | |
36052 | msgid "Coindexed argument not permitted in '%s' call at %L" | |
36053 | msgstr "No se permite un argumento coindizado en la llamada '%s' en %L" | |
36054 | ||
36055 | -#: fortran/resolve.c:2823 | |
36056 | +#: fortran/resolve.c:2825 | |
36057 | #, gcc-internal-format, gfc-internal-format | |
36058 | msgid "Array section not permitted in '%s' call at %L" | |
36059 | msgstr "No se permite una sección de matriz en la llamada '%s' en %L" | |
36060 | ||
36061 | -#: fortran/resolve.c:2834 | |
36062 | +#: fortran/resolve.c:2836 | |
36063 | #, gcc-internal-format, gfc-internal-format | |
36064 | msgid "Array section in '%s' call at %L" | |
36065 | msgstr "Sección de matriz en la llamada '%s' en %L" | |
36066 | ||
36067 | -#: fortran/resolve.c:2853 | |
36068 | +#: fortran/resolve.c:2855 | |
36069 | #, gcc-internal-format, gfc-internal-format | |
36070 | msgid "Allocatable variable '%s' used as a parameter to '%s' at %L must not be an array of zero size" | |
36071 | msgstr "La variable alojable '%s' usada como un parámetro para '%s' en %L no debe ser una matriz de tamaño cero" | |
36072 | ||
36073 | -#: fortran/resolve.c:2870 | |
36074 | +#: fortran/resolve.c:2872 | |
36075 | #, gcc-internal-format, gfc-internal-format | |
36076 | msgid "Assumed-shape array '%s' at %L cannot be an argument to the procedure '%s' because it is not C interoperable" | |
36077 | msgstr "La matriz de forma asumida '%s' en %L no puede ser un argumento para el procedimiento '%s' porque no es interoperable con C" | |
36078 | ||
36079 | -#: fortran/resolve.c:2880 | |
36080 | +#: fortran/resolve.c:2882 | |
36081 | #, gcc-internal-format, gfc-internal-format | |
36082 | msgid "Deferred-shape array '%s' at %L cannot be an argument to the procedure '%s' because it is not C interoperable" | |
36083 | msgstr "La matriz de forma diferida '%s' en %L no puede ser un argumento para el procedimiento '%s' porque no es interoperable con C" | |
36084 | ||
36085 | -#: fortran/resolve.c:2903 fortran/resolve.c:2940 | |
36086 | +#: fortran/resolve.c:2905 fortran/resolve.c:2942 | |
36087 | #, gcc-internal-format, gfc-internal-format | |
36088 | msgid "CHARACTER argument '%s' to '%s' at %L must have a length of 1" | |
36089 | msgstr "El argumento CHARACTER '%s' para '%s' en %L debe ser de longitud 1" | |
36090 | ||
36091 | #. Case 1c, section 15.1.2.5, J3/04-007: an associated | |
36092 | #. scalar pointer. | |
36093 | -#: fortran/resolve.c:2916 | |
36094 | +#: fortran/resolve.c:2918 | |
36095 | #, gcc-internal-format, gfc-internal-format | |
36096 | msgid "Argument '%s' to '%s' at %L must be an associated scalar POINTER" | |
36097 | msgstr "El argumento '%s' para '%s' en %L debe ser un POINTER escalar asociado" | |
36098 | ||
36099 | -#: fortran/resolve.c:2932 | |
36100 | +#: fortran/resolve.c:2934 | |
36101 | #, gcc-internal-format, gfc-internal-format | |
36102 | msgid "Parameter '%s' to '%s' at %L must be a scalar" | |
36103 | msgstr "El argumento '%s' para '%s' en %L debe ser un escalar" | |
36104 | ||
36105 | -#: fortran/resolve.c:2948 | |
36106 | +#: fortran/resolve.c:2950 | |
36107 | #, gcc-internal-format, gfc-internal-format | |
36108 | msgid "Parameter '%s' to '%s' at %L must not be polymorphic" | |
36109 | msgstr "El parámetro '%s' para '%s' en %L no debe ser polimórfico" | |
36110 | ||
36111 | #. TODO: Update this error message to allow for procedure | |
36112 | #. pointers once they are implemented. | |
36113 | -#: fortran/resolve.c:2961 | |
36114 | +#: fortran/resolve.c:2963 | |
36115 | #, gcc-internal-format, gfc-internal-format | |
36116 | msgid "Parameter '%s' to '%s' at %L must be a procedure" | |
36117 | msgstr "El parámetro '%s' para '%s' en %L debe ser un procedimiento" | |
36118 | ||
36119 | -#: fortran/resolve.c:2969 | |
36120 | +#: fortran/resolve.c:2971 | |
36121 | #, gcc-internal-format, gfc-internal-format | |
36122 | msgid "Parameter '%s' to '%s' at %L must be BIND(C)" | |
36123 | msgstr "El parámetro '%s' para '%s' en %L debe ser BIND(C)" | |
36124 | ||
36125 | -#: fortran/resolve.c:3018 | |
36126 | +#: fortran/resolve.c:3020 | |
36127 | #, gcc-internal-format, gfc-internal-format | |
36128 | msgid "'%s' at %L is not a function" | |
36129 | msgstr "'%s' en %L no es una función" | |
36130 | ||
36131 | -#: fortran/resolve.c:3026 fortran/resolve.c:3657 | |
36132 | +#: fortran/resolve.c:3028 fortran/resolve.c:3659 | |
36133 | #, gcc-internal-format, gfc-internal-format | |
36134 | msgid "ABSTRACT INTERFACE '%s' must not be referenced at %L" | |
36135 | msgstr "La ABSTRACT INTERFACE '%s' no se debe referenciar en %L" | |
36136 | ||
36137 | #. Internal procedures are taken care of in resolve_contained_fntype. | |
36138 | -#: fortran/resolve.c:3081 | |
36139 | +#: fortran/resolve.c:3083 | |
36140 | #, gcc-internal-format, gfc-internal-format | |
36141 | msgid "Function '%s' is declared CHARACTER(*) and cannot be used at %L since it is not a dummy argument" | |
36142 | msgstr "La función '%s' se declara CHARACTER(*) y no se puede usar en %L ya que no es un argumento de prueba" | |
36143 | ||
36144 | -#: fortran/resolve.c:3134 | |
36145 | +#: fortran/resolve.c:3136 | |
36146 | #, gcc-internal-format, gfc-internal-format | |
36147 | msgid "User defined non-ELEMENTAL function '%s' at %L not allowed in WORKSHARE construct" | |
36148 | msgstr "La función definida por el usuario '%s' que no es ELEMENTAL en %L no se permite en la construcción WORKSHARE" | |
36149 | ||
36150 | -#: fortran/resolve.c:3184 | |
36151 | +#: fortran/resolve.c:3186 | |
36152 | #, gcc-internal-format, gfc-internal-format | |
36153 | msgid "Reference to non-PURE function '%s' at %L inside a FORALL %s" | |
36154 | msgstr "La referencia a la función '%s' que no es PURE en %L está dentro de un FORALL %s" | |
36155 | ||
36156 | -#: fortran/resolve.c:3191 | |
36157 | +#: fortran/resolve.c:3193 | |
36158 | #, gcc-internal-format, gfc-internal-format | |
36159 | msgid "Reference to non-PURE function '%s' at %L inside a DO CONCURRENT %s" | |
36160 | msgstr "La referencia a la función '%s' que no es PURE en %L está dentro de un DO CONCURRENT %s" | |
36161 | ||
36162 | -#: fortran/resolve.c:3198 | |
36163 | +#: fortran/resolve.c:3200 | |
36164 | #, gcc-internal-format, gfc-internal-format | |
36165 | msgid "Function reference to '%s' at %L is to a non-PURE procedure within a PURE procedure" | |
36166 | msgstr "La referencia de función a '%s' en %L apunta a un procedimiento que no es PURE dentro de un procedimiento PURE" | |
36167 | ||
36168 | -#: fortran/resolve.c:3217 | |
36169 | +#: fortran/resolve.c:3219 | |
36170 | #, gcc-internal-format, gfc-internal-format | |
36171 | msgid "ENTRY '%s' at %L cannot be called recursively, as function '%s' is not RECURSIVE" | |
36172 | msgstr "ENTRY '%s' en %L no se puede llamar recursivamente, porque la función '%s' no es RECURSIVE" | |
36173 | ||
36174 | -#: fortran/resolve.c:3221 | |
36175 | +#: fortran/resolve.c:3223 | |
36176 | #, gcc-internal-format, gfc-internal-format | |
36177 | msgid "Function '%s' at %L cannot be called recursively, as it is not RECURSIVE" | |
36178 | msgstr "La función '%s' en %L no se puede llamar recursivamente, porque no es RECURSIVE" | |
36179 | ||
36180 | -#: fortran/resolve.c:3260 | |
36181 | +#: fortran/resolve.c:3262 | |
36182 | #, gcc-internal-format, gfc-internal-format | |
36183 | msgid "Subroutine call to '%s' in FORALL block at %L is not PURE" | |
36184 | msgstr "La llamada a subrutina a '%s' en el bloque FORALL en %L no es PURE" | |
36185 | ||
36186 | -#: fortran/resolve.c:3263 | |
36187 | +#: fortran/resolve.c:3265 | |
36188 | #, gcc-internal-format, gfc-internal-format | |
36189 | msgid "Subroutine call to '%s' in DO CONCURRENT block at %L is not PURE" | |
36190 | msgstr "La llamada a subrutina a '%s' en el bloque DO CONCURRENT en %L no es PURE" | |
36191 | ||
36192 | -#: fortran/resolve.c:3266 | |
36193 | +#: fortran/resolve.c:3268 | |
36194 | #, gcc-internal-format, gfc-internal-format | |
36195 | msgid "Subroutine call to '%s' at %L is not PURE" | |
36196 | msgstr "La llamada a subrutina a '%s' en %L no es PURE" | |
36197 | ||
36198 | -#: fortran/resolve.c:3332 | |
36199 | +#: fortran/resolve.c:3334 | |
36200 | #, gcc-internal-format, gfc-internal-format | |
36201 | msgid "There is no specific subroutine for the generic '%s' at %L" | |
36202 | msgstr "No hay una subrutina específica para el genérico '%s' en %L" | |
36203 | ||
36204 | -#: fortran/resolve.c:3341 | |
36205 | +#: fortran/resolve.c:3343 | |
36206 | #, gcc-internal-format, gfc-internal-format | |
36207 | msgid "Generic subroutine '%s' at %L is not consistent with an intrinsic subroutine interface" | |
36208 | msgstr "La subrutina genérica '%s' en %L no es consistente con una interfaz de subrutina intrínseca" | |
36209 | ||
36210 | -#: fortran/resolve.c:3450 | |
36211 | +#: fortran/resolve.c:3452 | |
36212 | #, gcc-internal-format, gfc-internal-format | |
36213 | msgid "Missing SHAPE parameter for call to %s at %L" | |
36214 | msgstr "Falta el parámetro SHAPE para la llamada a %s en %L" | |
36215 | ||
36216 | -#: fortran/resolve.c:3458 | |
36217 | +#: fortran/resolve.c:3460 | |
36218 | #, gcc-internal-format, gfc-internal-format | |
36219 | msgid "SHAPE parameter for call to %s at %L must be a rank 1 INTEGER array" | |
36220 | msgstr "El parámetro SHAPE para la llamada a %s en %L debe ser una matriz INTEGER de rango 1" | |
36221 | ||
36222 | -#: fortran/resolve.c:3525 | |
36223 | +#: fortran/resolve.c:3527 | |
36224 | #, gcc-internal-format, gfc-internal-format | |
36225 | msgid "Subroutine '%s' at %L is INTRINSIC but is not compatible with an intrinsic" | |
36226 | msgstr "La subrutina '%s' en %L es INTRINSIC pero no es compatible con un intrínseco" | |
36227 | ||
36228 | -#: fortran/resolve.c:3569 | |
36229 | +#: fortran/resolve.c:3571 | |
36230 | #, gcc-internal-format, gfc-internal-format | |
36231 | msgid "Unable to resolve the specific subroutine '%s' at %L" | |
36232 | msgstr "No se puede resolver la subrutina específica '%s' en %L" | |
36233 | ||
36234 | -#: fortran/resolve.c:3629 | |
36235 | +#: fortran/resolve.c:3631 | |
36236 | #, gcc-internal-format, gfc-internal-format | |
36237 | msgid "'%s' at %L has a type, which is not consistent with the CALL at %L" | |
36238 | msgstr "'%s' en %L tiene un tipo, el cual no es consistente con CALL en %L" | |
36239 | ||
36240 | -#: fortran/resolve.c:3667 | |
36241 | +#: fortran/resolve.c:3669 | |
36242 | #, gcc-internal-format, gfc-internal-format | |
36243 | msgid "ENTRY '%s' at %L cannot be called recursively, as subroutine '%s' is not RECURSIVE" | |
36244 | msgstr "ENTRY '%s' en %L no se puede llamar recursivamente, porque la subrutina '%s' no es RECURSIVE" | |
36245 | ||
36246 | -#: fortran/resolve.c:3671 | |
36247 | +#: fortran/resolve.c:3673 | |
36248 | #, gcc-internal-format, gfc-internal-format | |
36249 | msgid "SUBROUTINE '%s' at %L cannot be called recursively, as it is not RECURSIVE" | |
36250 | msgstr "SUBROUTINE '%s' en %L no se puede llamar recursivamente, porque no es RECURSIVE" | |
36251 | ||
36252 | -#: fortran/resolve.c:3747 | |
36253 | +#: fortran/resolve.c:3749 | |
36254 | #, gcc-internal-format, gfc-internal-format | |
36255 | msgid "Shapes for operands at %L and %L are not conformable" | |
36256 | msgstr "Las formas para los operandos en %L y %L no son conformables" | |
36257 | ||
36258 | -#: fortran/resolve.c:4245 | |
36259 | +#: fortran/resolve.c:4247 | |
36260 | #, gcc-internal-format, gfc-internal-format | |
36261 | msgid "Array reference at %L is out of bounds (%ld < %ld) in dimension %d" | |
36262 | msgstr "La referencia de matriz en %L está fuera de los límites (%ld < %ld) en la dimensión %d" | |
36263 | ||
36264 | -#: fortran/resolve.c:4250 | |
36265 | +#: fortran/resolve.c:4252 | |
36266 | #, gcc-internal-format, gfc-internal-format | |
36267 | msgid "Array reference at %L is out of bounds (%ld < %ld) in codimension %d" | |
36268 | msgstr "La referencia de matriz en %L está fuera de los límites (%ld < %ld) en la codimensión %d" | |
36269 | ||
36270 | -#: fortran/resolve.c:4260 | |
36271 | +#: fortran/resolve.c:4262 | |
36272 | #, gcc-internal-format, gfc-internal-format | |
36273 | msgid "Array reference at %L is out of bounds (%ld > %ld) in dimension %d" | |
36274 | msgstr "La referencia de matriz en %L está fuera de los límites (%ld > %ld) en la dimensión %d" | |
36275 | ||
36276 | -#: fortran/resolve.c:4265 | |
36277 | +#: fortran/resolve.c:4267 | |
36278 | #, gcc-internal-format, gfc-internal-format | |
36279 | msgid "Array reference at %L is out of bounds (%ld > %ld) in codimension %d" | |
36280 | msgstr "La referencia de matriz en %L está fuera de los límites (%ld > %ld) en la codimensión %d" | |
36281 | ||
36282 | -#: fortran/resolve.c:4285 | |
36283 | +#: fortran/resolve.c:4287 | |
36284 | #, gcc-internal-format, gfc-internal-format | |
36285 | msgid "Illegal stride of zero at %L" | |
36286 | msgstr "Tranco ilegal de cero en %L" | |
36287 | ||
36288 | -#: fortran/resolve.c:4302 | |
36289 | +#: fortran/resolve.c:4304 | |
36290 | #, gcc-internal-format, gfc-internal-format | |
36291 | msgid "Lower array reference at %L is out of bounds (%ld < %ld) in dimension %d" | |
36292 | msgstr "La referencia de matriz inferior en %L está fuera de los límites (%ld < %ld) en la dimensión %d" | |
36293 | ||
36294 | -#: fortran/resolve.c:4310 | |
36295 | +#: fortran/resolve.c:4312 | |
36296 | #, gcc-internal-format, gfc-internal-format | |
36297 | msgid "Lower array reference at %L is out of bounds (%ld > %ld) in dimension %d" | |
36298 | msgstr "La referencia de matriz inferior en %L está fuera de los límites (%ld > %ld) en la dimensión %d" | |
36299 | ||
36300 | -#: fortran/resolve.c:4326 | |
36301 | +#: fortran/resolve.c:4328 | |
36302 | #, gcc-internal-format, gfc-internal-format | |
36303 | msgid "Upper array reference at %L is out of bounds (%ld < %ld) in dimension %d" | |
36304 | msgstr "La referencia de matriz superior en %L está fuera de los límites (%ld < %ld) en la dimensión %d" | |
36305 | ||
36306 | -#: fortran/resolve.c:4335 | |
36307 | +#: fortran/resolve.c:4337 | |
36308 | #, gcc-internal-format, gfc-internal-format | |
36309 | msgid "Upper array reference at %L is out of bounds (%ld > %ld) in dimension %d" | |
36310 | msgstr "La referencia de matriz superior en %L está fuera de los límites (%ld > %ld) en la dimensión %d" | |
36311 | ||
36312 | -#: fortran/resolve.c:4374 | |
36313 | +#: fortran/resolve.c:4376 | |
36314 | #, gcc-internal-format, gfc-internal-format | |
36315 | msgid "Rightmost upper bound of assumed size array section not specified at %L" | |
36316 | msgstr "No se especificó el límite superior a la derecha de la sección de matriz de tamaño asumido en %L" | |
36317 | ||
36318 | -#: fortran/resolve.c:4384 | |
36319 | +#: fortran/resolve.c:4386 | |
36320 | #, gcc-internal-format, gfc-internal-format | |
36321 | msgid "Rank mismatch in array reference at %L (%d/%d)" | |
36322 | msgstr "El rango no coincide en la referencia de matriz en %L (%d/%d)" | |
36323 | ||
36324 | -#: fortran/resolve.c:4392 | |
36325 | +#: fortran/resolve.c:4394 | |
36326 | #, gcc-internal-format, gfc-internal-format | |
36327 | msgid "Coindex rank mismatch in array reference at %L (%d/%d)" | |
36328 | msgstr "El rango de coíndice no coincide en la referencia de matriz en %L (%d/%d)" | |
36329 | ||
36330 | -#: fortran/resolve.c:4408 | |
36331 | +#: fortran/resolve.c:4410 | |
36332 | #, gcc-internal-format, gfc-internal-format | |
36333 | msgid "Coindex of codimension %d must be a scalar at %L" | |
36334 | msgstr "El coíndice en la codimensión %d debe ser un escalar en %L" | |
36335 | ||
36336 | -#: fortran/resolve.c:4436 | |
36337 | +#: fortran/resolve.c:4438 | |
36338 | #, gcc-internal-format, gfc-internal-format | |
36339 | msgid "Array index at %L must be scalar" | |
36340 | msgstr "El índice de matriz en %L debe ser escalar" | |
36341 | ||
36342 | -#: fortran/resolve.c:4442 | |
36343 | +#: fortran/resolve.c:4444 | |
36344 | #, gcc-internal-format, gfc-internal-format | |
36345 | msgid "Array index at %L must be of INTEGER type, found %s" | |
36346 | msgstr "El índice de matriz en %L debe ser de tipo INTEGER, se encontró %s" | |
36347 | ||
36348 | -#: fortran/resolve.c:4448 | |
36349 | +#: fortran/resolve.c:4450 | |
36350 | #, gcc-internal-format, gfc-internal-format | |
36351 | msgid "Extension: REAL array index at %L" | |
36352 | msgstr "Extensión: índice de matriz REAL en %L" | |
36353 | ||
36354 | -#: fortran/resolve.c:4487 | |
36355 | +#: fortran/resolve.c:4489 | |
36356 | #, gcc-internal-format, gfc-internal-format | |
36357 | msgid "Argument dim at %L must be scalar" | |
36358 | msgstr "El argumento dim en %L debe ser escalar" | |
36359 | ||
36360 | -#: fortran/resolve.c:4494 | |
36361 | +#: fortran/resolve.c:4496 | |
36362 | #, gcc-internal-format, gfc-internal-format | |
36363 | msgid "Argument dim at %L must be of INTEGER type" | |
36364 | msgstr "El argumento dim en %L debe ser de tipo entero" | |
36365 | ||
36366 | -#: fortran/resolve.c:4604 | |
36367 | +#: fortran/resolve.c:4606 | |
36368 | #, gcc-internal-format, gfc-internal-format | |
36369 | msgid "Array index at %L is an array of rank %d" | |
36370 | msgstr "El índice de matriz en %L es una matriz de rango %d" | |
36371 | ||
36372 | -#: fortran/resolve.c:4702 | |
36373 | +#: fortran/resolve.c:4704 | |
36374 | #, gcc-internal-format, gfc-internal-format | |
36375 | msgid "Substring start index at %L must be of type INTEGER" | |
36376 | msgstr "El índice de inicio de la subcadena en %L debe ser de tipo INTEGER" | |
36377 | ||
36378 | -#: fortran/resolve.c:4709 | |
36379 | +#: fortran/resolve.c:4711 | |
36380 | #, gcc-internal-format, gfc-internal-format | |
36381 | msgid "Substring start index at %L must be scalar" | |
36382 | msgstr "El índice de inicio de la subcadena en %L debe ser escalar" | |
36383 | ||
36384 | -#: fortran/resolve.c:4718 | |
36385 | +#: fortran/resolve.c:4720 | |
36386 | #, gcc-internal-format, gfc-internal-format | |
36387 | msgid "Substring start index at %L is less than one" | |
36388 | msgstr "El índice de inicio de la subcadena en %L es menor a uno" | |
36389 | ||
36390 | -#: fortran/resolve.c:4731 | |
36391 | +#: fortran/resolve.c:4733 | |
36392 | #, gcc-internal-format, gfc-internal-format | |
36393 | msgid "Substring end index at %L must be of type INTEGER" | |
36394 | msgstr "El índice de final de la subcadena en %L debe ser de tipo INTEGER" | |
36395 | ||
36396 | -#: fortran/resolve.c:4738 | |
36397 | +#: fortran/resolve.c:4740 | |
36398 | #, gcc-internal-format, gfc-internal-format | |
36399 | msgid "Substring end index at %L must be scalar" | |
36400 | msgstr "El índice de final de la subcadena en %L debe ser escalar" | |
36401 | ||
36402 | -#: fortran/resolve.c:4748 | |
36403 | +#: fortran/resolve.c:4750 | |
36404 | #, gcc-internal-format, gfc-internal-format | |
36405 | msgid "Substring end index at %L exceeds the string length" | |
36406 | msgstr "El índice de final de la subcadena en %L excede la longitud de la cadena" | |
36407 | ||
36408 | -#: fortran/resolve.c:4758 | |
36409 | +#: fortran/resolve.c:4760 | |
36410 | #, gcc-internal-format, gfc-internal-format | |
36411 | msgid "Substring end index at %L is too large" | |
36412 | msgstr "El índice de final de la subcadena en %L es demasiado grande" | |
36413 | ||
36414 | -#: fortran/resolve.c:4904 | |
36415 | +#: fortran/resolve.c:4906 | |
36416 | #, gcc-internal-format, gfc-internal-format | |
36417 | msgid "Component to the right of a part reference with nonzero rank must not have the POINTER attribute at %L" | |
36418 | msgstr "El componente a la derecha de una referencia de parte con rango que no es cero no debe tener el atributo POINTER en %L" | |
36419 | ||
36420 | -#: fortran/resolve.c:4911 | |
36421 | +#: fortran/resolve.c:4913 | |
36422 | #, gcc-internal-format, gfc-internal-format | |
36423 | msgid "Component to the right of a part reference with nonzero rank must not have the ALLOCATABLE attribute at %L" | |
36424 | msgstr "El componente a la derecha de una referencia de parte con rango que no es cero no debe tener el atributo ALLOCATABLE en %L" | |
36425 | ||
36426 | -#: fortran/resolve.c:4930 | |
36427 | +#: fortran/resolve.c:4932 | |
36428 | #, gcc-internal-format, gfc-internal-format | |
36429 | msgid "Two or more part references with nonzero rank must not be specified at %L" | |
36430 | msgstr "No se deben especificar dos o más referencias de parte con rango que no es cero en %L" | |
36431 | ||
36432 | -#: fortran/resolve.c:5135 | |
36433 | +#: fortran/resolve.c:5137 | |
36434 | #, gcc-internal-format, gfc-internal-format | |
36435 | msgid "Variable '%s', used in a specification expression, is referenced at %L before the ENTRY statement in which it is a parameter" | |
36436 | msgstr "La variable '%s', usada en una expresión de especificación, se referencía en %L antes de la declaración ENTRY en la cual es un parámetro" | |
36437 | ||
36438 | -#: fortran/resolve.c:5140 | |
36439 | +#: fortran/resolve.c:5142 | |
36440 | #, gcc-internal-format, gfc-internal-format | |
36441 | msgid "Variable '%s' is used at %L before the ENTRY statement in which it is a parameter" | |
36442 | msgstr "La variable '%s' se usa en %L antes de la declaración ENTRY en la cual es un parámetro" | |
36443 | ||
36444 | -#: fortran/resolve.c:5204 | |
36445 | +#: fortran/resolve.c:5206 | |
36446 | #, gcc-internal-format, gfc-internal-format | |
36447 | msgid "Polymorphic subobject of coindexed object at %L" | |
36448 | msgstr "Subobjecto polimórfico de un objeto coindizado en %L" | |
36449 | ||
36450 | -#: fortran/resolve.c:5217 | |
36451 | +#: fortran/resolve.c:5219 | |
36452 | #, gcc-internal-format, gfc-internal-format | |
36453 | msgid "Coindexed object with polymorphic allocatable subcomponent at %L" | |
36454 | msgstr "Objeto coindizado con subcomponente alojable polimórfico en %L" | |
36455 | ||
36456 | -#: fortran/resolve.c:5543 | |
36457 | +#: fortran/resolve.c:5545 | |
36458 | #, gcc-internal-format, gfc-internal-format | |
36459 | msgid "Passed-object at %L must be scalar" | |
36460 | msgstr "El objeto pasado en %L debe ser escalar" | |
36461 | ||
36462 | -#: fortran/resolve.c:5550 | |
36463 | +#: fortran/resolve.c:5552 | |
36464 | #, gcc-internal-format, gfc-internal-format | |
36465 | msgid "Base object for procedure-pointer component call at %L is of ABSTRACT type '%s'" | |
36466 | msgstr "El objeto base para la llamada a componente procedimiento-puntero en %L es de tipo ABSTRACT '%s'" | |
36467 | ||
36468 | -#: fortran/resolve.c:5582 | |
36469 | +#: fortran/resolve.c:5584 | |
36470 | #, gcc-internal-format, gfc-internal-format | |
36471 | msgid "Base object for type-bound procedure call at %L is of ABSTRACT type '%s'" | |
36472 | msgstr "El objeto base para la llamada a procedimiento enlazada a tipo en %L es de tipo ABSTRACT '%s'" | |
36473 | ||
36474 | -#: fortran/resolve.c:5591 | |
36475 | +#: fortran/resolve.c:5593 | |
36476 | #, gcc-internal-format, gfc-internal-format | |
36477 | msgid "Base object for NOPASS type-bound procedure call at %L must be scalar" | |
36478 | msgstr "El objeto base para la llamada a procedimiento enlazada a tipo NOPASS en %L debe ser escalar" | |
36479 | ||
36480 | #. Nothing matching found! | |
36481 | -#: fortran/resolve.c:5775 | |
36482 | +#: fortran/resolve.c:5777 | |
36483 | #, gcc-internal-format, gfc-internal-format | |
36484 | msgid "Found no matching specific binding for the call to the GENERIC '%s' at %L" | |
36485 | msgstr "No se encontró un enlace específico coincidente para la llamada al GENERIC '%s' en %L" | |
36486 | ||
36487 | -#: fortran/resolve.c:5802 | |
36488 | +#: fortran/resolve.c:5804 | |
36489 | #, gcc-internal-format, gfc-internal-format | |
36490 | msgid "'%s' at %L should be a SUBROUTINE" | |
36491 | msgstr "'%s' en %L debe ser una SUBROUTINE" | |
36492 | ||
36493 | -#: fortran/resolve.c:5849 | |
36494 | +#: fortran/resolve.c:5851 | |
36495 | #, gcc-internal-format, gfc-internal-format | |
36496 | msgid "'%s' at %L should be a FUNCTION" | |
36497 | msgstr "'%s' en %L debe ser una FUNCTION" | |
36498 | ||
36499 | -#: fortran/resolve.c:6366 | |
36500 | +#: fortran/resolve.c:6368 | |
36501 | #, gcc-internal-format, gfc-internal-format | |
36502 | msgid "%s at %L must be a scalar" | |
36503 | msgstr "%s en %L debe ser un escalar" | |
36504 | ||
36505 | -#: fortran/resolve.c:6376 | |
36506 | +#: fortran/resolve.c:6378 | |
36507 | #, gcc-internal-format, gfc-internal-format | |
36508 | msgid "Deleted feature: %s at %L must be integer" | |
36509 | msgstr "Característica eliminada: %s en %L debe ser entero" | |
36510 | ||
36511 | -#: fortran/resolve.c:6380 fortran/resolve.c:6387 | |
36512 | +#: fortran/resolve.c:6382 fortran/resolve.c:6389 | |
36513 | #, gcc-internal-format, gfc-internal-format | |
36514 | msgid "%s at %L must be INTEGER" | |
36515 | msgstr "%s en %L debe ser INTEGER" | |
36516 | ||
36517 | -#: fortran/resolve.c:6428 | |
36518 | +#: fortran/resolve.c:6430 | |
36519 | #, gcc-internal-format, gfc-internal-format | |
36520 | msgid "Step expression in DO loop at %L cannot be zero" | |
36521 | msgstr "La expresión de paso en el bucle DO en %L no puede ser cero" | |
36522 | ||
36523 | -#: fortran/resolve.c:6463 | |
36524 | +#: fortran/resolve.c:6465 | |
36525 | #, gcc-internal-format, gfc-internal-format | |
36526 | msgid "DO loop at %L will be executed zero times" | |
36527 | msgstr "El bucle DO en %L se ejecutará cero veces" | |
36528 | ||
36529 | -#: fortran/resolve.c:6524 | |
36530 | +#: fortran/resolve.c:6526 | |
36531 | #, gcc-internal-format, gfc-internal-format | |
36532 | msgid "FORALL index-name at %L must be a scalar INTEGER" | |
36533 | msgstr "El nombre de índice FORALL en %L debe ser un INTEGER escalar" | |
36534 | ||
36535 | -#: fortran/resolve.c:6529 | |
36536 | +#: fortran/resolve.c:6531 | |
36537 | #, gcc-internal-format, gfc-internal-format | |
36538 | msgid "FORALL start expression at %L must be a scalar INTEGER" | |
36539 | msgstr "La expresión de inicio FORALL en %L debe ser un INTEGER escalar" | |
36540 | ||
36541 | -#: fortran/resolve.c:6536 | |
36542 | +#: fortran/resolve.c:6538 | |
36543 | #, gcc-internal-format, gfc-internal-format | |
36544 | msgid "FORALL end expression at %L must be a scalar INTEGER" | |
36545 | msgstr "La expresión de fin FORALL en %L debe ser un INTEGER escalar" | |
36546 | ||
36547 | -#: fortran/resolve.c:6544 | |
36548 | +#: fortran/resolve.c:6546 | |
36549 | #, gcc-internal-format, gfc-internal-format | |
36550 | msgid "FORALL stride expression at %L must be a scalar %s" | |
36551 | msgstr "La expresión de tranco FORALL en %L debe ser un %s escalar" | |
36552 | ||
36553 | -#: fortran/resolve.c:6549 | |
36554 | +#: fortran/resolve.c:6551 | |
36555 | #, gcc-internal-format, gfc-internal-format | |
36556 | msgid "FORALL stride expression at %L cannot be zero" | |
36557 | msgstr "La expresión de tranco FORALL en %L no puede ser cero" | |
36558 | ||
36559 | -#: fortran/resolve.c:6565 | |
36560 | +#: fortran/resolve.c:6567 | |
36561 | #, gcc-internal-format, gfc-internal-format | |
36562 | msgid "FORALL index '%s' may not appear in triplet specification at %L" | |
36563 | msgstr "El índice FORALL '%s' no puede aparecer en la especificación triplet en %L" | |
36564 | ||
36565 | -#: fortran/resolve.c:6661 fortran/resolve.c:6944 | |
36566 | +#: fortran/resolve.c:6663 fortran/resolve.c:6946 | |
36567 | #, gcc-internal-format, gfc-internal-format | |
36568 | msgid "Allocate-object at %L must be ALLOCATABLE or a POINTER" | |
36569 | msgstr "El objeto de alojamiento en %L debe ser ALLOCATABLE o un POINTER" | |
36570 | ||
36571 | -#: fortran/resolve.c:6669 fortran/resolve.c:6910 | |
36572 | +#: fortran/resolve.c:6671 fortran/resolve.c:6912 | |
36573 | #, gcc-internal-format, gfc-internal-format | |
36574 | msgid "Coindexed allocatable object at %L" | |
36575 | msgstr "Objeto alojable coindizado en %L" | |
36576 | ||
36577 | -#: fortran/resolve.c:6774 | |
36578 | +#: fortran/resolve.c:6776 | |
36579 | #, gcc-internal-format, gfc-internal-format | |
36580 | msgid "Source-expr at %L must be scalar or have the same rank as the allocate-object at %L" | |
36581 | msgstr "La expresión fuente en %L debe ser escalar o tener el mismo rango que el objeto de alojamiento en %L" | |
36582 | ||
36583 | -#: fortran/resolve.c:6802 | |
36584 | +#: fortran/resolve.c:6804 | |
36585 | #, gcc-internal-format, gfc-internal-format | |
36586 | msgid "Source-expr at %L and allocate-object at %L must have the same shape" | |
36587 | msgstr "La expresión fuente en %L y el objeto de alojamiento en %L deben tener la misma forma" | |
36588 | ||
36589 | -#: fortran/resolve.c:6955 | |
36590 | +#: fortran/resolve.c:6957 | |
36591 | #, gcc-internal-format, gfc-internal-format | |
36592 | msgid "Type of entity at %L is type incompatible with source-expr at %L" | |
36593 | msgstr "El tipo de entidad en %L es de tipo incompatible con la expresión fuente en %L" | |
36594 | ||
36595 | -#: fortran/resolve.c:6968 | |
36596 | +#: fortran/resolve.c:6970 | |
36597 | #, gcc-internal-format, gfc-internal-format | |
36598 | msgid "The allocate-object at %L and the source-expr at %L shall have the same kind type parameter" | |
36599 | msgstr "El objeto de alojamiento en %L y la expresión fuente en %L deben tener el mismo parámetro de tipo de género" | |
36600 | ||
36601 | -#: fortran/resolve.c:6982 | |
36602 | +#: fortran/resolve.c:6984 | |
36603 | #, gcc-internal-format, gfc-internal-format | |
36604 | msgid "The source-expr at %L shall neither be of type LOCK_TYPE nor have a LOCK_TYPE component if allocate-object at %L is a coarray" | |
36605 | msgstr "La expresión fuente en %L no puede ser de tipo LOCK_TYPE ni tener un componente LOCK_TYPE si el objeto-alojado en %L es una comatriz" | |
36606 | ||
36607 | -#: fortran/resolve.c:6995 | |
36608 | +#: fortran/resolve.c:6997 | |
36609 | #, gcc-internal-format, gfc-internal-format | |
36610 | msgid "Allocating %s of ABSTRACT base type at %L requires a type-spec or source-expr" | |
36611 | msgstr "El alojamiento %s del tipo de base ABSTRACT en %L requiere una especificación de tipo o una expresión source" | |
36612 | ||
36613 | -#: fortran/resolve.c:7006 | |
36614 | +#: fortran/resolve.c:7008 | |
36615 | #, gcc-internal-format, gfc-internal-format | |
36616 | msgid "Allocating %s at %L with type-spec requires the same character-length parameter as in the declaration" | |
36617 | msgstr "Alojar %s en %L con especificación de tipo requiere el mismo parámetro de longitud de carácter que el de la declaración" | |
36618 | ||
36619 | -#: fortran/resolve.c:7091 | |
36620 | +#: fortran/resolve.c:7093 | |
36621 | #, gcc-internal-format, gfc-internal-format | |
36622 | msgid "Array specification required in ALLOCATE statement at %L" | |
36623 | msgstr "Se requiere una especificación de matriz en la declaración ALLOCATE en %L" | |
36624 | ||
36625 | -#: fortran/resolve.c:7105 | |
36626 | +#: fortran/resolve.c:7107 | |
36627 | #, gcc-internal-format, gfc-internal-format | |
36628 | msgid "Coarray specification required in ALLOCATE statement at %L" | |
36629 | msgstr "Se requiere una especificación de comatriz en la declaración ALLOCATE en %L" | |
36630 | ||
36631 | -#: fortran/resolve.c:7132 | |
36632 | +#: fortran/resolve.c:7134 | |
36633 | #, gcc-internal-format, gfc-internal-format | |
36634 | msgid "Bad array specification in ALLOCATE statement at %L" | |
36635 | msgstr "Especificación de matriz errónea en la declaración ALLOCATE en %L" | |
36636 | ||
36637 | -#: fortran/resolve.c:7151 | |
36638 | +#: fortran/resolve.c:7153 | |
36639 | #, gcc-internal-format, gfc-internal-format | |
36640 | msgid "'%s' must not appear in the array specification at %L in the same ALLOCATE statement where it is itself allocated" | |
36641 | msgstr "'%s' no debe aparecer en la especificación de matriz en %L en la misma declaración ALLOCATE donde se aloja a sí misma" | |
36642 | ||
36643 | -#: fortran/resolve.c:7166 | |
36644 | +#: fortran/resolve.c:7168 | |
36645 | #, gcc-internal-format, gfc-internal-format | |
36646 | msgid "Expected '*' in coindex specification in ALLOCATE statement at %L" | |
36647 | msgstr "Se esperaba '*' en la especificación de comatriz en la declaración ALLOCATE en %L" | |
36648 | ||
36649 | -#: fortran/resolve.c:7177 | |
36650 | +#: fortran/resolve.c:7179 | |
36651 | #, gcc-internal-format, gfc-internal-format | |
36652 | msgid "Bad coarray specification in ALLOCATE statement at %L" | |
36653 | msgstr "Especificación de comatriz errónea en la declaración ALLOCATE en %L" | |
36654 | ||
36655 | -#: fortran/resolve.c:7207 | |
36656 | +#: fortran/resolve.c:7209 | |
36657 | #, gcc-internal-format, gfc-internal-format | |
36658 | msgid "Stat-variable at %L must be a scalar INTEGER variable" | |
36659 | msgstr "La variable stat en %L debe ser una variable INTEGER escalar" | |
36660 | ||
36661 | -#: fortran/resolve.c:7230 | |
36662 | +#: fortran/resolve.c:7232 | |
36663 | #, gcc-internal-format, gfc-internal-format | |
36664 | msgid "Stat-variable at %L shall not be %sd within the same %s statement" | |
36665 | msgstr "La variable stat en %L no no debe ser %sd dentro de la misma declaración %s" | |
36666 | ||
36667 | -#: fortran/resolve.c:7241 | |
36668 | +#: fortran/resolve.c:7243 | |
36669 | #, gcc-internal-format, gfc-internal-format | |
36670 | msgid "ERRMSG at %L is useless without a STAT tag" | |
36671 | msgstr "ERRMSG en %L es inútil sin una etiqueta STAT" | |
36672 | ||
36673 | -#: fortran/resolve.c:7251 | |
36674 | +#: fortran/resolve.c:7253 | |
36675 | #, gcc-internal-format, gfc-internal-format | |
36676 | msgid "Errmsg-variable at %L must be a scalar CHARACTER variable" | |
36677 | msgstr "La variable errmsg en %L debe ser una variable CHARACTER escalar" | |
36678 | ||
36679 | -#: fortran/resolve.c:7274 | |
36680 | +#: fortran/resolve.c:7276 | |
36681 | #, gcc-internal-format, gfc-internal-format | |
36682 | msgid "Errmsg-variable at %L shall not be %sd within the same %s statement" | |
36683 | msgstr "La variable errmsg en %L no debe ser %sd dentro de la misma declaración %s" | |
36684 | ||
36685 | -#: fortran/resolve.c:7304 | |
36686 | +#: fortran/resolve.c:7306 | |
36687 | #, gcc-internal-format, gfc-internal-format | |
36688 | msgid "Allocate-object at %L also appears at %L" | |
36689 | msgstr "El objeto de alojamiento en %L también aparece en %L" | |
36690 | ||
36691 | -#: fortran/resolve.c:7310 fortran/resolve.c:7316 | |
36692 | +#: fortran/resolve.c:7312 fortran/resolve.c:7318 | |
36693 | #, gcc-internal-format, gfc-internal-format | |
36694 | msgid "Allocate-object at %L is subobject of object at %L" | |
36695 | msgstr "El objeto de alojamiento en %L es un subobjeto del objeto en %L" | |
36696 | @@ -41723,175 +41718,175 @@ | |
36697 | #. element in the list. Either way, we must | |
36698 | #. issue an error and get the next case from P. | |
36699 | #. FIXME: Sort P and Q by line number. | |
36700 | -#: fortran/resolve.c:7511 | |
36701 | +#: fortran/resolve.c:7513 | |
36702 | #, gcc-internal-format, gfc-internal-format | |
36703 | msgid "CASE label at %L overlaps with CASE label at %L" | |
36704 | msgstr "La etiqueta CASE en %L se encima con la etiqueta CASE en %L" | |
36705 | ||
36706 | -#: fortran/resolve.c:7562 | |
36707 | +#: fortran/resolve.c:7564 | |
36708 | #, gcc-internal-format, gfc-internal-format | |
36709 | msgid "Expression in CASE statement at %L must be of type %s" | |
36710 | msgstr "La expresión en la declaración CASE en %L debe ser de tipo %s" | |
36711 | ||
36712 | -#: fortran/resolve.c:7573 | |
36713 | +#: fortran/resolve.c:7575 | |
36714 | #, gcc-internal-format, gfc-internal-format | |
36715 | msgid "Expression in CASE statement at %L must be of kind %d" | |
36716 | msgstr "La expresión en la declaración CASE en %L debe ser de género %d" | |
36717 | ||
36718 | -#: fortran/resolve.c:7586 | |
36719 | +#: fortran/resolve.c:7588 | |
36720 | #, gcc-internal-format, gfc-internal-format | |
36721 | msgid "Expression in CASE statement at %L must be scalar" | |
36722 | msgstr "La expresión en la declaración CASE en %L debe ser escalar" | |
36723 | ||
36724 | -#: fortran/resolve.c:7632 | |
36725 | +#: fortran/resolve.c:7634 | |
36726 | #, gcc-internal-format, gfc-internal-format | |
36727 | msgid "Selection expression in computed GOTO statement at %L must be a scalar integer expression" | |
36728 | msgstr "La expresión de selección en una declaración GOTO computada en %L debe ser una expresión entera escalar" | |
36729 | ||
36730 | -#: fortran/resolve.c:7650 | |
36731 | +#: fortran/resolve.c:7652 | |
36732 | #, gcc-internal-format, gfc-internal-format | |
36733 | msgid "Argument of SELECT statement at %L cannot be %s" | |
36734 | msgstr "El argumento de la declaración SELECT en %L no puede ser %s" | |
36735 | ||
36736 | -#: fortran/resolve.c:7668 fortran/resolve.c:7676 | |
36737 | +#: fortran/resolve.c:7670 fortran/resolve.c:7678 | |
36738 | #, gcc-internal-format, gfc-internal-format | |
36739 | msgid "Expression in CASE statement at %L is not in the range of %s" | |
36740 | msgstr "La expresión en la declaración CASE en %L no está en el rango de %s" | |
36741 | ||
36742 | -#: fortran/resolve.c:7738 fortran/resolve.c:8048 | |
36743 | +#: fortran/resolve.c:7740 fortran/resolve.c:8050 | |
36744 | #, gcc-internal-format, gfc-internal-format | |
36745 | msgid "The DEFAULT CASE at %L cannot be followed by a second DEFAULT CASE at %L" | |
36746 | msgstr "El DEFAULT CASE en %L no puede tener después un segundo DEFAULT CASE en %L" | |
36747 | ||
36748 | -#: fortran/resolve.c:7764 | |
36749 | +#: fortran/resolve.c:7766 | |
36750 | #, gcc-internal-format, gfc-internal-format | |
36751 | msgid "Logical range in CASE statement at %L is not allowed" | |
36752 | msgstr "No se permite un rango lógico en una declaración CASE en %L" | |
36753 | ||
36754 | -#: fortran/resolve.c:7776 | |
36755 | +#: fortran/resolve.c:7778 | |
36756 | #, gcc-internal-format, gfc-internal-format | |
36757 | msgid "Constant logical value in CASE statement is repeated at %L" | |
36758 | msgstr "Se repite un valor lógico constante en una declaración CASE en %L" | |
36759 | ||
36760 | -#: fortran/resolve.c:7790 | |
36761 | +#: fortran/resolve.c:7792 | |
36762 | #, gcc-internal-format, gfc-internal-format | |
36763 | msgid "Range specification at %L can never be matched" | |
36764 | msgstr "La especificación de rango en %L nunca puede coincidir" | |
36765 | ||
36766 | -#: fortran/resolve.c:7893 | |
36767 | +#: fortran/resolve.c:7895 | |
36768 | #, gcc-internal-format, gfc-internal-format | |
36769 | msgid "Logical SELECT CASE block at %L has more that two cases" | |
36770 | msgstr "El bloque SELECT CASE lógico en %L tiene más de dos cases" | |
36771 | ||
36772 | -#: fortran/resolve.c:7958 | |
36773 | +#: fortran/resolve.c:7960 | |
36774 | #, gcc-internal-format, gfc-internal-format | |
36775 | msgid "Associate-name '%s' at %L is used as array" | |
36776 | msgstr "Se usa el nombre asociado '%s' en %L como una matriz" | |
36777 | ||
36778 | -#: fortran/resolve.c:8000 | |
36779 | +#: fortran/resolve.c:8002 | |
36780 | #, gcc-internal-format, gfc-internal-format | |
36781 | msgid "Selector shall be polymorphic in SELECT TYPE statement at %L" | |
36782 | msgstr "El selector debe ser polimórfico en la declaración SELECT TYPE en %L" | |
36783 | ||
36784 | -#: fortran/resolve.c:8026 | |
36785 | +#: fortran/resolve.c:8028 | |
36786 | #, gcc-internal-format, gfc-internal-format | |
36787 | msgid "Derived type '%s' at %L must be extensible" | |
36788 | msgstr "El tipo derivado '%s' en %L debe ser extensible" | |
36789 | ||
36790 | -#: fortran/resolve.c:8036 | |
36791 | +#: fortran/resolve.c:8038 | |
36792 | #, gcc-internal-format, gfc-internal-format | |
36793 | msgid "Derived type '%s' at %L must be an extension of '%s'" | |
36794 | msgstr "El tipo derivado '%s' en %L debe ser una extensión de '%s'" | |
36795 | ||
36796 | -#: fortran/resolve.c:8208 | |
36797 | +#: fortran/resolve.c:8210 | |
36798 | #, gcc-internal-format, gfc-internal-format | |
36799 | msgid "Double CLASS IS block in SELECT TYPE statement at %L" | |
36800 | msgstr "Bloque CLASS IS doble en la declaración SELECT TYPE en %L" | |
36801 | ||
36802 | -#: fortran/resolve.c:8299 | |
36803 | +#: fortran/resolve.c:8301 | |
36804 | #, gcc-internal-format, gfc-internal-format | |
36805 | msgid "NULL intrinsic at %L in data transfer statement requires MOLD=" | |
36806 | msgstr "El NULL intrínseco en %L en la declaración de transferencia de datos requiere MOLD=" | |
36807 | ||
36808 | #. FIXME: Test for defined input/output. | |
36809 | -#: fortran/resolve.c:8327 | |
36810 | +#: fortran/resolve.c:8329 | |
36811 | #, gcc-internal-format, gfc-internal-format | |
36812 | msgid "Data transfer element at %L cannot be polymorphic unless it is processed by a defined input/output procedure" | |
36813 | msgstr "El elemento de transferencia de datos en %L no puede ser polimórfico a menos que se procese con un procedimiento de entrada/salida definido" | |
36814 | ||
36815 | -#: fortran/resolve.c:8339 | |
36816 | +#: fortran/resolve.c:8341 | |
36817 | #, gcc-internal-format, gfc-internal-format | |
36818 | msgid "Data transfer element at %L cannot have POINTER components unless it is processed by a defined input/output procedure" | |
36819 | msgstr "El elemento de transferencia de datos en %L no puede tener componentes POINTER a menos que se procese con un procedimiento de entrada/salida definido" | |
36820 | ||
36821 | -#: fortran/resolve.c:8348 | |
36822 | +#: fortran/resolve.c:8350 | |
36823 | #, gcc-internal-format, gfc-internal-format | |
36824 | msgid "Data transfer element at %L cannot have procedure pointer components" | |
36825 | msgstr "El elemento de transferencia de datos en %L no puede tener componentes de puntero a procedimiento" | |
36826 | ||
36827 | -#: fortran/resolve.c:8355 | |
36828 | +#: fortran/resolve.c:8357 | |
36829 | #, gcc-internal-format, gfc-internal-format | |
36830 | msgid "Data transfer element at %L cannot have ALLOCATABLE components unless it is processed by a defined input/output procedure" | |
36831 | msgstr "El elemento de transferencia de datos en %L no puede tener componentes ALLOCATABLE a menos que se procese con un procedimiento de entrada/salida definido" | |
36832 | ||
36833 | -#: fortran/resolve.c:8363 | |
36834 | +#: fortran/resolve.c:8365 | |
36835 | #, gcc-internal-format, gfc-internal-format | |
36836 | msgid "Data transfer element at %L cannot have PRIVATE components" | |
36837 | msgstr "El elemento de transferencia de datos en %L no puede tener componentes PRIVATE" | |
36838 | ||
36839 | -#: fortran/resolve.c:8372 | |
36840 | +#: fortran/resolve.c:8374 | |
36841 | #, gcc-internal-format, gfc-internal-format | |
36842 | msgid "Data transfer element at %L cannot be a full reference to an assumed-size array" | |
36843 | msgstr "El elemento de transferencia de datos en %L no puede ser una referencia completa a una matriz de tamaño asumido" | |
36844 | ||
36845 | -#: fortran/resolve.c:8422 | |
36846 | +#: fortran/resolve.c:8424 | |
36847 | #, gcc-internal-format, gfc-internal-format | |
36848 | msgid "Lock variable at %L must be a scalar of type LOCK_TYPE" | |
36849 | msgstr "La variable lock en %L debe ser un escalar de tipo LOCK_TYPE" | |
36850 | ||
36851 | -#: fortran/resolve.c:8429 fortran/resolve.c:8493 | |
36852 | +#: fortran/resolve.c:8431 fortran/resolve.c:8495 | |
36853 | #, gcc-internal-format, gfc-internal-format | |
36854 | msgid "STAT= argument at %L must be a scalar INTEGER variable" | |
36855 | msgstr "El argumento STAT= en %L debe ser una variable INTEGER escalar" | |
36856 | ||
36857 | -#: fortran/resolve.c:8441 fortran/resolve.c:8500 | |
36858 | +#: fortran/resolve.c:8443 fortran/resolve.c:8502 | |
36859 | #, gcc-internal-format, gfc-internal-format | |
36860 | msgid "ERRMSG= argument at %L must be a scalar CHARACTER variable" | |
36861 | msgstr "El argumento ERRMSG= en %L debe ser una variable CHARACTER escalar" | |
36862 | ||
36863 | -#: fortran/resolve.c:8453 | |
36864 | +#: fortran/resolve.c:8455 | |
36865 | #, gcc-internal-format, gfc-internal-format | |
36866 | msgid "ACQUIRED_LOCK= argument at %L must be a scalar LOGICAL variable" | |
36867 | msgstr "El argumento ACQUIRED_LOCK= en %L debe ser una variable LOGICAL escalar" | |
36868 | ||
36869 | -#: fortran/resolve.c:8470 | |
36870 | +#: fortran/resolve.c:8472 | |
36871 | #, gcc-internal-format, gfc-internal-format | |
36872 | msgid "Imageset argument at %L must be a scalar or rank-1 INTEGER expression" | |
36873 | msgstr "El argumento de conjunto de imagen %L debe ser un escalar o una expresión INTEGER de rango 1" | |
36874 | ||
36875 | -#: fortran/resolve.c:8474 fortran/resolve.c:8484 | |
36876 | +#: fortran/resolve.c:8476 fortran/resolve.c:8486 | |
36877 | #, gcc-internal-format, gfc-internal-format | |
36878 | msgid "Imageset argument at %L must between 1 and num_images()" | |
36879 | msgstr "El argumento de conjunto de imagen en %L debe estar entre 1 y num_images()" | |
36880 | ||
36881 | -#: fortran/resolve.c:8527 | |
36882 | +#: fortran/resolve.c:8529 | |
36883 | #, gcc-internal-format, gfc-internal-format | |
36884 | msgid "Statement at %L is not a valid branch target statement for the branch statement at %L" | |
36885 | msgstr "La declaración en %L no es una declaración de objetivo de ramificación válida para la declaración de ramificación en %L" | |
36886 | ||
36887 | -#: fortran/resolve.c:8536 | |
36888 | +#: fortran/resolve.c:8538 | |
36889 | #, gcc-internal-format, gfc-internal-format | |
36890 | msgid "Branch at %L may result in an infinite loop" | |
36891 | msgstr "La ramificación en %L puede resultar en un bucle infinito" | |
36892 | ||
36893 | #. Note: A label at END CRITICAL does not leave the CRITICAL | |
36894 | #. construct as END CRITICAL is still part of it. | |
36895 | -#: fortran/resolve.c:8553 fortran/resolve.c:8576 | |
36896 | +#: fortran/resolve.c:8555 fortran/resolve.c:8578 | |
36897 | #, gcc-internal-format, gfc-internal-format | |
36898 | msgid "GOTO statement at %L leaves CRITICAL construct for label at %L" | |
36899 | msgstr "La declaración GOTO en %L deja la construcción CRITICAL por la etiqueta en %L" | |
36900 | ||
36901 | -#: fortran/resolve.c:8557 fortran/resolve.c:8582 | |
36902 | +#: fortran/resolve.c:8559 fortran/resolve.c:8584 | |
36903 | #, gcc-internal-format, gfc-internal-format | |
36904 | msgid "GOTO statement at %L leaves DO CONCURRENT construct for label at %L" | |
36905 | msgstr "La declaración GOTO en %L deja la construcción DO CONCURRENT por la etiqueta en %L" | |
36906 | @@ -41899,950 +41894,950 @@ | |
36907 | #. The label is not in an enclosing block, so illegal. This was | |
36908 | #. allowed in Fortran 66, so we allow it as extension. No | |
36909 | #. further checks are necessary in this case. | |
36910 | -#: fortran/resolve.c:8597 | |
36911 | +#: fortran/resolve.c:8599 | |
36912 | #, gcc-internal-format, gfc-internal-format | |
36913 | msgid "Label at %L is not in the same block as the GOTO statement at %L" | |
36914 | msgstr "La etiqueta en %L no está en el mismo bloque que la declaración GOTO en %L" | |
36915 | ||
36916 | -#: fortran/resolve.c:8669 | |
36917 | +#: fortran/resolve.c:8671 | |
36918 | #, gcc-internal-format, gfc-internal-format | |
36919 | msgid "WHERE mask at %L has inconsistent shape" | |
36920 | msgstr "La máscara WHERE en %L tiene forma inconsistente" | |
36921 | ||
36922 | -#: fortran/resolve.c:8685 | |
36923 | +#: fortran/resolve.c:8687 | |
36924 | #, gcc-internal-format, gfc-internal-format | |
36925 | msgid "WHERE assignment target at %L has inconsistent shape" | |
36926 | msgstr "El objetivo de asignación WHERE en %L tiene forma inconsistente" | |
36927 | ||
36928 | -#: fortran/resolve.c:8693 fortran/resolve.c:8780 | |
36929 | +#: fortran/resolve.c:8695 fortran/resolve.c:8782 | |
36930 | #, gcc-internal-format, gfc-internal-format | |
36931 | msgid "Non-ELEMENTAL user-defined assignment in WHERE at %L" | |
36932 | msgstr "Asignación definida por el usuario de un no-ELEMENTAL en WHERE en %L" | |
36933 | ||
36934 | -#: fortran/resolve.c:8703 fortran/resolve.c:8790 | |
36935 | +#: fortran/resolve.c:8705 fortran/resolve.c:8792 | |
36936 | #, gcc-internal-format, gfc-internal-format | |
36937 | msgid "Unsupported statement inside WHERE at %L" | |
36938 | msgstr "Declaración sin soporte dentro de WHERE en %L" | |
36939 | ||
36940 | -#: fortran/resolve.c:8734 | |
36941 | +#: fortran/resolve.c:8736 | |
36942 | #, gcc-internal-format, gfc-internal-format | |
36943 | msgid "Assignment to a FORALL index variable at %L" | |
36944 | msgstr "Asignación a una variable de índice FORALL en %L" | |
36945 | ||
36946 | -#: fortran/resolve.c:8743 | |
36947 | +#: fortran/resolve.c:8745 | |
36948 | #, gcc-internal-format, gfc-internal-format | |
36949 | msgid "The FORALL with index '%s' is not used on the left side of the assignment at %L and so might cause multiple assignment to this object" | |
36950 | msgstr "No se usa el FORALL con índice '%s' en el lado izquierdo de la asignación en %L y podría causar múltiples asignaciones a este objeto" | |
36951 | ||
36952 | -#: fortran/resolve.c:8912 | |
36953 | +#: fortran/resolve.c:8914 | |
36954 | #, gcc-internal-format, gfc-internal-format | |
36955 | msgid "An outer FORALL construct already has an index with this name %L" | |
36956 | msgstr "Una construcción FORALL externa ya tiene un índice con este nombre %L" | |
36957 | ||
36958 | -#: fortran/resolve.c:8992 | |
36959 | +#: fortran/resolve.c:8994 | |
36960 | #, gcc-internal-format, gfc-internal-format | |
36961 | msgid "WHERE/ELSEWHERE clause at %L requires a LOGICAL array" | |
36962 | msgstr "la cláusula WHERE/ELSEWHERE en %L requiere una matriz LOGICAL" | |
36963 | ||
36964 | -#: fortran/resolve.c:9146 | |
36965 | +#: fortran/resolve.c:9148 | |
36966 | #, gcc-internal-format, gfc-internal-format | |
36967 | msgid "CHARACTER expression will be truncated in assignment (%d/%d) at %L" | |
36968 | msgstr "Se truncará la expresión CHARACTER en la asignación (%d/%d) en %L" | |
36969 | ||
36970 | -#: fortran/resolve.c:9178 | |
36971 | +#: fortran/resolve.c:9180 | |
36972 | #, gcc-internal-format, gfc-internal-format | |
36973 | msgid "Coindexed expression at %L is assigned to a derived type variable with a POINTER component in a PURE procedure" | |
36974 | msgstr "La expresión con coíndice en %L se asigna a una variable de tipo derivado con un componente POINTER en un procedimiento PURE" | |
36975 | ||
36976 | -#: fortran/resolve.c:9183 | |
36977 | +#: fortran/resolve.c:9185 | |
36978 | #, gcc-internal-format, gfc-internal-format | |
36979 | msgid "The impure variable at %L is assigned to a derived type variable with a POINTER component in a PURE procedure (12.6)" | |
36980 | msgstr "La variable impura en %L se asigna a una variable de tipo derivado con un componente POINTER en un procedimiento PURE (12.6)" | |
36981 | ||
36982 | -#: fortran/resolve.c:9193 | |
36983 | +#: fortran/resolve.c:9195 | |
36984 | #, gcc-internal-format, gfc-internal-format | |
36985 | msgid "Assignment to coindexed variable at %L in a PURE procedure" | |
36986 | msgstr "Asignación a una variable coindizada en %L en un procedimiento PURE" | |
36987 | ||
36988 | -#: fortran/resolve.c:9224 | |
36989 | +#: fortran/resolve.c:9226 | |
36990 | #, gcc-internal-format, gfc-internal-format | |
36991 | msgid "Variable must not be polymorphic in intrinsic assignment at %L - check that there is a matching specific subroutine for '=' operator" | |
36992 | msgstr "La variable no debe ser polimórfica en la asignación intrínseca en %L - revise que hay una subrutina específica coincidente para el operador '='" | |
36993 | ||
36994 | -#: fortran/resolve.c:9233 | |
36995 | +#: fortran/resolve.c:9235 | |
36996 | #, gcc-internal-format, gfc-internal-format | |
36997 | msgid "Coindexed variable must not be have an allocatable ultimate component in assignment at %L" | |
36998 | msgstr "La variable coindizada no debe tener un componente último alojable en la asignación en %L" | |
36999 | ||
37000 | -#: fortran/resolve.c:9368 | |
37001 | +#: fortran/resolve.c:9370 | |
37002 | #, gcc-internal-format, gfc-internal-format | |
37003 | msgid "ASSIGNED GOTO statement at %L requires an INTEGER variable" | |
37004 | msgstr "La declaración ASSIGNED GOTO en %L requiere una variable INTEGER" | |
37005 | ||
37006 | -#: fortran/resolve.c:9371 | |
37007 | +#: fortran/resolve.c:9373 | |
37008 | #, gcc-internal-format, gfc-internal-format | |
37009 | msgid "Variable '%s' has not been assigned a target label at %L" | |
37010 | msgstr "La variable '%s' no se ha asignado a una etiqueta objetivo en %L" | |
37011 | ||
37012 | -#: fortran/resolve.c:9382 | |
37013 | +#: fortran/resolve.c:9384 | |
37014 | #, gcc-internal-format, gfc-internal-format | |
37015 | msgid "Alternate RETURN statement at %L requires a SCALAR-INTEGER return specifier" | |
37016 | msgstr "La declaración RETURN alternativa en %L requiere de un especificador de devolución SCALAR-INTEGER" | |
37017 | ||
37018 | -#: fortran/resolve.c:9417 | |
37019 | +#: fortran/resolve.c:9419 | |
37020 | #, gcc-internal-format, gfc-internal-format | |
37021 | msgid "ASSIGN statement at %L requires a scalar default INTEGER variable" | |
37022 | msgstr "La declaración de ASSIGN en %L requiere una variable INTEGER escalar por defecto" | |
37023 | ||
37024 | -#: fortran/resolve.c:9450 | |
37025 | +#: fortran/resolve.c:9452 | |
37026 | #, gcc-internal-format, gfc-internal-format | |
37027 | msgid "Arithmetic IF statement at %L requires a numeric expression" | |
37028 | msgstr "La declaración IF aritmética en %L requiere una expresión numérica" | |
37029 | ||
37030 | -#: fortran/resolve.c:9509 | |
37031 | +#: fortran/resolve.c:9511 | |
37032 | #, gcc-internal-format, gfc-internal-format | |
37033 | msgid "Exit condition of DO WHILE loop at %L must be a scalar LOGICAL expression" | |
37034 | msgstr "La condición de salida del bucle DO WHILE en %L debe ser una expresión LOGICAL escalar" | |
37035 | ||
37036 | -#: fortran/resolve.c:9593 | |
37037 | +#: fortran/resolve.c:9595 | |
37038 | #, gcc-internal-format, gfc-internal-format | |
37039 | msgid "FORALL mask clause at %L requires a scalar LOGICAL expression" | |
37040 | msgstr "La cláusula de máscara FORALL en %L requiere una expresión LOGICAL escalar" | |
37041 | ||
37042 | -#: fortran/resolve.c:9675 fortran/resolve.c:9728 | |
37043 | +#: fortran/resolve.c:9677 fortran/resolve.c:9730 | |
37044 | #, gcc-internal-format, gfc-internal-format | |
37045 | msgid "Binding label '%s' for common block '%s' at %L collides with the global entity '%s' at %L" | |
37046 | msgstr "La etiqueta enlazante '%s' para el bloque común '%s' en %L colisiona con la entidad global '%s' en %L" | |
37047 | ||
37048 | #. Common block names match but binding labels do not. | |
37049 | -#: fortran/resolve.c:9693 | |
37050 | +#: fortran/resolve.c:9695 | |
37051 | #, gcc-internal-format, gfc-internal-format | |
37052 | msgid "Binding label '%s' for common block '%s' at %L does not match the binding label '%s' for common block '%s' at %L" | |
37053 | msgstr "La etiqueta enlazante '%s' para el bloque común '%s' en %L no coincide con la etiqueta enlazante '%s' para el bloque común '%s' en %L" | |
37054 | ||
37055 | -#: fortran/resolve.c:9740 | |
37056 | +#: fortran/resolve.c:9742 | |
37057 | #, gcc-internal-format, gfc-internal-format | |
37058 | msgid "Binding label '%s' for common block '%s' at %L collides with global entity '%s' at %L" | |
37059 | msgstr "La etiqueta enlazante '%s' para el bloque común '%s' en %L colisiona con la entidad global '%s' en %L" | |
37060 | ||
37061 | #. Make sure global procedures don't collide with anything. | |
37062 | -#: fortran/resolve.c:9792 | |
37063 | +#: fortran/resolve.c:9794 | |
37064 | #, gcc-internal-format, gfc-internal-format | |
37065 | msgid "Binding label '%s' at %L collides with the global entity '%s' at %L" | |
37066 | msgstr "La etiqueta enlazante '%s' en %L colisiona con la entidad global '%s' en %L" | |
37067 | ||
37068 | #. Make sure procedures in interface bodies don't collide. | |
37069 | -#: fortran/resolve.c:9805 | |
37070 | +#: fortran/resolve.c:9807 | |
37071 | #, gcc-internal-format, gfc-internal-format | |
37072 | msgid "Binding label '%s' in interface body at %L collides with the global entity '%s' at %L" | |
37073 | msgstr "La etiqueta enlazante '%s' en el cuerpo de interfaz en %L colisiona con la entidad global '%s' en %L" | |
37074 | ||
37075 | -#: fortran/resolve.c:9818 | |
37076 | +#: fortran/resolve.c:9820 | |
37077 | #, gcc-internal-format, gfc-internal-format | |
37078 | msgid "Binding label '%s' at %L collides with global entity '%s' at %L" | |
37079 | msgstr "La etiqueta enlazante '%s' en %L colisiona con la entidad global '%s' en %L" | |
37080 | ||
37081 | -#: fortran/resolve.c:9897 | |
37082 | +#: fortran/resolve.c:9899 | |
37083 | #, gcc-internal-format, gfc-internal-format | |
37084 | msgid "CHARACTER variable at %L has negative length %d, the length has been set to zero" | |
37085 | msgstr "La variable CHARACTER en %L tiene longitud negativa %d, la longitud se estableció a cero" | |
37086 | ||
37087 | -#: fortran/resolve.c:9910 | |
37088 | +#: fortran/resolve.c:9912 | |
37089 | #, gcc-internal-format, gfc-internal-format | |
37090 | msgid "String length at %L is too large" | |
37091 | msgstr "La longitud de la cadena en %L es demasiado grande" | |
37092 | ||
37093 | -#: fortran/resolve.c:10247 | |
37094 | +#: fortran/resolve.c:10250 | |
37095 | #, gcc-internal-format, gfc-internal-format | |
37096 | msgid "Allocatable array '%s' at %L must have a deferred shape" | |
37097 | msgstr "La matriz allocatable '%s' en %L debe tener una forma diferida" | |
37098 | ||
37099 | -#: fortran/resolve.c:10251 | |
37100 | +#: fortran/resolve.c:10254 | |
37101 | #, gcc-internal-format, gfc-internal-format | |
37102 | msgid "Scalar object '%s' at %L may not be ALLOCATABLE" | |
37103 | msgstr "El objeto escalar '%s' en %L no puede ser ALLOCATABLE" | |
37104 | ||
37105 | -#: fortran/resolve.c:10259 | |
37106 | +#: fortran/resolve.c:10262 | |
37107 | #, gcc-internal-format, gfc-internal-format | |
37108 | msgid "Array pointer '%s' at %L must have a deferred shape" | |
37109 | msgstr "La matriz de puntero '%s' en %L debe tener una forma diferida" | |
37110 | ||
37111 | -#: fortran/resolve.c:10269 | |
37112 | +#: fortran/resolve.c:10272 | |
37113 | #, gcc-internal-format, gfc-internal-format | |
37114 | msgid "Array '%s' at %L cannot have a deferred shape" | |
37115 | msgstr "La matriz '%s' en %L no puede tener una forma diferida" | |
37116 | ||
37117 | -#: fortran/resolve.c:10282 | |
37118 | +#: fortran/resolve.c:10285 | |
37119 | #, gcc-internal-format, gfc-internal-format | |
37120 | msgid "Type '%s' of CLASS variable '%s' at %L is not extensible" | |
37121 | msgstr "El tipo '%s' de la variable CLASS '%s' en %L no es extensible" | |
37122 | ||
37123 | -#: fortran/resolve.c:10294 | |
37124 | +#: fortran/resolve.c:10297 | |
37125 | #, gcc-internal-format, gfc-internal-format | |
37126 | msgid "CLASS variable '%s' at %L must be dummy, allocatable or pointer" | |
37127 | msgstr "La variable CLASS '%s' en %L debe ser dummy, allocatable o pointer" | |
37128 | ||
37129 | -#: fortran/resolve.c:10325 | |
37130 | +#: fortran/resolve.c:10328 | |
37131 | #, gcc-internal-format, gfc-internal-format | |
37132 | msgid "The type '%s' cannot be host associated at %L because it is blocked by an incompatible object of the same name declared at %L" | |
37133 | msgstr "El tipo '%s' no se puede asociar al anfitrión en %L porque está bloqueado por un objeto incompatible del mismo nombre declarado en %L" | |
37134 | ||
37135 | -#: fortran/resolve.c:10347 | |
37136 | +#: fortran/resolve.c:10350 | |
37137 | #, gcc-internal-format, gfc-internal-format | |
37138 | msgid "Fortran 2008: Implied SAVE for module variable '%s' at %L, needed due to the default initialization" | |
37139 | msgstr "Fortran 2008: SAVE implícito para la variable de módulo '%s' en %L, se necesita por la inicialización por defecto" | |
37140 | ||
37141 | #. The shape of a main program or module array needs to be | |
37142 | #. constant. | |
37143 | -#: fortran/resolve.c:10394 | |
37144 | +#: fortran/resolve.c:10397 | |
37145 | #, gcc-internal-format, gfc-internal-format | |
37146 | msgid "The module or main program array '%s' at %L must have constant shape" | |
37147 | msgstr "El módulo o la matriz del programa principal '%s' en %L deben tener una forma constante" | |
37148 | ||
37149 | -#: fortran/resolve.c:10403 | |
37150 | +#: fortran/resolve.c:10406 | |
37151 | #, gcc-internal-format, gfc-internal-format | |
37152 | msgid "Entity '%s' at %L has a deferred type parameter and requires either the pointer or allocatable attribute" | |
37153 | msgstr "La entidad '%s' en %L tiene un parámetro de tipo diferido y requiere el atributo pointer o allocatable" | |
37154 | ||
37155 | -#: fortran/resolve.c:10417 | |
37156 | +#: fortran/resolve.c:10420 | |
37157 | #, gcc-internal-format, gfc-internal-format | |
37158 | msgid "Entity with assumed character length at %L must be a dummy argument or a PARAMETER" | |
37159 | msgstr "La entidad con longitud de carácter asumida en %L debe ser un argumento de prueba o un PARAMETER" | |
37160 | ||
37161 | -#: fortran/resolve.c:10436 | |
37162 | +#: fortran/resolve.c:10439 | |
37163 | #, gcc-internal-format, gfc-internal-format | |
37164 | msgid "'%s' at %L must have constant character length in this context" | |
37165 | msgstr "'%s' en %L debe tener longitud de cáracter constante en este contexto" | |
37166 | ||
37167 | -#: fortran/resolve.c:10442 | |
37168 | +#: fortran/resolve.c:10445 | |
37169 | #, gcc-internal-format, gfc-internal-format | |
37170 | msgid "COMMON variable '%s' at %L must have constant character length" | |
37171 | msgstr "La variable COMMON '%s' en %L debe tener longitud de cáracter constante en este contexto" | |
37172 | ||
37173 | -#: fortran/resolve.c:10487 | |
37174 | +#: fortran/resolve.c:10490 | |
37175 | #, gcc-internal-format, gfc-internal-format | |
37176 | msgid "Allocatable '%s' at %L cannot have an initializer" | |
37177 | msgstr "El allocatable '%s' en %L no puede tener un inicializador" | |
37178 | ||
37179 | -#: fortran/resolve.c:10490 | |
37180 | +#: fortran/resolve.c:10493 | |
37181 | #, gcc-internal-format, gfc-internal-format | |
37182 | msgid "External '%s' at %L cannot have an initializer" | |
37183 | msgstr "El external '%s' en %L no puede tener un inicializador" | |
37184 | ||
37185 | -#: fortran/resolve.c:10494 | |
37186 | +#: fortran/resolve.c:10497 | |
37187 | #, gcc-internal-format, gfc-internal-format | |
37188 | msgid "Dummy '%s' at %L cannot have an initializer" | |
37189 | msgstr "El dummy '%s' en %L no puede tener un inicializador" | |
37190 | ||
37191 | -#: fortran/resolve.c:10497 | |
37192 | +#: fortran/resolve.c:10500 | |
37193 | #, gcc-internal-format, gfc-internal-format | |
37194 | msgid "Intrinsic '%s' at %L cannot have an initializer" | |
37195 | msgstr "El intrinsic '%s' en %L no puede tener un inicializador" | |
37196 | ||
37197 | -#: fortran/resolve.c:10500 | |
37198 | +#: fortran/resolve.c:10503 | |
37199 | #, gcc-internal-format, gfc-internal-format | |
37200 | msgid "Function result '%s' at %L cannot have an initializer" | |
37201 | msgstr "El resultado de la función '%s' en %L no puede tener un inicializador" | |
37202 | ||
37203 | -#: fortran/resolve.c:10503 | |
37204 | +#: fortran/resolve.c:10506 | |
37205 | #, gcc-internal-format, gfc-internal-format | |
37206 | msgid "Automatic array '%s' at %L cannot have an initializer" | |
37207 | msgstr "La matriz automática '%s' en %L no puede tener un inicializador" | |
37208 | ||
37209 | -#: fortran/resolve.c:10540 | |
37210 | +#: fortran/resolve.c:10543 | |
37211 | #, gcc-internal-format, gfc-internal-format | |
37212 | msgid "Character-valued statement function '%s' at %L must have constant length" | |
37213 | msgstr "La función de declaración valuada con carácter '%s' en %L debe tener longitud constante" | |
37214 | ||
37215 | -#: fortran/resolve.c:10562 | |
37216 | +#: fortran/resolve.c:10565 | |
37217 | #, gcc-internal-format, gfc-internal-format | |
37218 | msgid "Fortran 2003: '%s' is of a PRIVATE type and cannot be a dummy argument of '%s', which is PUBLIC at %L" | |
37219 | msgstr "Fortran 2003: '%s' es de un tipo PRIVATE y no puede ser un argumento dummy de '%s', el cual es PUBLIC en %L" | |
37220 | ||
37221 | -#: fortran/resolve.c:10584 fortran/resolve.c:10608 | |
37222 | +#: fortran/resolve.c:10587 fortran/resolve.c:10611 | |
37223 | #, gcc-internal-format, gfc-internal-format | |
37224 | msgid "Fortran 2003: Procedure '%s' in PUBLIC interface '%s' at %L takes dummy arguments of '%s' which is PRIVATE" | |
37225 | msgstr "Fortran 2003: El procedimiento '%s' en la interfaz PUBLIC '%s' en %L toma argumentos dummy de '%s' el cual es PRIVATE" | |
37226 | ||
37227 | -#: fortran/resolve.c:10626 | |
37228 | +#: fortran/resolve.c:10629 | |
37229 | #, gcc-internal-format, gfc-internal-format | |
37230 | msgid "Function '%s' at %L cannot have an initializer" | |
37231 | msgstr "La función '%s' en %L no puede tener un inicializador" | |
37232 | ||
37233 | -#: fortran/resolve.c:10635 | |
37234 | +#: fortran/resolve.c:10638 | |
37235 | #, gcc-internal-format, gfc-internal-format | |
37236 | msgid "External object '%s' at %L may not have an initializer" | |
37237 | msgstr "El objeto external '%s' en %L puede no tener un inicializador" | |
37238 | ||
37239 | -#: fortran/resolve.c:10643 | |
37240 | +#: fortran/resolve.c:10646 | |
37241 | #, gcc-internal-format, gfc-internal-format | |
37242 | msgid "ELEMENTAL function '%s' at %L must have a scalar result" | |
37243 | msgstr "La función ELEMENTAL '%s' en %L debe tener un resultado escalar" | |
37244 | ||
37245 | -#: fortran/resolve.c:10653 | |
37246 | +#: fortran/resolve.c:10656 | |
37247 | #, gcc-internal-format, gfc-internal-format | |
37248 | msgid "Statement function '%s' at %L may not have pointer or allocatable attribute" | |
37249 | msgstr "La función de declaración '%s' en %L no debe tener atributo puntero o alojable" | |
37250 | ||
37251 | -#: fortran/resolve.c:10672 | |
37252 | +#: fortran/resolve.c:10675 | |
37253 | #, gcc-internal-format, gfc-internal-format | |
37254 | msgid "CHARACTER(*) function '%s' at %L cannot be array-valued" | |
37255 | msgstr "La función CHARACTER(*) '%s' en %L no puede ser matriz-valuada" | |
37256 | ||
37257 | -#: fortran/resolve.c:10676 | |
37258 | +#: fortran/resolve.c:10679 | |
37259 | #, gcc-internal-format, gfc-internal-format | |
37260 | msgid "CHARACTER(*) function '%s' at %L cannot be pointer-valued" | |
37261 | msgstr "La función CHARACTER(*) '%s' en %L no puede ser puntero-valuada" | |
37262 | ||
37263 | -#: fortran/resolve.c:10680 | |
37264 | +#: fortran/resolve.c:10683 | |
37265 | #, gcc-internal-format, gfc-internal-format | |
37266 | msgid "CHARACTER(*) function '%s' at %L cannot be pure" | |
37267 | msgstr "La función CHARACTER(*) '%s' en %L no puede ser pura" | |
37268 | ||
37269 | -#: fortran/resolve.c:10684 | |
37270 | +#: fortran/resolve.c:10687 | |
37271 | #, gcc-internal-format, gfc-internal-format | |
37272 | msgid "CHARACTER(*) function '%s' at %L cannot be recursive" | |
37273 | msgstr "La función CHARACTER(*) '%s' en %L no puede ser recursiva" | |
37274 | ||
37275 | -#: fortran/resolve.c:10696 | |
37276 | +#: fortran/resolve.c:10699 | |
37277 | #, gcc-internal-format, gfc-internal-format | |
37278 | msgid "Obsolescent feature: CHARACTER(*) function '%s' at %L" | |
37279 | msgstr "Característica obsoleta: función CHARACTER(*) '%s' en %L" | |
37280 | ||
37281 | -#: fortran/resolve.c:10751 | |
37282 | +#: fortran/resolve.c:10754 | |
37283 | #, gcc-internal-format, gfc-internal-format | |
37284 | msgid "PROCEDURE attribute conflicts with SAVE attribute in '%s' at %L" | |
37285 | msgstr "El atributo PROCEDURE genera un conflicto con el atributo SAVE en '%s' en %L" | |
37286 | ||
37287 | -#: fortran/resolve.c:10757 | |
37288 | +#: fortran/resolve.c:10760 | |
37289 | #, gcc-internal-format, gfc-internal-format | |
37290 | msgid "PROCEDURE attribute conflicts with INTENT attribute in '%s' at %L" | |
37291 | msgstr "El atributo PROCEDURE genera un conflicto con el atributo INTENT en '%s' en %L" | |
37292 | ||
37293 | -#: fortran/resolve.c:10763 | |
37294 | +#: fortran/resolve.c:10766 | |
37295 | #, gcc-internal-format, gfc-internal-format | |
37296 | msgid "PROCEDURE attribute conflicts with RESULT attribute in '%s' at %L" | |
37297 | msgstr "El atributo PROCEDURE genera un conflicto con el atributo RESULT en '%s' en %L" | |
37298 | ||
37299 | -#: fortran/resolve.c:10771 | |
37300 | +#: fortran/resolve.c:10774 | |
37301 | #, gcc-internal-format, gfc-internal-format | |
37302 | msgid "EXTERNAL attribute conflicts with FUNCTION attribute in '%s' at %L" | |
37303 | msgstr "El atributo EXTERNAL genera un conflicto con el atributo FUNCTION en '%s' en %L" | |
37304 | ||
37305 | -#: fortran/resolve.c:10777 | |
37306 | +#: fortran/resolve.c:10780 | |
37307 | #, gcc-internal-format, gfc-internal-format | |
37308 | msgid "Procedure pointer result '%s' at %L is missing the pointer attribute" | |
37309 | msgstr "Al resultado del puntero de procedimiento '%s' en %L le falta el atributo puntero" | |
37310 | ||
37311 | -#: fortran/resolve.c:10823 | |
37312 | +#: fortran/resolve.c:10826 | |
37313 | #, gcc-internal-format, gfc-internal-format | |
37314 | msgid "FINAL procedure '%s' at %L is not a SUBROUTINE" | |
37315 | msgstr "El procedimiento FINAL '%s' en %L no debe ser una SUBROUTINE" | |
37316 | ||
37317 | -#: fortran/resolve.c:10831 | |
37318 | +#: fortran/resolve.c:10834 | |
37319 | #, gcc-internal-format, gfc-internal-format | |
37320 | msgid "FINAL procedure at %L must have exactly one argument" | |
37321 | msgstr "El procedimiento FINAL en %L debe tener exactamente un argumento" | |
37322 | ||
37323 | -#: fortran/resolve.c:10840 | |
37324 | +#: fortran/resolve.c:10843 | |
37325 | #, gcc-internal-format, gfc-internal-format | |
37326 | msgid "Argument of FINAL procedure at %L must be of type '%s'" | |
37327 | msgstr "El argumento del procedimiento FINAL en %L debe ser de tipo '%s'" | |
37328 | ||
37329 | -#: fortran/resolve.c:10848 | |
37330 | +#: fortran/resolve.c:10851 | |
37331 | #, gcc-internal-format, gfc-internal-format | |
37332 | msgid "Argument of FINAL procedure at %L must not be a POINTER" | |
37333 | msgstr "El argumento del procedimiento FINAL en %L no debe ser un POINTER" | |
37334 | ||
37335 | -#: fortran/resolve.c:10854 | |
37336 | +#: fortran/resolve.c:10857 | |
37337 | #, gcc-internal-format, gfc-internal-format | |
37338 | msgid "Argument of FINAL procedure at %L must not be ALLOCATABLE" | |
37339 | msgstr "El argumento del procedimiento final en %L no debe ser ALLOCATABLE" | |
37340 | ||
37341 | -#: fortran/resolve.c:10860 | |
37342 | +#: fortran/resolve.c:10863 | |
37343 | #, gcc-internal-format, gfc-internal-format | |
37344 | msgid "Argument of FINAL procedure at %L must not be OPTIONAL" | |
37345 | msgstr "El argumento del procedimiento FINAL en %L no debe ser OPTIONAL" | |
37346 | ||
37347 | -#: fortran/resolve.c:10868 | |
37348 | +#: fortran/resolve.c:10871 | |
37349 | #, gcc-internal-format, gfc-internal-format | |
37350 | msgid "Argument of FINAL procedure at %L must not be INTENT(OUT)" | |
37351 | msgstr "El argumento del procedimiento FINAL en %L no debe ser INTENT(OUT)" | |
37352 | ||
37353 | -#: fortran/resolve.c:10876 | |
37354 | +#: fortran/resolve.c:10879 | |
37355 | #, gcc-internal-format, gfc-internal-format | |
37356 | msgid "Non-scalar FINAL procedure at %L should have assumed shape argument" | |
37357 | msgstr "El procedimiento FINAL que no es escalar en %L debe tener un argumento sharp asumido" | |
37358 | ||
37359 | -#: fortran/resolve.c:10895 | |
37360 | +#: fortran/resolve.c:10898 | |
37361 | #, gcc-internal-format, gfc-internal-format | |
37362 | msgid "FINAL procedure '%s' declared at %L has the same rank (%d) as '%s'" | |
37363 | msgstr "El procedimiento FINAL '%s' declarado en %L tiene el mismo rango (%d) que '%s'" | |
37364 | ||
37365 | -#: fortran/resolve.c:10928 | |
37366 | +#: fortran/resolve.c:10931 | |
37367 | #, gcc-internal-format, gfc-internal-format | |
37368 | msgid "Only array FINAL procedures declared for derived type '%s' defined at %L, suggest also scalar one" | |
37369 | msgstr "Sólo se declaran procedimientos FINAL de matriz para el tipo derivado '%s' definido en %L, se sugiere también uno escalar" | |
37370 | ||
37371 | #. TODO: Remove this error when finalization is finished. | |
37372 | -#: fortran/resolve.c:10933 | |
37373 | +#: fortran/resolve.c:10936 | |
37374 | #, gcc-internal-format, gfc-internal-format | |
37375 | msgid "Finalization at %L is not yet implemented" | |
37376 | msgstr "Aún no se admite la finalización en %L" | |
37377 | ||
37378 | -#: fortran/resolve.c:10964 | |
37379 | +#: fortran/resolve.c:10967 | |
37380 | #, gcc-internal-format, gfc-internal-format | |
37381 | msgid "'%s' and '%s' can't be mixed FUNCTION/SUBROUTINE for GENERIC '%s' at %L" | |
37382 | msgstr "'%s' y '%s' no pueden ser FUNCTION/SUBROUTINE mezcladas para el GENERIC '%s' en %L" | |
37383 | ||
37384 | -#: fortran/resolve.c:10974 | |
37385 | +#: fortran/resolve.c:10977 | |
37386 | #, gcc-internal-format, gfc-internal-format | |
37387 | msgid "'%s' and '%s' for GENERIC '%s' at %L are ambiguous" | |
37388 | msgstr "'%s' y '%s' para el GENERIC '%s' en %L son ambiguos" | |
37389 | ||
37390 | -#: fortran/resolve.c:11033 | |
37391 | +#: fortran/resolve.c:11036 | |
37392 | #, gcc-internal-format, gfc-internal-format | |
37393 | msgid "Undefined specific binding '%s' as target of GENERIC '%s' at %L" | |
37394 | msgstr "El enlace específico '%s' no está definido como objetivo del GENERIC '%s' en %L" | |
37395 | ||
37396 | -#: fortran/resolve.c:11045 | |
37397 | +#: fortran/resolve.c:11048 | |
37398 | #, gcc-internal-format, gfc-internal-format | |
37399 | msgid "GENERIC '%s' at %L must target a specific binding, '%s' is GENERIC, too" | |
37400 | msgstr "El GENERIC '%s' en %L debe apuntar a un enlace específico, '%s' es GENERIC también" | |
37401 | ||
37402 | -#: fortran/resolve.c:11075 | |
37403 | +#: fortran/resolve.c:11078 | |
37404 | #, gcc-internal-format, gfc-internal-format | |
37405 | msgid "GENERIC '%s' at %L can't overwrite specific binding with the same name" | |
37406 | msgstr "El GENERIC '%s' en %L no puede sobreescribir el enlace específico con el mismo nombre" | |
37407 | ||
37408 | -#: fortran/resolve.c:11131 | |
37409 | +#: fortran/resolve.c:11134 | |
37410 | #, gcc-internal-format, gfc-internal-format | |
37411 | msgid "Type-bound operator at %L can't be NOPASS" | |
37412 | msgstr "El operador enlazado a tipo en %L no puede ser NOPASS" | |
37413 | ||
37414 | -#: fortran/resolve.c:11294 | |
37415 | +#: fortran/resolve.c:11297 | |
37416 | #, gcc-internal-format, gfc-internal-format | |
37417 | msgid "'%s' must be a module procedure or an external procedure with an explicit interface at %L" | |
37418 | msgstr "'%s' debe ser un procedimiento de módulo o un procedimiento externo con una interfaz explícita en %L" | |
37419 | ||
37420 | -#: fortran/resolve.c:11331 | |
37421 | +#: fortran/resolve.c:11334 | |
37422 | #, gcc-internal-format, gfc-internal-format | |
37423 | msgid "Procedure '%s' with PASS(%s) at %L has no argument '%s'" | |
37424 | msgstr "El procedimiento '%s' con PASS(%s) en %L no tiene un argumento '%s'" | |
37425 | ||
37426 | -#: fortran/resolve.c:11345 | |
37427 | +#: fortran/resolve.c:11348 | |
37428 | #, gcc-internal-format, gfc-internal-format | |
37429 | msgid "Procedure '%s' with PASS at %L must have at least one argument" | |
37430 | msgstr "El procedimiento '%s' con PASS en %L debe tener al menos un argumento" | |
37431 | ||
37432 | -#: fortran/resolve.c:11359 fortran/resolve.c:11822 | |
37433 | +#: fortran/resolve.c:11362 fortran/resolve.c:11825 | |
37434 | #, gcc-internal-format, gfc-internal-format | |
37435 | msgid "Non-polymorphic passed-object dummy argument of '%s' at %L" | |
37436 | msgstr "Argumento dummy pasado como objeto no polimórfico de '%s' en %L" | |
37437 | ||
37438 | -#: fortran/resolve.c:11367 | |
37439 | +#: fortran/resolve.c:11370 | |
37440 | #, gcc-internal-format, gfc-internal-format | |
37441 | msgid "Argument '%s' of '%s' with PASS(%s) at %L must be of the derived-type '%s'" | |
37442 | msgstr "El argumento '%s' de '%s' con PASS(%s) en %L debe ser del tipo derivado '%s'" | |
37443 | ||
37444 | -#: fortran/resolve.c:11376 | |
37445 | +#: fortran/resolve.c:11379 | |
37446 | #, gcc-internal-format, gfc-internal-format | |
37447 | msgid "Passed-object dummy argument of '%s' at %L must be scalar" | |
37448 | msgstr "El argumento dummy de objeto pasado de '%s' en %L debe ser escalar" | |
37449 | ||
37450 | -#: fortran/resolve.c:11382 | |
37451 | +#: fortran/resolve.c:11385 | |
37452 | #, gcc-internal-format, gfc-internal-format | |
37453 | msgid "Passed-object dummy argument of '%s' at %L must not be ALLOCATABLE" | |
37454 | msgstr "El argumento dummy de objeto pasado de '%s' en %L no debe ser ALLOCATABLE" | |
37455 | ||
37456 | -#: fortran/resolve.c:11388 | |
37457 | +#: fortran/resolve.c:11391 | |
37458 | #, gcc-internal-format, gfc-internal-format | |
37459 | msgid "Passed-object dummy argument of '%s' at %L must not be POINTER" | |
37460 | msgstr "El argumento dummy de objeto pasado de '%s' en %L no debe ser POINTER" | |
37461 | ||
37462 | -#: fortran/resolve.c:11417 | |
37463 | +#: fortran/resolve.c:11420 | |
37464 | #, gcc-internal-format, gfc-internal-format | |
37465 | msgid "Procedure '%s' at %L has the same name as a component of '%s'" | |
37466 | msgstr "El procedimiento '%s' en %L tiene el mismo nombre que un componente de '%s'" | |
37467 | ||
37468 | -#: fortran/resolve.c:11426 | |
37469 | +#: fortran/resolve.c:11429 | |
37470 | #, gcc-internal-format, gfc-internal-format | |
37471 | msgid "Procedure '%s' at %L has the same name as an inherited component of '%s'" | |
37472 | msgstr "El procedimiento '%s' en %L tiene el mismo nombre que un componente heredado de '%s'" | |
37473 | ||
37474 | -#: fortran/resolve.c:11521 | |
37475 | +#: fortran/resolve.c:11524 | |
37476 | #, gcc-internal-format, gfc-internal-format | |
37477 | msgid "Derived-type '%s' declared at %L must be ABSTRACT because '%s' is DEFERRED and not overridden" | |
37478 | msgstr "El tipo derivado '%s' declarado en %L debe ser ABSTRACT porque '%s' es DEFERRED y no se sobreescribió" | |
37479 | ||
37480 | -#: fortran/resolve.c:11579 | |
37481 | +#: fortran/resolve.c:11582 | |
37482 | #, gcc-internal-format, gfc-internal-format | |
37483 | msgid "As extending type '%s' at %L has a coarray component, parent type '%s' shall also have one" | |
37484 | msgstr "Como al extender el tipo '%s' en %L tiene un componente de comatriz, el tipo padre '%s' también debe tener uno" | |
37485 | ||
37486 | -#: fortran/resolve.c:11592 | |
37487 | +#: fortran/resolve.c:11595 | |
37488 | #, gcc-internal-format, gfc-internal-format | |
37489 | msgid "Non-extensible derived-type '%s' at %L must not be ABSTRACT" | |
37490 | msgstr "El tipo derivado '%s' que no es extensible en %L no debe ser ABSTRACT" | |
37491 | ||
37492 | -#: fortran/resolve.c:11605 | |
37493 | +#: fortran/resolve.c:11608 | |
37494 | #, gcc-internal-format, gfc-internal-format | |
37495 | msgid "Deferred-length character component '%s' at %L is not yet supported" | |
37496 | msgstr "El componente de caractér de longitud diferida '%s' en %L aún no se admite" | |
37497 | ||
37498 | -#: fortran/resolve.c:11615 | |
37499 | +#: fortran/resolve.c:11618 | |
37500 | #, gcc-internal-format, gfc-internal-format | |
37501 | msgid "Coarray component '%s' at %L must be allocatable with deferred shape" | |
37502 | msgstr "El componente de comatriz '%s' en %L debe sel alojable con forma diferida" | |
37503 | ||
37504 | -#: fortran/resolve.c:11624 | |
37505 | +#: fortran/resolve.c:11627 | |
37506 | #, gcc-internal-format, gfc-internal-format | |
37507 | msgid "Component '%s' at %L of TYPE(C_PTR) or TYPE(C_FUNPTR) shall not be a coarray" | |
37508 | msgstr "El componente '%s' en %L de TYPE(C_PTR) o TYPE(C_FUNPTR) no debe ser una comatriz" | |
37509 | ||
37510 | -#: fortran/resolve.c:11634 | |
37511 | +#: fortran/resolve.c:11637 | |
37512 | #, gcc-internal-format, gfc-internal-format | |
37513 | msgid "Component '%s' at %L with coarray component shall be a nonpointer, nonallocatable scalar" | |
37514 | msgstr "El componenten '%s' en %L con componente comatriz debe ser un escalar que no sea puntero alojable" | |
37515 | ||
37516 | -#: fortran/resolve.c:11643 | |
37517 | +#: fortran/resolve.c:11646 | |
37518 | #, gcc-internal-format, gfc-internal-format | |
37519 | msgid "Component '%s' at %L has the CONTIGUOUS attribute but is not an array pointer" | |
37520 | msgstr "El componente '%s' en %L tiene el atributo CONTIGUOUS porque no es un puntero de matriz" | |
37521 | ||
37522 | -#: fortran/resolve.c:11651 | |
37523 | +#: fortran/resolve.c:11654 | |
37524 | #, gcc-internal-format, gfc-internal-format | |
37525 | msgid "Interface '%s', used by procedure pointer component '%s' at %L, is declared in a later PROCEDURE statement" | |
37526 | msgstr "La interfaz '%s', usada por el procedimiento de componente puntero '%s' en %L, se declara en una declaración PROCEDURE posterior" | |
37527 | ||
37528 | -#: fortran/resolve.c:11716 | |
37529 | +#: fortran/resolve.c:11719 | |
37530 | #, gcc-internal-format, gfc-internal-format | |
37531 | msgid "Interface '%s' of procedure pointer component '%s' at %L must be explicit" | |
37532 | msgstr "La interfaz '%s' del procedimiento de componente puntero '%s' en %L debe ser explícita" | |
37533 | ||
37534 | -#: fortran/resolve.c:11756 | |
37535 | +#: fortran/resolve.c:11759 | |
37536 | #, gcc-internal-format, gfc-internal-format | |
37537 | msgid "Procedure pointer component '%s' with PASS(%s) at %L has no argument '%s'" | |
37538 | msgstr "El procedimiento de componente puntero '%s' con PASS(%s) en %L no tiene un argumento '%s'" | |
37539 | ||
37540 | -#: fortran/resolve.c:11770 | |
37541 | +#: fortran/resolve.c:11773 | |
37542 | #, gcc-internal-format, gfc-internal-format | |
37543 | msgid "Procedure pointer component '%s' with PASS at %L must have at least one argument" | |
37544 | msgstr "El procedimiento de componente puntero '%s' con PASS en %L debe tener al menos un argumento" | |
37545 | ||
37546 | -#: fortran/resolve.c:11786 | |
37547 | +#: fortran/resolve.c:11789 | |
37548 | #, gcc-internal-format, gfc-internal-format | |
37549 | msgid "Argument '%s' of '%s' with PASS(%s) at %L must be of the derived type '%s'" | |
37550 | msgstr "El argumento '%s' de '%s' con PASS(%s) en %L debe ser del tipo derivado '%s'" | |
37551 | ||
37552 | -#: fortran/resolve.c:11796 | |
37553 | +#: fortran/resolve.c:11799 | |
37554 | #, gcc-internal-format, gfc-internal-format | |
37555 | msgid "Argument '%s' of '%s' with PASS(%s) at %L must be scalar" | |
37556 | msgstr "El argumento '%s' de '%s' con PASS(%s) en %L debe ser escalar" | |
37557 | ||
37558 | -#: fortran/resolve.c:11805 | |
37559 | +#: fortran/resolve.c:11808 | |
37560 | #, gcc-internal-format, gfc-internal-format | |
37561 | msgid "Argument '%s' of '%s' with PASS(%s) at %L may not have the POINTER attribute" | |
37562 | msgstr "El argumento '%s' de '%s' con PASS(%s) en %L no puede tener el atributo POINTER" | |
37563 | ||
37564 | -#: fortran/resolve.c:11814 | |
37565 | +#: fortran/resolve.c:11817 | |
37566 | #, gcc-internal-format, gfc-internal-format | |
37567 | msgid "Argument '%s' of '%s' with PASS(%s) at %L may not be ALLOCATABLE" | |
37568 | msgstr "El argumento '%s' de '%s' con PASS(%s) en %L no puede ser ALLOCATABLE" | |
37569 | ||
37570 | -#: fortran/resolve.c:11851 | |
37571 | +#: fortran/resolve.c:11854 | |
37572 | #, gcc-internal-format, gfc-internal-format | |
37573 | msgid "Component '%s' of '%s' at %L has the same name as an inherited type-bound procedure" | |
37574 | msgstr "El componente '%s' de '%s' en %L tiene el mismo nombre que un procedimiento enlazado a tipo heredado" | |
37575 | ||
37576 | -#: fortran/resolve.c:11864 | |
37577 | +#: fortran/resolve.c:11867 | |
37578 | #, gcc-internal-format, gfc-internal-format | |
37579 | msgid "Character length of component '%s' needs to be a constant specification expression at %L" | |
37580 | msgstr "La longitud de carácter del componente '%s' necesita ser una expresión de especificación constante en %L" | |
37581 | ||
37582 | -#: fortran/resolve.c:11875 | |
37583 | +#: fortran/resolve.c:11878 | |
37584 | #, gcc-internal-format, gfc-internal-format | |
37585 | msgid "Character component '%s' of '%s' at %L with deferred length must be a POINTER or ALLOCATABLE" | |
37586 | msgstr "El componente de carácter '%s' de '%s' en %L con longitud diferida debe ser POINTER o ALLOCATABLE" | |
37587 | ||
37588 | -#: fortran/resolve.c:11887 | |
37589 | +#: fortran/resolve.c:11890 | |
37590 | #, gcc-internal-format, gfc-internal-format | |
37591 | msgid "Fortran 2003: the component '%s' is a PRIVATE type and cannot be a component of '%s', which is PUBLIC at %L" | |
37592 | msgstr "Fortran 2003: el componente '%s' es un tipo PRIVATE y no puede ser un componente de '%s' el cual es PUBLIC en %L" | |
37593 | ||
37594 | -#: fortran/resolve.c:11895 | |
37595 | +#: fortran/resolve.c:11898 | |
37596 | #, gcc-internal-format, gfc-internal-format | |
37597 | msgid "Polymorphic component %s at %L in SEQUENCE or BIND(C) type %s" | |
37598 | msgstr "El componente polimórfico %s en %L en SEQUENCE o de tipo BIND(C) %s" | |
37599 | ||
37600 | -#: fortran/resolve.c:11904 | |
37601 | +#: fortran/resolve.c:11907 | |
37602 | #, gcc-internal-format, gfc-internal-format | |
37603 | msgid "Component %s of SEQUENCE type declared at %L does not have the SEQUENCE attribute" | |
37604 | msgstr "El componente %s del tipo SEQUENCE declarado en %L no tiene el atributo SEQUENCE" | |
37605 | ||
37606 | -#: fortran/resolve.c:11922 fortran/resolve.c:11933 | |
37607 | +#: fortran/resolve.c:11925 fortran/resolve.c:11936 | |
37608 | #, gcc-internal-format, gfc-internal-format | |
37609 | msgid "The pointer component '%s' of '%s' at %L is a type that has not been declared" | |
37610 | msgstr "El componente puntero '%s' de '%s' en %L es de un tipo que no se ha declarado" | |
37611 | ||
37612 | -#: fortran/resolve.c:11945 | |
37613 | +#: fortran/resolve.c:11948 | |
37614 | #, gcc-internal-format, gfc-internal-format | |
37615 | msgid "Component '%s' with CLASS at %L must be allocatable or pointer" | |
37616 | msgstr "El componente '%s' con CLASS en %L debe ser allocatable o pointer" | |
37617 | ||
37618 | -#: fortran/resolve.c:11995 | |
37619 | +#: fortran/resolve.c:11998 | |
37620 | #, gcc-internal-format, gfc-internal-format | |
37621 | msgid "Fortran 2003: Generic name '%s' of function '%s' at %L being the same name as derived type at %L" | |
37622 | msgstr "Fortran 2003: El nombre genérico '%s' de la función '%s' en %L tiene el mismo nombre que el tipo derivado en %L" | |
37623 | ||
37624 | -#: fortran/resolve.c:12047 | |
37625 | +#: fortran/resolve.c:12050 | |
37626 | #, gcc-internal-format, gfc-internal-format | |
37627 | msgid "Assumed size array '%s' in namelist '%s' at %L is not allowed" | |
37628 | msgstr "No se permite la matriz de tamaño asumido '%s' en la lista de nombres '%s' en %L" | |
37629 | ||
37630 | -#: fortran/resolve.c:12053 | |
37631 | +#: fortran/resolve.c:12056 | |
37632 | #, gcc-internal-format, gfc-internal-format | |
37633 | msgid "Fortran 2003: NAMELIST array object '%s' with assumed shape in namelist '%s' at %L" | |
37634 | msgstr "Fortran 2003: Objeto de matriz NAMELIST '%s' con forma asumida en la lista de nombres '%s' en %L" | |
37635 | ||
37636 | -#: fortran/resolve.c:12060 | |
37637 | +#: fortran/resolve.c:12063 | |
37638 | #, gcc-internal-format, gfc-internal-format | |
37639 | msgid "Fortran 2003: NAMELIST array object '%s' with nonconstant shape in namelist '%s' at %L" | |
37640 | msgstr "Fortran 2003: El objeto de matriz NAMELIST '%s' con forma que no es constante en la lista de nombres '%s' en %L" | |
37641 | ||
37642 | -#: fortran/resolve.c:12069 | |
37643 | +#: fortran/resolve.c:12072 | |
37644 | #, gcc-internal-format, gfc-internal-format | |
37645 | msgid "Fortran 2003: NAMELIST object '%s' with nonconstant character length in namelist '%s' at %L" | |
37646 | msgstr "Fortran 2003: El objeto de matriz NAMELIST '%s' con longitud de carácter que no es constante en la lista de nombres '%s' en %L" | |
37647 | ||
37648 | -#: fortran/resolve.c:12079 | |
37649 | +#: fortran/resolve.c:12082 | |
37650 | #, gcc-internal-format, gfc-internal-format | |
37651 | msgid "NAMELIST object '%s' in namelist '%s' at %L is polymorphic and requires a defined input/output procedure" | |
37652 | msgstr "El objeto NAMELIST '%s' en la lista de nombres '%s' en %L es polimórfico y requiere un procedimiento de entrada/salida definido" | |
37653 | ||
37654 | -#: fortran/resolve.c:12089 | |
37655 | +#: fortran/resolve.c:12092 | |
37656 | #, gcc-internal-format, gfc-internal-format | |
37657 | msgid "Fortran 2003: NAMELIST object '%s' in namelist '%s' at %L with ALLOCATABLE or POINTER components" | |
37658 | msgstr "Fortran 2003: El objeto NAMELIST '%s' en la lista de nombres '%s' en %L con componentes ALLOCATABLE o POINTER" | |
37659 | ||
37660 | #. FIXME: Once UDDTIO is implemented, the following can be | |
37661 | #. removed. | |
37662 | -#: fortran/resolve.c:12097 | |
37663 | +#: fortran/resolve.c:12100 | |
37664 | #, gcc-internal-format, gfc-internal-format | |
37665 | msgid "NAMELIST object '%s' in namelist '%s' at %L has ALLOCATABLE or POINTER components and thus requires a defined input/output procedure" | |
37666 | msgstr "El objeto NAMELIST '%s' en la lista de nombres '%s' en %L tiene componentes ALLOCATABLE o POINTER y por lo tanto requere un procedimiento de entrada/salida definido" | |
37667 | ||
37668 | -#: fortran/resolve.c:12114 | |
37669 | +#: fortran/resolve.c:12117 | |
37670 | #, gcc-internal-format, gfc-internal-format | |
37671 | msgid "NAMELIST object '%s' was declared PRIVATE and cannot be member of PUBLIC namelist '%s' at %L" | |
37672 | msgstr "El objeto NAMELIST '%s' se declaró PRIVATE y no puede ser miembro de una lista de nombres PUBLIC '%s' en %L" | |
37673 | ||
37674 | -#: fortran/resolve.c:12124 | |
37675 | +#: fortran/resolve.c:12127 | |
37676 | #, gcc-internal-format, gfc-internal-format | |
37677 | msgid "NAMELIST object '%s' has use-associated PRIVATE components and cannot be member of namelist '%s' at %L" | |
37678 | msgstr "El objeto NAMELIST '%s' tiene componentes PRIVATE asociados a uso y no puede ser miembro de la lista de nombres '%s' en %L" | |
37679 | ||
37680 | -#: fortran/resolve.c:12135 | |
37681 | +#: fortran/resolve.c:12138 | |
37682 | #, gcc-internal-format, gfc-internal-format | |
37683 | msgid "NAMELIST object '%s' has PRIVATE components and cannot be a member of PUBLIC namelist '%s' at %L" | |
37684 | msgstr "El objeto NAMELIST '%s' tiene componentes PRIVATE y no puede ser un miembro de la lista de nombres PUBLIC '%s' en %L" | |
37685 | ||
37686 | -#: fortran/resolve.c:12162 | |
37687 | +#: fortran/resolve.c:12165 | |
37688 | #, gcc-internal-format, gfc-internal-format | |
37689 | msgid "PROCEDURE attribute conflicts with NAMELIST attribute in '%s' at %L" | |
37690 | msgstr "El atributo PROCEDURE genera un conflicto con el atributo NAMELIST en '%s' en %L" | |
37691 | ||
37692 | -#: fortran/resolve.c:12181 | |
37693 | +#: fortran/resolve.c:12184 | |
37694 | #, gcc-internal-format, gfc-internal-format | |
37695 | msgid "Parameter array '%s' at %L cannot be automatic or of deferred shape" | |
37696 | msgstr "La matriz de parámetro '%s' en %L no puede ser automática ni de forma diferida" | |
37697 | ||
37698 | -#: fortran/resolve.c:12193 | |
37699 | +#: fortran/resolve.c:12196 | |
37700 | #, gcc-internal-format, gfc-internal-format | |
37701 | msgid "Implicitly typed PARAMETER '%s' at %L doesn't match a later IMPLICIT type" | |
37702 | msgstr "El PARAMETER de tipo implícito '%s' en %L no coincide con un tipo IMPLICIT posterior" | |
37703 | ||
37704 | -#: fortran/resolve.c:12204 | |
37705 | +#: fortran/resolve.c:12207 | |
37706 | #, gcc-internal-format, gfc-internal-format | |
37707 | msgid "Incompatible derived type in PARAMETER at %L" | |
37708 | msgstr "Tipo derivado incompatible en PARAMETER en %L" | |
37709 | ||
37710 | -#: fortran/resolve.c:12273 | |
37711 | +#: fortran/resolve.c:12276 | |
37712 | #, gcc-internal-format, gfc-internal-format | |
37713 | msgid "PROTECTED attribute conflicts with EXTERNAL attribute at %L" | |
37714 | msgstr "El atributo PROTECTED genera un conflicto con el atributo EXTERNAL en %L" | |
37715 | ||
37716 | -#: fortran/resolve.c:12276 | |
37717 | +#: fortran/resolve.c:12279 | |
37718 | #, gcc-internal-format, gfc-internal-format | |
37719 | msgid "PROCEDURE attribute conflicts with PROTECTED attribute at %L" | |
37720 | msgstr "El atributo PROCEDURE genera un conflicto con el atributo PROTECTED en %L" | |
37721 | ||
37722 | -#: fortran/resolve.c:12359 | |
37723 | +#: fortran/resolve.c:12362 | |
37724 | #, gcc-internal-format, gfc-internal-format | |
37725 | msgid "'%s' at %L has the CONTIGUOUS attribute but is not an array pointer or an assumed-shape array" | |
37726 | msgstr "'%s' en %L tiene el atributo CONTIGUOUS pero no es un puntero de matriz o una matriz de forma asumida" | |
37727 | ||
37728 | -#: fortran/resolve.c:12377 | |
37729 | +#: fortran/resolve.c:12380 | |
37730 | #, gcc-internal-format, gfc-internal-format | |
37731 | msgid "Assumed size array at %L must be a dummy argument" | |
37732 | msgstr "La matriz de tamaño asumido en %L debe ser un argumento de prueba" | |
37733 | ||
37734 | -#: fortran/resolve.c:12380 | |
37735 | +#: fortran/resolve.c:12383 | |
37736 | #, gcc-internal-format, gfc-internal-format | |
37737 | msgid "Assumed shape array at %L must be a dummy argument" | |
37738 | msgstr "La matriz de forma asumida en %L debe ser un argumento de prueba" | |
37739 | ||
37740 | -#: fortran/resolve.c:12393 | |
37741 | +#: fortran/resolve.c:12396 | |
37742 | #, gcc-internal-format, gfc-internal-format | |
37743 | msgid "Symbol at %L is not a DUMMY variable" | |
37744 | msgstr "El símbolo en %L no es una variable DUMMY" | |
37745 | ||
37746 | -#: fortran/resolve.c:12399 | |
37747 | +#: fortran/resolve.c:12402 | |
37748 | #, gcc-internal-format, gfc-internal-format | |
37749 | msgid "'%s' at %L cannot have the VALUE attribute because it is not a dummy argument" | |
37750 | msgstr "'%s' en %L no puede tener el atributo VALUE porque no es un argumento dummy" | |
37751 | ||
37752 | -#: fortran/resolve.c:12409 | |
37753 | +#: fortran/resolve.c:12412 | |
37754 | #, gcc-internal-format, gfc-internal-format | |
37755 | msgid "Character dummy variable '%s' at %L with VALUE attribute must have constant length" | |
37756 | msgstr "La variable dummy de carácter '%s' en %L con atributo VALUE debe tener longitud constante" | |
37757 | ||
37758 | -#: fortran/resolve.c:12418 | |
37759 | +#: fortran/resolve.c:12421 | |
37760 | #, gcc-internal-format, gfc-internal-format | |
37761 | msgid "C interoperable character dummy variable '%s' at %L with VALUE attribute must have length one" | |
37762 | msgstr "La variable dummy de carácter interoperable con C '%s' en %L con atributo VALUE debe ser de longitud uno" | |
37763 | ||
37764 | -#: fortran/resolve.c:12431 fortran/resolve.c:12512 | |
37765 | +#: fortran/resolve.c:12434 fortran/resolve.c:12515 | |
37766 | #, gcc-internal-format, gfc-internal-format | |
37767 | msgid "The derived type '%s' at %L is of type '%s', which has not been defined" | |
37768 | msgstr "El tipo derivado '%s' en %L es de tipo '%s', el cual no se ha definido" | |
37769 | ||
37770 | -#: fortran/resolve.c:12458 | |
37771 | +#: fortran/resolve.c:12461 | |
37772 | #, gcc-internal-format, gfc-internal-format | |
37773 | msgid "Variable '%s' at %L cannot be BIND(C) because it is neither a COMMON block nor declared at the module level scope" | |
37774 | msgstr "La variable '%s' en %L no puede ser BIND(C) porque no es un bloque COMMON ni se declaró en el ámbito de nivel de módulo" | |
37775 | ||
37776 | -#: fortran/resolve.c:12538 | |
37777 | +#: fortran/resolve.c:12541 | |
37778 | #, gcc-internal-format, gfc-internal-format | |
37779 | msgid "Fortran 2003: PUBLIC %s '%s' at %L of PRIVATE derived type '%s'" | |
37780 | msgstr "Fortran 2003: La función PUBLIC %s '%s' en %L es de tipo derivado PRIVATE '%s'" | |
37781 | ||
37782 | -#: fortran/resolve.c:12552 | |
37783 | +#: fortran/resolve.c:12555 | |
37784 | #, gcc-internal-format, gfc-internal-format | |
37785 | msgid "Variable %s at %L of type LOCK_TYPE or with subcomponent of type LOCK_TYPE must be a coarray" | |
37786 | msgstr "La variable %s en %L de tipo LOCK_TYPE o con un subcomponente de tipo LOCK_TYPE debe ser una comatriz" | |
37787 | ||
37788 | -#: fortran/resolve.c:12570 | |
37789 | +#: fortran/resolve.c:12573 | |
37790 | #, gcc-internal-format, gfc-internal-format | |
37791 | msgid "The INTENT(OUT) dummy argument '%s' at %L is ASSUMED SIZE and so cannot have a default initializer" | |
37792 | msgstr "El argumento dummy INTENT(OUT) '%s' en %L es ASSUMED SIZE y por lo tanto no puede tener un inicializador por defecto" | |
37793 | ||
37794 | -#: fortran/resolve.c:12582 | |
37795 | +#: fortran/resolve.c:12585 | |
37796 | #, gcc-internal-format, gfc-internal-format | |
37797 | msgid "Dummy argument '%s' at %L of LOCK_TYPE shall not be INTENT(OUT)" | |
37798 | msgstr "El argumento dummy '%s' en %L de LOCK_TYPE no puede ser INTENT(OUT)" | |
37799 | ||
37800 | -#: fortran/resolve.c:12594 | |
37801 | +#: fortran/resolve.c:12597 | |
37802 | #, gcc-internal-format, gfc-internal-format | |
37803 | msgid "Function result '%s' at %L shall not be a coarray or have a coarray component" | |
37804 | msgstr "El resultado de la función '%s' en %L no puede ser una comatriz o tener un componente comatriz" | |
37805 | ||
37806 | -#: fortran/resolve.c:12603 | |
37807 | +#: fortran/resolve.c:12606 | |
37808 | #, gcc-internal-format, gfc-internal-format | |
37809 | msgid "Variable '%s' at %L of TYPE(C_PTR) or TYPE(C_FUNPTR) shall not be a coarray" | |
37810 | msgstr "La variable '%s' en %L de TYPE(C_PTR) o TYPE(C_FUNPTR) no debe ser una comatriz" | |
37811 | ||
37812 | -#: fortran/resolve.c:12615 | |
37813 | +#: fortran/resolve.c:12618 | |
37814 | #, gcc-internal-format, gfc-internal-format | |
37815 | msgid "Variable '%s' at %L with coarray component shall be a nonpointer, nonallocatable scalar" | |
37816 | msgstr "La variable '%s' en %L con componente de comatriz debe ser un escalar que no sea puntero alojable" | |
37817 | ||
37818 | -#: fortran/resolve.c:12630 | |
37819 | +#: fortran/resolve.c:12633 | |
37820 | #, gcc-internal-format, gfc-internal-format | |
37821 | msgid "Variable '%s' at %L is a coarray and is not ALLOCATABLE, SAVE nor a dummy argument" | |
37822 | msgstr "La variable '%s' en %L es una comatriz y no es ALLOCATABLE, SAVE ni un argumento dummy" | |
37823 | ||
37824 | -#: fortran/resolve.c:12638 | |
37825 | +#: fortran/resolve.c:12641 | |
37826 | #, gcc-internal-format, gfc-internal-format | |
37827 | msgid "Coarray variable '%s' at %L shall not have codimensions with deferred shape" | |
37828 | msgstr "La variable de comatriz '%s' en %L no debe tener codimensiones con forma diferida" | |
37829 | ||
37830 | -#: fortran/resolve.c:12645 | |
37831 | +#: fortran/resolve.c:12648 | |
37832 | #, gcc-internal-format, gfc-internal-format | |
37833 | msgid "Allocatable coarray variable '%s' at %L must have deferred shape" | |
37834 | msgstr "La variable comatriz allocatable '%s' en %L debe tener forma diferida" | |
37835 | ||
37836 | -#: fortran/resolve.c:12657 | |
37837 | +#: fortran/resolve.c:12660 | |
37838 | #, gcc-internal-format, gfc-internal-format | |
37839 | msgid "Variable '%s' at %L is INTENT(OUT) and can thus not be an allocatable coarray or have coarray components" | |
37840 | msgstr "La variable '%s' en %L es INTENT(OUT) y por lo tanto no puede ser una comatriz allocatable o tener componentes comatriz" | |
37841 | ||
37842 | -#: fortran/resolve.c:12666 | |
37843 | +#: fortran/resolve.c:12669 | |
37844 | #, gcc-internal-format, gfc-internal-format | |
37845 | msgid "Coarray dummy variable '%s' at %L not allowed in BIND(C) procedure '%s'" | |
37846 | msgstr "No se permite la variable dummy comatriz '%s' en %L en el procedimiento BIND(C) '%s'" | |
37847 | ||
37848 | -#: fortran/resolve.c:12738 | |
37849 | +#: fortran/resolve.c:12741 | |
37850 | #, gcc-internal-format, gfc-internal-format | |
37851 | msgid "Threadprivate at %L isn't SAVEd" | |
37852 | msgstr "No se guarda (SAVE) el threadprivate en %L" | |
37853 | ||
37854 | -#: fortran/resolve.c:12832 | |
37855 | +#: fortran/resolve.c:12835 | |
37856 | #, gcc-internal-format, gfc-internal-format | |
37857 | msgid "BLOCK DATA element '%s' at %L must be in COMMON" | |
37858 | msgstr "El elemento BLOCK DATA '%s' en %L debe estar en COMMON" | |
37859 | ||
37860 | -#: fortran/resolve.c:12838 | |
37861 | +#: fortran/resolve.c:12841 | |
37862 | #, gcc-internal-format, gfc-internal-format | |
37863 | msgid "DATA array '%s' at %L must be specified in a previous declaration" | |
37864 | msgstr "La matriz DATA '%s' en %L se debe especificar en una declaración previa" | |
37865 | ||
37866 | -#: fortran/resolve.c:12847 | |
37867 | +#: fortran/resolve.c:12850 | |
37868 | #, gcc-internal-format, gfc-internal-format | |
37869 | msgid "DATA element '%s' at %L cannot have a coindex" | |
37870 | msgstr "El elemento DATA '%s' en %L no puede tener un coíndice" | |
37871 | ||
37872 | -#: fortran/resolve.c:12861 | |
37873 | +#: fortran/resolve.c:12864 | |
37874 | #, gcc-internal-format, gfc-internal-format | |
37875 | msgid "DATA element '%s' at %L is a pointer and so must be a full array" | |
37876 | msgstr "El elemento DATA '%s' en %L es un puntero y entonces debe ser una matriz completa" | |
37877 | ||
37878 | -#: fortran/resolve.c:12907 | |
37879 | +#: fortran/resolve.c:12910 | |
37880 | #, gcc-internal-format, gfc-internal-format | |
37881 | msgid "Nonconstant array section at %L in DATA statement" | |
37882 | msgstr "Sección de matriz no constante en %L en la declaración DATA" | |
37883 | ||
37884 | -#: fortran/resolve.c:12920 | |
37885 | +#: fortran/resolve.c:12923 | |
37886 | #, gcc-internal-format, gfc-internal-format | |
37887 | msgid "DATA statement at %L has more variables than values" | |
37888 | msgstr "La declaración DATA en %L tiene más variables que valores" | |
37889 | ||
37890 | -#: fortran/resolve.c:13019 | |
37891 | +#: fortran/resolve.c:13022 | |
37892 | #, gcc-internal-format, gfc-internal-format | |
37893 | msgid "start of implied-do loop at %L could not be simplified to a constant value" | |
37894 | msgstr "el inicio del bucle do implícito en %L no se puede simplificar a un valor constante" | |
37895 | ||
37896 | -#: fortran/resolve.c:13027 | |
37897 | +#: fortran/resolve.c:13030 | |
37898 | #, gcc-internal-format, gfc-internal-format | |
37899 | msgid "end of implied-do loop at %L could not be simplified to a constant value" | |
37900 | msgstr "el final del bucle do implícito en %L no se puede simplificar a un valor constante" | |
37901 | ||
37902 | -#: fortran/resolve.c:13035 | |
37903 | +#: fortran/resolve.c:13038 | |
37904 | #, gcc-internal-format, gfc-internal-format | |
37905 | msgid "step of implied-do loop at %L could not be simplified to a constant value" | |
37906 | msgstr "el paso del bucle do implícito en %L no se puede simplificar a un valor constante" | |
37907 | ||
37908 | -#: fortran/resolve.c:13160 | |
37909 | +#: fortran/resolve.c:13163 | |
37910 | #, gcc-internal-format, gfc-internal-format | |
37911 | msgid "DATA statement at %L has more values than variables" | |
37912 | msgstr "La declaración DATA en %L tiene más valores que variables" | |
37913 | ||
37914 | -#: fortran/resolve.c:13299 | |
37915 | +#: fortran/resolve.c:13301 | |
37916 | #, gcc-internal-format, gfc-internal-format | |
37917 | msgid "Label %d at %L defined but not used" | |
37918 | msgstr "Se define la etiqueta %d en %L pero no se usa" | |
37919 | ||
37920 | -#: fortran/resolve.c:13304 | |
37921 | +#: fortran/resolve.c:13306 | |
37922 | #, gcc-internal-format, gfc-internal-format | |
37923 | msgid "Label %d at %L defined but cannot be used" | |
37924 | msgstr "Se define la etiqueta %d en %L pero no se puede usar" | |
37925 | ||
37926 | -#: fortran/resolve.c:13388 | |
37927 | +#: fortran/resolve.c:13390 | |
37928 | #, gcc-internal-format, gfc-internal-format | |
37929 | msgid "Derived type variable '%s' at %L must have SEQUENCE attribute to be an EQUIVALENCE object" | |
37930 | msgstr "La variable de tipo derivado '%s' en %L debe tener el atributo SEQUENCE para ser un objeto EQUIVALENCE" | |
37931 | ||
37932 | -#: fortran/resolve.c:13397 | |
37933 | +#: fortran/resolve.c:13399 | |
37934 | #, gcc-internal-format, gfc-internal-format | |
37935 | msgid "Derived type variable '%s' at %L cannot have ALLOCATABLE components to be an EQUIVALENCE object" | |
37936 | msgstr "La variable de tipo derivado '%s' en %L no puede tener componentes ALLOCATABLE que sean un objeto EQUIVALENCE" | |
37937 | ||
37938 | -#: fortran/resolve.c:13405 | |
37939 | +#: fortran/resolve.c:13407 | |
37940 | #, gcc-internal-format, gfc-internal-format | |
37941 | msgid "Derived type variable '%s' at %L with default initialization cannot be in EQUIVALENCE with a variable in COMMON" | |
37942 | msgstr "La variable de tipo derivado '%s' en %L con inicializadores por defecto no puede ser un objeto EQUIVALENCE con una variable en COMMON" | |
37943 | ||
37944 | -#: fortran/resolve.c:13421 | |
37945 | +#: fortran/resolve.c:13423 | |
37946 | #, gcc-internal-format, gfc-internal-format | |
37947 | msgid "Derived type variable '%s' at %L with pointer component(s) cannot be an EQUIVALENCE object" | |
37948 | msgstr "La variable de tipo derivado '%s' en %L con componente(s) de puntero no puede ser un objeto EQUIVALENCE" | |
37949 | ||
37950 | -#: fortran/resolve.c:13524 | |
37951 | +#: fortran/resolve.c:13526 | |
37952 | #, gcc-internal-format, gfc-internal-format | |
37953 | msgid "Syntax error in EQUIVALENCE statement at %L" | |
37954 | msgstr "Error sintáctico en la declaración EQUIVALENCE en %L" | |
37955 | ||
37956 | -#: fortran/resolve.c:13539 | |
37957 | +#: fortran/resolve.c:13541 | |
37958 | #, gcc-internal-format, gfc-internal-format | |
37959 | msgid "Either all or none of the objects in the EQUIVALENCE set at %L shall have the PROTECTED attribute" | |
37960 | msgstr "Todos o ninguno de los objetos en el conjunto EQUIVALENCE en %L deben tener el atributo PROTECTED" | |
37961 | ||
37962 | -#: fortran/resolve.c:13551 | |
37963 | +#: fortran/resolve.c:13553 | |
37964 | #, gcc-internal-format, gfc-internal-format | |
37965 | msgid "Common block member '%s' at %L cannot be an EQUIVALENCE object in the pure procedure '%s'" | |
37966 | msgstr "El miembro de bloque común '%s' en %L no puede ser un objeto EQUIVALENCE en el procedimiento puro '%s'" | |
37967 | ||
37968 | -#: fortran/resolve.c:13560 | |
37969 | +#: fortran/resolve.c:13562 | |
37970 | #, gcc-internal-format, gfc-internal-format | |
37971 | msgid "Named constant '%s' at %L cannot be an EQUIVALENCE object" | |
37972 | msgstr "La constante nombrada '%s' en %L no puede ser un objeto EQUIVALENCE" | |
37973 | ||
37974 | -#: fortran/resolve.c:13639 | |
37975 | +#: fortran/resolve.c:13641 | |
37976 | #, gcc-internal-format, gfc-internal-format | |
37977 | msgid "Array '%s' at %L with non-constant bounds cannot be an EQUIVALENCE object" | |
37978 | msgstr "La matriz '%s' en %L con límites que no son constantes no puede ser un objeto EQUIVALENCE" | |
37979 | ||
37980 | -#: fortran/resolve.c:13650 | |
37981 | +#: fortran/resolve.c:13652 | |
37982 | #, gcc-internal-format, gfc-internal-format | |
37983 | msgid "Structure component '%s' at %L cannot be an EQUIVALENCE object" | |
37984 | msgstr "El componente de estructura '%s' en %L no puede ser un objeto EQUIVALENCE" | |
37985 | ||
37986 | -#: fortran/resolve.c:13661 | |
37987 | +#: fortran/resolve.c:13663 | |
37988 | #, gcc-internal-format, gfc-internal-format | |
37989 | msgid "Substring at %L has length zero" | |
37990 | msgstr "La subcadena en %L tiene longitud cero" | |
37991 | ||
37992 | -#: fortran/resolve.c:13704 | |
37993 | +#: fortran/resolve.c:13706 | |
37994 | #, gcc-internal-format, gfc-internal-format | |
37995 | msgid "Fortran 2003: PUBLIC function '%s' at %L of PRIVATE type '%s'" | |
37996 | msgstr "Fortran 2003: La función PUBLIC '%s' en %L es de tipo derivado PRIVATE '%s'" | |
37997 | ||
37998 | -#: fortran/resolve.c:13717 | |
37999 | +#: fortran/resolve.c:13719 | |
38000 | #, gcc-internal-format, gfc-internal-format | |
38001 | msgid "ENTRY '%s' at %L has no IMPLICIT type" | |
38002 | msgstr "ENTRY '%s' en %L no tiene tipo IMPLICIT" | |
38003 | ||
38004 | -#: fortran/resolve.c:13734 | |
38005 | +#: fortran/resolve.c:13736 | |
38006 | #, gcc-internal-format, gfc-internal-format | |
38007 | msgid "User operator procedure '%s' at %L must be a FUNCTION" | |
38008 | msgstr "El procedimiento de operador de usuario '%s' en %L debe ser FUNCTION" | |
38009 | ||
38010 | -#: fortran/resolve.c:13744 | |
38011 | +#: fortran/resolve.c:13746 | |
38012 | #, gcc-internal-format, gfc-internal-format | |
38013 | msgid "User operator procedure '%s' at %L cannot be assumed character length" | |
38014 | msgstr "El procedimiento de operador de usuario '%s' en %L no puede ser de longitud de carácter asumido" | |
38015 | ||
38016 | -#: fortran/resolve.c:13752 | |
38017 | +#: fortran/resolve.c:13754 | |
38018 | #, gcc-internal-format, gfc-internal-format | |
38019 | msgid "User operator procedure '%s' at %L must have at least one argument" | |
38020 | msgstr "El procedimiento de operador de usuario '%s' en %L debe tener al menos un argumento" | |
38021 | ||
38022 | -#: fortran/resolve.c:13766 | |
38023 | +#: fortran/resolve.c:13768 | |
38024 | #, gcc-internal-format, gfc-internal-format | |
38025 | msgid "First argument of operator interface at %L cannot be optional" | |
38026 | msgstr "El primer argumento de la interfaz de operador en %L no puede ser opcional" | |
38027 | ||
38028 | -#: fortran/resolve.c:13784 | |
38029 | +#: fortran/resolve.c:13786 | |
38030 | #, gcc-internal-format, gfc-internal-format | |
38031 | msgid "Second argument of operator interface at %L cannot be optional" | |
38032 | msgstr "El segundo argumento de la interfaz de operador en %L no puede ser opcional" | |
38033 | ||
38034 | -#: fortran/resolve.c:13791 | |
38035 | +#: fortran/resolve.c:13793 | |
38036 | #, gcc-internal-format, gfc-internal-format | |
38037 | msgid "Operator interface at %L must have, at most, two arguments" | |
38038 | msgstr "La interfaz de operador en %L debe tener, cuando mucho, dos argumentos" | |
38039 | ||
38040 | -#: fortran/resolve.c:13867 | |
38041 | +#: fortran/resolve.c:13869 | |
38042 | #, gcc-internal-format, gfc-internal-format | |
38043 | msgid "Contained procedure '%s' at %L of a PURE procedure must also be PURE" | |
38044 | msgstr "El procedimiento contenido '%s' en %L de un procedimiento PURE también debe ser PURE" | |
38045 | @@ -43008,34 +43003,34 @@ | |
38046 | msgid "Magnitude of second argument of ISHFTC exceeds BIT_SIZE of first argument at %L" | |
38047 | msgstr "La magnitud del segundo argumento de ISHFTC excede el BIT_SIZE del primer argumento en %L" | |
38048 | ||
38049 | -#: fortran/simplify.c:3448 fortran/simplify.c:3580 | |
38050 | +#: fortran/simplify.c:3451 fortran/simplify.c:3583 | |
38051 | #, gcc-internal-format, gfc-internal-format | |
38052 | msgid "DIM argument at %L is out of bounds" | |
38053 | msgstr "El argumento DIM en %L está fuera de los límites" | |
38054 | ||
38055 | -#: fortran/simplify.c:3751 | |
38056 | +#: fortran/simplify.c:3754 | |
38057 | #, gcc-internal-format, gfc-internal-format | |
38058 | msgid "Argument of LOG at %L cannot be less than or equal to zero" | |
38059 | msgstr "El argumento de LOG en %L no puede ser menor o igual a cero" | |
38060 | ||
38061 | -#: fortran/simplify.c:3764 | |
38062 | +#: fortran/simplify.c:3767 | |
38063 | #, gcc-internal-format, gfc-internal-format | |
38064 | msgid "Complex argument of LOG at %L cannot be zero" | |
38065 | msgstr "El argumento complejo de LOG en %L no puede ser cero" | |
38066 | ||
38067 | -#: fortran/simplify.c:3792 | |
38068 | +#: fortran/simplify.c:3795 | |
38069 | #, gcc-internal-format, gfc-internal-format | |
38070 | msgid "Argument of LOG10 at %L cannot be less than or equal to zero" | |
38071 | msgstr "El argumento de LOG10 en %L no puede ser menor o igual a cero" | |
38072 | ||
38073 | #. Result is processor-dependent. | |
38074 | -#: fortran/simplify.c:4240 | |
38075 | +#: fortran/simplify.c:4243 | |
38076 | #, gcc-internal-format, gfc-internal-format | |
38077 | msgid "Second argument MOD at %L is zero" | |
38078 | msgstr "El segundo argumento MOD en %L es cero" | |
38079 | ||
38080 | #. Result is processor-dependent. | |
38081 | -#: fortran/simplify.c:4251 | |
38082 | +#: fortran/simplify.c:4254 | |
38083 | #, gcc-internal-format, gfc-internal-format | |
38084 | msgid "Second argument of MOD at %L is zero" | |
38085 | msgstr "El segundo argumento de MOD en %L es cero" | |
38086 | @@ -43043,47 +43038,47 @@ | |
38087 | #. Result is processor-dependent. This processor just opts | |
38088 | #. to not handle it at all. | |
38089 | #. Result is processor-dependent. | |
38090 | -#: fortran/simplify.c:4293 fortran/simplify.c:4305 | |
38091 | +#: fortran/simplify.c:4296 fortran/simplify.c:4308 | |
38092 | #, gcc-internal-format, gfc-internal-format | |
38093 | msgid "Second argument of MODULO at %L is zero" | |
38094 | msgstr "El segundo argumento de MODULO en %L es cero" | |
38095 | ||
38096 | -#: fortran/simplify.c:4380 | |
38097 | +#: fortran/simplify.c:4383 | |
38098 | #, gcc-internal-format, gfc-internal-format | |
38099 | msgid "Result of NEAREST is NaN at %L" | |
38100 | msgstr "El resultado de NEAREST es NaN en %L" | |
38101 | ||
38102 | -#: fortran/simplify.c:4844 | |
38103 | +#: fortran/simplify.c:4847 | |
38104 | #, gcc-internal-format, gfc-internal-format | |
38105 | msgid "Argument NCOPIES of REPEAT intrinsic is negative at %L" | |
38106 | msgstr "El argumento NCOPIES del intrínseco REPEAT es negativo en %L" | |
38107 | ||
38108 | -#: fortran/simplify.c:4899 | |
38109 | +#: fortran/simplify.c:4902 | |
38110 | #, gcc-internal-format, gfc-internal-format | |
38111 | msgid "Argument NCOPIES of REPEAT intrinsic is too large at %L" | |
38112 | msgstr "El argumento NCOPIES del intrínseco REPEAT es demasiado grande en %L" | |
38113 | ||
38114 | -#: fortran/simplify.c:5151 | |
38115 | +#: fortran/simplify.c:5154 | |
38116 | #, gcc-internal-format, gfc-internal-format | |
38117 | msgid "Result of SCALE overflows its kind at %L" | |
38118 | msgstr "El resultado de SCALE desborda su género en %L" | |
38119 | ||
38120 | -#: fortran/simplify.c:5862 | |
38121 | +#: fortran/simplify.c:5865 | |
38122 | #, gcc-internal-format, gfc-internal-format | |
38123 | msgid "Argument of SQRT at %L has a negative value" | |
38124 | msgstr "El argumento de SQRT en %L tiene un valor negativo" | |
38125 | ||
38126 | -#: fortran/simplify.c:6173 | |
38127 | +#: fortran/simplify.c:6176 | |
38128 | #, gcc-internal-format, gfc-internal-format | |
38129 | msgid "Out of bounds in IMAGE_INDEX at %L for dimension %d, SUB has %ld and COARRAY lower bound is %ld)" | |
38130 | msgstr "Fuera de límites en IMAGE_INDEX en %L para la dimensión %d, SUB tiene %ld y el límite inferior de COARRAY es %ld)" | |
38131 | ||
38132 | -#: fortran/simplify.c:6196 | |
38133 | +#: fortran/simplify.c:6199 | |
38134 | #, gcc-internal-format, gfc-internal-format | |
38135 | msgid "Out of bounds in IMAGE_INDEX at %L for dimension %d, SUB has %ld and COARRAY upper bound is %ld)" | |
38136 | msgstr "Fuera de límites en IMAGE_INDEX en %L para la dimensión %d, SUB tiene %ld y el límite superior de COARRAY es %ld)" | |
38137 | ||
38138 | -#: fortran/simplify.c:6613 | |
38139 | +#: fortran/simplify.c:6616 | |
38140 | #, gcc-internal-format, gfc-internal-format | |
38141 | msgid "Character '%s' in string at %L cannot be converted into character kind %d" | |
38142 | msgstr "El carácter '%s' en la cadena en %L no se puede convertir al género de carácter %d" | |
38143 | @@ -43452,17 +43447,17 @@ | |
38144 | msgid "BOZ constant at %L is too large (%ld vs %ld bits)" | |
38145 | msgstr "La constante BOZ en %L es demasiado grande (%ld vs %ld bits)" | |
38146 | ||
38147 | -#: fortran/trans-array.c:7003 | |
38148 | +#: fortran/trans-array.c:6997 | |
38149 | #, gcc-internal-format, gfc-internal-format | |
38150 | msgid "Creating array temporary at %L for argument '%s'" | |
38151 | msgstr "Se crea una matriz temporal en %L para el argumento '%s'" | |
38152 | ||
38153 | -#: fortran/trans-array.c:8129 | |
38154 | +#: fortran/trans-array.c:8123 | |
38155 | #, gcc-internal-format | |
38156 | msgid "Possible front-end bug: Deferred array size without pointer, allocatable attribute or derived type without allocatable components." | |
38157 | msgstr "Posible bicho del frente: Tamaño de matriz diferido sin atributo pointer, allocatable o tipo derivado sin componentes allocatable." | |
38158 | ||
38159 | -#: fortran/trans-array.c:8626 | |
38160 | +#: fortran/trans-array.c:8620 | |
38161 | #, gcc-internal-format, gfc-internal-format | |
38162 | msgid "bad expression type during walk (%d)" | |
38163 | msgstr "tipo de expresión errónea durante la caminata (%d)" | |
38164 | @@ -44072,17 +44067,17 @@ | |
38165 | msgid "could not parse hex number" | |
38166 | msgstr "no se puede decodificar el número hexadecimal" | |
38167 | ||
38168 | -#: lto/lto.c:1010 | |
38169 | +#: lto/lto.c:1009 | |
38170 | #, gcc-internal-format, gfc-internal-format | |
38171 | msgid "unexpected file name %s in linker resolution file. Expected %s" | |
38172 | msgstr "nombre de fichero inesperado %s en el fichero de resolución de enlace. Se esperaba %s" | |
38173 | ||
38174 | -#: lto/lto.c:1019 | |
38175 | +#: lto/lto.c:1018 | |
38176 | #, gcc-internal-format | |
38177 | msgid "could not parse file offset" | |
38178 | msgstr "no se puede abrir el fichero de desplazamiento" | |
38179 | ||
38180 | -#: lto/lto.c:1022 | |
38181 | +#: lto/lto.c:1021 | |
38182 | #, gcc-internal-format | |
38183 | msgid "unexpected offset" | |
38184 | msgstr "desplazamiento inesperado" | |
38185 | @@ -44092,67 +44087,67 @@ | |
38186 | msgid "invalid line in the resolution file" | |
38187 | msgstr "línea inválida en el fichero de resolución" | |
38188 | ||
38189 | -#: lto/lto.c:1056 | |
38190 | +#: lto/lto.c:1054 | |
38191 | #, gcc-internal-format | |
38192 | msgid "invalid resolution in the resolution file" | |
38193 | msgstr "resolución inválida en el fichero de resolución" | |
38194 | ||
38195 | -#: lto/lto.c:1062 | |
38196 | +#: lto/lto.c:1060 | |
38197 | #, gcc-internal-format | |
38198 | msgid "resolution sub id " | |
38199 | msgstr "sub id de resolución" | |
38200 | ||
38201 | -#: lto/lto.c:1157 | |
38202 | +#: lto/lto.c:1169 | |
38203 | #, gcc-internal-format, gfc-internal-format | |
38204 | msgid "cannot read LTO decls from %s" | |
38205 | msgstr "no se pueden leer las decls LTO de %s" | |
38206 | ||
38207 | -#: lto/lto.c:1261 | |
38208 | +#: lto/lto.c:1274 | |
38209 | #, gcc-internal-format, gfc-internal-format | |
38210 | msgid "Cannot open %s" | |
38211 | msgstr "No se puede abrir %s" | |
38212 | ||
38213 | -#: lto/lto.c:1282 | |
38214 | +#: lto/lto.c:1295 | |
38215 | #, gcc-internal-format, gfc-internal-format | |
38216 | msgid "Cannot map %s" | |
38217 | msgstr "No se puede mapear %s" | |
38218 | ||
38219 | -#: lto/lto.c:1293 | |
38220 | +#: lto/lto.c:1306 | |
38221 | #, gcc-internal-format, gfc-internal-format | |
38222 | msgid "Cannot read %s" | |
38223 | msgstr "No se puede leer %s" | |
38224 | ||
38225 | -#: lto/lto.c:2272 | |
38226 | +#: lto/lto.c:2285 | |
38227 | #, gcc-internal-format | |
38228 | msgid "no LTRANS output list filename provided" | |
38229 | msgstr "no se proporcionó el nombre de fichero de lista de salida TRANS" | |
38230 | ||
38231 | -#: lto/lto.c:2275 | |
38232 | +#: lto/lto.c:2288 | |
38233 | #, gcc-internal-format | |
38234 | msgid "opening LTRANS output list %s: %m" | |
38235 | msgstr "se abre la lista de salida LTRANS %s: %m" | |
38236 | ||
38237 | -#: lto/lto.c:2321 | |
38238 | +#: lto/lto.c:2334 | |
38239 | #, gcc-internal-format | |
38240 | msgid "lto_obj_file_open() failed" | |
38241 | msgstr "falló lto_obj_file_open()" | |
38242 | ||
38243 | -#: lto/lto.c:2347 | |
38244 | +#: lto/lto.c:2360 | |
38245 | #, gcc-internal-format | |
38246 | msgid "writing to LTRANS output list %s: %m" | |
38247 | msgstr "se escribe a la lista de salida LTRANS %s: %m" | |
38248 | ||
38249 | -#: lto/lto.c:2355 | |
38250 | +#: lto/lto.c:2368 | |
38251 | #, gcc-internal-format | |
38252 | msgid "closing LTRANS output list %s: %m" | |
38253 | msgstr "se cierra la lista de salida LTRANS %s: %m" | |
38254 | ||
38255 | -#: lto/lto.c:2582 | |
38256 | +#: lto/lto.c:2595 | |
38257 | #, gcc-internal-format | |
38258 | msgid "could not open symbol resolution file: %m" | |
38259 | msgstr "no se puede abrir el fichero de resolución de símbolos: %m" | |
38260 | ||
38261 | -#: lto/lto.c:2657 | |
38262 | +#: lto/lto.c:2670 | |
38263 | #, gcc-internal-format | |
38264 | msgid "errors during merging of translation units" | |
38265 | msgstr "errores durante la mezcla de unidades de traducción" | |
38266 | @@ -45092,6 +45087,12 @@ | |
38267 | msgid "creating selector for nonexistent method %qE" | |
38268 | msgstr "se crea un selector para el método %qE que no existe" | |
38269 | ||
38270 | +#~ msgid "invalid unsafe.Pointer conversion" | |
38271 | +#~ msgstr "conversión unsafe.Pointer inválida" | |
38272 | + | |
38273 | +#~ msgid "both %<const%> and %<constexpr%> cannot be used here" | |
38274 | +#~ msgstr "no se pueden usar aquí %<const%> ni %<constexpr%>" | |
38275 | + | |
38276 | #~ msgid "floating point constant truncated to integer" | |
38277 | #~ msgstr "se truncó la constante de coma flotante a entero" | |
38278 | ||
38279 | Index: gcc/po/fr.po | |
38280 | =================================================================== | |
9f95000d AM |
38281 | --- gcc/po/fr.po (.../tags/gcc_4_7_2_release) (wersja 192468) |
38282 | +++ gcc/po/fr.po (.../branches/gcc-4_7-branch) (wersja 192468) | |
5a87b929 AM |
38283 | @@ -121,7 +121,7 @@ |
38284 | msgstr "" | |
38285 | "Project-Id-Version: GNU gcc 3.4.3\n" | |
38286 | "Report-Msgid-Bugs-To: http://gcc.gnu.org/bugs.html\n" | |
38287 | -"POT-Creation-Date: 2012-06-13 21:42+0000\n" | |
38288 | +"POT-Creation-Date: 2012-09-19 14:50+0000\n" | |
38289 | "PO-Revision-Date: 2008-04-23 19:30+0000\n" | |
38290 |