私はこのコードをコンパイルしようとしました:
#include <boost/range/adaptors.hpp>
#include <boost/range/algorithm.hpp>
#include <vector>
int main() {
std::vector<int> v{
1,5,4,2,8,5,3,7,9
};
std::cout << *boost::min_element(v | boost::adaptors::transformed(
[](int i) { return -i; })) << std::endl;
return 0;
}
コンパイルは次のエラーメッセージで失敗しました(長いテンプレートインスタンス化小説の後):
/usr/local/include/boost/iterator/transform_iterator.hpp:84:26: error: use of deleted function ‘main()::<lambda(int)>::<lambda>()’
../main.cpp:12:5: error: a lambda closure type has a deleted default constructor
私は問題をグーグルで検索し、BoostUsersメーリングリストアーカイブでこれを見つけました。#define BOOST_RESULT_OF_USE_DECLTYPE
使用することで問題が解決することが示唆されました。コードの最初に配置しましたが、それでもコンパイルされません。エラーメッセージの長さははるかに短いようですが、最後のエラーメッセージは同じです。現在、Boost1.50を使用しています。
ここで何が問題になる可能性がありますか?これを機能させる方法はありますか?