Home » Extra libraries, Code snippets, applications etc. » C++ language problems and code snippets » prototype not found (MinGW doesnt understand defaults)
prototype not found [message #51851] |
Sun, 09 June 2019 18:59  |
Leander
Messages: 13 Registered: January 2019
|
Promising Member |
|
|
Hi together.
Have got this code here:
#include <string>
#include <stdlib.h>
using namespace std;
template <typename T>
T* new_(int size=1, bool init=false);
template <typename T>
T* new_(int size, bool init)
{
if (size < 1) {return NULL;}
T *p = NULL;
if (size==1) {p = new T;}
else {p = new T[size];}
if (!p) exit(-1);
if (init) memset(p, 0, sizeof(T) * size);
return p;
}
int main()
{
std::string *pst;
pst = (string*)new_();
return 0;
}
The return "pst" should be enough to know what is a T.
But even the cast doesnt help (couldn't deduce...), see below.
Now I can call it with args or without and the MinGW will rant it (return.txt):
main.cpp: In function 'int main()':
main.cpp:28:22: error: no matching function for call to 'new_()'
main.cpp:28:22: note: candidate is:
main.cpp:14:4: note: template<class T> T* new_(int, bool)
main.cpp:14:4: note: template argument deduction/substitution failed:
main.cpp:28:22: note: couldn't deduce template parameter 'T'
And it suggests the only existing always, the upper prototype,
but doesnt accept it.
Someone has got a tip?
Martin
|
|
|
Goto Forum:
Current Time: Mon Apr 28 01:17:42 CEST 2025
Total time taken to generate the page: 0.00419 seconds
|