
Aidar
20.06.2018
13:02:40

Constantine
20.06.2018
13:02:59

Vhäldemar
20.06.2018
13:03:23
магия!

Alexey
20.06.2018
13:03:24
А если бы это была не std::function, а свой собственный тип, писанный руками?

Google

Constantine
20.06.2018
13:03:40

Vhäldemar
20.06.2018
13:03:46
что за ИДЕ

Alexey
20.06.2018
13:03:51
(из std::function вроде как эти first_arg_type повыкинули)

Constantine
20.06.2018
13:03:57
Там хитрые правила, вроде, но как я понял, внутренние тайпалиасы классов разворачиваются

Aidar
20.06.2018
13:04:02

Alexey
20.06.2018
13:04:04

Constantine
20.06.2018
13:04:19

Alexey
20.06.2018
13:04:33
интересно как оно на 2015...

Constantine
20.06.2018
13:04:40
вроде правила такие же

Vhäldemar
20.06.2018
13:04:41
ну, хоть не на 2008

Constantine
20.06.2018
13:04:42
я не реверсил
он разворачивает typedef-ы в классах и ищет максимально похожий для внешних тайпдефов
что-то такое

Google

Alexey
20.06.2018
13:06:32

Igor
20.06.2018
13:09:35

Vhäldemar
20.06.2018
13:09:52
пиши багу
или фича риквест

Alexey
20.06.2018
13:09:57
ну, я в qt creator'e и щупаю пока что.
надо сделать, чтобы пользователям не было больно в qt creator'e, clion, msvs2015

Vhäldemar
20.06.2018
13:10:51
значит вендор должен позаботиться, такео в стандарт никому не нужно

Alexey
20.06.2018
13:11:19
все вендоры всех IDE?

Vhäldemar
20.06.2018
13:11:47
а что, проще будет, если поменяют стандарт?
ради чего?

Alexey
20.06.2018
13:12:17
я пока ничего не предлагаю менять.

Vhäldemar
20.06.2018
13:12:18
QT Crator не сможет - с него свалят
порешает market
всяко,конкуренция есть

Constantine
20.06.2018
13:12:49
это в любом случае вопрос IDE

Alexey
20.06.2018
13:13:11
ну, IDE тут приходится полагаться на эвристики. нет четкого правила ведь.
а так можно было бы подсказывать.

Vhäldemar
20.06.2018
13:14:04
и так там столько евристик, что одной больше пофиг

Google

Igor
20.06.2018
13:14:05
правила нет, но is_same<F::first_argument_type, int>::value == 1, так что с точки зрения стандарта всё итак уже работает

Alexey
20.06.2018
13:16:03
А на что в c++17/20 предлагается заменить first_argument_type в std::function?

Constantine
20.06.2018
13:22:29

Vyacheslav
20.06.2018
13:23:28
На шаблонную магию какую-нибудь? https://stackoverflow.com/questions/30501496/iterate-over-function-parameter-types-in-compile-time

Alexey
20.06.2018
13:23:44
perfect forwarding
А где про это прочитать можно? То есть мне допустим нужно сконструировать функцию с первым и третьим аргументов от вот той вот функции.

Constantine
20.06.2018
13:23:55

Alexey
20.06.2018
13:24:38

Aidar
20.06.2018
13:24:58
странно кстати first/second, это со времен bind1st?

Constantine
20.06.2018
13:25:21
это видимо со времен unary_function и binary_function

Aidar
20.06.2018
13:25:30
логично было бы ::arg_type<1>
но хз как реализовывать, копипастой?

Constantine
20.06.2018
13:25:53
это вроде работало пушо наследовались unary_function и binary_function

Aidar
20.06.2018
13:25:55
а стоп
изи же

Constantine
20.06.2018
13:26:34
технически не очень понятно, зачем вычислять точные аргументы функции
хотя у меня на это трейты есть)

Mikhail Voronov
20.06.2018
13:26:46

