お世話になります。  
現在VisulStudio2015のC++を使って数値計算を行っているのですが、スペルや文法のエラーがコンパイル前のチェックでは問題なかったのに、ビルドを行おうとするとほぼすべての変数が変数として認識されなくなってしまいました。（定義されていない識別子です）。  
何度も確認しましたが文法も間違った感じではなく、どうしてこのようなことが起こるのかわからないでいます。  
対処法を押しえてください。よろしくお願いいたします。

```

    #pragma once
    #include <iostream>
    #include <fstream>
    #include <cstdlib>
    #include <vector>
    #include <string>
    #include <cmath>
    #include <complex>
    #include <numeric>
    #include <functional>
    #include <map>
    #include <tuple>
    #include <algorithm>
    
    #define Alpha 0.06 //線形損失[cm-1]
    const double pi=3.141592653;
    const double e0=8.854*1e-12;
    const double u0=4*pi*1e-7;
    const double c = 299792458; //Light Speed
    const double h = 6.62607004e-34; //Planck Number
    const double g = 30.; //Raman Gain
    complex<double> j(0, 1);
    const double cross_section = (220e-9*445e-9) / (1e-2*1e-2); //[cm2]
    using namespace std;
    
    namespace fanctions {
        /*自然ラマン散乱*/
        auto seed = [](double pump, double cs) {return (13e-9*pump - 4.5e-11)*1e-9 / cs; };
    
        /*セルマイヤーの分散式*/
        auto n = [](double Lambda) {return sqrt(11.6858 + 0.939816 / method::nijo(Lambda) + 0.00810461*method::nijo(Lambda) / (nijo(Lambda) - method::nijo(1.1071))); };
    
        /*基本式*/
        //ストークス光
        auto f_Est = [](complex<double> Est, complex<double> Epump, complex<double> East, const double k, const double z, const double alpha_TPA){ return g / 2 * (conj(Epump)*Est + conj(East)*Epump*exp(j*k*z))*Epump - 0.5*(Alpha + alpha_TPA)*Est; };
        //レイリー散乱光
        auto f_Epump = [](complex<double> Est, complex<double>  Epump, complex<double>  East, const double omega_st, const double omega_ly, const double alpha_TPA){return g / 2 * (omega_ly / omega_st)*(norm(East) - norm(Est))*Epump - 0.5*(Alpha + alpha_TPA)*Epump; };
        //アンチストークス光
        auto f_East = [](complex<double> Est, complex<double>  Epump, complex<double>  East, const double k, const double z, const double omega_st, const double omega_ast, const double alpha_TPA){return -g / 2 * (omega_ast / omega_st)*(Epump*conj(Est)*exp(j*k*z) + Est*conj(Epump))*Epump - 0.5*(Alpha + alpha_TPA)*East; };
    
        /*ロスなし方程式*/
        //ストークス光
        auto non_loss_f_Est = [](complex<double> Est, complex<double> Epump, complex<double> East, const double k, const double z) { return g / 2 * (conj(Epump)*Est + conj(East)*Epump*exp(j*k*z))*Epump; };
        //レイリー散乱光
        auto non_loss_f_Epump = [](complex<double> Est, complex<double>  Epump, complex<double>  East, const double omega_st, const double omega_ly) {return g / 2 * (omega_ly / omega_st)*(norm(East) - norm(Est))*Epump; };
        //アンチストークス光
        auto non_loss_f_East = [](complex<double> Est, complex<double>  Epump, complex<double>  East, const double k, const double z, const double omega_st, const double omega_ast) {return -g / 2 * (omega_ast / omega_st)*(Epump*conj(Est)*exp(j*k*z) + Est*conj(Epump))*Epump; };
    }
    
```
CC BY-SA 3.0
2017-11-24T11:39:30.917
39806
2017-11-24T21:20:06.787
2017-11-24T12:53:41.517
4236
19263
question
c++ visual-studio
C++コンパイルエラー（定義されていない識別子です）
エラーメッセージと該当行を提示していただかないことには正確なことはわかりませんが、

>
```

>     /*セルマイヤーの分散式*/
>     auto n = [](double Lambda) {return sqrt(11.6858 + 0.939816 /
> method::nijo(Lambda) + 0.00810461*method::nijo(Lambda) / (nijo(Lambda) -
> method::nijo(1.1071))); };
>  
```

`method`が宣言されていませんが`method::nijo()`にアクセスしています。また`nijo()`も宣言されていません。

* * *

> スペルや文法のエラーがコンパイル前のチェックでは問題なかった

[`IntelliSense`](https://msdn.microsoft.com/ja-
jp/library/hcw1s69b\(v=vs.120\).aspx)のことでしょうか？C# /
VB.NETにおいて同機能は実際のコンパイラーを用いての解析となるためほぼ確実な事前チェックが行えますが、C++言語では言語の特性上、完全な解析は不可能です（複数回
`#include`
された場合に何回目の解析結果を示すのか、など）。また解析自体もVC++コンパイラーではなく[EDG](https://www.edg.com/c)というツールが使われているため完全には一致していません。
CC BY-SA 3.0
2017-11-24T12:53:16.517
39808
2017-11-24T21:20:06.787
2017-11-24T21:20:06.787
4236
4236
39806
answer