2017-06-06 21 views
0

現在、外部ライブラリを扱いやすいようにヘッダを書いています。ここで2つの文字列をプリプロセッサで一緒に追加する

は、最小限のコードは次のとおりです。

#pragma once 

#define STR_HELPER(x) #x 
#define STR(x) STR_HELPER(x) 

#define EXTERNAL_PATH STR(C:/C++ Libraries/) 

#define LUA_PATH  EXTERNAL_PATH STR(lua 5.3.4/) 
#define LUA_INCLUDE  LUA_PATH  STR(include/) 

だから、基本的に、私はこのヘッダを含めてどのように私は一緒にプリプロセッサで2つの文字列をリンクすることができます

#include LUA_INCLUDE (add this two strings) "lua.hpp" 

のようなものを書くのか?

答えて

1

##をお探しですか?そして、マクロパラムをあまりにも早くストリング化(引用)しないでください。

例:

#define MY_QUOTE(a) #a 

#define CONCAT_QUOTE(a,b) MY_QUOTE(a##b) 

#define CONCAT(a,b) a##b 

// this works OK 
#include CONCAT(<iostrea, m>) 


// this doesn't as iostream should be just in <> rather than "<>" 
#include CONCAT_QUOTE(<iostrea, m>) 
関連する問題