@ProCxx

Страница 2399 из 2477
Aidar
02.10.2018
15:53:11
да, он же это хотел
причем кажись ему просто нужно шаблонный list было сделать для этого

хм

Ioann V
02.10.2018
15:55:58
я спрашивал же про args

Google
Aidar
02.10.2018
15:56:18
ок, я закруглился. Всем спасибо за содержательную помошь.
есть вариант перенести диспатч с функции на обертку возвращающую число

Ioann V
02.10.2018
15:56:27
здесь аргс - это аргументы функции. смотри внимательно, тут два декл вала.

Aidar
02.10.2018
15:56:37
я и сказал про args

Ioann V
02.10.2018
15:56:42
я и сказал про args
а нахрена их вызывать то надо? Это кусок кода из result of gcc

Aidar
02.10.2018
15:57:16
ну можно и просто аргуметы упихать наверн

какая разница

Ioann V
02.10.2018
15:57:59
разница большая. Если сделано, значит смысл кой то есть. Вопрос к тем кто знает наверняка, какой?

Aidar
02.10.2018
15:58:23
что делает declval что не делает остальное? создает временные объекты как будто

еще может аргументов там нет

result_of?

invoke_result?

какой из

Google
Ioann V
02.10.2018
15:58:55
так может тут форвард покатит?

invoke_result?
вот оный, и тебе надо глядеть result_of_other_impl

Aidar
02.10.2018
15:59:48
это все классы

ну смысле только шаблонные

Ioann V
02.10.2018
16:00:12
ага, есть такое

Aidar
02.10.2018
16:00:23
как ты псевдовызовешь функцию зная только тип аргумента?

Ioann V
02.10.2018
16:01:18
как ты псевдовызовешь функцию зная только тип аргумента?
я еще и саму функцию знаю. Или ты к тому, что декл вал тут помогает вызвать функцию по типам аргументов?

Aidar
02.10.2018
16:01:32
decltype(foo(T{})) не подходит

Побитый
02.10.2018
16:01:45
упустил, constexpr это когда constexpr auto a = foo(3); // посчитается во время компиляции auto b = foo(3); // посчитается во время работы программы
Вроде как, когда выполнится constexpr функция (compile/runtime) зависит от аргументов. Если они известны во время компиляции, то функция считается во время компиляции. Соответственно, обе версии будут выполнены на этапе компиляции. Или я не прав?

Aidar
02.10.2018
16:01:48
потомучто у T может не быть конструктора

Ioann V
02.10.2018
16:01:59
Так я ж про второй деклвал

Aidar
02.10.2018
16:02:14
decltype(foo(declval<T>())) только

Так я ж про второй деклвал
я тоже, первый для типа функции\

я про аргументы

Ioann V
02.10.2018
16:02:44
я тоже, первый для типа функции\
типа форвардом тутнельзя?

Aidar
02.10.2018
16:02:55
форварду надо чтото передать

Igor
02.10.2018
16:02:56
а поскольку такого не бывает, то можно пофантазировать, как этого бы хотелось)

Ioann V
02.10.2018
16:03:30
точно. туплю. сорян. вроде понял, или нет... Чем мешает отсутствие конструктора у Т?

Google
Ioann V
02.10.2018
16:03:46
Мы же тип передаем.

Aidar
02.10.2018
16:03:55
типа форвардом тутнельзя?
declval делает переменную изничего для использования типа результата онли

Moon
02.10.2018
16:04:12
хм

Ioann V
02.10.2018
16:05:04
так вродь деклвал не создает ничего, а только добавляет ссылку?

Aidar
02.10.2018
16:05:39
он ничего не принимает, это главное

он генерит псевдозначение

Ioann V
02.10.2018
16:06:08
ничего не понимаю

он генерит ссылку ж

Aidar
02.10.2018
16:06:23
рассматривай его просто как T foo<T>()

тебе надо получить тип результата bar(T) что ты сделаешь?

Constantine
02.10.2018
16:07:01
он генерит ссылку ж
нет, он значение генерит

template <typename T> T declval();

Ioann V
02.10.2018
16:07:39
ничего себе, буду иметь в виду. Чот я по цппрефу этого не понял. Thx гайз.

Aidar
02.10.2018
16:07:59
template <typename T> T declval();
ну ващето там T&& declval<T>

Admin
ERROR: S client not available

Constantine
02.10.2018
16:08:05
Aidar
02.10.2018
16:08:21
чо?
https://en.cppreference.com/w/cpp/utility/declval

Constantine
02.10.2018
16:08:27
омг зачем

Google
Aidar
02.10.2018
16:08:40
потомучто чтото не умеет копироваться наверн

и перемещаться

Zorro
02.10.2018
16:11:33
> а есть бенчмарки, которые говорят что действительно при foo<5>() циклы разворачиваются да, конечно.

Ioann V
02.10.2018
16:11:34
То есть это нужно в тех случаях, когда у нас в аргументах функции, есть тип Т, переданный по значению, но не имеющий конструктора копирования?

Aidar
02.10.2018
16:12:39
может когда Foo(Foo&&) = delete; и bar(Foo&&){}

Ilia
02.10.2018
16:13:05
Что же странного?

Zorro
02.10.2018
17:14:01
а еще вопрос из 96 года, вот у меня массив double выровненный, я хочу его мувнуть. Если использовать memmove, оно будет слишком generic и проверять вначале, а выровнен ли он, чтобы запустить по байту краешки итп. Есть ли плюсовый аналог который понимает в типы и не будет заморачиваться, а сделает сразу как надо?

Zorro
02.10.2018
17:14:44
aligned

Ilia
02.10.2018
17:15:14
aligned
Ну и наверное alligned array , да?

Zorro
02.10.2018
17:15:24
дык

Ilia
02.10.2018
17:16:01
Zorro
02.10.2018
17:18:47
overlapping норм?

Alexander
02.10.2018
17:22:39
Ilia
02.10.2018
17:23:20
overlapping норм?
/cppref std::copy 1) Copies all elements in the range [first, last) starting from first and proceeding to last - 1. The behavior is undefined if d_first is within the range [first, last). In this case, std::copy_backward may be used instead.

/cppref std::copy

FailsBot
02.10.2018
17:24:04
Search results for "std::copy" 1. std::copy 2. std::string::copy 3. std::wstring::copy 4. std::u16string::copy 5. std::u32string::copy 6. std::filesystem::copy 7. std::char_traits::copy 8. std::pmr::string::copy 9. std::string_view::copy 10. std::basic_string::copy 11. std::pmr::wstring::copy 12. std::wstring_view::copy 13. std::pmr::u16string::copy 14. std::pmr::u32string::copy 15. std::u16string_view::copy 16. std::u32string_view::copy 17. std::basic_string_view::copy 18. std::experimental::filesystem::copy 19. std::experimental::string_view::copy 20. std::experimental::wstring_view::copy 21. std::experimental::u16string_view::copy 22. std::experimental::u32string_view::copy 23. std::experimental::basic_string_view::copy 24. std::remove_copy

Zorro
02.10.2018
17:25:33
щас сравню

Google
Andrew
02.10.2018
17:48:40
фронтенд?

Aidar
02.10.2018
18:07:11
Еще не юзай ни массивы ни меммув ни прочие сишные структуры

Хочешь делать вручную - обарачивай

Страница 2399 из 2477