gpt4 book ai didi

C++ 模板函数在 Visual Studio 中不起作用

转载 作者:行者123 更新时间:2023-11-30 05:02:08 25 4
gpt4 key购买 nike

我正在练习模板示例。这是代码:

//template_practice.h
#pragma once

template<typename T, unsigned N>
void print_arry(ostream &out,const T (&arry)[N])
{
for (T* i = cbegin(arry); i != cend(arry); i++)
{
out << *i << " ";
}
out << endl;
}

//main.cpp
#include "stdafx.h"
using namespace std;

int main()
{
int test[10] = { 1,2,3,4,5,6,7,8,9,10 };
print_arry<int, 10> (cout, test);

getchar();
return 0;
}

//stdafx.h
//... (library headers)
#include "template_practice.h"

有很多错误,包括:“header stop not at file scope. And IntelliSense PCH file was not generated”,“'ostream': undeclared identifier”,“apparent call 括号前的表达式必须有函数类型”.. .

最佳答案

首先,添加#include <iostream> (对于 std::ostreamstd::endl )和 #include <iterator> (对于 std::cbeginstd::cend )在 template_practice.h 中.并添加 std::什么时候使用它们。 (顺便说一句 using namespace std; is not a good idea)。

其次,cbegin(arry);返回 const T* , 所以改变 i 的类型至 const T* , 或使用 auto反而;例如for (auto i = cbegin(arry); i != cend(arry); i++) .

LIVE

关于C++ 模板函数在 Visual Studio 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50045949/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com