Ну, если это поможет, вот способ переслать класс-обертку operator[]
к вашей лямбде operator()
.
template<class F>
struct SubscriptWrapper_t {
F f_;
template<class T> auto operator[](T const& t_) const -> decltype(f_(t_)) {
return f_(t_);
}
};
template<class F>
SubscriptWrapper_t<typename std::decay<F>::type> SubscriptWrapper(F&& f_) {
return{std::forward<F>(f_)};
}
Я часто использую такие обертки. Они удобны, и у них, похоже, нет вычислительных затрат, по крайней мере, при компиляции GCC. Вы можете сделать один для at
или даже сделать для find
.
РЕДАКТИРОВАТЬ: Обновлено для C ++ 11 (и обновлено, чтобы иметь возможность возвращать ссылку)
Хорошо для любого, кто приезжает, смотря, я думал, что должен ответить на свой собственный вопрос... Я не нашел точное решение, которое я искал, таким образом, я просто добавил все, в чем я нуждался исключенный вручную к ExcludeFromBuild ItemGroup (для имитации тому, что опции по умолчанию, казалось, сделали и затем также исключили мой определенный файл). Мой список ExcludeFromBuild закончил тем, что был похож на это:
<ItemGroup>
<ExcludeFromBuild Include="$(SourceWebPhysicalPath)\somefile.txt" />
<ExcludeFromBuild Include="$(SourceWebPhysicalPath)\obj\**\*.*" />
<ExcludeFromBuild Include="$(SourceWebPhysicalPath)\**\.svn\**\*.*" />
<ExcludeFromBuild Include="$(SourceWebPhysicalPath)\**\.svn\**\*" />
<ExcludeFromBuild Include="$(SourceWebPhysicalPath)\**\*.csproj" />
<ExcludeFromBuild Include="$(SourceWebPhysicalPath)\**\*.scc" />
<ExcludeFromBuild Include="$(SourceWebPhysicalPath)\**\*.user" />
<ExcludeFromBuild Include="$(SourceWebPhysicalPath)\**\*.vspscc" />
<ExcludeFromBuild Include="$(SourceWebPhysicalPath)\**\*.log" />
<ExcludeFromBuild Include="$(SourceWebPhysicalPath)\**\*.svclog" />
</ItemGroup>
В основном исключает все файлы журнала, файлы пользователя/проекта, svn файлы, источник безопасные файлы, и т.д. плюс пользовательские файлы, которые я хотел проигнорировать во-первых.
Я не уверен, помогает ли это, но команда имеет свойство Exclude, Вы могли бы переопределить цель, которая копирует файлы, и используйте для включения/исключения то, в чем Вы нуждаетесь.