pw_containers: Improve templated Vector::insert

This CL reworks the templated overload of `Vector::insert` that takes
two iterators to only match actual iterators. Previously, the template
parameter `Iterator` could be anything, and calls meant for
`insert(..., size_type, const T&)`, e.g. `insert(..., 3, 3)`, would
instead resolve to the templated method and fail to compile.

Change-Id: I3821417b055ab65328df3e6bebf627c760bf28f1
Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/149031
Reviewed-by: Taylor Cramer <cramertj@google.com>
Commit-Queue: Aaron Green <aarongreen@google.com>
2 files changed
tree: f24b120d1eb3f386a44b6a19f53138637a6f91a6
  1. .allstar/
  2. .vscode/
  3. build_overrides/
  4. docker/
  5. docs/
  6. pw_alignment/
  7. pw_allocator/
  8. pw_analog/
  9. pw_android_toolchain/
  10. pw_arduino_build/
  11. pw_assert/
  12. pw_assert_basic/
  13. pw_assert_log/
  14. pw_assert_tokenized/
  15. pw_assert_zephyr/
  16. pw_async/
  17. pw_async_basic/
  18. pw_base64/
  19. pw_bloat/
  20. pw_blob_store/
  21. pw_bluetooth/
  22. pw_bluetooth_hci/
  23. pw_bluetooth_profiles/
  24. pw_boot/
  25. pw_boot_cortex_m/
  26. pw_build/
  27. pw_build_info/
  28. pw_build_mcuxpresso/
  29. pw_bytes/
  30. pw_checksum/
  31. pw_chrono/
  32. pw_chrono_embos/
  33. pw_chrono_freertos/
  34. pw_chrono_stl/
  35. pw_chrono_threadx/
  36. pw_chrono_zephyr/
  37. pw_cli/
  38. pw_compilation_testing/
  39. pw_console/
  40. pw_containers/
  41. pw_cpu_exception/
  42. pw_cpu_exception_cortex_m/
  43. pw_crypto/
  44. pw_digital_io/
  45. pw_docgen/
  46. pw_doctor/
  47. pw_env_setup/
  48. pw_file/
  49. pw_function/
  50. pw_fuzzer/
  51. pw_hdlc/
  52. pw_hex_dump/
  53. pw_i2c/
  54. pw_i2c_mcuxpresso/
  55. pw_ide/
  56. pw_interrupt/
  57. pw_interrupt_cortex_m/
  58. pw_interrupt_zephyr/
  59. pw_intrusive_ptr/
  60. pw_kvs/
  61. pw_libc/
  62. pw_log/
  63. pw_log_android/
  64. pw_log_basic/
  65. pw_log_null/
  66. pw_log_rpc/
  67. pw_log_string/
  68. pw_log_tokenized/
  69. pw_log_zephyr/
  70. pw_malloc/
  71. pw_malloc_freelist/
  72. pw_metric/
  73. pw_minimal_cpp_stdlib/
  74. pw_module/
  75. pw_multisink/
  76. pw_package/
  77. pw_perf_test/
  78. pw_persistent_ram/
  79. pw_polyfill/
  80. pw_preprocessor/
  81. pw_presubmit/
  82. pw_protobuf/
  83. pw_protobuf_compiler/
  84. pw_random/
  85. pw_result/
  86. pw_ring_buffer/
  87. pw_router/
  88. pw_rpc/
  89. pw_rpc_transport/
  90. pw_rust/
  91. pw_snapshot/
  92. pw_software_update/
  93. pw_span/
  94. pw_spi/
  95. pw_status/
  96. pw_stm32cube_build/
  97. pw_stream/
  98. pw_string/
  99. pw_symbolizer/
  100. pw_sync/
  101. pw_sync_baremetal/
  102. pw_sync_embos/
  103. pw_sync_freertos/
  104. pw_sync_stl/
  105. pw_sync_threadx/
  106. pw_sync_zephyr/
  107. pw_sys_io/
  108. pw_sys_io_arduino/
  109. pw_sys_io_baremetal_lm3s6965evb/
  110. pw_sys_io_baremetal_stm32f429/
  111. pw_sys_io_emcraft_sf2/
  112. pw_sys_io_mcuxpresso/
  113. pw_sys_io_pico/
  114. pw_sys_io_stdio/
  115. pw_sys_io_stm32cube/
  116. pw_sys_io_zephyr/
  117. pw_system/
  118. pw_target_runner/
  119. pw_thread/
  120. pw_thread_embos/
  121. pw_thread_freertos/
  122. pw_thread_stl/
  123. pw_thread_threadx/
  124. pw_thread_zephyr/
  125. pw_tls_client/
  126. pw_tls_client_boringssl/
  127. pw_tls_client_mbedtls/
  128. pw_tokenizer/
  129. pw_tool/
  130. pw_toolchain/
  131. pw_trace/
  132. pw_trace_tokenized/
  133. pw_transfer/
  134. pw_unit_test/
  135. pw_unit_test_zephyr/
  136. pw_varint/
  137. pw_watch/
  138. pw_web/
  139. pw_work_queue/
  140. seed/
  141. targets/
  142. third_party/
  143. ts/
  144. zephyr/
  145. .bazelignore
  146. .bazelrc
  147. .black.toml
  148. .clang-format
  149. .clang-tidy
  150. .eslintrc.json
  151. .git-blame-ignore-revs
  152. .gitattributes
  153. .gitignore
  154. .gn
  155. .mypy.ini
  156. .prettierrc.js
  157. .pw_ide.yaml
  158. .pylintrc
  159. activate.bat
  160. Android.bp
  161. AUTHORS
  162. bootstrap.bat
  163. bootstrap.sh
  164. BUILD.bazel
  165. BUILD.gn
  166. BUILDCONFIG.gn
  167. CMakeLists.txt
  168. jest.config.ts
  169. Kconfig.zephyr
  170. LICENSE
  171. modules.gni
  172. OWNERS
  173. package-lock.json
  174. package.json
  175. pigweed.json
  176. PIGWEED_MODULES
  177. README.md
  178. rollup.config.js
  179. tsconfig.json
  180. WORKSPACE
README.md

Pigweed

Pigweed is an open source collection of embedded-targeted libraries–or as we like to call them, modules. These modules are building blocks and infrastructure that enable faster and more reliable development on small-footprint MMU-less 32-bit microcontrollers like the STMicroelectronics STM32L452 or the Nordic nRF52832.

For more information please see our website: https://pigweed.dev/.

Links