Я пытаюсь придумать шаблон, который дает фактический тип size_type контейнера STL и, возможно, некоторые другие классы, такие как std :: string . Мне известно, что std :: size_t можно использовать вместо size_type , поскольку они обычно являются одним и тем же базовым типом, а также я знаю о циклах на основе диапазона. Так что я думаю, это скорее академическое упражнение. Это то, что я придумал: < /p>
Код: Выделить всё
#include
#include
#include
template
using AUTO_SIZE_T = std::invoke_result_t;
int main()
{
std::vector ints = { 1, 2, 3 };
for (AUTO_SIZE_T i = 0; i < ints.size(); ++i)
{
std::cout
Подробнее здесь: [url]https://stackoverflow.com/questions/79665509/convenience-template-that-deduces-size-type-of-an-stl-container[/url]