Constantine
20.06.2018
13:27:19

Aidar
20.06.2018
13:27:25

Google

Mikhail Voronov
20.06.2018
13:27:57
они в бусте вроде не так давно ещё появились

Roma
20.06.2018
13:28:48
Всем привет, хочу начать кодить свой игровой ддвижок, может ктото подскажеть, откуда можна взять хороший материал?

Aidar
20.06.2018
13:29:31

Constantine
20.06.2018
13:29:34
у меня только вот так почему-то
using arity = std::integral_constant<size_t, sizeof...(Args)>;
и для member function разворачивать ref qualifier

Mikhail Voronov
20.06.2018
13:34:00

Александр
20.06.2018
13:38:35

Admin
ERROR: S client not available

Mikhail Voronov
20.06.2018
13:40:41
блин, я криво прочитал сообщение(

Vyacheslav
20.06.2018
13:40:54

Alexey
20.06.2018
13:41:15

Vyacheslav
20.06.2018
13:42:15

Alexander
20.06.2018
13:42:22
В С++20 никакой рефлексии не будет

Alexey
20.06.2018
13:42:43
А когда будет? 23?

Alexander
20.06.2018
13:43:34
при хорошем раскладе - да. при плохом - в 26

Igor
20.06.2018
13:43:44

Alexander
20.06.2018
13:45:01
сейчас бы на constexpr ещё один язык придумать ?
я гораздо более внимательно слежу за успехами группы по тулингу
это намного более важно по крайней мере для меня, чем констекспр

Google

Igor
20.06.2018
13:45:41

Alexey
20.06.2018
13:47:31

Constantine
20.06.2018
13:47:50

Alexey
20.06.2018
13:48:10
лямбды в constexpr уже разрешены вроде

Constantine
20.06.2018
13:48:28
просто такие фрагменты-подпрограммы у нас нынче традиционно делаются вызовом лямбд

Bogdan
20.06.2018
13:49:33
Какой библиотекой можно отслеживать обработку нажатий под linux?

Igor
20.06.2018
13:50:26

Constantine
20.06.2018
13:52:05
речь про [&](){ something(); smth(); }();?
ага, я тут даже набрасывал
auto deciphered = [&] () {
auto fail = [&] () -> std::vector<BYTE> {
failed = true;
return {};
};
auto deciphered = /*expression*/;
if (/*condition 1*/)
return fail();
if (/*condition 2*/)
return fail();
return deciphered;
}();

Igor
20.06.2018
13:58:18
Должна ли IDE раскрывать тайпдефы это непростой вопрос. Например вам захочется чтобы вместо std::string в параметре показывалось std::basic_string<char, std::char_traits<char>, std::allocator<char>>? Априори неясно хочется видеть тип с или без тайпдефов.

Igor
20.06.2018
13:59:34

Terik23
20.06.2018
14:02:37

Igor
20.06.2018
14:04:43
не совсем, статик блок вызывается при первом обращении к классу в рантайме, а здесь будет произвольный код в компилтайме, знающий о своём окружении и о прочей рефлексии

Terik23
20.06.2018
14:13:36
А прополз или какая еще бумага есть? я бы глянул

Igor
20.06.2018
14:16:00
если не ошибаюсь, http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0633r0.pdf
и вот эти два сильно похожих доклада
https://www.youtube.com/watch?v=6nsyX37nsRs
https://www.youtube.com/watch?v=4AfRAVcThyA

Terik23
20.06.2018
14:19:40

Влад
20.06.2018
14:23:22
А можно ли как-то в С++ получить данные для переменной по адресу?
Допустим, у меня есть класс A, и такой код:
{
size_t c;
if (true) {
A *a = new A;
size_t c = (size_t) a;
}
}
Можно ли с помощью значения 'c' получить данные в указателе 'a'?

Aleksandr
20.06.2018
14:24:55
скасти обратно в A* и разыменуй