http://git-wip-us.apache.org/repos/asf/arrow-site/blob/8673db8b/docs/cpp/type__traits_8h_source.html ---------------------------------------------------------------------- diff --git a/docs/cpp/type__traits_8h_source.html b/docs/cpp/type__traits_8h_source.html index 664b7f4..39d11f3 100644 --- a/docs/cpp/type__traits_8h_source.html +++ b/docs/cpp/type__traits_8h_source.html @@ -5,7 +5,7 @@ <meta http-equiv="X-UA-Compatible" content="IE=9"/> <meta name="generator" content="Doxygen 1.8.13"/> <meta name="viewport" content="width=device-width, initial-scale=1"/> -<title>Apache Arrow (C++): /home/wesm/code/arrow/cpp/src/arrow/type_traits.h Source File</title> +<title>Apache Arrow (C++): /apache-arrow/arrow/cpp/src/arrow/type_traits.h Source File</title> <link href="tabs.css" rel="stylesheet" type="text/css"/> <script type="text/javascript" src="jquery.js"></script> <script type="text/javascript" src="dynsections.js"></script> @@ -67,7 +67,7 @@ $(function() { <div class="title">type_traits.h</div> </div> </div><!--header--> <div class="contents"> -<a href="type__traits_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">// Licensed to the Apache Software Foundation (ASF) under one</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment">// or more contributor license agreements. See the NOTICE file</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment">// distributed with this work for additional information</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment">// regarding copyright ownership. The ASF licenses this file</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment">// to you under the Apache License, Version 2.0 (the</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment">// "License"); you may not use this file except in compliance</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment">// with the License. You may obtain a copy of the License at</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment">//</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="comment">// http://www.apache.org/licenses/LICENSE-2.0</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="comment">// Unless required by applicable law or agreed to in writing,</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="comment">// software distribu ted under the License is distributed on an</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="comment">// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="comment">// KIND, either express or implied. See the License for the</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="comment">// specific language governing permissions and limitations</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="comment">// under the License.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span> </div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="preprocessor">#ifndef ARROW_TYPE_TRAITS_H</span></div><div class="line"><a name="l00019"></a><span class="lin eno"> 19</span> <span class="preprocessor">#define ARROW_TYPE_TRAITS_H</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span> </div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="preprocessor">#include <type_traits></span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span> </div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="preprocessor">#include "<a class="code" href="type__fwd_8h.html">arrow/type_fwd.h</a>"</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor">#include "<a class="code" href="bit-util_8h.html">arrow/util/bit-util.h</a>"</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span> </div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="keyword">names pace </span><a class="code" href="namespacearrow.html">arrow</a> {</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span> </div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T></div><div class="line"><a name="l00029"></a><span class="lineno"><a class="line" href="structarrow_1_1_type_traits.html"> 29</a></span> <span class="keyword">struct </span><a class="code" href="structarrow_1_1_type_traits.html">TypeTraits</a> {};</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span> </div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="keyword">template</span> <></div><div class="line"><a name="l00032"></a><span class="lineno"><a class="line" href="structarrow_1_1_type_traits_3_01_null_type_01_4.html"> 32</a></span> <span class="keyword">struct </span><a class=" code" href="structarrow_1_1_type_traits.html">TypeTraits</a><<a class="code" href="classarrow_1_1_null_type.html">NullType</a>> {</div><div class="line"><a name="l00033"></a><span class="lineno"><a class="line" href="structarrow_1_1_type_traits_3_01_null_type_01_4.html#aaec340f6ecbf2d2f2d50a93c19054ec2"> 33</a></span>  <span class="keyword">using</span> <a class="code" href="classarrow_1_1_null_array.html">ArrayType</a> = <a class="code" href="classarrow_1_1_null_array.html">NullArray</a>;</div><div class="line"><a name="l00034"></a><span class="lineno"><a class="line" href="structarrow_1_1_type_traits_3_01_null_type_01_4.html#aa2f594e924a4fdc0ac7694423cb67d35"> 34</a></span>  <span class="keyword">using</span> <a class="code" href="classarrow_1_1_null_builder.html">BuilderType</a> = <a class="code" href="classarrow_1_1_null_builder.html">NullBuilder</a>;</div><div class="line"><a name="l00035"></a><span class="lineno"><a class="line" href="structarrow_1_1_type _traits_3_01_null_type_01_4.html#a0dfce1a53db196e1b4d2f99491bcac01"> 35</a></span>  constexpr <span class="keyword">static</span> <span class="keywordtype">bool</span> is_parameter_free = <span class="keyword">false</span>;</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span> };</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span> </div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span> <span class="keyword">template</span> <></div><div class="line"><a name="l00039"></a><span class="lineno"><a class="line" href="structarrow_1_1_type_traits_3_01_u_int8_type_01_4.html"> 39</a></span> <span class="keyword">struct </span><a class="code" href="structarrow_1_1_type_traits.html">TypeTraits</a><<a class="code" href="classarrow_1_1_u_int8_type.html">UInt8Type</a>> {</div><div class="line"><a name="l00040"></a><span class="lineno"><a class="line" href="structarrow_1_1_type_traits_ 3_01_u_int8_type_01_4.html#ac1fe5876ceba7770ae2f220557c67835"> 40</a></span>  <span class="keyword">using</span> <a class="code" href="structarrow_1_1_type_traits_3_01_u_int8_type_01_4.html#ac1fe5876ceba7770ae2f220557c67835">ArrayType</a> = UInt8Array;</div><div class="line"><a name="l00041"></a><span class="lineno"><a class="line" href="structarrow_1_1_type_traits_3_01_u_int8_type_01_4.html#ae9d9a698ed9c27d7a0ced3f865452fd9"> 41</a></span>  <span class="keyword">using</span> <a class="code" href="classarrow_1_1_numeric_builder.html">BuilderType</a> = <a class="code" href="namespacearrow.html#adab028f188008a82d790cd69ac351a3b">UInt8Builder</a>;</div><div class="line"><a name="l00042"></a><span class="lineno"><a class="line" href="structarrow_1_1_type_traits_3_01_u_int8_type_01_4.html#ab8fd5d9ce6753537ffa29fc658b48ec2"> 42</a></span>  <span class="keyword">using</span> <a class="code" href="structarrow_1_1_type_traits_3_01_u_int8_type_01_4.html#ab8fd5d9ce67535 37ffa29fc658b48ec2">TensorType</a> = UInt8Tensor;</div><div class="line"><a name="l00043"></a><span class="lineno"><a class="line" href="structarrow_1_1_type_traits_3_01_u_int8_type_01_4.html#a13ced8093f8c4b59a39030dc4b7ee008"> 43</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> int64_t <a class="code" href="structarrow_1_1_type_traits_3_01_u_int8_type_01_4.html#a13ced8093f8c4b59a39030dc4b7ee008">bytes_required</a>(int64_t elements) { <span class="keywordflow">return</span> elements; }</div><div class="line"><a name="l00044"></a><span class="lineno"><a class="line" href="structarrow_1_1_type_traits_3_01_u_int8_type_01_4.html#aec003e96108d4c60f54ccc4ff709c723"> 44</a></span>  constexpr <span class="keyword">static</span> <span class="keywordtype">bool</span> is_parameter_free = <span class="keyword">true</span>;</div><div class="line"><a name="l00045"></a><span class="lineno"><a class="line" href="structarrow_1_1_type_traits_3_01_u_i nt8_type_01_4.html#ab4d6492370e76e4f5be2bcd1cf57e1d1"> 45</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> std::shared_ptr<DataType> <a class="code" href="structarrow_1_1_type_traits_3_01_u_int8_type_01_4.html#ab4d6492370e76e4f5be2bcd1cf57e1d1">type_singleton</a>() { <span class="keywordflow">return</span> <a class="code" href="namespacearrow.html#a4891a423be213550cc24e8ebe830673f">uint8</a>(); }</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span> };</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span> </div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span> <span class="keyword">template</span> <></div><div class="line"><a name="l00049"></a><span class="lineno"><a class="line" href="structarrow_1_1_type_traits_3_01_int8_type_01_4.html"> 49</a></span> <span class="keyword">struct </span><a class="code" href="structarrow_1_1_type_traits .html">TypeTraits</a><<a class="code" href="classarrow_1_1_int8_type.html">Int8Type</a>> {</div><div class="line"><a name="l00050"></a><span class="lineno"><a class="line" href="structarrow_1_1_type_traits_3_01_int8_type_01_4.html#aff440e7c8c29a19c79789632e8c15a81"> 50</a></span>  <span class="keyword">using</span> <a class="code" href="structarrow_1_1_type_traits_3_01_int8_type_01_4.html#aff440e7c8c29a19c79789632e8c15a81">ArrayType</a> = Int8Array;</div><div class="line"><a name="l00051"></a><span class="lineno"><a class="line" href="structarrow_1_1_type_traits_3_01_int8_type_01_4.html#afbc3e1c0950b7980ce41cfafeff93483"> 51</a></span>  <span class="keyword">using</span> <a class="code" href="classarrow_1_1_numeric_builder.html">BuilderType</a> = <a class="code" href="namespacearrow.html#a9675d2aecdd6ad622ee1358c358ba278">Int8Builder</a>;</div><div class="line"><a name="l00052"></a><span class="lineno"><a class="line" href="structarrow_1_1_type_traits_3_01_int8 _type_01_4.html#ae1a8e9be857a9e965584414ab0eb0096"> 52</a></span>  <span class="keyword">using</span> <a class="code" href="structarrow_1_1_type_traits_3_01_int8_type_01_4.html#ae1a8e9be857a9e965584414ab0eb0096">TensorType</a> = Int8Tensor;</div><div class="line"><a name="l00053"></a><span class="lineno"><a class="line" href="structarrow_1_1_type_traits_3_01_int8_type_01_4.html#a25277021b2e464421736b654926d8da7"> 53</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> int64_t <a class="code" href="structarrow_1_1_type_traits_3_01_int8_type_01_4.html#a25277021b2e464421736b654926d8da7">bytes_required</a>(int64_t elements) { <span class="keywordflow">return</span> elements; }</div><div class="line"><a name="l00054"></a><span class="lineno"><a class="line" href="structarrow_1_1_type_traits_3_01_int8_type_01_4.html#ae0c69fa05bb415ee5b6b4446a9c78bc1"> 54</a></span>  constexpr <span class="keyword">static</span> <span class="keywordtyp e">bool</span> is_parameter_free = <span class="keyword">true</span>;</div><div class="line"><a name="l00055"></a><span class="lineno"><a class="line" href="structarrow_1_1_type_traits_3_01_int8_type_01_4.html#a475960215915baa837f70537fdd99c08"> 55</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> std::shared_ptr<DataType> <a class="code" href="structarrow_1_1_type_traits_3_01_int8_type_01_4.html#a475960215915baa837f70537fdd99c08">type_singleton</a>() { <span class="keywordflow">return</span> <a class="code" href="namespacearrow.html#a9c09bf26bc03f0fb0c84a0277215dd67">int8</a>(); }</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span> };</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span> </div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span> <span class="keyword">template</span> <></div><div class="line"><a name="l00059"></a><span class="lin eno"><a class="line" href="structarrow_1_1_type_traits_3_01_u_int16_type_01_4.html"> 59</a></span> <span class="keyword">struct </span><a class="code" href="structarrow_1_1_type_traits.html">TypeTraits</a><<a class="code" href="classarrow_1_1_u_int16_type.html">UInt16Type</a>> {</div><div class="line"><a name="l00060"></a><span class="lineno"><a class="line" href="structarrow_1_1_type_traits_3_01_u_int16_type_01_4.html#abaafb921faa6eb567225560d6b129e34"> 60</a></span>  <span class="keyword">using</span> <a class="code" href="structarrow_1_1_type_traits_3_01_u_int16_type_01_4.html#abaafb921faa6eb567225560d6b129e34">ArrayType</a> = UInt16Array;</div><div class="line"><a name="l00061"></a><span class="lineno"><a class="line" href="structarrow_1_1_type_traits_3_01_u_int16_type_01_4.html#a9df7c22269b2f50ba2843443cbf9ed31"> 61</a></span>  <span class="keyword">using</span> <a class="code" href="classarrow_1_1_numeric_builder.html">BuilderType</a> = <a class="c ode" href="namespacearrow.html#a6f7720234c751cfa79a0d6d4e2014485">UInt16Builder</a>;</div><div class="line"><a name="l00062"></a><span class="lineno"><a class="line" href="structarrow_1_1_type_traits_3_01_u_int16_type_01_4.html#a9862d476bfe7d097efebc89c514a65c5"> 62</a></span>  <span class="keyword">using</span> <a class="code" href="structarrow_1_1_type_traits_3_01_u_int16_type_01_4.html#a9862d476bfe7d097efebc89c514a65c5">TensorType</a> = UInt16Tensor;</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span> </div><div class="line"><a name="l00064"></a><span class="lineno"><a class="line" href="structarrow_1_1_type_traits_3_01_u_int16_type_01_4.html#a26b57e2a3e6ab3a840984bf379985e77"> 64</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> int64_t <a class="code" href="structarrow_1_1_type_traits_3_01_u_int16_type_01_4.html#a26b57e2a3e6ab3a840984bf379985e77">bytes_required</a>(int64_t elements) {</div><div cla ss="line"><a name="l00065"></a><span class="lineno"> 65</span>  <span class="keywordflow">return</span> elements * <span class="keyword">sizeof</span>(uint16_t);</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>  }</div><div class="line"><a name="l00067"></a><span class="lineno"><a class="line" href="structarrow_1_1_type_traits_3_01_u_int16_type_01_4.html#a49fa0b1dbdcd7de7202defc23cec766b"> 67</a></span>  constexpr <span class="keyword">static</span> <span class="keywordtype">bool</span> is_parameter_free = <span class="keyword">true</span>;</div><div class="line"><a name="l00068"></a><span class="lineno"><a class="line" href="structarrow_1_1_type_traits_3_01_u_int16_type_01_4.html#a40cbcdd5ae033ca0d2cc2f57e38b0866"> 68</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> std::shared_ptr<DataType> <a class="code" href="structarrow_1_1_type_traits_3_01_u_int16_type_01_4.html#a40cbcdd5ae03 3ca0d2cc2f57e38b0866">type_singleton</a>() { <span class="keywordflow">return</span> <a class="code" href="namespacearrow.html#a9f1e44bc2ab9b465b6e7b601eb48f0a0">uint16</a>(); }</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span> };</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span> </div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span> <span class="keyword">template</span> <></div><div class="line"><a name="l00072"></a><span class="lineno"><a class="line" href="structarrow_1_1_type_traits_3_01_int16_type_01_4.html"> 72</a></span> <span class="keyword">struct </span><a class="code" href="structarrow_1_1_type_traits.html">TypeTraits</a><<a class="code" href="classarrow_1_1_int16_type.html">Int16Type</a>> {</div><div class="line"><a name="l00073"></a><span class="lineno"><a class="line" href="structarrow_1_1_type_traits_3_01_int16_type_01_4.html#a2e07850d505c9a0d685542c79704f 08a"> 73</a></span>  <span class="keyword">using</span> <a class="code" href="structarrow_1_1_type_traits_3_01_int16_type_01_4.html#a2e07850d505c9a0d685542c79704f08a">ArrayType</a> = Int16Array;</div><div class="line"><a name="l00074"></a><span class="lineno"><a class="line" href="structarrow_1_1_type_traits_3_01_int16_type_01_4.html#af3246446196675795ecc370b42446c79"> 74</a></span>  <span class="keyword">using</span> <a class="code" href="classarrow_1_1_numeric_builder.html">BuilderType</a> = <a class="code" href="namespacearrow.html#ab5ad5330bb34a045c6e87ecee875057e">Int16Builder</a>;</div><div class="line"><a name="l00075"></a><span class="lineno"><a class="line" href="structarrow_1_1_type_traits_3_01_int16_type_01_4.html#aedfcd33e1b5c426482e0d97ae0c9120a"> 75</a></span>  <span class="keyword">using</span> <a class="code" href="structarrow_1_1_type_traits_3_01_int16_type_01_4.html#aedfcd33e1b5c426482e0d97ae0c9120a">TensorType</a> = Int16Tensor;</div><div c lass="line"><a name="l00076"></a><span class="lineno"> 76</span> </div><div class="line"><a name="l00077"></a><span class="lineno"><a class="line" href="structarrow_1_1_type_traits_3_01_int16_type_01_4.html#a69fd9a0b5f30cde1385c3957a4e50eed"> 77</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> int64_t <a class="code" href="structarrow_1_1_type_traits_3_01_int16_type_01_4.html#a69fd9a0b5f30cde1385c3957a4e50eed">bytes_required</a>(int64_t elements) {</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>  <span class="keywordflow">return</span> elements * <span class="keyword">sizeof</span>(int16_t);</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>  }</div><div class="line"><a name="l00080"></a><span class="lineno"><a class="line" href="structarrow_1_1_type_traits_3_01_int16_type_01_4.html#a26885a14eea782da9e518e9483cd52de"> 80</a></span>  constexpr <span class=" keyword">static</span> <span class="keywordtype">bool</span> is_parameter_free = <span class="keyword">true</span>;</div><div class="line"><a name="l00081"></a><span class="lineno"><a class="line" href="structarrow_1_1_type_traits_3_01_int16_type_01_4.html#a5eac1ee4a2b22ea6425918389f73c870"> 81</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> std::shared_ptr<DataType> <a class="code" href="structarrow_1_1_type_traits_3_01_int16_type_01_4.html#a5eac1ee4a2b22ea6425918389f73c870">type_singleton</a>() { <span class="keywordflow">return</span> <a class="code" href="namespacearrow.html#a034c5c703e15039fe76af412d349734d">int16</a>(); }</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span> };</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span> </div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span> <span class="keyword">template</span> <></div><div c lass="line"><a name="l00085"></a><span class="lineno"><a class="line" href="structarrow_1_1_type_traits_3_01_u_int32_type_01_4.html"> 85</a></span> <span class="keyword">struct </span><a class="code" href="structarrow_1_1_type_traits.html">TypeTraits</a><<a class="code" href="classarrow_1_1_u_int32_type.html">UInt32Type</a>> {</div><div class="line"><a name="l00086"></a><span class="lineno"><a class="line" href="structarrow_1_1_type_traits_3_01_u_int32_type_01_4.html#af4f69df2af7fe97fe226234e44a297ac"> 86</a></span>  <span class="keyword">using</span> <a class="code" href="structarrow_1_1_type_traits_3_01_u_int32_type_01_4.html#af4f69df2af7fe97fe226234e44a297ac">ArrayType</a> = UInt32Array;</div><div class="line"><a name="l00087"></a><span class="lineno"><a class="line" href="structarrow_1_1_type_traits_3_01_u_int32_type_01_4.html#aba98d802d8a6973d2366a0ef7a3b11bc"> 87</a></span>  <span class="keyword">using</span> <a class="code" href="classarrow_1_1_nu meric_builder.html">BuilderType</a> = <a class="code" href="namespacearrow.html#a54e6101656a21b97a88179c8d1c453b9">UInt32Builder</a>;</div><div class="line"><a name="l00088"></a><span class="lineno"><a class="line" href="structarrow_1_1_type_traits_3_01_u_int32_type_01_4.html#ac8a4834dce568511563b50d4b9fb5cb3"> 88</a></span>  <span class="keyword">using</span> <a class="code" href="structarrow_1_1_type_traits_3_01_u_int32_type_01_4.html#ac8a4834dce568511563b50d4b9fb5cb3">TensorType</a> = UInt32Tensor;</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span> </div><div class="line"><a name="l00090"></a><span class="lineno"><a class="line" href="structarrow_1_1_type_traits_3_01_u_int32_type_01_4.html#a507fe695dc1bdadb193843670cf8fae4"> 90</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> int64_t <a class="code" href="structarrow_1_1_type_traits_3_01_u_int32_type_01_4.html#a507fe695dc1bdadb193843670cf8fae4">byt es_required</a>(int64_t elements) {</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>  <span class="keywordflow">return</span> elements * <span class="keyword">sizeof</span>(uint32_t);</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>  }</div><div class="line"><a name="l00093"></a><span class="lineno"><a class="line" href="structarrow_1_1_type_traits_3_01_u_int32_type_01_4.html#aa2a627edfa09a69bda6818a1a104b6e5"> 93</a></span>  constexpr <span class="keyword">static</span> <span class="keywordtype">bool</span> is_parameter_free = <span class="keyword">true</span>;</div><div class="line"><a name="l00094"></a><span class="lineno"><a class="line" href="structarrow_1_1_type_traits_3_01_u_int32_type_01_4.html#a4ddabc804e50df35aa2e877145f2480d"> 94</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> std::shared_ptr<DataType> <a class="code" href="structarrow_1_1_type _traits_3_01_u_int32_type_01_4.html#a4ddabc804e50df35aa2e877145f2480d">type_singleton</a>() { <span class="keywordflow">return</span> <a class="code" href="namespacearrow.html#ae80e510cfb2931ac18c73cba0be6d894">uint32</a>(); }</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span> };</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span> </div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span> <span class="keyword">template</span> <></div><div class="line"><a name="l00098"></a><span class="lineno"><a class="line" href="structarrow_1_1_type_traits_3_01_int32_type_01_4.html"> 98</a></span> <span class="keyword">struct </span><a class="code" href="structarrow_1_1_type_traits.html">TypeTraits</a><<a class="code" href="classarrow_1_1_int32_type.html">Int32Type</a>> {</div><div class="line"><a name="l00099"></a><span class="lineno"><a class="line" href="structarrow_1_1_type_traits_3_01_in t32_type_01_4.html#a52c4c1333dee3cd35dd83d063b341590"> 99</a></span>  <span class="keyword">using</span> <a class="code" href="structarrow_1_1_type_traits_3_01_int32_type_01_4.html#a52c4c1333dee3cd35dd83d063b341590">ArrayType</a> = Int32Array;</div><div class="line"><a name="l00100"></a><span class="lineno"><a class="line" href="structarrow_1_1_type_traits_3_01_int32_type_01_4.html#afe5f85713d38533164e75280c296d296"> 100</a></span>  <span class="keyword">using</span> <a class="code" href="classarrow_1_1_numeric_builder.html">BuilderType</a> = <a class="code" href="namespacearrow.html#a031c893d8d592c7a099bb9bea3a25f86">Int32Builder</a>;</div><div class="line"><a name="l00101"></a><span class="lineno"><a class="line" href="structarrow_1_1_type_traits_3_01_int32_type_01_4.html#adb4a9dca91afb06fe8259ceb2671ad4c"> 101</a></span>  <span class="keyword">using</span> <a class="code" href="structarrow_1_1_type_traits_3_01_int32_type_01_4.html#adb4a9dca91afb06fe8259ceb26 71ad4c">TensorType</a> = Int32Tensor;</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span> </div><div class="line"><a name="l00103"></a><span class="lineno"><a class="line" href="structarrow_1_1_type_traits_3_01_int32_type_01_4.html#a1a40d523628e16173130acbcb582eef4"> 103</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> int64_t <a class="code" href="structarrow_1_1_type_traits_3_01_int32_type_01_4.html#a1a40d523628e16173130acbcb582eef4">bytes_required</a>(int64_t elements) {</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>  <span class="keywordflow">return</span> elements * <span class="keyword">sizeof</span>(int32_t);</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>  }</div><div class="line"><a name="l00106"></a><span class="lineno"><a class="line" href="structarrow_1_1_type_traits_3_01_int32_type_01_4.html#afa2351db42ee02f3385ee9256555822e "> 106</a></span>  constexpr <span class="keyword">static</span> <span class="keywordtype">bool</span> is_parameter_free = <span class="keyword">true</span>;</div><div class="line"><a name="l00107"></a><span class="lineno"><a class="line" href="structarrow_1_1_type_traits_3_01_int32_type_01_4.html#ae71f6f3e7cb31e2e524e6c0c15c093db"> 107</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> std::shared_ptr<DataType> <a class="code" href="structarrow_1_1_type_traits_3_01_int32_type_01_4.html#ae71f6f3e7cb31e2e524e6c0c15c093db">type_singleton</a>() { <span class="keywordflow">return</span> <a class="code" href="namespacearrow.html#a86f6bfe394347f77befa2143297ad541">int32</a>(); }</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span> };</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span> </div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span> <span cla ss="keyword">template</span> <></div><div class="line"><a name="l00111"></a><span class="lineno"><a class="line" href="structarrow_1_1_type_traits_3_01_u_int64_type_01_4.html"> 111</a></span> <span class="keyword">struct </span><a class="code" href="structarrow_1_1_type_traits.html">TypeTraits</a><<a class="code" href="classarrow_1_1_u_int64_type.html">UInt64Type</a>> {</div><div class="line"><a name="l00112"></a><span class="lineno"><a class="line" href="structarrow_1_1_type_traits_3_01_u_int64_type_01_4.html#a5df0a3215f71ad803d141c536ce7d362"> 112</a></span>  <span class="keyword">using</span> <a class="code" href="structarrow_1_1_type_traits_3_01_u_int64_type_01_4.html#a5df0a3215f71ad803d141c536ce7d362">ArrayType</a> = UInt64Array;</div><div class="line"><a name="l00113"></a><span class="lineno"><a class="line" href="structarrow_1_1_type_traits_3_01_u_int64_type_01_4.html#ab011d21be9e6ce0e1bd6b1551171c1d4"> 113</a></span>  <span class="keyword">usi ng</span> <a class="code" href="classarrow_1_1_numeric_builder.html">BuilderType</a> = <a class="code" href="namespacearrow.html#a1777cb0f7c98036ad6f078fa0f1a6829">UInt64Builder</a>;</div><div class="line"><a name="l00114"></a><span class="lineno"><a class="line" href="structarrow_1_1_type_traits_3_01_u_int64_type_01_4.html#aac0d43bad97fba3caafd1a2dc26b9767"> 114</a></span>  <span class="keyword">using</span> <a class="code" href="structarrow_1_1_type_traits_3_01_u_int64_type_01_4.html#aac0d43bad97fba3caafd1a2dc26b9767">TensorType</a> = UInt64Tensor;</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span> </div><div class="line"><a name="l00116"></a><span class="lineno"><a class="line" href="structarrow_1_1_type_traits_3_01_u_int64_type_01_4.html#ace497e09f7a7458591919aaf24862c95"> 116</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> int64_t <a class="code" href="structarrow_1_1_type_traits_3_01_u_int64_type _01_4.html#ace497e09f7a7458591919aaf24862c95">bytes_required</a>(int64_t elements) {</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>  <span class="keywordflow">return</span> elements * <span class="keyword">sizeof</span>(uint64_t);</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>  }</div><div class="line"><a name="l00119"></a><span class="lineno"><a class="line" href="structarrow_1_1_type_traits_3_01_u_int64_type_01_4.html#ae1ceaf7faff4da26c4556d176a3a3db3"> 119</a></span>  constexpr <span class="keyword">static</span> <span class="keywordtype">bool</span> is_parameter_free = <span class="keyword">true</span>;</div><div class="line"><a name="l00120"></a><span class="lineno"><a class="line" href="structarrow_1_1_type_traits_3_01_u_int64_type_01_4.html#a4787c7bb9ecaf16ab00fbda8589e1491"> 120</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> std::shared_ptr<DataTy pe> <a class="code" href="structarrow_1_1_type_traits_3_01_u_int64_type_01_4.html#a4787c7bb9ecaf16ab00fbda8589e1491">type_singleton</a>() { <span class="keywordflow">return</span> <a class="code" href="namespacearrow.html#ae548d03275f4afaa97a269774ce6930c">uint64</a>(); }</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span> };</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span> </div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span> <span class="keyword">template</span> <></div><div class="line"><a name="l00124"></a><span class="lineno"><a class="line" href="structarrow_1_1_type_traits_3_01_int64_type_01_4.html"> 124</a></span> <span class="keyword">struct </span><a class="code" href="structarrow_1_1_type_traits.html">TypeTraits</a><<a class="code" href="classarrow_1_1_int64_type.html">Int64Type</a>> {</div><div class="line"><a name="l00125"></a><span class="lineno"><a class ="line" href="structarrow_1_1_type_traits_3_01_int64_type_01_4.html#a2c0305fd167bec49b1fa2ae850e0f3df"> 125</a></span>  <span class="keyword">using</span> <a class="code" href="structarrow_1_1_type_traits_3_01_int64_type_01_4.html#a2c0305fd167bec49b1fa2ae850e0f3df">ArrayType</a> = Int64Array;</div><div class="line"><a name="l00126"></a><span class="lineno"><a class="line" href="structarrow_1_1_type_traits_3_01_int64_type_01_4.html#a02084ff9c1cb91c642c325ef7d63f16e"> 126</a></span>  <span class="keyword">using</span> <a class="code" href="classarrow_1_1_numeric_builder.html">BuilderType</a> = <a class="code" href="namespacearrow.html#a08fa80026c56e0f1ff24b43c4dc33e61">Int64Builder</a>;</div><div class="line"><a name="l00127"></a><span class="lineno"><a class="line" href="structarrow_1_1_type_traits_3_01_int64_type_01_4.html#af36b01e1921228bf93d0fc1b8a534704"> 127</a></span>  <span class="keyword">using</span> <a class="code" href="structarrow_1_1_type_traits_3_01 _int64_type_01_4.html#af36b01e1921228bf93d0fc1b8a534704">TensorType</a> = Int64Tensor;</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span> </div><div class="line"><a name="l00129"></a><span class="lineno"><a class="line" href="structarrow_1_1_type_traits_3_01_int64_type_01_4.html#a73508f6183b83543ab3314632914d204"> 129</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> int64_t <a class="code" href="structarrow_1_1_type_traits_3_01_int64_type_01_4.html#a73508f6183b83543ab3314632914d204">bytes_required</a>(int64_t elements) {</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>  <span class="keywordflow">return</span> elements * <span class="keyword">sizeof</span>(int64_t);</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>  }</div><div class="line"><a name="l00132"></a><span class="lineno"><a class="line" href="structarrow_1_1_type_traits_3_01_int64 _type_01_4.html#a371f1344fd6250f8a28e511f545c701e"> 132</a></span>  constexpr <span class="keyword">static</span> <span class="keywordtype">bool</span> is_parameter_free = <span class="keyword">true</span>;</div><div class="line"><a name="l00133"></a><span class="lineno"><a class="line" href="structarrow_1_1_type_traits_3_01_int64_type_01_4.html#ab31844be95b364dd2f634f7daa0ded51"> 133</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> std::shared_ptr<DataType> <a class="code" href="structarrow_1_1_type_traits_3_01_int64_type_01_4.html#ab31844be95b364dd2f634f7daa0ded51">type_singleton</a>() { <span class="keywordflow">return</span> <a class="code" href="namespacearrow.html#a733b16be653069b8d926529662e34e79">int64</a>(); }</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span> };</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span> </div><div class="line"><a name="l00136"></a ><span class="lineno"> 136</span> <span class="keyword">template</span> ><></div><div class="line"><a name="l00137"></a><span class="lineno"><a >class="line" href="structarrow_1_1_type_traits_3_01_date64_type_01_4.html"> >137</a></span> <span class="keyword">struct </span><a class="code" >href="structarrow_1_1_type_traits.html">TypeTraits</a><<a class="code" >href="classarrow_1_1_date64_type.html">Date64Type</a>> {</div><div >class="line"><a name="l00138"></a><span class="lineno"><a class="line" >href="structarrow_1_1_type_traits_3_01_date64_type_01_4.html#a6e0a681ba33b38672262f0d78af5cbc3"> > 138</a></span>  <span class="keyword">using</span> <a class="code" >href="classarrow_1_1_numeric_array.html">ArrayType</a> = <a class="code" >href="namespacearrow.html#aa9a45b66d455778ec8168f937379f22e">Date64Array</a>;</div><div > class="line"><a name="l00139"></a><span class="lineno"><a class="line" >href="structarrow_1_1_type_traits_3_01_date64_type_01_4.html#a41d3832c01c62 e420d52f176f8f9c04e"> 139</a></span>  <span class="keyword">using</span> <a class="code" href="classarrow_1_1_numeric_builder.html">BuilderType</a> = <a class="code" href="namespacearrow.html#a0f6f5ba414e7dce870af9fc1fa6f96aa">Date64Builder</a>;</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span> </div><div class="line"><a name="l00141"></a><span class="lineno"><a class="line" href="structarrow_1_1_type_traits_3_01_date64_type_01_4.html#a4676900e8107bfd90bced7a9490ae8e8"> 141</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> int64_t <a class="code" href="structarrow_1_1_type_traits_3_01_date64_type_01_4.html#a4676900e8107bfd90bced7a9490ae8e8">bytes_required</a>(int64_t elements) {</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>  <span class="keywordflow">return</span> elements * <span class="keyword">sizeof</span>(int64_t);</div><div class="line"><a name="l00143"></a> <span class="lineno"> 143</span>  }</div><div class="line"><a name="l00144"></a><span class="lineno"><a class="line" href="structarrow_1_1_type_traits_3_01_date64_type_01_4.html#a8802b5ec4d7a34d7b118d552ee082b04"> 144</a></span>  constexpr <span class="keyword">static</span> <span class="keywordtype">bool</span> is_parameter_free = <span class="keyword">true</span>;</div><div class="line"><a name="l00145"></a><span class="lineno"><a class="line" href="structarrow_1_1_type_traits_3_01_date64_type_01_4.html#a66c5ac49feb210668598caa422443b75"> 145</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> std::shared_ptr<DataType> <a class="code" href="structarrow_1_1_type_traits_3_01_date64_type_01_4.html#a66c5ac49feb210668598caa422443b75">type_singleton</a>() { <span class="keywordflow">return</span> <a class="code" href="namespacearrow.html#a540dd093466c265aa411a65f29e950b2">date64</a>(); }</div><div class="line"><a name="l00146">< /a><span class="lineno"> 146</span> };</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span> </div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span> <span class="keyword">template</span> <></div><div class="line"><a name="l00149"></a><span class="lineno"><a class="line" href="structarrow_1_1_type_traits_3_01_date32_type_01_4.html"> 149</a></span> <span class="keyword">struct </span><a class="code" href="structarrow_1_1_type_traits.html">TypeTraits</a><<a class="code" href="classarrow_1_1_date32_type.html">Date32Type</a>> {</div><div class="line"><a name="l00150"></a><span class="lineno"><a class="line" href="structarrow_1_1_type_traits_3_01_date32_type_01_4.html#af9c681fb66ea215c01e31ba1c5710c0b"> 150</a></span>  <span class="keyword">using</span> <a class="code" href="classarrow_1_1_numeric_array.html">ArrayType</a> = <a class="code" href="namespacearrow.html#a3ea89658181e81c18b237da93d8294f7">D ate32Array</a>;</div><div class="line"><a name="l00151"></a><span class="lineno"><a class="line" href="structarrow_1_1_type_traits_3_01_date32_type_01_4.html#a4c46fdf8a0eb51fce6c54346f94556a2"> 151</a></span>  <span class="keyword">using</span> <a class="code" href="classarrow_1_1_numeric_builder.html">BuilderType</a> = <a class="code" href="namespacearrow.html#adcb521d3f703682dd58904c6b3a0d184">Date32Builder</a>;</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span> </div><div class="line"><a name="l00153"></a><span class="lineno"><a class="line" href="structarrow_1_1_type_traits_3_01_date32_type_01_4.html#a0fa5cc54e1f5830dda387ab0bbb76b12"> 153</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> int64_t <a class="code" href="structarrow_1_1_type_traits_3_01_date32_type_01_4.html#a0fa5cc54e1f5830dda387ab0bbb76b12">bytes_required</a>(int64_t elements) {</div><div class="line"><a name="l00154"></a><span class= "lineno"> 154</span>  <span class="keywordflow">return</span> elements * <span class="keyword">sizeof</span>(int32_t);</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>  }</div><div class="line"><a name="l00156"></a><span class="lineno"><a class="line" href="structarrow_1_1_type_traits_3_01_date32_type_01_4.html#a3143c0f80a8a8d0793a1d4b232814d28"> 156</a></span>  constexpr <span class="keyword">static</span> <span class="keywordtype">bool</span> is_parameter_free = <span class="keyword">true</span>;</div><div class="line"><a name="l00157"></a><span class="lineno"><a class="line" href="structarrow_1_1_type_traits_3_01_date32_type_01_4.html#a7c354c902de63706d0077bc48de930db"> 157</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> std::shared_ptr<DataType> <a class="code" href="structarrow_1_1_type_traits_3_01_date32_type_01_4.html#a7c354c902de63706d0077bc48de930db">type_singleton</a>() { <s pan class="keywordflow">return</span> <a class="code" href="namespacearrow.html#ac15fddc26c629cd5a2cb67f432739e8e">date32</a>(); }</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span> };</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span> </div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span> <span class="keyword">template</span> <></div><div class="line"><a name="l00161"></a><span class="lineno"><a class="line" href="structarrow_1_1_type_traits_3_01_timestamp_type_01_4.html"> 161</a></span> <span class="keyword">struct </span><a class="code" href="structarrow_1_1_type_traits.html">TypeTraits</a><<a class="code" href="classarrow_1_1_timestamp_type.html">TimestampType</a>> {</div><div class="line"><a name="l00162"></a><span class="lineno"><a class="line" href="structarrow_1_1_type_traits_3_01_timestamp_type_01_4.html#af076c07a959948b741cd9d0079592240"> 162</a></span>  <s pan class="keyword">using</span> <a class="code" href="classarrow_1_1_numeric_array.html">ArrayType</a> = <a class="code" href="namespacearrow.html#a8da84bd82ad0d204965fe95d134a6c08">TimestampArray</a>;</div><div class="line"><a name="l00163"></a><span class="lineno"><a class="line" href="structarrow_1_1_type_traits_3_01_timestamp_type_01_4.html#a3d1153546aa696fc0dca6ef94d4917c3"> 163</a></span>  <span class="keyword">using</span> <a class="code" href="classarrow_1_1_numeric_builder.html">BuilderType</a> = <a class="code" href="namespacearrow.html#a06c8b697ab3c8b10f4653b088351c4a0">TimestampBuilder</a>;</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span> </div><div class="line"><a name="l00165"></a><span class="lineno"><a class="line" href="structarrow_1_1_type_traits_3_01_timestamp_type_01_4.html#aebc10cae4abe4f7e8cb2f5748760e08b"> 165</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> int64_t <a class="c ode" href="structarrow_1_1_type_traits_3_01_timestamp_type_01_4.html#aebc10cae4abe4f7e8cb2f5748760e08b">bytes_required</a>(int64_t elements) {</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>  <span class="keywordflow">return</span> elements * <span class="keyword">sizeof</span>(int64_t);</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>  }</div><div class="line"><a name="l00168"></a><span class="lineno"><a class="line" href="structarrow_1_1_type_traits_3_01_timestamp_type_01_4.html#a220c0e9076d0f949ab73941d0691f113"> 168</a></span>  constexpr <span class="keyword">static</span> <span class="keywordtype">bool</span> is_parameter_free = <span class="keyword">false</span>;</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span> };</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span> </div><div class="line"><a name="l00171"></a><span class="lineno"> 17 1</span> <span class="keyword">template</span> <></div><div class="line"><a name="l00172"></a><span class="lineno"><a class="line" href="structarrow_1_1_type_traits_3_01_time32_type_01_4.html"> 172</a></span> <span class="keyword">struct </span><a class="code" href="structarrow_1_1_type_traits.html">TypeTraits</a><<a class="code" href="classarrow_1_1_time32_type.html">Time32Type</a>> {</div><div class="line"><a name="l00173"></a><span class="lineno"><a class="line" href="structarrow_1_1_type_traits_3_01_time32_type_01_4.html#a6b4341c4f9e968f067f818672b9d9a3b"> 173</a></span>  <span class="keyword">using</span> <a class="code" href="classarrow_1_1_numeric_array.html">ArrayType</a> = <a class="code" href="namespacearrow.html#a97345da72ba3bedb03d2b93e8c039b19">Time32Array</a>;</div><div class="line"><a name="l00174"></a><span class="lineno"><a class="line" href="structarrow_1_1_type_traits_3_01_time32_type_01_4.html#a6b71f37a50cad166fbe0dbfdcc2a79a3"> 174 </a></span>  <span class="keyword">using</span> <a class="code" href="classarrow_1_1_numeric_builder.html">BuilderType</a> = <a class="code" href="namespacearrow.html#ad48a5da822678dcfb566dd1df839f4c2">Time32Builder</a>;</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span> </div><div class="line"><a name="l00176"></a><span class="lineno"><a class="line" href="structarrow_1_1_type_traits_3_01_time32_type_01_4.html#a01343341b3d5e670ab139d2fc9572e8e"> 176</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> int64_t <a class="code" href="structarrow_1_1_type_traits_3_01_time32_type_01_4.html#a01343341b3d5e670ab139d2fc9572e8e">bytes_required</a>(int64_t elements) {</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>  <span class="keywordflow">return</span> elements * <span class="keyword">sizeof</span>(int32_t);</div><div class="line"><a name="l00178"></a><span class="lineno"> 178 </span>  }</div><div class="line"><a name="l00179"></a><span class="lineno"><a class="line" href="structarrow_1_1_type_traits_3_01_time32_type_01_4.html#a49cc39654c080d49dafe5bcf0167b443"> 179</a></span>  constexpr <span class="keyword">static</span> <span class="keywordtype">bool</span> is_parameter_free = <span class="keyword">false</span>;</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span> };</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span> </div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span> <span class="keyword">template</span> <></div><div class="line"><a name="l00183"></a><span class="lineno"><a class="line" href="structarrow_1_1_type_traits_3_01_time64_type_01_4.html"> 183</a></span> <span class="keyword">struct </span><a class="code" href="structarrow_1_1_type_traits.html">TypeTraits</a><<a class="code" href="classarrow_1_1_time64_type.html">Time64Typ e</a>> {</div><div class="line"><a name="l00184"></a><span class="lineno"><a class="line" href="structarrow_1_1_type_traits_3_01_time64_type_01_4.html#abf93866341aa396c3febe027b3762a9e"> 184</a></span>  <span class="keyword">using</span> <a class="code" href="classarrow_1_1_numeric_array.html">ArrayType</a> = <a class="code" href="namespacearrow.html#a093e1d42b3a49745a128a04736b56fad">Time64Array</a>;</div><div class="line"><a name="l00185"></a><span class="lineno"><a class="line" href="structarrow_1_1_type_traits_3_01_time64_type_01_4.html#a036f27d99c31d6adcde192c8fa414b7b"> 185</a></span>  <span class="keyword">using</span> <a class="code" href="classarrow_1_1_numeric_builder.html">BuilderType</a> = <a class="code" href="namespacearrow.html#ac10bcef81b16eedc8fe72f9471833d79">Time64Builder</a>;</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span> </div><div class="line"><a name="l00187"></a><span class="lineno"><a class="line" href="st ructarrow_1_1_type_traits_3_01_time64_type_01_4.html#a08d96430f6e1eb53e60f6f76d61be68a"> 187</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> int64_t <a class="code" href="structarrow_1_1_type_traits_3_01_time64_type_01_4.html#a08d96430f6e1eb53e60f6f76d61be68a">bytes_required</a>(int64_t elements) {</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>  <span class="keywordflow">return</span> elements * <span class="keyword">sizeof</span>(int64_t);</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>  }</div><div class="line"><a name="l00190"></a><span class="lineno"><a class="line" href="structarrow_1_1_type_traits_3_01_time64_type_01_4.html#ab9bdbcc6db92e72d39a0a5d62951b1f6"> 190</a></span>  constexpr <span class="keyword">static</span> <span class="keywordtype">bool</span> is_parameter_free = <span class="keyword">false</span>;</div><div class="line"><a name="l00191"></ a><span class="lineno"> 191</span> };</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span> </div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span> <span class="keyword">template</span> <></div><div class="line"><a name="l00194"></a><span class="lineno"><a class="line" href="structarrow_1_1_type_traits_3_01_half_float_type_01_4.html"> 194</a></span> <span class="keyword">struct </span><a class="code" href="structarrow_1_1_type_traits.html">TypeTraits</a><<a class="code" href="classarrow_1_1_half_float_type.html">HalfFloatType</a>> {</div><div class="line"><a name="l00195"></a><span class="lineno"><a class="line" href="structarrow_1_1_type_traits_3_01_half_float_type_01_4.html#a6aa82b3713399525c28da1650f2d2194"> 195</a></span>  <span class="keyword">using</span> <a class="code" href="structarrow_1_1_type_traits_3_01_half_float_type_01_4.html#a6aa82b3713399525c28da1650f2d2194">ArrayType</a> = HalfF loatArray;</div><div class="line"><a name="l00196"></a><span class="lineno"><a class="line" href="structarrow_1_1_type_traits_3_01_half_float_type_01_4.html#a82b026ddfccf4dcc1faae2fb7541440f"> 196</a></span>  <span class="keyword">using</span> <a class="code" href="classarrow_1_1_numeric_builder.html">BuilderType</a> = <a class="code" href="namespacearrow.html#ae87957f6c01fb918bb573f04c5188ca4">HalfFloatBuilder</a>;</div><div class="line"><a name="l00197"></a><span class="lineno"><a class="line" href="structarrow_1_1_type_traits_3_01_half_float_type_01_4.html#a21bd985838f128f009128440172c03d3"> 197</a></span>  <span class="keyword">using</span> <a class="code" href="structarrow_1_1_type_traits_3_01_half_float_type_01_4.html#a21bd985838f128f009128440172c03d3">TensorType</a> = HalfFloatTensor;</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span> </div><div class="line"><a name="l00199"></a><span class="lineno"><a class="line" href="structarr ow_1_1_type_traits_3_01_half_float_type_01_4.html#ae83cf7e6e92ce7be3c586fe4fa2b87a9"> 199</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> int64_t <a class="code" href="structarrow_1_1_type_traits_3_01_half_float_type_01_4.html#ae83cf7e6e92ce7be3c586fe4fa2b87a9">bytes_required</a>(int64_t elements) {</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>  <span class="keywordflow">return</span> elements * <span class="keyword">sizeof</span>(uint16_t);</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>  }</div><div class="line"><a name="l00202"></a><span class="lineno"><a class="line" href="structarrow_1_1_type_traits_3_01_half_float_type_01_4.html#a01bff205036d77cdaa41565e27196f17"> 202</a></span>  constexpr <span class="keyword">static</span> <span class="keywordtype">bool</span> is_parameter_free = <span class="keyword">true</span>;</div><div class="line"><a name="l0020 3"></a><span class="lineno"><a class="line" href="structarrow_1_1_type_traits_3_01_half_float_type_01_4.html#a663212f2a600f37d6b2c9effe33128eb"> 203</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> std::shared_ptr<DataType> <a class="code" href="structarrow_1_1_type_traits_3_01_half_float_type_01_4.html#a663212f2a600f37d6b2c9effe33128eb">type_singleton</a>() { <span class="keywordflow">return</span> <a class="code" href="namespacearrow.html#a4fac9b6739876df09be8b82d70b26734">float16</a>(); }</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span> };</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span> </div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span> <span class="keyword">template</span> <></div><div class="line"><a name="l00207"></a><span class="lineno"><a class="line" href="structarrow_1_1_type_traits_3_01_float_type_01_4.html"> 207</a>< /span> <span class="keyword">struct </span><a class="code" href="structarrow_1_1_type_traits.html">TypeTraits</a><<a class="code" href="classarrow_1_1_float_type.html">FloatType</a>> {</div><div class="line"><a name="l00208"></a><span class="lineno"><a class="line" href="structarrow_1_1_type_traits_3_01_float_type_01_4.html#ace3a6515f42ef54b9ac812dae161688f"> 208</a></span>  <span class="keyword">using</span> <a class="code" href="structarrow_1_1_type_traits_3_01_float_type_01_4.html#ace3a6515f42ef54b9ac812dae161688f">ArrayType</a> = FloatArray;</div><div class="line"><a name="l00209"></a><span class="lineno"><a class="line" href="structarrow_1_1_type_traits_3_01_float_type_01_4.html#a0b242043cd11818f64814b23bf70c0dd"> 209</a></span>  <span class="keyword">using</span> <a class="code" href="classarrow_1_1_numeric_builder.html">BuilderType</a> = <a class="code" href="namespacearrow.html#afc7f8a9698e4a5b6e8c3884c2cf3aedb">FloatBuilder</a>;</div><div class="lin e"><a name="l00210"></a><span class="lineno"><a class="line" href="structarrow_1_1_type_traits_3_01_float_type_01_4.html#a902a0b19201d1b7f9a9190414b3e9868"> 210</a></span>  <span class="keyword">using</span> <a class="code" href="structarrow_1_1_type_traits_3_01_float_type_01_4.html#a902a0b19201d1b7f9a9190414b3e9868">TensorType</a> = FloatTensor;</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span> </div><div class="line"><a name="l00212"></a><span class="lineno"><a class="line" href="structarrow_1_1_type_traits_3_01_float_type_01_4.html#a30f2cdcdd4628547390d4082d3ea6df8"> 212</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> int64_t <a class="code" href="structarrow_1_1_type_traits_3_01_float_type_01_4.html#a30f2cdcdd4628547390d4082d3ea6df8">bytes_required</a>(int64_t elements) {</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>  <span class="keywordflow">return</span> <span class="keyword">static_cast<</span>int64_t<span class="keyword">></span>(elements * <span class="keyword">sizeof</span>(float));</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>  }</div><div class="line"><a name="l00215"></a><span class="lineno"><a class="line" href="structarrow_1_1_type_traits_3_01_float_type_01_4.html#a5bff394909ed78cad9bf8c9fa5cca3a2"> 215</a></span>  constexpr <span class="keyword">static</span> <span class="keywordtype">bool</span> is_parameter_free = <span class="keyword">true</span>;</div><div class="line"><a name="l00216"></a><span class="lineno"><a class="line" href="structarrow_1_1_type_traits_3_01_float_type_01_4.html#afe4c35e5a16b88e2532124bf0d366d1a"> 216</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> std::shared_ptr<DataType> <a class="code" href="structarrow_1_1_type_traits_3_01_float_type_01_4.html#afe4c35e5a16b88e2532124bf0d366d1a">type_singleton< /a>() { <span class="keywordflow">return</span> <a class="code" href="namespacearrow.html#a48fca9d26feda61c8255ec3c44a2078c">float32</a>(); }</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span> };</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span> </div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span> <span class="keyword">template</span> <></div><div class="line"><a name="l00220"></a><span class="lineno"><a class="line" href="structarrow_1_1_type_traits_3_01_double_type_01_4.html"> 220</a></span> <span class="keyword">struct </span><a class="code" href="structarrow_1_1_type_traits.html">TypeTraits</a><<a class="code" href="classarrow_1_1_double_type.html">DoubleType</a>> {</div><div class="line"><a name="l00221"></a><span class="lineno"><a class="line" href="structarrow_1_1_type_traits_3_01_double_type_01_4.html#a44043c73fbe22ddc6d91377d60c40dfe"> 221</a></span>  <sp an class="keyword">using</span> <a class="code" href="structarrow_1_1_type_traits_3_01_double_type_01_4.html#a44043c73fbe22ddc6d91377d60c40dfe">ArrayType</a> = DoubleArray;</div><div class="line"><a name="l00222"></a><span class="lineno"><a class="line" href="structarrow_1_1_type_traits_3_01_double_type_01_4.html#a428a9fb1170c534ee760c9d8de2dd140"> 222</a></span>  <span class="keyword">using</span> <a class="code" href="classarrow_1_1_numeric_builder.html">BuilderType</a> = <a class="code" href="namespacearrow.html#ab98cad76b29efffe92c6c88af8947873">DoubleBuilder</a>;</div><div class="line"><a name="l00223"></a><span class="lineno"><a class="line" href="structarrow_1_1_type_traits_3_01_double_type_01_4.html#a2d54791b7a1cc62c681e03735b724114"> 223</a></span>  <span class="keyword">using</span> <a class="code" href="structarrow_1_1_type_traits_3_01_double_type_01_4.html#a2d54791b7a1cc62c681e03735b724114">TensorType</a> = DoubleTensor;</div><div class="line"><a name="l002 24"></a><span class="lineno"> 224</span> </div><div class="line"><a name="l00225"></a><span class="lineno"><a class="line" href="structarrow_1_1_type_traits_3_01_double_type_01_4.html#aba758964f7efca2aadbbac02547eb1c2"> 225</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> int64_t <a class="code" href="structarrow_1_1_type_traits_3_01_double_type_01_4.html#aba758964f7efca2aadbbac02547eb1c2">bytes_required</a>(int64_t elements) {</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>  <span class="keywordflow">return</span> <span class="keyword">static_cast<</span>int64_t<span class="keyword">></span>(elements * <span class="keyword">sizeof</span>(double));</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>  }</div><div class="line"><a name="l00228"></a><span class="lineno"><a class="line" href="structarrow_1_1_type_traits_3_01_double_type_01_4.html#aa5c4644362dcf9c0c8 87c0141439ed37"> 228</a></span>  constexpr <span class="keyword">static</span> <span class="keywordtype">bool</span> is_parameter_free = <span class="keyword">true</span>;</div><div class="line"><a name="l00229"></a><span class="lineno"><a class="line" href="structarrow_1_1_type_traits_3_01_double_type_01_4.html#aa0e3b04bb7af7b4d1993dfa21e44a83a"> 229</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> std::shared_ptr<DataType> <a class="code" href="structarrow_1_1_type_traits_3_01_double_type_01_4.html#aa0e3b04bb7af7b4d1993dfa21e44a83a">type_singleton</a>() { <span class="keywordflow">return</span> <a class="code" href="namespacearrow.html#ab6f514320a9b037ab161fa97db73b970">float64</a>(); }</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span> };</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span> </div><div class="line"><a name="l00232"></a><span class="lineno"> 232</sp an> <span class="keyword">template</span> <></div><div class="line"><a name="l00233"></a><span class="lineno"><a class="line" href="structarrow_1_1_type_traits_3_01_decimal_type_01_4.html"> 233</a></span> <span class="keyword">struct </span><a class="code" href="structarrow_1_1_type_traits.html">TypeTraits</a><<a class="code" href="classarrow_1_1_decimal_type.html">DecimalType</a>> {</div><div class="line"><a name="l00234"></a><span class="lineno"><a class="line" href="structarrow_1_1_type_traits_3_01_decimal_type_01_4.html#adb7098a7907275d71e7839ce1f403646"> 234</a></span>  <span class="keyword">using</span> <a class="code" href="classarrow_1_1_decimal_array.html">ArrayType</a> = <a class="code" href="classarrow_1_1_decimal_array.html">DecimalArray</a>;</div><div class="line"><a name="l00235"></a><span class="lineno"><a class="line" href="structarrow_1_1_type_traits_3_01_decimal_type_01_4.html#abe12b774a61550a66ba9a804521ce115"> 235</a></span>  <span class="keyword">using</span> <a class="code" href="classarrow_1_1_decimal_builder.html">BuilderType</a> = <a class="code" href="classarrow_1_1_decimal_builder.html">DecimalBuilder</a>;</div><div class="line"><a name="l00236"></a><span class="lineno"><a class="line" href="structarrow_1_1_type_traits_3_01_decimal_type_01_4.html#af9a12e92b5a67912321e9b1039b3dcc2"> 236</a></span>  constexpr <span class="keyword">static</span> <span class="keywordtype">bool</span> is_parameter_free = <span class="keyword">false</span>;</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span> };</div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span> </div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span> <span class="keyword">template</span> <></div><div class="line"><a name="l00240"></a><span class="lineno"><a class="line" href="structarrow_1_1_type_traits_3_01_boolean_type_01_4.html"> 240</a></span> 0;<span class="keyword">struct </span><a class="code" href="structarrow_1_1_type_traits.html">TypeTraits</a><<a class="code" href="classarrow_1_1_boolean_type.html">BooleanType</a>> {</div><div class="line"><a name="l00241"></a><span class="lineno"><a class="line" href="structarrow_1_1_type_traits_3_01_boolean_type_01_4.html#a1b3072687c60e6de2d0e988eeba7f162"> 241</a></span>  <span class="keyword">using</span> <a class="code" href="classarrow_1_1_boolean_array.html">ArrayType</a> = <a class="code" href="classarrow_1_1_boolean_array.html">BooleanArray</a>;</div><div class="line"><a name="l00242"></a><span class="lineno"><a class="line" href="structarrow_1_1_type_traits_3_01_boolean_type_01_4.html#a12afd9e09e99f217324b71bdf3784a60"> 242</a></span>  <span class="keyword">using</span> <a class="code" href="classarrow_1_1_boolean_builder.html">BuilderType</a> = <a class="code" href="classarrow_1_1_boolean_builder.html">BooleanBuilder</a>;</div><div class="line"><a nam e="l00243"></a><span class="lineno"> 243</span> </div><div class="line"><a name="l00244"></a><span class="lineno"><a class="line" href="structarrow_1_1_type_traits_3_01_boolean_type_01_4.html#a91282d3d769b3d80cf7617515c982dcd"> 244</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> int64_t <a class="code" href="structarrow_1_1_type_traits_3_01_boolean_type_01_4.html#a91282d3d769b3d80cf7617515c982dcd">bytes_required</a>(int64_t elements) {</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>  <span class="keywordflow">return</span> BitUtil::BytesForBits(elements);</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>  }</div><div class="line"><a name="l00247"></a><span class="lineno"><a class="line" href="structarrow_1_1_type_traits_3_01_boolean_type_01_4.html#a17774c6bedc225eb51ecaa91c1ffb3b9"> 247</a></span>  constexpr <span class="keyword">static</span> <span class=" keywordtype">bool</span> is_parameter_free = <span class="keyword">true</span>;</div><div class="line"><a name="l00248"></a><span class="lineno"><a class="line" href="structarrow_1_1_type_traits_3_01_boolean_type_01_4.html#a7c3e7919595a91f907cfec47601edf21"> 248</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> std::shared_ptr<DataType> <a class="code" href="structarrow_1_1_type_traits_3_01_boolean_type_01_4.html#a7c3e7919595a91f907cfec47601edf21">type_singleton</a>() { <span class="keywordflow">return</span> <a class="code" href="namespacearrow.html#a1e585e8f1c25a9751ac9381a274df057">boolean</a>(); }</div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span> };</div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span> </div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span> <span class="keyword">template</span> <></div><div class="line"><a name="l00252">< /a><span class="lineno"><a class="line" href="structarrow_1_1_type_traits_3_01_string_type_01_4.html"> 252</a></span> <span class="keyword">struct </span><a class="code" href="structarrow_1_1_type_traits.html">TypeTraits</a><<a class="code" href="classarrow_1_1_string_type.html">StringType</a>> {</div><div class="line"><a name="l00253"></a><span class="lineno"><a class="line" href="structarrow_1_1_type_traits_3_01_string_type_01_4.html#af47730a78c0ff078ccbf0bc48dd3fd21"> 253</a></span>  <span class="keyword">using</span> <a class="code" href="classarrow_1_1_string_array.html">ArrayType</a> = <a class="code" href="classarrow_1_1_string_array.html">StringArray</a>;</div><div class="line"><a name="l00254"></a><span class="lineno"><a class="line" href="structarrow_1_1_type_traits_3_01_string_type_01_4.html#af59feae426da02991fa66b7f3a9afa10"> 254</a></span>  <span class="keyword">using</span> <a class="code" href="classarrow_1_1_string_builder.html">BuilderType< /a> = <a class="code" href="classarrow_1_1_string_builder.html">StringBuilder</a>;</div><div class="line"><a name="l00255"></a><span class="lineno"><a class="line" href="structarrow_1_1_type_traits_3_01_string_type_01_4.html#aa6ca9bdb541994ee37d7aba62bdc8fb6"> 255</a></span>  constexpr <span class="keyword">static</span> <span class="keywordtype">bool</span> is_parameter_free = <span class="keyword">true</span>;</div><div class="line"><a name="l00256"></a><span class="lineno"><a class="line" href="structarrow_1_1_type_traits_3_01_string_type_01_4.html#acf544e734357d7d7be20ad1ec5a3fd77"> 256</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> std::shared_ptr<DataType> <a class="code" href="structarrow_1_1_type_traits_3_01_string_type_01_4.html#acf544e734357d7d7be20ad1ec5a3fd77">type_singleton</a>() { <span class="keywordflow">return</span> <a class="code" href="namespacearrow.html#a63178820a26f6ecb894ad35963ca981a">utf8</a>(); }</di v><div class="line"><a name="l00257"></a><span class="lineno"> 257</span> };</div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span> </div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span> <span class="keyword">template</span> <></div><div class="line"><a name="l00260"></a><span class="lineno"><a class="line" href="structarrow_1_1_type_traits_3_01_binary_type_01_4.html"> 260</a></span> <span class="keyword">struct </span><a class="code" href="structarrow_1_1_type_traits.html">TypeTraits</a><<a class="code" href="classarrow_1_1_binary_type.html">BinaryType</a>> {</div><div class="line"><a name="l00261"></a><span class="lineno"><a class="line" href="structarrow_1_1_type_traits_3_01_binary_type_01_4.html#a0ecf64fc719b4a35862218c64c7ad1ca"> 261</a></span>  <span class="keyword">using</span> <a class="code" href="classarrow_1_1_binary_array.html">ArrayType</a> = <a class="code" href="classarrow_1_1_bina ry_array.html">BinaryArray</a>;</div><div class="line"><a name="l00262"></a><span class="lineno"><a class="line" href="structarrow_1_1_type_traits_3_01_binary_type_01_4.html#ad662529a02103e27fef5f577c04e3453"> 262</a></span>  <span class="keyword">using</span> <a class="code" href="classarrow_1_1_binary_builder.html">BuilderType</a> = <a class="code" href="classarrow_1_1_binary_builder.html">BinaryBuilder</a>;</div><div class="line"><a name="l00263"></a><span class="lineno"><a class="line" href="structarrow_1_1_type_traits_3_01_binary_type_01_4.html#a83e440fc035a172c641d2b82866ecea8"> 263</a></span>  constexpr <span class="keyword">static</span> <span class="keywordtype">bool</span> is_parameter_free = <span class="keyword">true</span>;</div><div class="line"><a name="l00264"></a><span class="lineno"><a class="line" href="structarrow_1_1_type_traits_3_01_binary_type_01_4.html#a166e353c8013015e75e0ce93b38a7df9"> 264</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> std::shared_ptr<DataType> <a class="code" href="structarrow_1_1_type_traits_3_01_binary_type_01_4.html#a166e353c8013015e75e0ce93b38a7df9">type_singleton</a>() { <span class="keywordflow">return</span> <a class="code" href="namespacearrow.html#a66c3979f26a439e78d048bbac84a9232">binary</a>(); }</div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span> };</div><div class="line"><a name="l00266"></a><span class="lineno"> 266</span> </div><div class="line"><a name="l00267"></a><span class="lineno"> 267</span> <span class="keyword">template</span> <></div><div class="line"><a name="l00268"></a><span class="lineno"><a class="line" href="structarrow_1_1_type_traits_3_01_fixed_size_binary_type_01_4.html"> 268</a></span> <span class="keyword">struct </span><a class="code" href="structarrow_1_1_type_traits.html">TypeTraits</a><<a class="code" href="classarrow_1_1_fixed_size_binary_type.html">FixedSiz eBinaryType</a>> {</div><div class="line"><a name="l00269"></a><span class="lineno"><a class="line" href="structarrow_1_1_type_traits_3_01_fixed_size_binary_type_01_4.html#a147e171074bae7fd5c0dec39ab9fe562"> 269</a></span>  <span class="keyword">using</span> <a class="code" href="classarrow_1_1_fixed_size_binary_array.html">ArrayType</a> = <a class="code" href="classarrow_1_1_fixed_size_binary_array.html">FixedSizeBinaryArray</a>;</div><div class="line"><a name="l00270"></a><span class="lineno"><a class="line" href="structarrow_1_1_type_traits_3_01_fixed_size_binary_type_01_4.html#ac453a60e8df23fd6ea8f7646b21a145f"> 270</a></span>  <span class="keyword">using</span> <a class="code" href="classarrow_1_1_fixed_size_binary_builder.html">BuilderType</a> = <a class="code" href="classarrow_1_1_fixed_size_binary_builder.html">FixedSizeBinaryBuilder</a>;</div><div class="line"><a name="l00271"></a><span class="lineno"><a class="line" href="structarrow_1_1_type_traits_3_01_f ixed_size_binary_type_01_4.html#abcb5be0e1ae607ad5d6663a12731ae53"> 271</a></span>  constexpr <span class="keyword">static</span> <span class="keywordtype">bool</span> is_parameter_free = <span class="keyword">false</span>;</div><div class="line"><a name="l00272"></a><span class="lineno"> 272</span> };</div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span> </div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span> <span class="keyword">template</span> <></div><div class="line"><a name="l00275"></a><span class="lineno"><a class="line" href="structarrow_1_1_type_traits_3_01_list_type_01_4.html"> 275</a></span> <span class="keyword">struct </span><a class="code" href="structarrow_1_1_type_traits.html">TypeTraits</a><<a class="code" href="classarrow_1_1_list_type.html">ListType</a>> {</div><div class="line"><a name="l00276"></a><span class="lineno"><a class="line" href="structarrow_1_1_type_traits_3_01_l ist_type_01_4.html#aab17a5bd4ab94822e00ec5fd702671d8"> 276</a></span>  <span class="keyword">using</span> <a class="code" href="classarrow_1_1_list_array.html">ArrayType</a> = <a class="code" href="classarrow_1_1_list_array.html">ListArray</a>;</div><div class="line"><a name="l00277"></a><span class="lineno"><a class="line" href="structarrow_1_1_type_traits_3_01_list_type_01_4.html#a9b2dbeef7548488dc453d76d03e863dd"> 277</a></span>  <span class="keyword">using</span> <a class="code" href="classarrow_1_1_list_builder.html">BuilderType</a> = <a class="code" href="classarrow_1_1_list_builder.html">ListBuilder</a>;</div><div class="line"><a name="l00278"></a><span class="lineno"><a class="line" href="structarrow_1_1_type_traits_3_01_list_type_01_4.html#a12b61eb4fd1da8d0f5506a72e994b66a"> 278</a></span>  constexpr <span class="keyword">static</span> <span class="keywordtype">bool</span> is_parameter_free = <span class="keyword">false</span>;</div><div class="line"><a name="l00279"></a><span class="lineno"> 279</span> };</div><div class="line"><a name="l00280"></a><span class="lineno"> 280</span> </div><div class="line"><a name="l00281"></a><span class="lineno"> 281</span> <span class="keyword">template</span> <></div><div class="line"><a name="l00282"></a><span class="lineno"><a class="line" href="structarrow_1_1_type_traits_3_01_struct_type_01_4.html"> 282</a></span> <span class="keyword">struct </span><a class="code" href="structarrow_1_1_type_traits.html">TypeTraits</a><<a class="code" href="classarrow_1_1_struct_type.html">StructType</a>> {</div><div class="line"><a name="l00283"></a><span class="lineno"><a class="line" href="structarrow_1_1_type_traits_3_01_struct_type_01_4.html#a73c7785f9ef7dd0076b8798fe887c979"> 283</a></span>  <span class="keyword">using</span> <a class="code" href="classarrow_1_1_struct_array.html">ArrayType</a> = <a class="code" href="classarrow_1_1_struct_array.html">StructA rray</a>;</div><div class="line"><a name="l00284"></a><span class="lineno"><a class="line" href="structarrow_1_1_type_traits_3_01_struct_type_01_4.html#a34288bf62995f3353b7a2d608ea57e11"> 284</a></span>  <span class="keyword">using</span> <a class="code" href="classarrow_1_1_struct_builder.html">BuilderType</a> = <a class="code" href="classarrow_1_1_struct_builder.html">StructBuilder</a>;</div><div class="line"><a name="l00285"></a><span class="lineno"><a class="line" href="structarrow_1_1_type_traits_3_01_struct_type_01_4.html#a0d791e27ed1eedeeda45020c45e258a1"> 285</a></span>  constexpr <span class="keyword">static</span> <span class="keywordtype">bool</span> is_parameter_free = <span class="keyword">false</span>;</div><div class="line"><a name="l00286"></a><span class="lineno"> 286</span> };</div><div class="line"><a name="l00287"></a><span class="lineno"> 287</span> </div><div class="line"><a name="l00288"></a><span class="lineno"> 288</span> <spa n class="keyword">template</span> <></div><div class="line"><a name="l00289"></a><span class="lineno"><a class="line" href="structarrow_1_1_type_traits_3_01_union_type_01_4.html"> 289</a></span> <span class="keyword">struct </span><a class="code" href="structarrow_1_1_type_traits.html">TypeTraits</a><<a class="code" href="classarrow_1_1_union_type.html">UnionType</a>> {</div><div class="line"><a name="l00290"></a><span class="lineno"><a class="line" href="structarrow_1_1_type_traits_3_01_union_type_01_4.html#af4ce351d027304784552142f0dc64cdd"> 290</a></span>  <span class="keyword">using</span> <a class="code" href="classarrow_1_1_union_array.html">ArrayType</a> = <a class="code" href="classarrow_1_1_union_array.html">UnionArray</a>;</div><div class="line"><a name="l00291"></a><span class="lineno"><a class="line" href="structarrow_1_1_type_traits_3_01_union_type_01_4.html#a5d81723cd6a71551294fa1b6bfa725dd"> 291</a></span>  constexpr <span class="keywor d">static</span> <span class="keywordtype">bool</span> is_parameter_free = <span class="keyword">false</span>;</div><div class="line"><a name="l00292"></a><span class="lineno"> 292</span> };</div><div class="line"><a name="l00293"></a><span class="lineno"> 293</span> </div><div class="line"><a name="l00294"></a><span class="lineno"> 294</span> <span class="keyword">template</span> <></div><div class="line"><a name="l00295"></a><span class="lineno"><a class="line" href="structarrow_1_1_type_traits_3_01_dictionary_type_01_4.html"> 295</a></span> <span class="keyword">struct </span><a class="code" href="structarrow_1_1_type_traits.html">TypeTraits</a><<a class="code" href="classarrow_1_1_dictionary_type.html">DictionaryType</a>> {</div><div class="line"><a name="l00296"></a><span class="lineno"><a class="line" href="structarrow_1_1_type_traits_3_01_dictionary_type_01_4.html#a25dd97f8e8f6603eec243d3f9d0b5690"> 296</a></span>  <span class="keywo rd">using</span> <a class="code" href="classarrow_1_1_dictionary_array.html">ArrayType</a> = <a class="code" href="classarrow_1_1_dictionary_array.html">DictionaryArray</a>;</div><div class="line"><a name="l00297"></a><span class="lineno"><a class="line" href="structarrow_1_1_type_traits_3_01_dictionary_type_01_4.html#a3d47dede7abfa3d2b527fc9ec5157aae"> 297</a></span>  constexpr <span class="keyword">static</span> <span class="keywordtype">bool</span> is_parameter_free = <span class="keyword">false</span>;</div><div class="line"><a name="l00298"></a><span class="lineno"> 298</span> };</div><div class="line"><a name="l00299"></a><span class="lineno"> 299</span> </div><div class="line"><a name="l00300"></a><span class="lineno"> 300</span> <span class="keyword">namespace </span>detail {</div><div class="line"><a name="l00301"></a><span class="lineno"> 301</span> </div><div class="line"><a name="l00302"></a><span class="lineno"> 302</span> <span clas s="comment">// Not all type classes have a c_type</span></div><div class="line"><a name="l00303"></a><span class="lineno"> 303</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T></div><div class="line"><a name="l00304"></a><span class="lineno"> 304</span> <span class="keyword">struct </span>as_void {</div><div class="line"><a name="l00305"></a><span class="lineno"> 305</span>  <span class="keyword">using</span> type = void;</div><div class="line"><a name="l00306"></a><span class="lineno"> 306</span> };</div><div class="line"><a name="l00307"></a><span class="lineno"> 307</span> </div><div class="line"><a name="l00308"></a><span class="lineno"> 308</span> <span class="comment">// The partial specialization will match if T has the ATTR_NAME member</span></div><div class="line"><a name="l00309"></a><span class="lineno"><a class="line" href="type__traits_8h.html#a18c73d2084fcf7b5ed8e30c9ee6b8537"> 309</a></sp an> <span class="preprocessor">#define GET_ATTR(ATTR_NAME, DEFAULT) \</span></div><div class="line"><a name="l00310"></a><span class="lineno"> 310</span> <span class="preprocessor"> template <typename T, typename Enable = void> \</span></div><div class="line"><a name="l00311"></a><span class="lineno"> 311</span> <span class="preprocessor"> struct GetAttr_##ATTR_NAME { \</span></div><div class="line"><a name="l00312"></a><span class="lineno"> 312</span> <span class="preprocessor"> using type = DEFAULT; \</span></div><div class="line"><a name="l00313"></a><span class="lineno"> 313</span> <span class="preprocessor"> }; \</span></div><div class="line"><a name="l00314"></a><span class="lineno"> 314</span> <span class="preprocessor"> \</span></div><div class="line"><a name="l00315"></a><span class="lineno"> 315</span> <span class="preprocessor"> template <typename T> \</span></div><div class="line"><a name="l00316"></a><span class="lineno"> 316</span> <span class="preprocessor"> struct GetAttr_##ATTR_NAME<T, typename as_void<typename T::ATTR_NAME>::type> { \</span></div><div class="line"><a name="l00317"></a><span class="lineno"> 317</span> <span class="preprocessor"> using type = typename T::ATTR_NAME; \</span></div><div class="line"><a name="l00318"></a><span class="lineno"> 318</span> <span class="preprocessor"> };</span></div><div class="line"><a name="l00319"></a><span class="lineno"> 319</span> </div><div class="line"><a name="l00320 "></a><span class="lineno"> 320</span> <a class="code" href="type__traits_8h.html#a18c73d2084fcf7b5ed8e30c9ee6b8537">GET_ATTR</a>(c_type, <span class="keywordtype">void</span>);</div><div class="line"><a name="l00321"></a><span class="lineno"> 321</span> <a class="code" href="type__traits_8h.html#a18c73d2084fcf7b5ed8e30c9ee6b8537">GET_ATTR</a>(TypeClass, <span class="keywordtype">void</span>);</div><div class="line"><a name="l00322"></a><span class="lineno"> 322</span> </div><div class="line"><a name="l00323"></a><span class="lineno"> 323</span> <span class="preprocessor">#undef GET_ATTR</span></div><div class="line"><a name="l00324"></a><span class="lineno"> 324</span> </div><div class="line"><a name="l00325"></a><span class="lineno"> 325</span> } <span class="comment">// namespace detail</span></div><div class="line"><a name="l00326"></a><span class="lineno"> 326</span> </div><div class="line"><a name="l00327"></a><span class="lineno"><a class="line" href="type__traits_8h.html#a3883a60bdbf082f79b39a80fd1b33cdb"> 327</a></span> <span class="preprocessor">#define PRIMITIVE_TRAITS(T) \</span></div><div class="line"><a name="l00328"></a><span class="lineno"> 328</span> <span class="preprocessor"> using TypeClass = \</span></div><div class="line"><a name="l00329"></a><span class="lineno"> 329</span> <span class="preprocessor"> typename std::conditional<std::is_base_of<DataType, T>::value, T, \</span></div><div class="line"><a name="l00330"></a><span class="lineno"> 330</span> <span class="preprocessor"> typename detail::GetAttr_TypeClass<T>::type>::type; \</span></div><div class="line"><a name="l00331"></a><span class="lineno"> 331</span> <span class="preprocessor"> using c_type = typename detail::GetAttr_c _type<TypeClass>::type</span></div><div class="line"><a name="l00332"></a><span class="lineno"> 332</span> </div><div class="line"><a name="l00333"></a><span class="lineno"> 333</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T></div><div class="line"><a name="l00334"></a><span class="lineno"><a class="line" href="structarrow_1_1_is_unsigned_int.html"> 334</a></span> <span class="keyword">struct </span><a class="code" href="structarrow_1_1_is_unsigned_int.html">IsUnsignedInt</a> {</div><div class="line"><a name="l00335"></a><span class="lineno"> 335</span>  <a class="code" href="type__traits_8h.html#a3883a60bdbf082f79b39a80fd1b33cdb">PRIMITIVE_TRAITS</a>(T);</div><div class="line"><a name="l00336"></a><span class="lineno"><a class="line" href="structarrow_1_1_is_unsigned_int.html#a445fa4898364948e9d9185d71f9eb274"> 336</a></span>  <span class="keyword">static</span> constexpr <span class="keywordtype">bo ol</span> value =</div><div class="line"><a name="l00337"></a><span class="lineno"> 337</span>  std::is_integral<c_type>::value && std::is_unsigned<c_type>::value;</div><div class="line"><a name="l00338"></a><span class="lineno"> 338</span> };</div><div class="line"><a name="l00339"></a><span class="lineno"> 339</span> </div><div class="line"><a name="l00340"></a><span class="lineno"> 340</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T></div><div class="line"><a name="l00341"></a><span class="lineno"><a class="line" href="structarrow_1_1_is_signed_int.html"> 341</a></span> <span class="keyword">struct </span><a class="code" href="structarrow_1_1_is_signed_int.html">IsSignedInt</a> {</div><div class="line"><a name="l00342"></a><span class="lineno"> 342</span>  <a class="code" href="type__traits_8h.html#a3883a60bdbf082f79b39a80fd1b33cdb">PRIMITIVE_TRAITS</a>(T);</div><div class="l ine"><a name="l00343"></a><span class="lineno"><a class="line" href="structarrow_1_1_is_signed_int.html#abc4a825ae09fe403a9374ab16ad2f8f3"> 343</a></span>  <span class="keyword">static</span> constexpr <span class="keywordtype">bool</span> value =</div><div class="line"><a name="l00344"></a><span class="lineno"> 344</span>  std::is_integral<c_type>::value && std::is_signed<c_type>::value;</div><div class="line"><a name="l00345"></a><span class="lineno"> 345</span> };</div><div class="line"><a name="l00346"></a><span class="lineno"> 346</span> </div><div class="line"><a name="l00347"></a><span class="lineno"> 347</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T></div><div class="line"><a name="l00348"></a><span class="lineno"><a class="line" href="structarrow_1_1_is_integer.html"> 348</a></span> <span class="keyword">struct </span><a class="code" href="structarrow_1_1_is_integer.h tml">IsInteger</a> {</div><div class="line"><a name="l00349"></a><span class="lineno"> 349</span>  <a class="code" href="type__traits_8h.html#a3883a60bdbf082f79b39a80fd1b33cdb">PRIMITIVE_TRAITS</a>(T);</div><div class="line"><a name="l00350"></a><span class="lineno"><a class="line" href="structarrow_1_1_is_integer.html#a05e3402d1e3a655b2bdf95e107fb3323"> 350</a></span>  <span class="keyword">static</span> constexpr <span class="keywordtype">bool</span> value = std::is_integral<c_type>::value;</div><div class="line"><a name="l00351"></a><span class="lineno"> 351</span> };</div><div class="line"><a name="l00352"></a><span class="lineno"> 352</span> </div><div class="line"><a name="l00353"></a><span class="lineno"> 353</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T></div><div class="line"><a name="l00354"></a><span class="lineno"><a class="line" href="structarrow_1_1_is_floating_point.html"> 354</a></sp an> <span class="keyword">struct </span><a class="code" href="structarrow_1_1_is_floating_point.html">IsFloatingPoint</a> {</div><div class="line"><a name="l00355"></a><span class="lineno"> 355</span>  <a class="code" href="type__traits_8h.html#a3883a60bdbf082f79b39a80fd1b33cdb">PRIMITIVE_TRAITS</a>(T);</div><div class="line"><a name="l00356"></a><span class="lineno"><a class="line" href="structarrow_1_1_is_floating_point.html#affd2c10a021930476de1878394d0e9aa"> 356</a></span>  <span class="keyword">static</span> constexpr <span class="keywordtype">bool</span> value = std::is_floating_point<c_type>::value;</div><div class="line"><a name="l00357"></a><span class="lineno"> 357</span> };</div><div class="line"><a name="l00358"></a><span class="lineno"> 358</span> </div><div class="line"><a name="l00359"></a><span class="lineno"> 359</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T></div><div class="li ne"><a name="l00360"></a><span class="lineno"><a class="line" href="structarrow_1_1_is_numeric.html"> 360</a></span> <span class="keyword">struct </span><a class="code" href="structarrow_1_1_is_numeric.html">IsNumeric</a> {</div><div class="line"><a name="l00361"></a><span class="lineno"> 361</span>  <a class="code" href="type__traits_8h.html#a3883a60bdbf082f79b39a80fd1b33cdb">PRIMITIVE_TRAITS</a>(T);</div><div class="line"><a name="l00362"></a><span class="lineno"><a class="line" href="structarrow_1_1_is_numeric.html#aa31d6aea56a7c972d8c233b36da35abd"> 362</a></span>  <span class="keyword">static</span> constexpr <span class="keywordtype">bool</span> value = std::is_arithmetic<c_type>::value;</div><div class="line"><a name="l00363"></a><span class="lineno"> 363</span> };</div><div class="line"><a name="l00364"></a><span class="lineno"> 364</span> </div><div class="line"><a name="l00365"></a><span class="lineno"> 365</span> <span class="ke yword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> is_integer(<a class="code" href="structarrow_1_1_type.html#a00a041cb19a3be373da8eec7d4bf1f44">Type::type</a> type_id) {</div><div class="line"><a name="l00366"></a><span class="lineno"> 366</span>  <span class="keywordflow">switch</span> (type_id) {</div><div class="line"><a name="l00367"></a><span class="lineno"> 367</span>  <span class="keywordflow">case</span> <a class="code" href="structarrow_1_1_type.html#a00a041cb19a3be373da8eec7d4bf1f44ab8f52afb784526f800c91de101673b42">Type::UINT8</a>:</div><div class="line"><a name="l00368"></a><span class="lineno"> 368</sp
<TRUNCATED>
