• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 
2 // Copyright 2021 The Tint Authors.
3 //
4 // Licensed under the Apache License, Version 2.0 (the "License");
5 // you may not use this file except in compliance with the License.
6 // You may obtain a copy of the License at
7 //
8 //     http://www.apache.org/licenses/LICENSE-2.0
9 //
10 // Unless required by applicable law or agreed to in writing, software
11 // distributed under the License is distributed on an "AS IS" BASIS,
12 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 // See the License for the specific language governing permissions and
14 // limitations under the License.
15 
16 #ifndef SRC_UTILS_TO_CONST_PTR_VEC_H_
17 #define SRC_UTILS_TO_CONST_PTR_VEC_H_
18 
19 #include <vector>
20 
21 namespace tint {
22 namespace utils {
23 
24 /// @param in a vector of `T*`
25 /// @returns a vector of `const T*` with the content of `in`.
26 template <typename T>
ToConstPtrVec(const std::vector<T * > & in)27 std::vector<const T*> ToConstPtrVec(const std::vector<T*>& in) {
28   std::vector<const T*> out;
29   out.reserve(in.size());
30   for (auto* ptr : in) {
31     out.emplace_back(ptr);
32   }
33   return out;
34 }
35 
36 }  // namespace utils
37 }  // namespace tint
38 
39 #endif  //  SRC_UTILS_TO_CONST_PTR_VEC_H_
40