dangling pointer, 225, 463, 491
undefined behavior, 463
data hiding, 270
data member, see class data member
deallocate
, allocator
, 483, 528
debug_rep
program
additional nontemplate versions, 698
general template version, 695
nontemplate version, 697
pointer template version, 696
DebugDelete
, member template, 673
dec
, manipulator, 754
decimal, literal, 38
class template, 669
class type, variable, 294
compound type, 57
dependencies
member function as friend, 281
overloaded templates, 698
template friends, 665
template instantiation, 657
template specializations, 708
variadic templates, 702
derived class, 600
explicit instantiation, 675
friend, 269
function template, 669
instantiation, 713
member template, 673
template, 669
template specialization, 708
type alias, 68
access control, 615
overloaded inherited functions, 621
variable, 45
const
, 60
array return type, 230
depends on form, 71
of array, 118
of function, 250
pointer to function, 249
top-level
const
, 71
adding default arguments, 237
and header file, 238
constructor, 290
default constructor, 291
function call, 236
function matching, 243
initializer, 238
static
member, 304
virtual function, 607
= default
, 265
= delete
, 507
default argument, 291
Sales_data
, 262
StrVec
, 526
derived class, 623
Token
, 850
used implicitly
default initialization, 293
value initialization, 293
default initialization, 43
array
, 336
built-in type, 43
class type, 44
uses default constructor, 293
vector
, 97
default template argument, 670
class template, 671
compare
, 670
function template, 670
template<>
, 671
default_random_engine
, 745, 769
defaultfloat
manipulator, 757
definition, 79
array, 113
associative container, 423
base class, 594
class template, 659
member function, 661
static
member, 667
class template partial specialization, 711
derived class, 596
dynamically allocated object, 459
explicit instantiation, 675
function
, 577
in
if
condition, 175
in
while
condition, 183
instantiation, 713
multidimensional array, 126
namespace, 785
can be discontiguous, 786
member, 788
pair
, 426
pointer, 52
pointer to function, 247
pointer to member, 836
reference, 51
sequential container, 334
shared_ptr
, 450
static
member, 302
string
, 84
const
, 60
variable after case label, 182
vector
, 97
weak_ptr
, 473
delegating constructor, 291, 306
const
object, 461
execution flow, 820
memory leak, 462
null pointer, 461
pointer, 460
runs destructor, 502
delete[]
, dynamically allocated array, 478
deprecated, 401
auto_ptr
, 471
binary_function
, 579
bind1st
, 401
bind2nd
, 401
generalized exception specification, 780
ptr_fun
, 401
unary_function
, 579
deque
, 372
see also container, container member
see also sequential container
[]
(subscript), 347
at
, 348
header, 329
list initialization, 336
overview, 327
push_back
, invalidates iterator, 354
push_front
, invalidates iterator, 354
random-access iterator, 412
value initialization, 336
deref
, StrBlobPtr
, 475
see also virtual function
::
(scope operator) to access base-class member, 607
=
(assignment), 626
access control, 613
as base class, 600
assgined or copied to base object, 603
base-to-derived conversion, not automatic, 602
constructor, 598
initializer list, 598
initializes direct base class, 610
initializes virtual base, 813
copy assignment, 626
copy constructor, 626
declaration, 600
default derivation specifier, 616
definition, 596
access control, 612
derived object
contains base part, 597
multiple inheritance, 803
derived-to-base conversion, 597
accessibility, 613
key concepts, 604
multiple inheritance, 805
destructor, 627
final
, 600
friendship not inherited, 615
is user of base class, 614
member new and delete, 822
move assignment, 626
move constructor, 626
multiple inheritance, 803
name lookup, 617
order of destruction, 627
multiple inheritance, 805
multiple inheritance, 804
virtual base classes, 814
scope, 617
hidden base members, 619
multiple inheritance, 807
name lookup, 618
virtual function, 620
static
members, 599
synthesized
copy control members, 623
deleted copy control members, 624
using
declaration
access control, 615
overloaded inherited functions, 621
virtual function, 596
derived-to-base conversion, 597, 649
accessible, 613
key concepts, 604
multiple inheritance, 805
not base-to-derived, 602
shared_ptr
, 630
design
access control, 614
Bulk_quote
, 592
conversion operator, 581
Disc_quote
, 608
equality and relational operators, 562
generic programs, 655
inheritance, 637
Message
class, 520
namespace, 786
Quote
, 592
reference count, 514
StrVec
, 525
destination sequence, 381, 413
destructor, 452, 491, 501, 501–503, 549
= default
, 506
called during exception handling, 773
calls to virtual function, 627
container elements, 502
derived class, 627
doesn’t delete pointer mambers, 503
explicit call to, 824
HasPtr
reference counted, 515
valuelike, 512
local variables, 502
Message
, 522
not deleted function, 508
not
private
, 509
order of destruction, 502
derived class, 627
multiple inheritance, 805
virtual base classes, 815
reference count, 514
rule of three/five, 505
virtual destructor, exception, 622
run by
delete
, 502
shared_ptr
, 453
should not throw exception, 774
StrVec
, 528
derived class, 623
multiple inheritance, 805
Token
, 850
valuelike class, 512
virtual function, 622
virtual in base class, 622
development environment, integrated, 3
difference_type
, 112
vector
, 112
string
, 112
direct base class, 600
direct initialization, 84, 131
emplace
members use, 345
Disc_quote
abstract base class, 610
class definition, 609
constructor, 609
design, 608
Token
, 850
distribution types
bernoulli_distribution
, 752
default template argument, 750
normal_distribution
, 751
random-number library, 745
uniform_int_distribution
, 746
uniform_real_distribution
, 750
divides<T>
, 575
division rounding, 141
domain_error
, 197
double
, 33
literal (num
E
num or nume
num), 38
output format, 755
output notation, 757
requirements for, 603
static vs. dynamic type, 605
dynamic_cast
, 163, 825, 825, 862
bad_cast
, 826
to pointer, 825
to reference, 826
dynamically allocated, 450, 491
allocator
, 481
can’t use
begin
andend
, 477
can’t use range
for
statement, 477
delete[]
, 478
empty array, 478
new[]
, 477
returns pointer to an element, 477
shared_ptr
, 480
unique_ptr
, 479
delete
runs destructor, 502
lifetime, 450
new
runs constructor, 458
const
object, 460
delete
, 460
factory
program, 461
initialization, 459
make_shared
, 451
new
, 458
shared_ptr
, 464
unique_ptr
, 470