Können wir paar als Argument für ein anderes Paar in C++ verwenden.Können wir paar eine Vorlage senden argumrent ein anderes Paar
Hier ist ein Testprogramm, das zu tun.
#include <iostream>
#include <utility>
int main()
{
std::pair<int,int> m;
m=std::make_pair(1,3);
int r = 3;
int *q = &r;
int **p =&q;
int **t = p;
std::pair<int**,<std::pair<int,int> > > i(p,m);
std::cout<<i[t];
return 0;
}
Dies ist der Fehler, ich erhalte.
Test.cpp: In function ‘int main()’:
Test.cpp:12:45: error: template argument 2 is invalid
std::pair<int**,<std::pair<int,int>>> i(p,m);
^
Wenn ich das Format der Erklärung und schrieb das Programm in der folgenden Art und Weise,
geändert#include <iostream>
#include <utility>
int main()
{
std::pair<int,int> m;
m=std::make_pair(1,3);
int r = 3;
int *q = &r;
int **p =&q;
int **t = p;
std::pair<
int**,
<
std::pair<
int,
int
>
>
> i(p,m);
std::cout<<i[t];
return 0;
}
Es gibt einen zusätzlichen Fehler.
Test.cpp: In function ‘int main()’:
Test.cpp:20:7: error: template argument 2 is invalid
> i(p,m);
^
Test.cpp:20:14: error: expression list treated as compound expression in initializer [-fpermissive]
> i(p,m);
Was könnte das Problem sein und wie es zu lösen?
Auf einer Seite zur Kenntnis, habe ich ein Programm, und es in einem sehr alten Dev-C++ Compiler auf einer Windows-7-Maschine zusammengestellt, die einen Code ähnlich die oben verwendet und es lief völlig in Ordnung. Es war ein Laborprogramm in meiner Hochschule, das nur diesen Compiler hatte.
Der obige Code, ich lief auf beiden Windows 7 und Ubuntu 16.04 mit GNU g ++ 5.4.0
Ideone: Link to the actual program for reference
Sie auch einen Blick auf den tatsächlichen Fehler haben könntest, ich in der oben konfrontiert Verknüpfung.
Nachdem ich die Antworten zu sehen, ich sehe der syntaktische Fehler, den ich gemacht habe. Ich kann mich nicht erinnern, wie sehr ich den Code geändert habe. Es scheint viele andere Fehler im verknüpften Code zu geben. –