LINUX.ORG.RU

История изменений

Исправление MyTrooName, (текущая версия) :

#include <iostream>

template<class T>
T plus(T x, T y) { return x + y; }

int main() {
    auto x = 3;
    auto y = 4;
    auto z = plus(x, y);
    std::cout << z << std::endl;
    return 0;
}

работает прекрасно

template<class A, class B, class C>
C plus(A x, B y) { return x + y; }

test.cpp:4:3: note:   template argument deduction/substitution failed:
test.cpp:9:23: note:   couldn't deduce template parameter ‘C’
     auto z = plus(x, y);

так, конечно, ломается. только я всю жись называл эту фичу хаскеля type inference, а не неявной типизацией, и никакого отношения к javascript, ruby, python итд она не имеет

Исходная версия MyTrooName, :

#include <iostream>

template<class T>
T plus(T x, T y) { return x + y; }

int main() {
    auto x = 3;
    auto y = 4;
    auto z = plus(x, y);
    std::cout << z << std::endl;
    return 0;
}

работает прекрасно

template<class A, class B, class C>
C plus(A x, B y) { return x + y; }

test.cpp:4:3: note:   template argument deduction/substitution failed:
test.cpp:9:23: note:   couldn't deduce template parameter ‘C’
     auto z = plus(x, y);

только я всю жись называл эту фичу хаскеля type inference, а не неявной типизацией, и никакого отношения к javascript, ruby, python итд она не имеет