add doc string operator+

This commit is contained in:
Bolero-MURAKAMI 2013-09-04 21:55:51 +09:00
parent 5e83aa2c79
commit b692583906
9 changed files with 391 additions and 30 deletions

View file

@ -0,0 +1,62 @@
.. _sprout-string-basic_string-operator-plus:
###############################################################################
operator+
###############################################################################
Interface
========================================
.. sourcecode:: c++
template<typename T, std::size_t N, typename Traits>
inline SPROUT_CONSTEXPR sprout::basic_string<T, N + 1, Traits>
operator+(sprout::basic_string<T, N, Traits> const& lhs, T const& rhs);
template<typename T, std::size_t N, typename Traits>
inline SPROUT_CONSTEXPR sprout::basic_string<T, 1 + N, Traits>
operator+(T const& lhs, sprout::basic_string<T, N, Traits> const& rhs);
template<typename T, std::size_t N, typename Traits, std::size_t M>
inline SPROUT_CONSTEXPR sprout::basic_string<T, N + (M - 1), Traits>
operator+(sprout::basic_string<T, N, Traits> const& lhs, T const (& rhs)[M]);
template<typename T, std::size_t N, typename Traits, std::size_t M>
inline SPROUT_CONSTEXPR sprout::basic_string<T, (M - 1) + N, Traits>
operator+(T const (& lhs)[M], sprout::basic_string<T, N, Traits> const& rhs);
template<typename T, std::size_t N1, std::size_t N2, typename Traits>
inline SPROUT_CONSTEXPR sprout::basic_string<T, N1 + N2, Traits>
operator+(sprout::basic_string<T, N1, Traits> const& lhs, sprout::basic_string<T, N2, Traits> const& rhs);
Returns
========================================
| A concatenated string.
Remarks
========================================
| String buffer length of the result, become the largest number that can be stored of the concatenated argument.
Examples
========================================
.. sourcecode:: c++
#include <sprout/string.hpp>
using namespace sprout;
SPROUT_STATIC_CONSTEXPR auto x = string<4>("mado");
SPROUT_STATIC_CONSTEXPR auto y = string<4>("homu");
SPROUT_STATIC_CONSTEXPR auto z = x + y;
static_assert(z == "madohomu", "A concatenated string is madohomu.");
Complexity
========================================
| Recursive function invocations in *O(1)* (constant) depth.
Header
========================================
| ``sprout/string/concat.hpp``
| Convenience header: ``sprout/string.hpp``

View file

@ -7,6 +7,7 @@ Sprout.String
:hidden:
basic_string/swap-global
basic_string/operator-plus
basic_string/operator-equal_to
basic_string/operator-not_equal_to
basic_string/operator-less
@ -89,7 +90,7 @@ function
:doc:`operator\>\> <./basic_string/operator-right_shift>`
============================================================ ===============================================================================
numeric conversions
numeric conversions (string to numeric)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
================================================================================ ===============================================================================
@ -110,6 +111,14 @@ function
:doc:`stod <./stod>`
:doc:`stold <./stold>`
:doc:`from_string \<FloatType\> <./from_string-floattype>`
================================================================================ ===============================================================================
numeric conversions (numeric to string)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
================================================================================ ===============================================================================
function
================================================================================ ===============================================================================
:doc:`int_to_string <./int_to_string>`
:doc:`to_string_of \<IntType\> <./to_string_of-inttype>`
:doc:`to_string \<IntType\> <./to_string-inttype>`

View file

