D
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, 304virtual function, 607
= default
, 265= delete
, 507default argument, 291
Sales_data
, 262StrVec
, 526derived class, 623
Token
, 850used implicitly
default initialization, 293
value initialization, 293
default initialization, 43
default template argument, 670
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, 667class template partial specialization, 711
derived class, 596
dynamically allocated object, 459
explicit instantiation, 675
function
, 577in
if
condition, 175in
while
condition, 183instantiation, 713
multidimensional array, 126
namespace, 785
can be discontiguous, 786
member, 788
pair
, 426pointer, 52
pointer to function, 247
pointer to member, 836
reference, 51
sequential container, 334
shared_ptr
, 450static
member, 302string
, 84const
, 60variable after case label, 182
vector
, 97weak_ptr
, 473
delegating constructor, 291, 306
const
object, 461execution flow, 820
memory leak, 462
null pointer, 461
pointer, 460
runs destructor, 502
delete[]
, dynamically allocated array, 478
deprecated, 401
auto_ptr
, 471binary_function
, 579bind1st
, 401bind2nd
, 401generalized exception specification, 780
ptr_fun
, 401unary_function
, 579
deque
, 372
see alsocontainer, container member
see alsosequential container
[]
(subscript), 347at
, 348header, 329
list initialization, 336
overview, 327
push_back
, invalidates iterator, 354push_front
, invalidates iterator, 354random-access iterator, 412
value initialization, 336
deref
, StrBlobPtr
, 475
see alsovirtual function
::
(scope operator) to access base-class member, 607=
(assignment), 626access 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
, 600friendship 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, 599synthesized
copy control members, 623
deleted copy control members, 624
using
declarationaccess control, 615
overloaded inherited functions, 621
virtual function, 596
derived-to-base conversion, 597, 649
design
access control, 614
Bulk_quote
, 592conversion operator, 581
Disc_quote
, 608equality and relational operators, 562
generic programs, 655
inheritance, 637
Message
class, 520namespace, 786
Quote
, 592reference count, 514
StrVec
, 525
destination sequence, 381, 413
destructor, 452, 491, 501, 501–503, 549
= default
, 506called 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
, 522not deleted function, 508
not
private
, 509order 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
, 502shared_ptr
, 453should not throw exception, 774
StrVec
, 528derived class, 623
multiple inheritance, 805
Token
, 850valuelike class, 512
virtual function, 622
virtual in base class, 622
development environment, integrated, 3
difference_type
, 112
direct base class, 600
direct initialization, 84, 131
emplace
members use, 345
Disc_quote
Token
, 850
distribution types
bernoulli_distribution
, 752default template argument, 750
normal_distribution
, 751random-number library, 745
uniform_int_distribution
, 746uniform_real_distribution
, 750
divides<T>
, 575
division rounding, 141
domain_error
, 197
double
, 33
dynamic_cast
, 163, 825, 825, 862
dynamically allocated, 450, 491
allocator
, 481can’t use
begin
andend
, 477can’t use range
for
statement, 477delete[]
, 478empty array, 478
new[]
, 477returns pointer to an element, 477
shared_ptr
, 480unique_ptr
, 479delete
runs destructor, 502lifetime, 450
new
runs constructor, 458const
object, 460delete
, 460factory
program, 461initialization, 459
make_shared
, 451new
, 458shared_ptr
, 464unique_ptr
, 470