double, но чтоб можно было писать разные специализации шаблона под них? так вообще делается?
Давай более подробно
using mydouble = double; ты для этого отдельную специализацию хочешь?
И какой стандарт
Вангую ему нужно SFINAE
тегируй struct double1{} struct double2{} struct double3{} пиши специализации по тегам
https://pastebin.com/Yxvwai2m так не сработало
тегируй, а не алиась
enum class double1 : double {}; enum class double2 : double {}; Интересно, так сработает?
енам от дабла? А это разрешено?
Не знаю, вот и спрашиваю
запрещаю https://godbolt.org/z/xbKT8K
Я с телефона, что говорит компиль? Нельзя?
error: non-integral type 'double' is an invalid underlying type enum class bar : double {}; ^
Ну тогда ничего не остаётся, как тегировать, да
А какую проблему ты хочешь решить?
а как потом использовать переменную этого типа как double? или я не так понял?
А где ты в своем примере используешь double вообще?
struct Double { double d; operator double() { return d; } };
Ну надо ещё operator=
И правда опиши зачем тебе это, почему алиас на тип должен обрабатываться иначе чем сам тип
double остается double-ом: struct double1{}; struct double2{}; template<typename T> void foo(double, T tag); template<> void foo(double, double1) { } template<> void foo(double, double2) { } int main() { foo(10.0, double1{}); foo(10.0, double2{}); }
а, спасибо, я так и думал
https://pastebin.com/0de8921R я хотел бы реализовать шаблон с таким поведением на С++11
а почему просто массив не принимать?
функциями? или шаблоном?
можно и массив, а как шаблон узнает, что нужно функциям? передавать дополнительно список индексов?
Ну вот так например https://godbolt.org/z/1sModM
обратите внимание, что a это и есть arr[0]
https://godbolt.org/z/P63bG5
Обсуждают сегодня