Че-т так и не смог победить, мож кто подскажет.
template<typename _R, template ... _args>
void make_visitor(std::function<_R (_args)> f) // где-то здесь должно быть многоточие
{
}
int main()
{
make_visitor<void, int, double>([](int){}, [](double){});
}
Идея, ф-ция принимает набор std::function с сигнатурами из вариадиков (фнкций столько же сколько типов в вариадике)
Здравствуйте, saf_e, Вы писали:
_>Че-т так и не смог победить, мож кто подскажет.
http://ideone.com/uRpgSR
Здравствуйте, uzhas, Вы писали:
U>Здравствуйте, saf_e, Вы писали:
_>>Че-т так и не смог победить, мож кто подскажет.
U>http://ideone.com/uRpgSR
хм, этот вариант я пробовал, ни тут
http://cpp.sh/, ни в VS2013 не завелось
Здравствуйте, saf_e, Вы писали:
_>>>Че-т так и не смог победить, мож кто подскажет.
U>>http://ideone.com/uRpgSR
_>хм, этот вариант я пробовал, ни тут http://cpp.sh/, ни в VS2013 не завелось
Compilation successful.
В студии тоже скомпилировалось
http://webcompiler.cloudapp.net/ но там 2015 Update 1 RC
Здравствуйте, saf_e, Вы писали:
_>Здравствуйте, uzhas, Вы писали:
U>>Здравствуйте, saf_e, Вы писали:
_>>>Че-т так и не смог победить, мож кто подскажет.
U>>http://ideone.com/uRpgSR
_>хм, этот вариант я пробовал, ни тут http://cpp.sh/, ни в VS2013 не завелось
Даже
в VS 2013 все прекрасно работает, только
template на
typename не забудьте заменить в описании параметров шаблона и не используйте лидирующие подчеркивания в идентификаторах, начинающихся с большой буквы.
Здравствуйте, Constructor, Вы писали:
C>Даже в VS 2013 все прекрасно работает,
Compiler version:
C++ (vc++) and C — Microsoft (R) C/C++ Optimizing Compiler Version 19.00.23026 for x86
думаю, что это VS2015
на 2013 не работает, подтверждаю
Здравствуйте, Constructor, Вы писали:
C>Даже в VS 2013 все прекрасно работает, только template на typename не забудьте заменить в описании параметров шаблона и не используйте лидирующие подчеркивания в идентификаторах, начинающихся с большой буквы.
блин, опечатался
> на 2013 не работает, подтверждаю
ок, спс
Здравствуйте, uzhas, Вы писали:
U>Здравствуйте, Constructor, Вы писали:
C>>Даже в VS 2013 все прекрасно работает,
U>U>Compiler version:
U>C++ (vc++) and C — Microsoft (R) C/C++ Optimizing Compiler Version 19.00.23026 for x86
U>думаю, что это VS2015
U>на 2013 не работает, подтверждаю
Да, прошу прощения, не заметил, что они обновили компилятор.
Здравствуйте, saf_e, Вы писали:
>> на 2013 не работает, подтверждаю
_>ок, спс
В данном случае можно использовать такой обходной маневр:
#include <functional>
template <typename ReturnType, typename Argument>
using Function = std::function<ReturnType(Argument)>;
template <typename ReturnType, typename... Arguments>
void make_visitor(Function<ReturnType, Arguments>... f)
{
}
int main()
{
make_visitor<void, int, double>([](int){}, [](double){});
}
Этот код компилируется в Visual Studio 2013.
Здравствуйте, Constructor, Вы писали:
C>Здравствуйте, saf_e, Вы писали:
>>> на 2013 не работает, подтверждаю
_>>ок, спс
C>В данном случае можно использовать такой обходной маневр:
C>Этот код компилируется в Visual Studio 2013.
спасибо, помогло