@ -39,7 +39,7 @@
<link rel="top" title="Sprout 1.0 documentation" href="../../../index.html" />
<link rel="up" title="Sprout.String" href="../index.html" />
<link rel="next" title="operator!=" href="operator-not_equal_to.html" />
<link rel="prev" title="swap" href="swap-global.html" />
<link rel="prev" title="operator+" href="operator-plus.html" />
</head>
<body>
<div class="related">
@ -52,7 +52,7 @@
<a href="operator-not_equal_to.html" title="operator!="
accesskey="N">next</a> |</li>
<li class="right" >
<a href="swap-global.html" title="swap"
<a href="operator-plus.html" title="operator+"
accesskey="P">previous</a> |</li>
<li><a href="../../../index.html">Sprout 1.0 documentation</a> &raquo;</li>
<li><a href="../../index.html" >Libraries</a> &raquo;</li>
@ -74,8 +74,8 @@
</ul>
<h4>Previous topic</h4>
<p class="topless"><a href="swap-global.html"
title="previous chapter">swap</a></p>
<p class="topless"><a href="operator-plus.html"
title="previous chapter">operator+</a></p>
<h4>Next topic</h4>
<p class="topless"><a href="operator-not_equal_to.html"
title="next chapter">operator!=</a></p>
@ -163,7 +163,7 @@
<a href="operator-not_equal_to.html" title="operator!="
>next</a> |</li>
<li class="right" >
<a href="swap-global.html" title="swap"
<a href="operator-plus.html" title="operator+"
>previous</a> |</li>
<li><a href="../../../index.html">Sprout 1.0 documentation</a> &raquo;</li>
<li><a href="../../index.html" >Libraries</a> &raquo;</li>

View file

