背景
C++14 を要求されるコードを
set(CMAKE_CXX_STANDARD 14)
と設定しても,
no member named `make_unique` in namespace `std`
などで, make_unique 周りでコンパイルがこける.
原因
たぶんなにか他の add_subdirectory などで追加している third party library が, CXX flags に直接 -std=c++11
など他の C++ バージョンを指定してしまっている可能性が高いです.
CMAKE_MAKEFILE_VERBOSE=On
を cmake bootstrap に追加するなどして, コマンドラインで適切に C++14 モードになっているか確認してみましょう.
set(CMAKE_CXX_STANDARD 14)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_CXX_EXTENSIONS OFF)
として, 厳格に -std=c++14
でコンパイルするようにするとよいかもしれません.
call to 'make_unique' is ambiguous エラー
spdlog を Android + C++14 でビルドするときに発生しました.
なにか他の Android ヘッダと定義がかちあっているようです.
先に spdlog のヘッダをインクルードするようにすると解決しました.