Why is this cause a compiler error, stating that my references are ambiguous? I have a float, int and string, which should all create separate function signatures, right?
Here is what I have so far:
#include <iostream>
#include <string>
using namespace std;
int plus(int a, int b);
float plus(float a, float b);
string plus(string a, string b);
int main(void)
{
    int n = plus(3, 4);
    double d = plus(3.2, 4.2);
    string s = plus("he", "llo");
    string s1 = "aaa";
    string s2 = "bbb";
    string s3 = plus(s1, s2);
}
int plus(int a, int b) {
    return a+b;
} // int version
float plus(float a, float b) {
    return a+b;
} // float version
string plus(string a, string b) {
    return a+b;
} // string version
 
     
    