使用模板函数时,如何修复 Microsoft Visual Studio 社区中的“未解决的外部错误”?

How to fix "unresolved external error" in Microsoft Visual Studio Community when using template functions?

提问人:Ali_np_dp 提问时间:3/19/2023 最后编辑:Remy LebeauAli_np_dp 更新时间:3/19/2023 访问量:42

问:

我想我已经设法修复了我的错误,但我的程序只能在某些编译器上正常工作,但它在其他编译器上不起作用,例如 Microsoft Visual Studio,我不知道如何修复它。

它引发了这样的错误:

函数“int __cdecl invoke_main(void) (?invoke_main@@YAHXZ)”中引用的未解析的外部符号主

这是我的代码:

#include <iostream>
using namespace std;

#define E '\n'
#define ll long long

template<typename T>
class BinarySearch
{
public:
    BinarySearch(T target, T elements[])
        :elements(elements), target(target)
    { }

    bool solve(int start_index, int end_index)
    {
        int mid_index = (start_index + end_index) / 2;

        if (start_index >= end_index)
        {
            if (elements[start_index] == target)
                return true;
            else
                return false;
        }
        else
        {
            if (elements[mid_index] == target)
                return true;
            else if (elements[mid_index] < target)
                return solve(mid_index + 1, end_index);
            else
                return solve(start_index, mid_index - 1);
        }
    }

private:
    T* elements;
    T target;
};

template<typename T>
int main()
{
    int elements[] = { 1,2,3,47,111,121,681,990 };

    int target = 0;

    BinarySearch solution(target, elements);

    cout << solution.solve(0, 7);

    return 0;
}

我迫切需要修复这些编译错误。

C++ 模板 未解析 - 外部

评论


答: 暂无答案