Использование настраиваемого оператора подписки с Boost.Lambda

Я использую Visual Studio 2005 и Boost 1.37. Я также протестировал этот же код на Visual Studio 2012 Express Desktop и Boost 1.50, но безуспешно.

Я хочу использовать Boost.Lambda путем доступа к обычаю подстрочный оператор по моему типу. Это также происходит при использовании с станд :: массив, поэтому я проиллюстрирую проблему с станд :: массив тип:

#include <vector>
#include <array>
#include <algorithm>

int main() {
std::vector<std::array<int, 3>> arrays;
arrays.push_back(make_array(1, 2, 3));
arrays.push_back(make_array(5, 5, 6));
std::for_each(arrays.begin(), arrays.end(), (_1[0])); //This line fails!
return 0;
}

Ошибки:

error C2664: 'boost::lambda::detail::unspecified::unspecified(const boost::lambda::detail::unspecified &)' : cannot convert parameter 1 from 'int' to 'const boost::lambda::detail::unspecified &'
Reason: cannot convert from 'int' to 'const boost::lambda::detail::unspecified'
No constructor could take the source type, or constructor overload resolution was ambiguous
... ad infinitum...

Я нашел эту страницу: Расширение системы возврата типа возврата

Но я не смог успешно реализовать это.

Кто-нибудь знает, что здесь можно сделать?

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]