私はC++プロジェクトに取り組んでおり、Boost 1.46(SynapticがOneiricにインストールするデフォルトバージョン)と互換性を持たせるためにいくつかの変更を加えましたが、古いバージョンのBoostでも正しくコンパイルできるようにしたいと思います。使用しているバージョンブーストに基づいて異なるコードを作成するにはどうすればよいですか。設定ファイル(autoconfによって生成された)は、どれを示すためにいくつかの変数を#DEFINEしますか?また、この特定の変更が導入されたバージョンが完全にはわかりません。
ブーストバージョンに基づいて、統合したい2つのバージョンの差分は次のとおりです。
diff --git a/src/util/Misc.cpp b/src/util/Misc.cpp
index 467144d..a9738aa 100644
--- a/src/util/Misc.cpp
+++ b/src/util/Misc.cpp
@@ -28,7 +28,7 @@ void MiscUtil::FindProgramDir(int argc, char* argv[])
{
if (argc == 0 || argv == 0)
return;
- programDir = path(argv[0], native).branch_path();
+ programDir = path(argv[0]).branch_path();
}
void MiscUtil::WordToBytes(unsigned word, byte* out)
@@ -70,7 +70,7 @@ std::string MiscUtil::OpenFile(std::string name, std::ifstream& f)
{
path p = programDir / name;
p.normalize();
- programDirFile = p.native_file_string();
+ programDirFile = p.string();
f.open(programDirFile.c_str());
if (f.is_open())
return programDirFile;
@@ -78,7 +78,7 @@ std::string MiscUtil::OpenFile(std::string name, std::ifstream& f)
{
path p = boost::filesystem::path(ABS_TOP_SRCDIR) / "share" / name;
p.normalize();
- absFile = p.native_file_string();
+ absFile = p.string();
f.open(absFile.c_str());
if (f.is_open())
return absFile;
@@ -86,7 +86,7 @@ std::string MiscUtil::OpenFile(std::string name, std::ifstream& f)
{
path p = boost::filesystem::path(DATADIR) / name;
p.normalize();
- dataFile = p.native_file_string();
+ dataFile = p.string();
f.open(dataFile.c_str());
if (f.is_open())
return dataFile;
私はautoconfにあまり精通しておらず、これは私のコードではなく、他の誰かのコードです。ここで何が起こっているのか説明をいただければ幸いです。
ありがとう