@ -0,0 +1,202 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script type="text/javascript">
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-43764535-1']);
_gaq.push(['_trackPageview']);
(function() {
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
})();
</script>
<title>operator+ &mdash; Sprout 1.0 documentation</title>
<link rel="stylesheet" href="../../../_static/sphinxdoc.css" type="text/css" />
<link rel="stylesheet" href="../../../_static/pygments.css" type="text/css" />
<script type="text/javascript">
var DOCUMENTATION_OPTIONS = {
URL_ROOT: '../../../',
VERSION: '1.0',
COLLAPSE_INDEX: false,
FILE_SUFFIX: '.html',
HAS_SOURCE: true
};
</script>
<script type="text/javascript" src="../../../_static/jquery.js"></script>
<script type="text/javascript" src="../../../_static/underscore.js"></script>
<script type="text/javascript" src="../../../_static/doctools.js"></script>
<link rel="top" title="Sprout 1.0 documentation" href="../../../index.html" />
<link rel="up" title="Sprout.String" href="../index.html" />
<link rel="next" title="operator==" href="operator-equal_to.html" />
<link rel="prev" title="swap" href="swap-global.html" />
</head>
<body>
<div class="related">
<h3>Navigation</h3>
<ul>
<li class="right" style="margin-right: 10px">
<a href="../../../genindex.html" title="General Index"
accesskey="I">index</a></li>
<li class="right" >
<a href="operator-equal_to.html" title="operator=="
accesskey="N">next</a> |</li>
<li class="right" >
<a href="swap-global.html" title="swap"
accesskey="P">previous</a> |</li>
<li><a href="../../../index.html">Sprout 1.0 documentation</a> &raquo;</li>
<li><a href="../../index.html" >Libraries</a> &raquo;</li>
<li><a href="../index.html" accesskey="U">Sprout.String</a> &raquo;</li>
</ul>
</div>
<div class="sphinxsidebar">
<div class="sphinxsidebarwrapper">
<h3><a href="../../../index.html">Table Of Contents</a></h3>
<ul>
<li><a class="reference internal" href="#">operator+</a><ul>
<li><a class="reference internal" href="#interface">Interface</a></li>
<li><a class="reference internal" href="#returns">Returns</a></li>
<li><a class="reference internal" href="#remarks">Remarks</a></li>
<li><a class="reference internal" href="#examples">Examples</a></li>
<li><a class="reference internal" href="#complexity">Complexity</a></li>
<li><a class="reference internal" href="#header">Header</a></li>
</ul>
</li>
</ul>
<h4>Previous topic</h4>
<p class="topless"><a href="swap-global.html"
title="previous chapter">swap</a></p>
<h4>Next topic</h4>
<p class="topless"><a href="operator-equal_to.html"
title="next chapter">operator==</a></p>
<h3>This Page</h3>
<ul class="this-page-menu">
<li><a href="../../../_sources/libs/string/basic_string/operator-plus.txt"
rel="nofollow">Show Source</a></li>
</ul>
<div id="searchbox" style="display: none">
<h3>Quick search</h3>
<form class="search" action="../../../search.html" method="get">
<input type="text" name="q" />
<input type="submit" value="Go" />
<input type="hidden" name="check_keywords" value="yes" />
<input type="hidden" name="area" value="default" />
</form>
<p class="searchtip" style="font-size: 90%">
Enter search terms or a module, class or function name.
</p>
</div>
<script type="text/javascript">$('#searchbox').show(0);</script>
</div>
</div>
<div class="document">
<div class="documentwrapper">
<div class="bodywrapper">
<div class="body">
<div class="section" id="operator">
<h1>operator+<a class="headerlink" href="#operator" title="Permalink to this headline"></a></h1>
<div class="section" id="interface">
<h2>Interface<a class="headerlink" href="#interface" title="Permalink to this headline"></a></h2>
<div class="highlight-c++"><div class="highlight"><pre><span class="k">template</span><span class="o">&lt;</span><span class="k">typename</span> <span class="n">T</span><span class="p">,</span> <span class="n">std</span><span class="o">::</span><span class="n">size_t</span> <span class="n">N</span><span class="p">,</span> <span class="k">typename</span> <span class="n">Traits</span><span class="o">&gt;</span>
<span class="kr">inline</span> <span class="n">SPROUT_CONSTEXPR</span> <span class="n">sprout</span><span class="o">::</span><span class="n">basic_string</span><span class="o">&lt;</span><span class="n">T</span><span class="p">,</span> <span class="n">N</span> <span class="o">+</span> <span class="mi">1</span><span class="p">,</span> <span class="n">Traits</span><span class="o">&gt;</span>
<span class="k">operator</span><span class="o">+</span><span class="p">(</span><span class="n">sprout</span><span class="o">::</span><span class="n">basic_string</span><span class="o">&lt;</span><span class="n">T</span><span class="p">,</span> <span class="n">N</span><span class="p">,</span> <span class="n">Traits</span><span class="o">&gt;</span> <span class="k">const</span><span class="o">&amp;</span> <span class="n">lhs</span><span class="p">,</span> <span class="n">T</span> <span class="k">const</span><span class="o">&amp;</span> <span class="n">rhs</span><span class="p">);</span>
<span class="k">template</span><span class="o">&lt;</span><span class="k">typename</span> <span class="n">T</span><span class="p">,</span> <span class="n">std</span><span class="o">::</span><span class="n">size_t</span> <span class="n">N</span><span class="p">,</span> <span class="k">typename</span> <span class="n">Traits</span><span class="o">&gt;</span>
<span class="kr">inline</span> <span class="n">SPROUT_CONSTEXPR</span> <span class="n">sprout</span><span class="o">::</span><span class="n">basic_string</span><span class="o">&lt;</span><span class="n">T</span><span class="p">,</span> <span class="mi">1</span> <span class="o">+</span> <span class="n">N</span><span class="p">,</span> <span class="n">Traits</span><span class="o">&gt;</span>
<span class="k">operator</span><span class="o">+</span><span class="p">(</span><span class="n">T</span> <span class="k">const</span><span class="o">&amp;</span> <span class="n">lhs</span><span class="p">,</span> <span class="n">sprout</span><span class="o">::</span><span class="n">basic_string</span><span class="o">&lt;</span><span class="n">T</span><span class="p">,</span> <span class="n">N</span><span class="p">,</span> <span class="n">Traits</span><span class="o">&gt;</span> <span class="k">const</span><span class="o">&amp;</span> <span class="n">rhs</span><span class="p">);</span>
<span class="k">template</span><span class="o">&lt;</span><span class="k">typename</span> <span class="n">T</span><span class="p">,</span> <span class="n">std</span><span class="o">::</span><span class="n">size_t</span> <span class="n">N</span><span class="p">,</span> <span class="k">typename</span> <span class="n">Traits</span><span class="p">,</span> <span class="n">std</span><span class="o">::</span><span class="n">size_t</span> <span class="n">M</span><span class="o">&gt;</span>
<span class="kr">inline</span> <span class="n">SPROUT_CONSTEXPR</span> <span class="n">sprout</span><span class="o">::</span><span class="n">basic_string</span><span class="o">&lt;</span><span class="n">T</span><span class="p">,</span> <span class="n">N</span> <span class="o">+</span> <span class="p">(</span><span class="n">M</span> <span class="o">-</span> <span class="mi">1</span><span class="p">),</span> <span class="n">Traits</span><span class="o">&gt;</span>
<span class="k">operator</span><span class="o">+</span><span class="p">(</span><span class="n">sprout</span><span class="o">::</span><span class="n">basic_string</span><span class="o">&lt;</span><span class="n">T</span><span class="p">,</span> <span class="n">N</span><span class="p">,</span> <span class="n">Traits</span><span class="o">&gt;</span> <span class="k">const</span><span class="o">&amp;</span> <span class="n">lhs</span><span class="p">,</span> <span class="n">T</span> <span class="k">const</span> <span class="p">(</span><span class="o">&amp;</span> <span class="n">rhs</span><span class="p">)[</span><span class="n">M</span><span class="p">]);</span>
<span class="k">template</span><span class="o">&lt;</span><span class="k">typename</span> <span class="n">T</span><span class="p">,</span> <span class="n">std</span><span class="o">::</span><span class="n">size_t</span> <span class="n">N</span><span class="p">,</span> <span class="k">typename</span> <span class="n">Traits</span><span class="p">,</span> <span class="n">std</span><span class="o">::</span><span class="n">size_t</span> <span class="n">M</span><span class="o">&gt;</span>
<span class="kr">inline</span> <span class="n">SPROUT_CONSTEXPR</span> <span class="n">sprout</span><span class="o">::</span><span class="n">basic_string</span><span class="o">&lt;</span><span class="n">T</span><span class="p">,</span> <span class="p">(</span><span class="n">M</span> <span class="o">-</span> <span class="mi">1</span><span class="p">)</span> <span class="o">+</span> <span class="n">N</span><span class="p">,</span> <span class="n">Traits</span><span class="o">&gt;</span>
<span class="k">operator</span><span class="o">+</span><span class="p">(</span><span class="n">T</span> <span class="k">const</span> <span class="p">(</span><span class="o">&amp;</span> <span class="n">lhs</span><span class="p">)[</span><span class="n">M</span><span class="p">],</span> <span class="n">sprout</span><span class="o">::</span><span class="n">basic_string</span><span class="o">&lt;</span><span class="n">T</span><span class="p">,</span> <span class="n">N</span><span class="p">,</span> <span class="n">Traits</span><span class="o">&gt;</span> <span class="k">const</span><span class="o">&amp;</span> <span class="n">rhs</span><span class="p">);</span>
<span class="k">template</span><span class="o">&lt;</span><span class="k">typename</span> <span class="n">T</span><span class="p">,</span> <span class="n">std</span><span class="o">::</span><span class="n">size_t</span> <span class="n">N1</span><span class="p">,</span> <span class="n">std</span><span class="o">::</span><span class="n">size_t</span> <span class="n">N2</span><span class="p">,</span> <span class="k">typename</span> <span class="n">Traits</span><span class="o">&gt;</span>
<span class="kr">inline</span> <span class="n">SPROUT_CONSTEXPR</span> <span class="n">sprout</span><span class="o">::</span><span class="n">basic_string</span><span class="o">&lt;</span><span class="n">T</span><span class="p">,</span> <span class="n">N1</span> <span class="o">+</span> <span class="n">N2</span><span class="p">,</span> <span class="n">Traits</span><span class="o">&gt;</span>
<span class="k">operator</span><span class="o">+</span><span class="p">(</span><span class="n">sprout</span><span class="o">::</span><span class="n">basic_string</span><span class="o">&lt;</span><span class="n">T</span><span class="p">,</span> <span class="n">N1</span><span class="p">,</span> <span class="n">Traits</span><span class="o">&gt;</span> <span class="k">const</span><span class="o">&amp;</span> <span class="n">lhs</span><span class="p">,</span> <span class="n">sprout</span><span class="o">::</span><span class="n">basic_string</span><span class="o">&lt;</span><span class="n">T</span><span class="p">,</span> <span class="n">N2</span><span class="p">,</span> <span class="n">Traits</span><span class="o">&gt;</span> <span class="k">const</span><span class="o">&amp;</span> <span class="n">rhs</span><span class="p">);</span>
</pre></div>
</div>
</div>
<div class="section" id="returns">
<h2>Returns<a class="headerlink" href="#returns" title="Permalink to this headline"></a></h2>
<div class="line-block">
<div class="line">A concatenated string.</div>
</div>
</div>
<div class="section" id="remarks">
<h2>Remarks<a class="headerlink" href="#remarks" title="Permalink to this headline"></a></h2>
<div class="line-block">
<div class="line">String buffer length of the result, become the largest number that can be stored of the concatenated argument.</div>
</div>
</div>
<div class="section" id="examples">
<h2>Examples<a class="headerlink" href="#examples" title="Permalink to this headline"></a></h2>
<div class="highlight-c++"><div class="highlight"><pre><span class="cp">#include &lt;sprout/string.hpp&gt;</span>
<span class="k">using</span> <span class="k">namespace</span> <span class="n">sprout</span><span class="p">;</span>
<span class="n">SPROUT_STATIC_CONSTEXPR</span> <span class="k">auto</span> <span class="n">x</span> <span class="o">=</span> <span class="n">string</span><span class="o">&lt;</span><span class="mi">4</span><span class="o">&gt;</span><span class="p">(</span><span class="s">&quot;mado&quot;</span><span class="p">);</span>
<span class="n">SPROUT_STATIC_CONSTEXPR</span> <span class="k">auto</span> <span class="n">y</span> <span class="o">=</span> <span class="n">string</span><span class="o">&lt;</span><span class="mi">4</span><span class="o">&gt;</span><span class="p">(</span><span class="s">&quot;homu&quot;</span><span class="p">);</span>
<span class="n">SPROUT_STATIC_CONSTEXPR</span> <span class="k">auto</span> <span class="n">z</span> <span class="o">=</span> <span class="n">x</span> <span class="o">+</span> <span class="n">y</span><span class="p">;</span>
<span class="n">static_assert</span><span class="p">(</span><span class="n">z</span> <span class="o">==</span> <span class="s">&quot;madohomu&quot;</span><span class="p">,</span> <span class="s">&quot;A concatenated string is madohomu.&quot;</span><span class="p">);</span>
</pre></div>
</div>
</div>
<div class="section" id="complexity">
<h2>Complexity<a class="headerlink" href="#complexity" title="Permalink to this headline"></a></h2>
<div class="line-block">
<div class="line">Recursive function invocations in <em>O(1)</em> (constant) depth.</div>
</div>
</div>
<div class="section" id="header">
<h2>Header<a class="headerlink" href="#header" title="Permalink to this headline"></a></h2>
<div class="line-block">
<div class="line"><tt class="docutils literal"><span class="pre">sprout/string/concat.hpp</span></tt></div>
<div class="line">Convenience header: <tt class="docutils literal"><span class="pre">sprout/string.hpp</span></tt></div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="clearer"></div>
</div>
<div class="related">
<h3>Navigation</h3>
<ul>
<li class="right" style="margin-right: 10px">
<a href="../../../genindex.html" title="General Index"
>index</a></li>
<li class="right" >
<a href="operator-equal_to.html" title="operator=="
>next</a> |</li>
<li class="right" >
<a href="swap-global.html" title="swap"
>previous</a> |</li>
<li><a href="../../../index.html">Sprout 1.0 documentation</a> &raquo;</li>
<li><a href="../../index.html" >Libraries</a> &raquo;</li>
<li><a href="../index.html" >Sprout.String</a> &raquo;</li>
</ul>
</div>
<div class="footer">
&copy; Copyright 2013, Bolero MURAKAMI.
Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.1.3.
</div>
</body>
</html>

