Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 为什么是C++;模板函数不支持返回指针?_C++_Templates_Pointers - Fatal编程技术网

C++ 为什么是C++;模板函数不支持返回指针?

C++ 为什么是C++;模板函数不支持返回指针?,c++,templates,pointers,C++,Templates,Pointers,我有这样一个函数: #include <iostream> using namespace std; // function to generate and retrun random numbers. template<typename T> T * getRandom( ) { static T r[10]; for (int i = 0; i < 10; ++i) { r[i] = 111; cout <&

我有这样一个函数:

#include <iostream>


using namespace std;

// function to generate and retrun random numbers.
template<typename T>
T * getRandom( ) {
   static T  r[10];


   for (int i = 0; i < 10; ++i) {
      r[i] = 111;
      cout << r[i] << endl;
   }

   return r;
}

// main function to call above defined function.
int main () {
   // a pointer to an int.
   int *p;

   p = getRandom();
   for ( int i = 0; i < 10; i++ ) {
      cout << "*(p + " << i << ") : ";
      cout << *(p + i) << endl;
   }

   return 0;
}
#包括
使用名称空间std;
//函数生成并重新运行随机数。
模板
T*getRandom(){
静态tr[10];
对于(int i=0;i<10;++i){
r[i]=111;

cout模板参数不能来自返回类型,只能来自函数参数

p = getRandom<int>();
//           ~~~~~
p=getRandom();
//           ~~~~~

您需要提供类型参数,因为错误表明它无法从您提供的参数中推断出来。
p=getRandom();
auto*p=getRandom();
p = getRandom<int>();
//           ~~~~~