commit
94ce52d46c
8 changed files with 15 additions and 15 deletions
|
@ -1578,7 +1578,7 @@ decay_t<T> c_inner_product(const Sequence1& factors1, const Sequence2& factors2,
|
|||
}
|
||||
|
||||
// Overload of c_inner_product() for using binary operations other than
|
||||
// `operator+` (for computing the accumlation) and `operator*` (for computing
|
||||
// `operator+` (for computing the accumulation) and `operator*` (for computing
|
||||
// the product between the two container's element pair).
|
||||
template <typename Sequence1, typename Sequence2, typename T,
|
||||
typename BinaryOp1, typename BinaryOp2>
|
||||
|
|
|
@ -123,7 +123,7 @@ inline To implicit_cast(typename absl::internal::identity_t<To> to) {
|
|||
//
|
||||
// Such casting results in type punning: holding an object in memory of one type
|
||||
// and reading its bits back using a different type. A `bit_cast()` avoids this
|
||||
// issue by implementating its casts using `memcpy()`, which avoids introducing
|
||||
// issue by implementing its casts using `memcpy()`, which avoids introducing
|
||||
// this undefined behavior.
|
||||
template <typename Dest, typename Source>
|
||||
inline Dest bit_cast(const Source& source) {
|
||||
|
|
|
@ -299,7 +299,7 @@
|
|||
// family of functions as standardized in POSIX.1-2001.
|
||||
//
|
||||
// Note: While Apple provides <semaphore.h> for both iOS and macOS, it is
|
||||
// explicity deprecated and will cause build failures if enabled for those
|
||||
// explicitly deprecated and will cause build failures if enabled for those
|
||||
// platforms. We side-step the issue by not defining it here for Apple
|
||||
// platforms.
|
||||
#ifdef ABSL_HAVE_SEMAPHORE_H
|
||||
|
|
|
@ -549,7 +549,7 @@ class InlinedVector {
|
|||
}
|
||||
|
||||
// Overload of InlinedVector::erase() for erasing all elements in the
|
||||
// iteraror range [first, last) in the inlined vector, returning an iterator
|
||||
// iterator range [first, last) in the inlined vector, returning an iterator
|
||||
// pointing to the first element following the range erased, or the
|
||||
// container's end if range included the container's last element.
|
||||
iterator erase(const_iterator first, const_iterator last);
|
||||
|
|
|
@ -73,7 +73,7 @@ struct default_alignment_of_aligned_storage<Len,
|
|||
// `std::void_t` metafunction.
|
||||
//
|
||||
// NOTE: `absl::void_t` does not use the standard-specified implementation so
|
||||
// that it can remain compatibile with gcc < 5.1. This can introduce slightly
|
||||
// that it can remain compatible with gcc < 5.1. This can introduce slightly
|
||||
// different behavior, such as when ordering partial specializations.
|
||||
template <typename... Ts>
|
||||
using void_t = typename type_traits_internal::VoidTImpl<Ts...>::type;
|
||||
|
@ -194,7 +194,7 @@ struct is_trivially_destructible
|
|||
// LWG issue 2116: http://cplusplus.github.io/LWG/lwg-active.html#2116.
|
||||
//
|
||||
// "T obj();" need to be well-formed and not call any nontrivial operation.
|
||||
// Nontrivally destructible types will cause the expression to be nontrivial.
|
||||
// Nontrivially destructible types will cause the expression to be nontrivial.
|
||||
template <typename T>
|
||||
struct is_trivially_default_constructible
|
||||
: std::integral_constant<bool, __has_trivial_constructor(T) &&
|
||||
|
@ -225,7 +225,7 @@ struct is_trivially_default_constructible
|
|||
// implementation.
|
||||
//
|
||||
// NOTE: `T obj(declval<const T&>());` needs to be well-formed and not call any
|
||||
// nontrivial operation. Nontrivally destructible types will cause the
|
||||
// nontrivial operation. Nontrivially destructible types will cause the
|
||||
// expression to be nontrivial.
|
||||
template <typename T>
|
||||
struct is_trivially_copy_constructible
|
||||
|
|
|
@ -34,7 +34,7 @@
|
|||
// `ascii_iscntrl()`, `ascii_isdigit()`, `ascii_isgraph()`, `ascii_islower()`,
|
||||
// `ascii_isprint()`, `ascii_ispunct()`, `ascii_isspace()`, `ascii_isupper()`,
|
||||
// `ascii_isxdigit()`
|
||||
// Analagous to the <ctype.h> functions with similar names, these
|
||||
// Analogous to the <ctype.h> functions with similar names, these
|
||||
// functions take an unsigned char and return a bool, based on whether the
|
||||
// character matches the condition specified.
|
||||
//
|
||||
|
@ -42,7 +42,7 @@
|
|||
// functions return `false`.
|
||||
//
|
||||
// `ascii_tolower()`, `ascii_toupper()`
|
||||
// Analagous to the <ctype.h> functions with similar names, these functions
|
||||
// Analogous to the <ctype.h> functions with similar names, these functions
|
||||
// take an unsigned char and return a char.
|
||||
//
|
||||
// If the input character is not an ASCII {lower,upper}-case letter (including
|
||||
|
|
|
@ -193,13 +193,13 @@ ValueType* any_cast(any* operand) noexcept;
|
|||
// auto c = absl::any(std::move(my_foo)); // Error, not copy-constructable
|
||||
//
|
||||
// Note that `absl::any` makes use of decayed types (`absl::decay_t` in this
|
||||
// context) to remove const-volative qualifiers (known as "cv qualifiers"),
|
||||
// context) to remove const-volatile qualifiers (known as "cv qualifiers"),
|
||||
// decay functions to function pointers, etc. We essentially "decay" a given
|
||||
// type into its essential type.
|
||||
//
|
||||
// `absl::any` makes use of decayed types when determing the basic type `T` of
|
||||
// `absl::any` makes use of decayed types when determining the basic type `T` of
|
||||
// the value to store in the any's contained object. In the documentation below,
|
||||
// we explcitly denote this by using the phrase "a decayed type of `T`".
|
||||
// we explicitly denote this by using the phrase "a decayed type of `T`".
|
||||
//
|
||||
// Example:
|
||||
//
|
||||
|
@ -324,7 +324,7 @@ class any {
|
|||
// Overload of `any::emplace()` to emplace a value within an `absl::any`
|
||||
// object by calling `any::reset()`, initializing the contained value as if
|
||||
// direct-non-list-initializing an object of type `VT` with the arguments
|
||||
// `initilizer_list, std::forward<Args>(args)...`, and returning a reference
|
||||
// `initializer_list, std::forward<Args>(args)...`, and returning a reference
|
||||
// to the new contained value.
|
||||
//
|
||||
// Note: If an exception is thrown during the call to `VT`'s constructor,
|
||||
|
@ -356,7 +356,7 @@ class any {
|
|||
// Swaps the passed value and the value of this `absl::any` object.
|
||||
void swap(any& other) noexcept { obj_.swap(other.obj_); }
|
||||
|
||||
// Observors
|
||||
// Observers
|
||||
|
||||
// any::has_value()
|
||||
//
|
||||
|
|
|
@ -224,7 +224,7 @@ using EnableIfConvertibleToSpanConst =
|
|||
// point to remains alive, must also ensure that such memory does not get
|
||||
// reallocated. Therefore, to avoid undefined behavior, containers with
|
||||
// associated span views should not invoke operations that may reallocate memory
|
||||
// (such as resizing) or invalidate iterarors into the container.
|
||||
// (such as resizing) or invalidate iterators into the container.
|
||||
//
|
||||
// One common use for a `Span` is when passing arguments to a routine that can
|
||||
// accept a variety of array types (e.g. a `std::vector`, `absl::InlinedVector`,
|
||||
|
|
Loading…
Reference in a new issue