View file

@ -38,7 +38,7 @@
<script type="text/javascript" src="../../../_static/doctools.js"></script>
<link rel="top" title="Sprout 1.0 documentation" href="../../../index.html" />
<link rel="up" title="Sprout.String" href="../index.html" />
<link rel="next" title="operator==" href="operator-equal_to.html" />
<link rel="next" title="operator+" href="operator-plus.html" />
<link rel="prev" title="Sprout.String" href="../index.html" />
</head>
<body>
@ -49,7 +49,7 @@
<a href="../../../genindex.html" title="General Index"
accesskey="I">index</a></li>
<li class="right" >
<a href="operator-equal_to.html" title="operator=="
<a href="operator-plus.html" title="operator+"
accesskey="N">next</a> |</li>
<li class="right" >
<a href="../index.html" title="Sprout.String"
@ -78,8 +78,8 @@
<p class="topless"><a href="../index.html"
title="previous chapter">Sprout.String</a></p>
<h4>Next topic</h4>
<p class="topless"><a href="operator-equal_to.html"
title="next chapter">operator==</a></p>
<p class="topless"><a href="operator-plus.html"
title="next chapter">operator+</a></p>
<h3>This Page</h3>
<ul class="this-page-menu">
<li><a href="../../../_sources/libs/string/basic_string/swap-global.txt"
@ -170,7 +170,7 @@
<a href="../../../genindex.html" title="General Index"
>index</a></li>
<li class="right" >
<a href="operator-equal_to.html" title="operator=="
<a href="operator-plus.html" title="operator+"
>next</a> |</li>
<li class="right" >
<a href="../index.html" title="Sprout.String"

