Size: a a a

2020 August 07

V

Vetro in rust_offtopic
Вафель
А в идее можно как-то посмотреть прогресс индексирования? А то очень большой проект открыл и не знаю ждать ли подсветки или забить....
внизу справа же
источник

V

Vetro in rust_offtopic
обычно
источник

В

Вафель in rust_offtopic
да вот что-то нет
источник

В

Вафель in rust_offtopic
есть только такое
источник

NL

Nick Linker in rust_offtopic
using namespace std;

template <typename T, typename T2>
decltype(auto) nth_element(T& container, T2 index) {
    return container[index];
}

int main() {
  vector<int> v(10,0);
  nth_element(v,1) = 10;
  auto x = nth_element(v,1);

  for (auto &i:v) cout << i << '\n';
  cout << "x == " << x << '\n';
}

Вот такой код я увидел как образец использования decltype(auto). Казалось бы прекрасный код, но если пользователь вызовет не
auto x = nth_element(v,1);

а
auto x = nth_element(vector<int>{1,2,3},1);

то привет 🤪
Самое интересное, что с нормальными тайпклассами всей этой акробатики нафиг не нужно.
источник

Т8

Т-34 85 in rust_offtopic
Alex Zhukovsky
ну в шарпе typeof это дорого в один конец. Вызвать Foo<typeof(x)>(x)  нельзя
Там же это рантайм, а в крестах компайлтайм
источник

BD

Berkus Decker in rust_offtopic
https://cuchi.me/posts/go-vs-rust поджигательно но тем не менее
источник

BD

Berkus Decker in rust_offtopic
Nick Linker
using namespace std;

template <typename T, typename T2>
decltype(auto) nth_element(T& container, T2 index) {
    return container[index];
}

int main() {
  vector<int> v(10,0);
  nth_element(v,1) = 10;
  auto x = nth_element(v,1);

  for (auto &i:v) cout << i << '\n';
  cout << "x == " << x << '\n';
}

Вот такой код я увидел как образец использования decltype(auto). Казалось бы прекрасный код, но если пользователь вызовет не
auto x = nth_element(v,1);

а
auto x = nth_element(vector<int>{1,2,3},1);

то привет 🤪
Самое интересное, что с нормальными тайпклассами всей этой акробатики нафиг не нужно.
где же царь и его божественный вывод трусов в с++
источник

К

Коля🤔🎭 in rust_offtopic
template <typename T, size_t N>
decltype(auto) get_arr_size(T(&)[N]) { return N; }
источник

К

Коля🤔🎭 in rust_offtopic
источник

NL

Nick Linker in rust_offtopic
Коля🤔🎭
template <typename T, size_t N>
decltype(auto) get_arr_size(T(&)[N]) { return N; }
И всё ещё очень далеко до
источник

BD

Berkus Decker in rust_offtopic
Nick Linker
using namespace std;

template <typename T, typename T2>
decltype(auto) nth_element(T& container, T2 index) {
    return container[index];
}

int main() {
  vector<int> v(10,0);
  nth_element(v,1) = 10;
  auto x = nth_element(v,1);

  for (auto &i:v) cout << i << '\n';
  cout << "x == " << x << '\n';
}

Вот такой код я увидел как образец использования decltype(auto). Казалось бы прекрасный код, но если пользователь вызовет не
auto x = nth_element(v,1);

а
auto x = nth_element(vector<int>{1,2,3},1);

то привет 🤪
Самое интересное, что с нормальными тайпклассами всей этой акробатики нафиг не нужно.
template <typename T, typename T2>
auto& nth_element(T& container, T2 index) {
    return container[index];
}


так кстати наглядней
источник

Т8

Т-34 85 in rust_offtopic
Nick Linker
И всё ещё очень далеко до
Ты что-нибудь слышал об if constexpr и о static_assert?
источник

BD

Berkus Decker in rust_offtopic
Т-34 85
Ты что-нибудь слышал об if constexpr и о static_assert?
очень полезно в темплейтах да
источник

BD

Berkus Decker in rust_offtopic
выкидывает всякое левое сфинае
источник

NL

Nick Linker in rust_offtopic
Т-34 85
Ты что-нибудь слышал об if constexpr и о static_assert?
Что они позволяют сделать проверки используя компилятор как интерпретатор и в случае даже простейших проверок вывалить 2 экрана бинарного дампа называемого сообщением об ошибке?  О, да, слышал!
источник

Т8

Т-34 85 in rust_offtopic
Кстати, в GCC 10 есть концепты, а в 6м был TS. Попробовать, что-ли
источник

Ct

Casual tears in rust_offtopic
Т-34 85
Кстати, в GCC 10 есть концепты, а в 6м был TS. Попробовать, что-ли
Концепты проблемы не решают. Шаблонный код всё еще не тайпчекается, забыть какой-нибудь баунд очень легко.
источник

Т8

Т-34 85 in rust_offtopic
Nick Linker
Что они позволяют сделать проверки используя компилятор как интерпретатор и в случае даже простейших проверок вывалить 2 экрана бинарного дампа называемого сообщением об ошибке?  О, да, слышал!
Так тебе достаточно первого сообщения, на остальные можно не обращать внимания. Я хз, почему компилятор всё вываливает
источник

Т8

Т-34 85 in rust_offtopic
Casual tears
Концепты проблемы не решают. Шаблонный код всё еще не тайпчекается, забыть какой-нибудь баунд очень легко.
Частично чекается. Остальное при инстанцировании, да
источник