2016-09-04 6 views
-2

以下のコードを試してみましたが、コンパイルしませんでした。基本的な目的は、名前空間、つまりstdまたはeastlを定義し、コンテナの種類:プリプロセッサのディレクティブに基づいて名前空間名+コンテナを組み立てる

#ifndef EASTL 
#include <vector> 
#define NMS std 
#else 
#include <EASTL\vector.h> 
#define NMS eastl 
#endif 

template<class T> 
using vector_t = NMS##::##vector<T>; 

残念ながら、私はそれを行う方法を見つけることができませんでした。どんな提案も大歓迎です。あなたはそれを望んで本当に確信している場合は

+0

これは誤植ではありません... – immibis

答えて

1

は、単に##プリプロセッサディレクティブ(これらだけではないテンプレートで、マクロ定義内で処理されている)なし

#ifndef EASTL 
#include <vector> 
#define NMS std 
#else 
#include <EASTL\vector.h> 
#define NMS eastl 
#endif 

template<class T> 
using vector_t = NMS::vector<T>; 

を置きます。

関連する問題