gpt4 book ai didi

c++ - "more than one instance of overloaded function "标准::战俘 "matches the argument list"

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:00:17 29 4
gpt4 key购买 nike

使用C++,我尝试

#define TINY std::pow(10,-10)

我为定义了 TINY 的类 (.h) 提供了带有 #include 和命名空间信息的代码

#pragma once
#include "MMath.h"
#include <string>
#include <cmath>
#include <vector>

using namespace std;

#define TINY std::pow(10,-10)

我在 .cpp 文件中的一些函数实现中使用了 TINY,而 TINY 给出了错误

IntelliSense: more than one instance of overloaded function "std::pow" matches the argument list

什么是正确的语法?

最佳答案

编辑: 我同意评论者的说法,即使用 std::pow() 代替文字常量是不必要的 - 因此对于这个特定问题,请使用 1.0E -10 常量;我对您遇到的实际错误的解释以及解决它的方法仍然有效。

这与您的#define 无关。 std::pow() 是一个重载函数,它的所有重载都不将 (int, int) 作为参数。您应该提供明确选择重载类型的参数。根据您想要的返回值类型,您可能希望选择以下重载之一:

      float pow (       float base,       float exponent );
double pow ( double base, int exponent );
long double pow ( long double base, int exponent );

您可以按如下方式调用:

std::pow(10.0f, -10.0f)
std::pow(10.0, -10)
std::pow(10.0L, -10)

分别。

关于c++ - "more than one instance of overloaded function "标准::战俘 "matches the argument list",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9554967/

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