Teuchos - Trilinos Tools Package Version of the Day
Loading...
Searching...
No Matches
Teuchos_ArrayConversions.hpp
Go to the documentation of this file.
1// @HEADER
2// *****************************************************************************
3// Teuchos: Common Tools Package
4//
5// Copyright 2004 NTESS and the Teuchos contributors.
6// SPDX-License-Identifier: BSD-3-Clause
7// *****************************************************************************
8// @HEADER
9
10#ifndef TEUCHOS_ARRAY_CONVERSIONS_H
11#define TEUCHOS_ARRAY_CONVERSIONS_H
12
17#include "Teuchos_Ptr.hpp"
18#include "Teuchos_RCP.hpp"
19#include "Teuchos_Array.hpp"
20#include "Teuchos_Assert.hpp"
21
22
23namespace Teuchos {
24
25
30template<class ArrayPtrT_in, class T_out>
32 const ArrayView<Ptr<T_out> > &a_out )
33{
34 using Teuchos::as;
35#ifdef TEUCHOS_DEBUG
38#endif
39 for (Teuchos_Ordinal i = 0; i < as<Teuchos_Ordinal>(a_in.size()); ++i) {
40 a_out[i] = a_in[i].ptr();
41 }
42}
43
44
48template<class ArrayPtrT_in, class T_out>
50 const ArrayView<RCP<T_out> > &a_out )
51{
52 using Teuchos::as;
53#ifdef TEUCHOS_DEBUG
56#endif
57 for (Teuchos_Ordinal i = 0; i < as<Teuchos_Ordinal>(a_in.size()); ++i) {
58 a_out[i] = a_in[i];
59 }
60}
61
62
83template<class T_out, class ArrayPtrT_in>
91
92
99template<class T_out, class ArrayPtrT_in>
101{
102 using Teuchos::as;
103 Array<RCP<T_out> > a_out(a_in.size());
105 return a_out;
106}
107
108
119template<class T>
120ArrayView<const Ptr<const T> >
125
126
137template<class T>
138ArrayView<const RCP<const T> >
143
144
145} // namespace Teuchos
146
147
148#endif // TEUCHOS_ARRAY_CONVERSIONS_H
149
Templated array class derived from the STL std::vector.
Reference-counted pointer class and non-member templated function implementations.
Nonowning array view.
Smart reference counting pointer class for automatic garbage collection.
Ptr< T > ptr() const
Get a safer wrapper raw C++ pointer to the underlying object.
#define TEUCHOS_ASSERT_EQUALITY(val1, val2)
This macro is checks that to numbers are equal and if not then throws an exception with a good error ...
TypeTo as(const TypeFrom &t)
Convert from one value type to another.
The Teuchos namespace contains all of the classes, structs and enums used by Teuchos,...
void arrayViewPtrConv(const ArrayPtrT_in &a_in, const ArrayView< Ptr< T_out > > &a_out)
Utility function to convert from an an input Array[View,RCP]<[const] PTR<T_in> > object to an output ...
ArrayView< const RCP< const T > > arrayConstRcpConstCast(const ArrayView< const RCP< T > > &a_in)
Utility function that does a reinterpret case to convert an ArrayView<const RCP<T> > object to an Arr...
Array< Ptr< T_out > > arrayPtrConv(const ArrayPtrT_in &a_in)
Utility function to convert an Array[View,RCP]<[const] PTR<T_in> > object to an Array<Ptr<T_out> > ob...
ArrayView< const Ptr< const T > > arrayConstPtrConstCast(const ArrayView< const Ptr< T > > &a_in)
Utility function that does a reinterpret case to convert an ArrayView<const Ptr<T> > object to an Arr...
void arrayViewRcpConv(const ArrayPtrT_in &a_in, const ArrayView< RCP< T_out > > &a_out)
Utility function to convert from an input Array[View,RCP]<[const] RCP<T_in> > object to an output Arr...
Array< RCP< T_out > > arrayRcpConv(const ArrayPtrT_in &a_in)
Utility function to convert any Array[View,RCP]<[const] RCP<T_in> > object to an Array<RCP<T_out> > o...