[#absl-operator_lshift-03b]
= xref:absl.adoc[absl]::operator&lt;&lt;
:relfileprefix: ../
:mrdocs:

Left shift operators

== Synopses

Declared in `&lt;absl&sol;base&sol;log&lowbar;severity&period;h&gt;`

Prints a human&hyphen;readable representation of `x` to `os`&period;


[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
std::ostream&
xref:absl/operator_lshift-0ecf.adoc[operator&lt;&lt;](
    std::ostream& os,
    xref:absl/Status.adoc[Status] const& x);
----

[.small]#xref:absl/operator_lshift-0ecf.adoc[_» more&period;&period;&period;_]#

Writes the distribution to an output stream&period;


[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;
    typename CharT,
    typename Traits,
    typename IntType&gt;
std::basic&lowbar;ostream&lt;CharT, Traits&gt;&
xref:absl/operator_lshift-0d4.adoc[operator&lt;&lt;](
    std::basic&lowbar;ostream&lt;CharT, Traits&gt;& os,
    xref:absl/discrete_distribution.adoc[discrete&lowbar;distribution&lt;IntType&gt;] const& x);
----

[.small]#xref:absl/operator_lshift-0d4.adoc[_» more&period;&period;&period;_]#

Writes the distribution to an output stream&period;


[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;
    typename CharT,
    typename Traits,
    typename IntType&gt;
std::basic&lowbar;ostream&lt;CharT, Traits&gt;&
xref:absl/operator_lshift-03c.adoc[operator&lt;&lt;](
    std::basic&lowbar;ostream&lt;CharT, Traits&gt;& os,
    xref:absl/log_uniform_int_distribution.adoc[log&lowbar;uniform&lowbar;int&lowbar;distribution&lt;IntType&gt;] const& x);
----

[.small]#xref:absl/operator_lshift-03c.adoc[_» more&period;&period;&period;_]#

Writes the distribution to an output stream&period;


[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;
    typename CharT,
    typename Traits,
    typename RealType&gt;
std::basic&lowbar;ostream&lt;CharT, Traits&gt;&
xref:absl/operator_lshift-025.adoc[operator&lt;&lt;](
    std::basic&lowbar;ostream&lt;CharT, Traits&gt;& os,
    xref:absl/gaussian_distribution.adoc[gaussian&lowbar;distribution&lt;RealType&gt;] const& x);
----

[.small]#xref:absl/operator_lshift-025.adoc[_» more&period;&period;&period;_]#

Writes the distribution to an output stream&period;


[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;
    typename CharT,
    typename Traits,
    typename RealType&gt;
std::basic&lowbar;ostream&lt;CharT, Traits&gt;&
xref:absl/operator_lshift-0db.adoc[operator&lt;&lt;](
    std::basic&lowbar;ostream&lt;CharT, Traits&gt;& os,
    xref:absl/exponential_distribution.adoc[exponential&lowbar;distribution&lt;RealType&gt;] const& x);
----

[.small]#xref:absl/operator_lshift-0db.adoc[_» more&period;&period;&period;_]#

Writes the distribution to an output stream&period;


[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;
    typename CharT,
    typename Traits,
    typename RealType&gt;
std::basic&lowbar;ostream&lt;CharT, Traits&gt;&
xref:absl/operator_lshift-023.adoc[operator&lt;&lt;](
    std::basic&lowbar;ostream&lt;CharT, Traits&gt;& os,
    xref:absl/beta_distribution.adoc[beta&lowbar;distribution&lt;RealType&gt;] const& x);
----

[.small]#xref:absl/operator_lshift-023.adoc[_» more&period;&period;&period;_]#

Writes the distribution to an output stream&period;


[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;
    typename CharT,
    typename Traits&gt;
std::basic&lowbar;ostream&lt;CharT, Traits&gt;&
xref:absl/operator_lshift-022.adoc[operator&lt;&lt;](
    std::basic&lowbar;ostream&lt;CharT, Traits&gt;& os,
    xref:absl/bernoulli_distribution.adoc[bernoulli&lowbar;distribution] const& x);
----

[.small]#xref:absl/operator_lshift-022.adoc[_» more&period;&period;&period;_]#

Writes the distribution to an output stream&period;


[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;
    typename CharT,
    typename Traits,
    typename IntType&gt;
std::basic&lowbar;ostream&lt;CharT, Traits&gt;&
xref:absl/operator_lshift-07a.adoc[operator&lt;&lt;](
    std::basic&lowbar;ostream&lt;CharT, Traits&gt;& os,
    xref:absl/poisson_distribution.adoc[poisson&lowbar;distribution&lt;IntType&gt;] const& x);
----

[.small]#xref:absl/operator_lshift-07a.adoc[_» more&period;&period;&period;_]#

Writes the distribution to an output stream&period;


[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;
    typename CharT,
    typename Traits,
    typename IntType&gt;
std::basic&lowbar;ostream&lt;CharT, Traits&gt;&
xref:absl/operator_lshift-0b7.adoc[operator&lt;&lt;](
    std::basic&lowbar;ostream&lt;CharT, Traits&gt;& os,
    xref:absl/uniform_int_distribution.adoc[uniform&lowbar;int&lowbar;distribution&lt;IntType&gt;] const& x);
----

[.small]#xref:absl/operator_lshift-0b7.adoc[_» more&period;&period;&period;_]#

Writes the distribution to an output stream&period;


[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;
    typename CharT,
    typename Traits,
    typename IntType&gt;
std::basic&lowbar;ostream&lt;CharT, Traits&gt;&
xref:absl/operator_lshift-008.adoc[operator&lt;&lt;](
    std::basic&lowbar;ostream&lt;CharT, Traits&gt;& os,
    xref:absl/zipf_distribution.adoc[zipf&lowbar;distribution&lt;IntType&gt;] const& x);
----

[.small]#xref:absl/operator_lshift-008.adoc[_» more&period;&period;&period;_]#

Writes the distribution to an output stream&period;


[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;
    typename CharT,
    typename Traits,
    typename RealType&gt;
std::basic&lowbar;ostream&lt;CharT, Traits&gt;&
xref:absl/operator_lshift-0a.adoc[operator&lt;&lt;](
    std::basic&lowbar;ostream&lt;CharT, Traits&gt;& os,
    xref:absl/uniform_real_distribution.adoc[uniform&lowbar;real&lowbar;distribution&lt;RealType&gt;] const& x);
----

[.small]#xref:absl/operator_lshift-0a.adoc[_» more&period;&period;&period;_]#

Implicitly converts `builder` to `Status` and writes it to `os`&period;


[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
std::ostream&
xref:absl/operator_lshift-0e0.adoc[operator&lt;&lt;](
    std::ostream& os,
    xref:absl/StatusBuilder.adoc[StatusBuilder]&& builder);
----

[.small]#xref:absl/operator_lshift-0e0.adoc[_» more&period;&period;&period;_]#

Implicitly converts `builder` to `Status` and writes it to `os`&period;


[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
std::ostream&
xref:absl/operator_lshift-079.adoc[operator&lt;&lt;](
    std::ostream& os,
    xref:absl/StatusBuilder.adoc[StatusBuilder] const& builder);
----

[.small]#xref:absl/operator_lshift-079.adoc[_» more&period;&period;&period;_]#

Prints the `value` or the status in brackets to `os`&period;


[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;typename T&gt;
requires absl&colon;&colon;HasOstreamOperator&lt;T&gt;&colon;&colon;value
std::ostream&
xref:absl/operator_lshift-0ca.adoc[operator&lt;&lt;](
    std::ostream& os,
    xref:absl/StatusOr.adoc[StatusOr&lt;T&gt;] const& status&lowbar;or);
----

[.small]#xref:absl/operator_lshift-0ca.adoc[_» more&period;&period;&period;_]#

The exact representation of a streamed `absl&colon;&colon;LogSeverity` is deliberately unspecified&semi; do not rely on it&period;


[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
std::ostream&
xref:absl/operator_lshift-03f.adoc[operator&lt;&lt;](
    std::ostream& os,
    xref:absl/LogSeverity.adoc[absl::LogSeverity] s);
----

[.small]#xref:absl/operator_lshift-03f.adoc[_» more&period;&period;&period;_]#

Streams StatusCodeToString(code) to `os`&period;


[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
std::ostream&
xref:absl/operator_lshift-0c2.adoc[operator&lt;&lt;](
    std::ostream& os,
    xref:absl/StatusCode.adoc[StatusCode] code);
----

[.small]#xref:absl/operator_lshift-0c2.adoc[_» more&period;&period;&period;_]#

Writes a Cord to an output stream, allowing a Cord to be logged&period;


[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
extern
std::ostream&
xref:absl/operator_lshift-0cc.adoc[operator&lt;&lt;](
    std::ostream& out,
    xref:absl/Cord.adoc[Cord] const& cord);
----

[.small]#xref:absl/operator_lshift-0cc.adoc[_» more&period;&period;&period;_]#

Stream a CRC32C value as an eight&hyphen;digit hexadecimal string&period;


[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
std::ostream&
xref:absl/operator_lshift-0d2.adoc[operator&lt;&lt;](
    std::ostream& os,
    xref:absl/crc32c_t.adoc[crc32c&lowbar;t] crc);
----

[.small]#xref:absl/operator_lshift-0d2.adoc[_» more&period;&period;&period;_]#

Shifts `lhs` left by the given number of bits&period;


[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
constexpr
xref:absl/int128.adoc[int128]
xref:absl/operator_lshift-06e.adoc[operator&lt;&lt;](
    xref:absl/int128.adoc[int128] lhs,
    int amount);
----

[.small]#xref:absl/operator_lshift-06e.adoc[_» more&period;&period;&period;_]#

Shifts `lhs` left by the given number of bits&period;


[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
constexpr
xref:absl/uint128.adoc[uint128]
xref:absl/operator_lshift-024.adoc[operator&lt;&lt;](
    xref:absl/uint128.adoc[uint128] lhs,
    int amount);
----

[.small]#xref:absl/operator_lshift-024.adoc[_» more&period;&period;&period;_]#

Writes the decimal representation of an `int128` to an output stream&period;


[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
std::ostream&
xref:absl/operator_lshift-009.adoc[operator&lt;&lt;](
    std::ostream& os,
    xref:absl/int128.adoc[int128] v);
----

[.small]#xref:absl/operator_lshift-009.adoc[_» more&period;&period;&period;_]#

Writes the decimal representation of a `uint128` to an output stream&period;


[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
std::ostream&
xref:absl/operator_lshift-003.adoc[operator&lt;&lt;](
    std::ostream& os,
    xref:absl/uint128.adoc[uint128] v);
----

[.small]#xref:absl/operator_lshift-003.adoc[_» more&period;&period;&period;_]#

Writes the formatted time to an output stream&period;


[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
std::ostream&
xref:absl/operator_lshift-0e9.adoc[operator&lt;&lt;](
    std::ostream& os,
    xref:absl/Time.adoc[Time] t);
----

[.small]#xref:absl/operator_lshift-0e9.adoc[_» more&period;&period;&period;_]#

Writes the formatted duration to an output stream&period;


[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
std::ostream&
xref:absl/operator_lshift-0b4.adoc[operator&lt;&lt;](
    std::ostream& os,
    xref:absl/Duration.adoc[Duration] d);
----

[.small]#xref:absl/operator_lshift-0b4.adoc[_» more&period;&period;&period;_]#

Writes the time zone&apos;s name to an output stream&period;


[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
std::ostream&
xref:absl/operator_lshift-032.adoc[operator&lt;&lt;](
    std::ostream& os,
    xref:absl/TimeZone.adoc[TimeZone] tz);
----

[.small]#xref:absl/operator_lshift-032.adoc[_» more&period;&period;&period;_]#

The exact representation of a streamed `absl&colon;&colon;LogSeverityAtMost` is deliberately unspecified&semi; do not rely on it&period;


[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
std::ostream&
xref:absl/operator_lshift-0ec2.adoc[operator&lt;&lt;](
    std::ostream& os,
    xref:absl/LogSeverityAtMost.adoc[absl::LogSeverityAtMost] s);
----

[.small]#xref:absl/operator_lshift-0ec2.adoc[_» more&period;&period;&period;_]#

The exact representation of a streamed `absl&colon;&colon;LogSeverityAtLeast` is deliberately unspecified&semi; do not rely on it&period;


[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
std::ostream&
xref:absl/operator_lshift-062.adoc[operator&lt;&lt;](
    std::ostream& os,
    xref:absl/LogSeverityAtLeast.adoc[absl::LogSeverityAtLeast] s);
----

[.small]#xref:absl/operator_lshift-062.adoc[_» more&period;&period;&period;_]#

== Return Value

* A reference to `os`&period;
* A reference to the output stream&period;
* The output stream `os`&period;
* `os`, after writing the representation of `s`&period;
* A reference to `out`&period;
* The shifted value&period;

== Parameters

[cols="1,4"]
|===
| Name| Description
| *os*
| The output stream to write to&period;
| *x*
| The status to print&period;
| *builder*
| The builder to convert and write&period;
| *status&lowbar;or*
| The object to print&period;
| *s*
| The severity level to stream&period;
| *code*
| The status code to stream&period;
| *out*
| The output stream to write to&period;
| *cord*
| The Cord to write&period;
| *crc*
| The value to stream&period;
| *lhs*
| The value to shift&period;
| *amount*
| The number of bit positions to shift&period;
| *v*
| The value to write&period;
| *t*
| The time to write&period;
| *d*
| The duration to write&period;
| *tz*
| The time zone to write&period;
|===


[.small]#Created with https://www.mrdocs.com[MrDocs]#
