2017-05-26 12 views
0

私はProject-OSRMのexamle.cppファイルを実行しようとしています。新しいターミナルにhere 名前空間 'std'の 'underlying_type_t'エラーは、プロジェクトのOSRMからexample.cppにテンプレートの名前を付けていません

  • を説明するように、ソースから

    • ビルドOSRM:CD OSRM-バックエンド/例
    • ターミナルに:私は、次の手順を行った端末において、cmakeの...
    • :cmakeの - ビルド。
    • 端末内:sudo cmake --build。 --target
    • 移動マップ請負エンジン抽出パーティションは/ usr/local// OSRMに含まは/ usr/localから utilのストレージをインストール/端末における
    • (さもなければエラーマップは/を/ usr/localにない含む)が挙げられる:例えば-o G ++ -std = C++ 11 example.cpp

    しかし、私はエラー

    ‘underlying_type_t’ in namespace ‘std’ does not name a template type 
        static_cast<std::underlying_type_t<RouteParameters::AnnotationsType>> 
    

    を取得誰も私が間違ってやっているか間違っている何が起こっているかのアイデアを持っていますし、これを解決する方法?

    エラーメッセージは

    In file included from /usr/local/include/engine/api/match_parameters.hpp:31:0, 
           from /usr/local/include/osrm/match_parameters.hpp:31, 
           from example.cpp:1: 
    /usr/local/include/engine/api/route_parameters.hpp: In function ‘bool osrm::engine::api::operator&(osrm::engine::api::RouteParameters::AnnotationsType, osrm::engine::api::RouteParameters::AnnotationsType)’: 
    /usr/local/include/engine/api/route_parameters.hpp:144:26: error: ‘underlying_type_t’ in namespace ‘std’ does not name a template type 
         static_cast<std::underlying_type_t<RouteParameters::AnnotationsType>>(l 
             ^
    /usr/local/include/engine/api/route_parameters.hpp:144:43: error: expected ‘>’ before ‘<’ token 
         static_cast<std::underlying_type_t<RouteParameters::AnnotationsType>>(l 
                 ^
    /usr/local/include/engine/api/route_parameters.hpp:144:43: error: expected ‘(’ before ‘<’ token 
    /usr/local/include/engine/api/route_parameters.hpp:144:43: error: expected primary-expression before ‘<’ token 
    /usr/local/include/engine/api/route_parameters.hpp:144:76: error: expected primary-expression before ‘>>’ token 
        static_cast<std::underlying_type_t<RouteParameters::AnnotationsType>>(lhs) & 
                        ^
    /usr/local/include/engine/api/route_parameters.hpp:145:26: error: ‘underlying_type_t’ in namespace ‘std’ does not name a template type 
         static_cast<std::underlying_type_t<RouteParameters::AnnotationsType>>(r 
             ^
    /usr/local/include/engine/api/route_parameters.hpp:145:43: error: expected ‘>’ before ‘<’ token 
         static_cast<std::underlying_type_t<RouteParameters::AnnotationsType>>(r 
                 ^
    /usr/local/include/engine/api/route_parameters.hpp:145:43: error: expected ‘(’ before ‘<’ token 
    /usr/local/include/engine/api/route_parameters.hpp:145:43: error: expected primary-expression before ‘<’ token 
    /usr/local/include/engine/api/route_parameters.hpp:145:76: error: expected primary-expression before ‘>>’ token 
        static_cast<std::underlying_type_t<RouteParameters::AnnotationsType>>(rhs)); 
                        ^
    /usr/local/include/engine/api/route_parameters.hpp:145:84: error: expected ‘)’ before ‘;’ token 
        static_cast<std::underlying_type_t<RouteParameters::AnnotationsType>>(rhs)); 
                          ^
    /usr/local/include/engine/api/route_parameters.hpp:145:84: error: expected ‘)’ before ‘;’ token 
    /usr/local/include/engine/api/route_parameters.hpp: In function ‘osrm::engine::api::RouteParameters::AnnotationsType osrm::engine::api::operator|(osrm::engine::api::RouteParameters::AnnotationsType, osrm::engine::api::RouteParameters::AnnotationsType)’: 
    /usr/local/include/engine/api/route_parameters.hpp:152:26: error: ‘underlying_type_t’ in namespace ‘std’ does not name a template type 
         static_cast<std::underlying_type_t<RouteParameters::AnnotationsType>>(l 
             ^
    /usr/local/include/engine/api/route_parameters.hpp:152:43: error: expected ‘>’ before ‘<’ token 
         static_cast<std::underlying_type_t<RouteParameters::AnnotationsType>>(l 
                 ^
    /usr/local/include/engine/api/route_parameters.hpp:152:43: error: expected ‘(’ before ‘<’ token 
    /usr/local/include/engine/api/route_parameters.hpp:152:43: error: expected primary-expression before ‘<’ token 
    /usr/local/include/engine/api/route_parameters.hpp:152:76: error: expected primary-expression before ‘>>’ token 
        static_cast<std::underlying_type_t<RouteParameters::AnnotationsType>>(lhs) | 
                        ^
    /usr/local/include/engine/api/route_parameters.hpp:153:26: error: ‘underlying_type_t’ in namespace ‘std’ does not name a template type 
         static_cast<std::underlying_type_t<RouteParameters::AnnotationsType>>(r 
             ^
    /usr/local/include/engine/api/route_parameters.hpp:153:43: error: expected ‘>’ before ‘<’ token 
         static_cast<std::underlying_type_t<RouteParameters::AnnotationsType>>(r 
                 ^
    /usr/local/include/engine/api/route_parameters.hpp:153:43: error: expected ‘(’ before ‘<’ token 
    /usr/local/include/engine/api/route_parameters.hpp:153:43: error: expected primary-expression before ‘<’ token 
    /usr/local/include/engine/api/route_parameters.hpp:153:76: error: expected primary-expression before ‘>>’ token 
        static_cast<std::underlying_type_t<RouteParameters::AnnotationsType>>(rhs)); 
                        ^
    /usr/local/include/engine/api/route_parameters.hpp:153:84: error: expected ‘)’ before ‘;’ token 
        static_cast<std::underlying_type_t<RouteParameters::AnnotationsType>>(rhs)); 
                          ^
    /usr/local/include/engine/api/route_parameters.hpp:153:84: error: expected ‘)’ before ‘;’ token 
    
  • +1

    'underlying_type_t'は大部分の' * _t'エイリアスのようにC++ 14を必要とします。 –

    答えて

    0

    underlying_type_t C++ 14が必要です。それを使用できるようにするには、コンパイラに-std=c++14を渡します。

    関連する問題