Stworzyłem program struktury, którym były wartości liczbowe w tam tym momencie wszystko było zgodne po dodaniu łańcucha, nagle wystąpiła masa błędów:
Oto kod:
#include <iostream>
struct job { char zd[15]; double m; };
template <typename T>
void Fun (T &);
template <> void Fun (job & p); //zakonczenie srednikiem
int main()
{
job par;
Fun(par);
return 0;
}
template <> void Fun <job> (job & p)
{
p = {"fmask", 535.231};
std::cout.precision(3);
std::cout << p.zd << ": " << p.m << std::endl;
}
Oto komunikaty błędów:
p2.cpp: In function ‘void Fun(T&) [with T = job]’:
p2.cpp:19:23: error: no match for ‘operator=’ (operand types are ‘job’ and ‘<brace-enclosed initializer list>’)
p = {"fmask", 535.231};
^
p2.cpp:3:8: note: candidate: job& job::operator=(const job&)
struct job { char zd[15]; double m; };
^~~
p2.cpp:3:8: note: no known conversion for argument 1 from ‘<brace-enclosed initializer list>’ to ‘const job&’
p2.cpp:3:8: note: candidate: job& job::operator=(job&&)
p2.cpp:3:8: note: no known conversion for argument 1 from ‘<brace-enclosed initializer list>’ to ‘job&&’