VS 2017 中的标头 cmath 智能感知错误

header cmath Intellisense errors in VS 2017

本文关键字:cmath 智能 感知 错误 2017 VS      更新时间:2023-10-16

标头 cmath 根本不起作用,当我在项目中打开 cmath 头文件时,VS 智能感知显示错误,例如 the global scope has no "acosf" ,并且有数百个。

我已经阅读了很多线程,但还没有弄清楚。我已经确认我正在根据一个线程使用 sdk 10.0.15063.0,但它不起作用。

包括 cmath 在内的任何项目都不起作用,因此它可能与特定代码无关。我已经尽力了,你们能告诉如何解决吗?提前感谢!

完整的错误列表如下:

Severity        Code    Description                     Project     File                                                                                                       Line Suppression State
Error (active)  E0282   the global scope has no "acosf" Project7    c:Program Files (x86)Microsoft Visual Studio2017CommunityVCToolsMSVC14.12.25827includecmath   25  
Error (active)  E0282   the global scope has no "acoshf"    Project7    c:Program Files (x86)Microsoft Visual Studio2017CommunityVCToolsMSVC14.12.25827includecmath   30  
Error (active)  E0282   the global scope has no "asinf" Project7    c:Program Files (x86)Microsoft Visual Studio2017CommunityVCToolsMSVC14.12.25827includecmath   35  
Error (active)  E0282   the global scope has no "asinhf"    Project7    c:Program Files (x86)Microsoft Visual Studio2017CommunityVCToolsMSVC14.12.25827includecmath   40  
Error (active)  E0282   the global scope has no "atanf" Project7    c:Program Files (x86)Microsoft Visual Studio2017CommunityVCToolsMSVC14.12.25827includecmath   45  
Error (active)  E0282   the global scope has no "atanhf"    Project7    c:Program Files (x86)Microsoft Visual Studio2017CommunityVCToolsMSVC14.12.25827includecmath   50  
Error (active)  E0282   the global scope has no "atan2f"    Project7    c:Program Files (x86)Microsoft Visual Studio2017CommunityVCToolsMSVC14.12.25827includecmath   55  
Error (active)  E0282   the global scope has no "cbrtf" Project7    c:Program Files (x86)Microsoft Visual Studio2017CommunityVCToolsMSVC14.12.25827includecmath   60  
Error (active)  E0282   the global scope has no "ceilf" Project7    c:Program Files (x86)Microsoft Visual Studio2017CommunityVCToolsMSVC14.12.25827includecmath   65  
Error (active)  E0282   the global scope has no "copysignf" Project7    c:Program Files (x86)Microsoft Visual Studio2017CommunityVCToolsMSVC14.12.25827includecmath   71  
Error (active)  E0282   the global scope has no "cosf"  Project7    c:Program Files (x86)Microsoft Visual Studio2017CommunityVCToolsMSVC14.12.25827includecmath   76  
Error (active)  E0282   the global scope has no "coshf" Project7    c:Program Files (x86)Microsoft Visual Studio2017CommunityVCToolsMSVC14.12.25827includecmath   81  
Error (active)  E0282   the global scope has no "erff"  Project7    c:Program Files (x86)Microsoft Visual Studio2017CommunityVCToolsMSVC14.12.25827includecmath   86  
Error (active)  E0282   the global scope has no "erfcf" Project7    c:Program Files (x86)Microsoft Visual Studio2017CommunityVCToolsMSVC14.12.25827includecmath   91  
Error (active)  E0282   the global scope has no "expf"  Project7    c:Program Files (x86)Microsoft Visual Studio2017CommunityVCToolsMSVC14.12.25827includecmath   96  
Error (active)  E0282   the global scope has no "exp2f" Project7    c:Program Files (x86)Microsoft Visual Studio2017CommunityVCToolsMSVC14.12.25827includecmath   101 
Error (active)  E0282   the global scope has no "expm1f"    Project7    c:Program Files (x86)Microsoft Visual Studio2017CommunityVCToolsMSVC14.12.25827includecmath   106 
Error (active)  E0282   the global scope has no "fabsf" Project7    c:Program Files (x86)Microsoft Visual Studio2017CommunityVCToolsMSVC14.12.25827includecmath   111 
Error (active)  E0282   the global scope has no "fdimf" Project7    c:Program Files (x86)Microsoft Visual Studio2017CommunityVCToolsMSVC14.12.25827includecmath   116 
Error (active)  E0282   the global scope has no "floorf"    Project7    c:Program Files (x86)Microsoft Visual Studio2017CommunityVCToolsMSVC14.12.25827includecmath   121 
Error (active)  E0282   the global scope has no "fmaf"  Project7    c:Program Files (x86)Microsoft Visual Studio2017CommunityVCToolsMSVC14.12.25827includecmath   127 
//etc

///////////////////////////编辑:这是包含 cmath 的标头,来自 Strousrup 的 c++ PPP:

ifndef GRAPH_GUARD
#define GRAPH_GUARD 1
#include "Point.h"
#include <vector>
#include <string>
#include <cmath>
#include "fltk.h"
#include "std_lib_facilities.h"
namespace Graph_lib {
// defense against ill-behaved Linux macros:
#undef major
#undef minor
struct Color {
    enum Color_type {
        red=FL_RED, blue=FL_BLUE, green=FL_GREEN,
        yellow=FL_YELLOW, white=FL_WHITE, black=FL_BLACK,
        magenta=FL_MAGENTA, cyan=FL_CYAN, dark_red=FL_DARK_RED,
        dark_green=FL_DARK_GREEN, dark_yellow=FL_DARK_YELLOW, dark_blue=FL_DARK_BLUE
//etc

///////////////////////编辑:

using namespace std is included in "std_lib_facilities.h".

来自"std_lib_facilities.h"的斯皮内特:

#define _SILENCE_STDEXT_HASH_DEPRECATION_WARNINGS 1
#ifndef H112
#define H112 201004L
#include<iostream>
#include<fstream>
#include<sstream>
#include<cmath>
#include<cstdlib>
#include<string>
#include<list>
#include<vector>
#include<algorithm>
#include<stdexcept>
//etc------------------

谢谢大家,我已经解决了问题。这是因为包含目录中不同math.h的冲突。