View file

@ -71,7 +71,8 @@
<li><a class="reference internal" href="#concatenations">concatenations</a></li>
<li><a class="reference internal" href="#comparisons">comparisons</a></li>
<li><a class="reference internal" href="#inserters-and-extractors">inserters and extractors</a></li>
<li><a class="reference internal" href="#numeric-conversions">numeric conversions</a></li>
<li><a class="reference internal" href="#numeric-conversions-string-to-numeric">numeric conversions (string to numeric)</a></li>
<li><a class="reference internal" href="#numeric-conversions-numeric-to-string">numeric conversions (numeric to string)</a></li>
<li><a class="reference internal" href="#string-generators">string generators</a></li>
</ul>
</li>
@ -206,7 +207,7 @@
</tr>
</thead>
<tbody valign="top">
<tr class="row-even"><td><tt class="xref doc docutils literal"><span class="pre">operator+</span></tt></td>
<tr class="row-even"><td><a class="reference internal" href="basic_string/operator-plus.html"><em>operator+</em></a></td>
<td>&nbsp;</td>
</tr>
</tbody>
@ -268,8 +269,8 @@
</tbody>
</table>
</div>
<div class="section" id="numeric-conversions">
<h4>numeric conversions<a class="headerlink" href="#numeric-conversions" title="Permalink to this headline"></a></h4>
<div class="section" id="numeric-conversions-string-to-numeric">
<h4>numeric conversions (string to numeric)<a class="headerlink" href="#numeric-conversions-string-to-numeric" title="Permalink to this headline"></a></h4>
<table border="1" class="docutils">
<colgroup>
<col width="50%" />
@ -326,43 +327,59 @@
<tr class="row-even"><td><tt class="xref doc docutils literal"><span class="pre">from_string</span> <span class="pre">&lt;FloatType&gt;</span></tt></td>
<td>&nbsp;</td>
</tr>
<tr class="row-odd"><td><tt class="xref doc docutils literal"><span class="pre">int_to_string</span></tt></td>
</tbody>
</table>
</div>
<div class="section" id="numeric-conversions-numeric-to-string">
<h4>numeric conversions (numeric to string)<a class="headerlink" href="#numeric-conversions-numeric-to-string" title="Permalink to this headline"></a></h4>
<table border="1" class="docutils">
<colgroup>
<col width="50%" />
<col width="50%" />
</colgroup>
<thead valign="bottom">
<tr class="row-odd"><th class="head">function</th>
<th class="head">&nbsp;</th>
</tr>
</thead>
<tbody valign="top">
<tr class="row-even"><td><tt class="xref doc docutils literal"><span class="pre">int_to_string</span></tt></td>
<td>&nbsp;</td>
</tr>
<tr class="row-even"><td><tt class="xref doc docutils literal"><span class="pre">to_string_of</span> <span class="pre">&lt;IntType&gt;</span></tt></td>
<tr class="row-odd"><td><tt class="xref doc docutils literal"><span class="pre">to_string_of</span> <span class="pre">&lt;IntType&gt;</span></tt></td>
<td>&nbsp;</td>
</tr>
<tr class="row-odd"><td><tt class="xref doc docutils literal"><span class="pre">to_string</span> <span class="pre">&lt;IntType&gt;</span></tt></td>
<tr class="row-even"><td><tt class="xref doc docutils literal"><span class="pre">to_string</span> <span class="pre">&lt;IntType&gt;</span></tt></td>
<td>&nbsp;</td>
</tr>
<tr class="row-even"><td><tt class="xref doc docutils literal"><span class="pre">to_wstring</span> <span class="pre">&lt;IntType&gt;</span></tt></td>
<tr class="row-odd"><td><tt class="xref doc docutils literal"><span class="pre">to_wstring</span> <span class="pre">&lt;IntType&gt;</span></tt></td>
<td>&nbsp;</td>
</tr>
<tr class="row-odd"><td><tt class="xref doc docutils literal"><span class="pre">to_u16string</span> <span class="pre">&lt;IntType&gt;</span></tt></td>
<tr class="row-even"><td><tt class="xref doc docutils literal"><span class="pre">to_u16string</span> <span class="pre">&lt;IntType&gt;</span></tt></td>
<td>&nbsp;</td>
</tr>
<tr class="row-even"><td><tt class="xref doc docutils literal"><span class="pre">to_u32string</span> <span class="pre">&lt;IntType&gt;</span></tt></td>
<tr class="row-odd"><td><tt class="xref doc docutils literal"><span class="pre">to_u32string</span> <span class="pre">&lt;IntType&gt;</span></tt></td>
<td>&nbsp;</td>
</tr>
<tr class="row-odd"><td><tt class="xref doc docutils literal"><span class="pre">float_to_string</span></tt></td>
<tr class="row-even"><td><tt class="xref doc docutils literal"><span class="pre">float_to_string</span></tt></td>
<td>&nbsp;</td>
</tr>
<tr class="row-even"><td><tt class="xref doc docutils literal"><span class="pre">float_to_string_exp</span></tt></td>
<tr class="row-odd"><td><tt class="xref doc docutils literal"><span class="pre">float_to_string_exp</span></tt></td>
<td>&nbsp;</td>
</tr>
<tr class="row-odd"><td><tt class="xref doc docutils literal"><span class="pre">to_string_of</span> <span class="pre">&lt;FloatType&gt;</span></tt></td>
<tr class="row-even"><td><tt class="xref doc docutils literal"><span class="pre">to_string_of</span> <span class="pre">&lt;FloatType&gt;</span></tt></td>
<td>&nbsp;</td>
</tr>
<tr class="row-even"><td><tt class="xref doc docutils literal"><span class="pre">to_string</span> <span class="pre">&lt;FloatType&gt;</span></tt></td>
<tr class="row-odd"><td><tt class="xref doc docutils literal"><span class="pre">to_string</span> <span class="pre">&lt;FloatType&gt;</span></tt></td>
<td>&nbsp;</td>
</tr>
<tr class="row-odd"><td><tt class="xref doc docutils literal"><span class="pre">to_wstring</span> <span class="pre">&lt;FloatType&gt;</span></tt></td>
<tr class="row-even"><td><tt class="xref doc docutils literal"><span class="pre">to_wstring</span> <span class="pre">&lt;FloatType&gt;</span></tt></td>
<td>&nbsp;</td>
</tr>
<tr class="row-even"><td><tt class="xref doc docutils literal"><span class="pre">to_u16string</span> <span class="pre">&lt;FloatType&gt;</span></tt></td>
<tr class="row-odd"><td><tt class="xref doc docutils literal"><span class="pre">to_u16string</span> <span class="pre">&lt;FloatType&gt;</span></tt></td>
<td>&nbsp;</td>
</tr>
<tr class="row-odd"><td><tt class="xref doc docutils literal"><span class="pre">to_u32string</span> <span class="pre">&lt;FloatType&gt;</span></tt></td>
<tr class="row-even"><td><tt class="xref doc docutils literal"><span class="pre">to_u32string</span> <span class="pre">&lt;FloatType&gt;</span></tt></td>
<td>&nbsp;</td>
</tr>
</tbody>

