こんにちは
ue4に機械学習ライブラリ「dlib」を導入しようと思いました。
dlibは基本的にヘッダオンリーなライブラリなのですが、一部の機能だけ、プロジェクトにsource.cppというソースファイルを追加する必要があります。(ソースファイルの中でソースファイルを相対パスでインクルード、インクルードされたソースファイルの中でヘッダがインクルードされているっぽい)
source.cppはdlibの中の、dlib/allという場所ににあります。
ue4のプロジェクトにソースファイルを追加するところまではうまく行ったのですが、いざビルドしてみるとdlibの中のファイルでコンパイルエラーが出てしまいます。
ライブラリを追加する前は正常にビルドできていたので、おそらくライブラリの追加が原因だと思っています。
以下に、追加した際の手順を記します。
- Unreal Projects/[プロジェクト名]/Source/[プロジェクト名]にsource.cppをコピー
- visualstudioで[プロジェクト名].Build.csのPrivateIncludePathにdlib/allを追加
- source.cppの先頭付近で[プロジェクト名].hをインクルード
以上のような方法でライブラリを導入したとしたところ、コンパイルエラーが発生してしまいました。
何か原因など分かりますでしょうか?
//型 'bool' は不要です。
// '{' の前に予期しないトークンがありました。関数の本体は無視されます
inline bool verify (
unsigned long index
) const
/*!
ensures
- returns true if buffer[index]'s context matches the current context
!*/
//型指定子がありません - int と仮定しました。メモ: C++ は int を既定値としてサポートしていません
//構文エラー: '{'
//'{' の前に予期しないトークンがありました。関数の本体は無視されます
{
if (index+3 < buffer.size())
{
if (buffer[0] != buffer[index+1])
return false;
if (buffer[1] != buffer[index+2])
return false;
if (buffer[2] != buffer[index+3])
return false;
return true;
}
else
{
// just call this a match
return true;
}
}
エラー箇所
dlib/lzp_buffer/lzp_buffer_kernel_2.h
75行目と82行目
(上記コードの ”inline bool verify (” の行と ”if (index+3 < buffer.size())” の上の ”{” の行)
よろしくお願いします。