Size: a a a

2020 August 11

AP

Alexander Potapov in supapro.cxx
как компилятор должен генерировать инструкции, если он не знает типы в темплейтной функции?
источник

VS

Vladimir Suisei in supapro.cxx
Alexander Potapov
Ответь на вопрос выше
Ладно, я понял
источник

VS

Vladimir Suisei in supapro.cxx
Так это что получается - весь исходный код стандартной библиотеки где юзаются шаблоны можно читать в хедере?
источник

AP

Alexander Potapov in supapro.cxx
Почти весь в хедерах, да
источник

AP

Alexander Potapov in supapro.cxx
Можешь открыть его и почитать:)
источник

VS

Vladimir Suisei in supapro.cxx
Alexander Potapov
Можешь открыть его и почитать:)
Я открывал, но там ничего не понятно
источник

w

wAS in supapro.cxx
Привет, есть ф-я которая принимает контейнер и возвращает с него рандомнй елемент. Как переписать чтоб возвращала итератор?
источник

AP

Alexander Potapov in supapro.cxx
Это уже другой вопрос
источник

w

wAS in supapro.cxx
wAS
Привет, есть ф-я которая принимает контейнер и возвращает с него рандомнй елемент. Как переписать чтоб возвращала итератор?
template <template <class...> class TContainer, class TObject>
TObject rand_from_container(const TContainer<TObject>& container) {
       auto begin = container.begin();
       auto end = container.end();
       size_t size = std::distance(begin, end) - 1;
       return *(begin + Rand(0, size));
}
источник

VS

Vladimir Suisei in supapro.cxx
А это еще что за дичь? Шаблон в шаблоне?
источник

AP

Alexander Potapov in supapro.cxx
Возвращай auto, убери  разыменование после return
источник

AP

Alexander Potapov in supapro.cxx
auto foo() { return container.begin() + offset; } если абстрактно
источник

w

wAS in supapro.cxx
К сожалению это доступно только с 14 плюсов, а мне надо с 11
источник

ПК

Побитый Кирпич... in supapro.cxx
wAS
template <template <class...> class TContainer, class TObject>
TObject rand_from_container(const TContainer<TObject>& container) {
       auto begin = container.begin();
       auto end = container.end();
       size_t size = std::distance(begin, end) - 1;
       return *(begin + Rand(0, size));
}
Лучше сделай такой шаблон:
template <typename Container>
auto rand_from_container(const Container& container) { ... };
источник

VS

Vladimir Suisei in supapro.cxx
Vladimir Suisei
А это еще что за дичь? Шаблон в шаблоне?
Буду рад если поясните
источник

AP

Alexander Potapov in supapro.cxx
wAS
К сожалению это доступно только с 14 плюсов, а мне надо с 11
container<...>::iterator возвращай
источник

AP

Alexander Potapov in supapro.cxx
Vladimir Suisei
Буду рад если поясните
template template arguments в гугл
источник

ПК

Побитый Кирпич... in supapro.cxx
wAS
К сожалению это доступно только с 14 плюсов, а мне надо с 11
template <typename Container>
typename Container::iterator rand_from_container(const Container& container)
{ ... };
источник

ПК

Побитый Кирпич... in supapro.cxx
Так можно в C++11
источник

AP

Alexander Potapov in supapro.cxx
Ему итератор нужен
источник