File diff suppressed because one or more lines are too long

View file

@ -0,0 +1,62 @@
.. _sprout-string-basic_string-operator-plus:
###############################################################################
operator+
###############################################################################
Interface
========================================
.. sourcecode:: c++
template<typename T, std::size_t N, typename Traits>
inline SPROUT_CONSTEXPR sprout::basic_string<T, N + 1, Traits>
operator+(sprout::basic_string<T, N, Traits> const& lhs, T const& rhs);
template<typename T, std::size_t N, typename Traits>
inline SPROUT_CONSTEXPR sprout::basic_string<T, 1 + N, Traits>
operator+(T const& lhs, sprout::basic_string<T, N, Traits> const& rhs);
template<typename T, std::size_t N, typename Traits, std::size_t M>
inline SPROUT_CONSTEXPR sprout::basic_string<T, N + (M - 1), Traits>
operator+(sprout::basic_string<T, N, Traits> const& lhs, T const (& rhs)[M]);
template<typename T, std::size_t N, typename Traits, std::size_t M>
inline SPROUT_CONSTEXPR sprout::basic_string<T, (M - 1) + N, Traits>
operator+(T const (& lhs)[M], sprout::basic_string<T, N, Traits> const& rhs);
template<typename T, std::size_t N1, std::size_t N2, typename Traits>
inline SPROUT_CONSTEXPR sprout::basic_string<T, N1 + N2, Traits>
operator+(sprout::basic_string<T, N1, Traits> const& lhs, sprout::basic_string<T, N2, Traits> const& rhs);
Returns
========================================
| A concatenated string.
Remarks
========================================
| String buffer length of the result, become the largest number that can be stored of the concatenated argument.
Examples
========================================
.. sourcecode:: c++
#include <sprout/string.hpp>
using namespace sprout;
SPROUT_STATIC_CONSTEXPR auto x = string<4>("mado");
SPROUT_STATIC_CONSTEXPR auto y = string<4>("homu");
SPROUT_STATIC_CONSTEXPR auto z = x + y;
static_assert(z == "madohomu", "A concatenated string is madohomu.");
Complexity
========================================
| Recursive function invocations in *O(1)* (constant) depth.
Header
========================================
| ``sprout/string/concat.hpp``
| Convenience header: ``sprout/string.hpp``

View file

@ -7,6 +7,7 @@ Sprout.String
:hidden:
basic_string/swap-global
basic_string/operator-plus
basic_string/operator-equal_to
basic_string/operator-not_equal_to
basic_string/operator-less
@ -89,7 +90,7 @@ function
:doc:`operator\>\> <./basic_string/operator-right_shift>`
============================================================ ===============================================================================
numeric conversions
numeric conversions (string to numeric)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
================================================================================ ===============================================================================
@ -110,6 +111,14 @@ function
:doc:`stod <./stod>`
:doc:`stold <./stold>`
:doc:`from_string \<FloatType\> <./from_string-floattype>`
================================================================================ ===============================================================================
numeric conversions (numeric to string)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
================================================================================ ===============================================================================
function
================================================================================ ===============================================================================
:doc:`int_to_string <./int_to_string>`
:doc:`to_string_of \<IntType\> <./to_string_of-inttype>`
:doc:`to_string \<IntType\> <./to_string-inttype>`