Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fruit does not build in Visual Studio Versions 2019, 2022 or 2022 Preview with CMake #138

Open
IrisPeter opened this issue Feb 13, 2022 · 8 comments

Comments

@IrisPeter
Copy link

I need to build fruit on Windows with the MSVC Compiler, whilst it works fine with GCC in WSL, when building under windows there are 3 errors:

Error 1
FAILED: examples/scaling_doubles/CMakeFiles/scaling.dir/scaler.cpp.obj C:\PROGRA~1\MIB055~1\2022\PROFES~1\VC\Tools\MSVC\1430~1.307\bin\Hostx64\x64\cl.exe /nologo /TP -IC:\ExtBuildUtils\Boost\boost_1_78_0 -I"F:\VisualStudio Projects\Libraries\fruit\include" -I"F:\VisualStudio Projects\Libraries\fruit\out\build\windows-default\include" /DWIN32 /D_WINDOWS /EHsc /Zi /Ob0 /Od /RTC1 -MDd /nologo /FS /W4 /wd4324 /wd4709 /wd4459 /wd4141 /wd4714 /wd4577 /wd4530 /wd5205 /D_SCL_SECURE_NO_WARNINGS /showIncludes /Foexamples\scaling_doubles\CMakeFiles\scaling.dir\scaler.cpp.obj /Fdexamples\scaling_doubles\CMakeFiles\scaling.dir\ /FS -c "F:\VisualStudio Projects\Libraries\fruit\examples\scaling_doubles\scaler.cpp" F:\VisualStudio Projects\Libraries\fruit\include\fruit\impl\component_functors.defn.h(454): error C2440: '<function-style-cast>': cannot convert from 'initializer list' to 'fruit::impl::meta::RegisterFactoryHelper::apply<MetaExpr,fruit::impl::meta::Type<ReturnType (fruit::Assisted<double>,Multiplier *)>,fruit::impl::meta::Type<fruit::impl::meta::RegisterConstructorAsUniquePtrFactory::apply<MetaExpr,fruit::impl::meta::Type<ReturnType (fruit::Assisted<double>,Multiplier *)>,fruit::impl::meta::Type<ReturnType (double,Multiplier *)>>::Op::()::<lambda_aa5d8e12306951438d3faeeff2cad75d>>,fruit::impl::meta::Type<ReturnType (double)>,fruit::impl::meta::Type<ReturnType (double,Multiplier *)>,fruit::impl::meta::Vector<T>,fruit::impl::meta::Vector<T>,fruit::impl::meta::Vector<fruit::impl::meta::Int<0>,fruit::impl::meta::Int<1>>>::Op::()::<lambda_d7bce2ccaf431ac65c27230ad51fdb66>::()::<lambda_98f4ee469026525ea06aa04b20f1f8e1>' with [ MetaExpr=fruit::impl::meta::Comp<fruit::impl::meta::Vector<>,fruit::impl::meta::Vector<fruit::impl::meta::Type<Multiplier>>,fruit::impl::meta::Vector<fruit::impl::meta::Type<Multiplier>>,fruit::impl::meta::Vector<fruit::impl::meta::Pair<fruit::impl::meta::Type<Multiplier>,fruit::impl::meta::Vector<>>>,fruit::impl::meta::Vector<fruit::impl::meta::Pair<fruit::impl::meta::Type<Scaler>,fruit::impl::meta::Type<ScalerImpl>>>,fruit::impl::meta::EmptyList>, ReturnType=std::unique_ptr<ScalerImpl,std::default_delete<ScalerImpl>>, T=fruit::impl::meta::Type<Multiplier *> ] F:\VisualStudio Projects\Libraries\fruit\include\fruit/impl/component_functors.defn.h(454): note: No constructor could take the source type, or constructor overload resolution was ambiguous F:\VisualStudio Projects\Libraries\fruit\include\fruit/impl/component_functors.defn.h(438): note: while compiling class template member function 'void fruit::impl::meta::RegisterFactoryHelper::apply<MetaExpr,fruit::impl::meta::Type<ReturnType (fruit::Assisted<double>,Multiplier *)>,fruit::impl::meta::Type<fruit::impl::meta::RegisterConstructorAsUniquePtrFactory::apply<MetaExpr,fruit::impl::meta::Type<ReturnType (fruit::Assisted<double>,Multiplier *)>,fruit::impl::meta::Type<ReturnType (double,Multiplier *)>>::Op::()::<lambda_aa5d8e12306951438d3faeeff2cad75d>>,fruit::impl::meta::Type<ReturnType (double)>,fruit::impl::meta::Type<ReturnType (double,Multiplier *)>,fruit::impl::meta::Vector<T>,fruit::impl::meta::Vector<T>,fruit::impl::meta::Vector<fruit::impl::meta::Int<0>,fruit::impl::meta::Int<1>>>::Op::operator ()(fruit::impl::FixedSizeVector<fruit::impl::ComponentStorageEntry,std::allocator<fruit::impl::ComponentStorageEntry>> &)' with [ MetaExpr=fruit::impl::meta::Comp<fruit::impl::meta::Vector<>,fruit::impl::meta::Vector<fruit::impl::meta::Type<Multiplier>>,fruit::impl::meta::Vector<fruit::impl::meta::Type<Multiplier>>,fruit::impl::meta::Vector<fruit::impl::meta::Pair<fruit::impl::meta::Type<Multiplier>,fruit::impl::meta::Vector<>>>,fruit::impl::meta::Vector<fruit::impl::meta::Pair<fruit::impl::meta::Type<Scaler>,fruit::impl::meta::Type<ScalerImpl>>>,fruit::impl::meta::EmptyList>, ReturnType=std::unique_ptr<ScalerImpl,std::default_delete<ScalerImpl>>, T=fruit::impl::meta::Type<Multiplier *> ] F:\VisualStudio Projects\Libraries\fruit\include\fruit/impl/component_functors.defn.h(667): note: see reference to function template instantiation 'void fruit::impl::meta::RegisterFactoryHelper::apply<MetaExpr,fruit::impl::meta::Type<ReturnType (fruit::Assisted<double>,Multiplier *)>,fruit::impl::meta::Type<fruit::impl::meta::RegisterConstructorAsUniquePtrFactory::apply<MetaExpr,fruit::impl::meta::Type<ReturnType (fruit::Assisted<double>,Multiplier *)>,fruit::impl::meta::Type<ReturnType (double,Multiplier *)>>::Op::()::<lambda_aa5d8e12306951438d3faeeff2cad75d>>,fruit::impl::meta::Type<ReturnType (double)>,fruit::impl::meta::Type<ReturnType (double,Multiplier *)>,fruit::impl::meta::Vector<T>,fruit::impl::meta::Vector<T>,fruit::impl::meta::Vector<fruit::impl::meta::Int<0>,fruit::impl::meta::Int<1>>>::Op::operator ()(fruit::impl::FixedSizeVector<fruit::impl::ComponentStorageEntry,std::allocator<fruit::impl::ComponentStorageEntry>> &)' being compiled with [ MetaExpr=fruit::impl::meta::Comp<fruit::impl::meta::Vector<>,fruit::impl::meta::Vector<fruit::impl::meta::Type<Multiplier>>,fruit::impl::meta::Vector<fruit::impl::meta::Type<Multiplier>>,fruit::impl::meta::Vector<fruit::impl::meta::Pair<fruit::impl::meta::Type<Multiplier>,fruit::impl::meta::Vector<>>>,fruit::impl::meta::Vector<fruit::impl::meta::Pair<fruit::impl::meta::Type<Scaler>,fruit::impl::meta::Type<ScalerImpl>>>,fruit::impl::meta::EmptyList>, ReturnType=std::unique_ptr<ScalerImpl,std::default_delete<ScalerImpl>>, T=fruit::impl::meta::Type<Multiplier *> ] F:\VisualStudio Projects\Libraries\fruit\include\fruit/impl/component_functors.defn.h(667): note: see reference to class template instantiation 'fruit::impl::meta::RegisterFactoryHelper::apply<MetaExpr,fruit::impl::meta::Type<ReturnType (fruit::Assisted<double>,Multiplier *)>,fruit::impl::meta::Type<fruit::impl::meta::RegisterConstructorAsUniquePtrFactory::apply<MetaExpr,fruit::impl::meta::Type<ReturnType (fruit::Assisted<double>,Multiplier *)>,fruit::impl::meta::Type<ReturnType (double,Multiplier *)>>::Op::()::<lambda_aa5d8e12306951438d3faeeff2cad75d>>,fruit::impl::meta::Type<ReturnType (double)>,fruit::impl::meta::Type<ReturnType (double,Multiplier *)>,fruit::impl::meta::Vector<T>,fruit::impl::meta::Vector<T>,fruit::impl::meta::Vector<fruit::impl::meta::Int<0>,fruit::impl::meta::Int<1>>>::Op' being compiled with [ MetaExpr=fruit::impl::meta::Comp<fruit::impl::meta::Vector<>,fruit::impl::meta::Vector<fruit::impl::meta::Type<Multiplier>>,fruit::impl::meta::Vector<fruit::impl::meta::Type<Multiplier>>,fruit::impl::meta::Vector<fruit::impl::meta::Pair<fruit::impl::meta::Type<Multiplier>,fruit::impl::meta::Vector<>>>,fruit::impl::meta::Vector<fruit::impl::meta::Pair<fruit::impl::meta::Type<Scaler>,fruit::impl::meta::Type<ScalerImpl>>>,fruit::impl::meta::EmptyList>, ReturnType=std::unique_ptr<ScalerImpl,std::default_delete<ScalerImpl>>, T=fruit::impl::meta::Type<Multiplier *> ] F:\VisualStudio Projects\Libraries\fruit\include\fruit/impl/component_functors.defn.h(661): note: while compiling class template member function 'void fruit::impl::meta::RegisterConstructorAsUniquePtrFactory::apply<MetaExpr,fruit::impl::meta::Type<ReturnType (fruit::Assisted<double>,Multiplier *)>,fruit::impl::meta::Type<ReturnType (double,Multiplier *)>>::Op::operator ()(fruit::impl::FixedSizeVector<fruit::impl::ComponentStorageEntry,std::allocator<T>> &)' with [ MetaExpr=fruit::impl::meta::Comp<fruit::impl::meta::Vector<>,fruit::impl::meta::Vector<fruit::impl::meta::Type<Multiplier>>,fruit::impl::meta::Vector<fruit::impl::meta::Type<Multiplier>>,fruit::impl::meta::Vector<fruit::impl::meta::Pair<fruit::impl::meta::Type<Multiplier>,fruit::impl::meta::Vector<>>>,fruit::impl::meta::Vector<fruit::impl::meta::Pair<fruit::impl::meta::Type<Scaler>,fruit::impl::meta::Type<ScalerImpl>>>,fruit::impl::meta::EmptyList>, ReturnType=std::unique_ptr<ScalerImpl,std::default_delete<ScalerImpl>>, T=fruit::impl::ComponentStorageEntry ] F:\VisualStudio Projects\Libraries\fruit\include\fruit/impl/component_functors.defn.h(87): note: see reference to function template instantiation 'void fruit::impl::meta::RegisterConstructorAsUniquePtrFactory::apply<MetaExpr,fruit::impl::meta::Type<ReturnType (fruit::Assisted<double>,Multiplier *)>,fruit::impl::meta::Type<ReturnType (double,Multiplier *)>>::Op::operator ()(fruit::impl::FixedSizeVector<fruit::impl::ComponentStorageEntry,std::allocator<T>> &)' being compiled with [ MetaExpr=fruit::impl::meta::Comp<fruit::impl::meta::Vector<>,fruit::impl::meta::Vector<fruit::impl::meta::Type<Multiplier>>,fruit::impl::meta::Vector<fruit::impl::meta::Type<Multiplier>>,fruit::impl::meta::Vector<fruit::impl::meta::Pair<fruit::impl::meta::Type<Multiplier>,fruit::impl::meta::Vector<>>>,fruit::impl::meta::Vector<fruit::impl::meta::Pair<fruit::impl::meta::Type<Scaler>,fruit::impl::meta::Type<ScalerImpl>>>,fruit::impl::meta::EmptyList>, ReturnType=std::unique_ptr<ScalerImpl,std::default_delete<ScalerImpl>>, T=fruit::impl::ComponentStorageEntry ] F:\VisualStudio Projects\Libraries\fruit\include\fruit/impl/component_functors.defn.h(44): note: see reference to class template instantiation 'fruit::impl::meta::RegisterConstructorAsUniquePtrFactory::apply<MetaExpr,fruit::impl::meta::Type<ReturnType (fruit::Assisted<double>,Multiplier *)>,fruit::impl::meta::Type<ReturnType (double,Multiplier *)>>::Op' being compiled with [ MetaExpr=fruit::impl::meta::Comp<fruit::impl::meta::Vector<>,fruit::impl::meta::Vector<fruit::impl::meta::Type<Multiplier>>,fruit::impl::meta::Vector<fruit::impl::meta::Type<Multiplier>>,fruit::impl::meta::Vector<fruit::impl::meta::Pair<fruit::impl::meta::Type<Multiplier>,fruit::impl::meta::Vector<>>>,fruit::impl::meta::Vector<fruit::impl::meta::Pair<fruit::impl::meta::Type<Scaler>,fruit::impl::meta::Type<ScalerImpl>>>,fruit::impl::meta::EmptyList>, ReturnType=std::unique_ptr<ScalerImpl,std::default_delete<ScalerImpl>> ] F:\VisualStudio Projects\Libraries\fruit\include\fruit/impl/meta/eval.h(102): note: see reference to class template instantiation 'fruit::impl::meta::GetResult::apply<fruit::impl::meta::RegisterConstructorAsUniquePtrFactory::apply<MetaExpr,fruit::impl::meta::Type<ReturnType (fruit::Assisted<double>,Multiplier *)>,fruit::impl::meta::Type<ReturnType (double,Multiplier *)>>::Op>' being compiled with [ MetaExpr=fruit::impl::meta::Comp<fruit::impl::meta::Vector<>,fruit::impl::meta::Vector<fruit::impl::meta::Type<Multiplier>>,fruit::impl::meta::Vector<fruit::impl::meta::Type<Multiplier>>,fruit::impl::meta::Vector<fruit::impl::meta::Pair<fruit::impl::meta::Type<Multiplier>,fruit::impl::meta::Vector<>>>,fruit::impl::meta::Vector<fruit::impl::meta::Pair<fruit::impl::meta::Type<Scaler>,fruit::impl::meta::Type<ScalerImpl>>>,fruit::impl::meta::EmptyList>, ReturnType=std::unique_ptr<ScalerImpl,std::default_delete<ScalerImpl>> ] F:\VisualStudio Projects\Libraries\fruit\include\fruit/impl/component_functors.defn.h(85): note: see reference to class template instantiation 'fruit::impl::meta::DoEval<fruit::impl::meta::GetResult (fruit::impl::meta::ComponentFunctor::apply<MetaExpr,fruit::impl::meta::Type<ReturnType (fruit::Assisted<double>,Multiplier *)>>::type (__cdecl *)(fruit::impl::meta::GetResult (__cdecl *)(fruit::impl::meta::ComponentFunctorIdentity (__cdecl *)(Comp))))>' being compiled with [ MetaExpr=fruit::impl::meta::RegisterConstructorAsUniquePtrFactory, ReturnType=std::unique_ptr<ScalerImpl,std::default_delete<ScalerImpl>>, Comp=fruit::impl::meta::Comp<fruit::impl::meta::Vector<>,fruit::impl::meta::Vector<fruit::impl::meta::Type<Multiplier>>,fruit::impl::meta::Vector<fruit::impl::meta::Type<Multiplier>>,fruit::impl::meta::Vector<fruit::impl::meta::Pair<fruit::impl::meta::Type<Multiplier>,fruit::impl::meta::Vector<>>>,fruit::impl::meta::Vector<fruit::impl::meta::Pair<fruit::impl::meta::Type<Scaler>,fruit::impl::meta::Type<ScalerImpl>>>,fruit::impl::meta::EmptyList> ] F:\VisualStudio Projects\Libraries\fruit\include\fruit/impl/component_functors.defn.h(85): note: see reference to alias template instantiation 'fruit::impl::meta::Eval<fruit::impl::meta::GetResult(fruit::impl::meta::ComponentFunctor::apply<MetaExpr,fruit::impl::meta::Type<ReturnType (fruit::Assisted<double>,Multiplier *)>>::type (__cdecl *)(fruit::impl::meta::GetResult (__cdecl *)(fruit::impl::meta::ComponentFunctorIdentity (__cdecl *)(Comp))))>' being compiled with [ MetaExpr=fruit::impl::meta::RegisterConstructorAsUniquePtrFactory, ReturnType=std::unique_ptr<ScalerImpl,std::default_delete<ScalerImpl>>, Comp=fruit::impl::meta::Comp<fruit::impl::meta::Vector<>,fruit::impl::meta::Vector<fruit::impl::meta::Type<Multiplier>>,fruit::impl::meta::Vector<fruit::impl::meta::Type<Multiplier>>,fruit::impl::meta::Vector<fruit::impl::meta::Pair<fruit::impl::meta::Type<Multiplier>,fruit::impl::meta::Vector<>>>,fruit::impl::meta::Vector<fruit::impl::meta::Pair<fruit::impl::meta::Type<Scaler>,fruit::impl::meta::Type<ScalerImpl>>>,fruit::impl::meta::EmptyList> ] F:\VisualStudio Projects\Libraries\fruit\include\fruit/impl/component_functors.defn.h(44): note: see reference to class template instantiation 'fruit::impl::meta::Compose2ComponentFunctors::apply<InitialValue,T0>::type::apply<MetaExpr>::Op' being compiled with [ InitialValue=fruit::impl::meta::ComponentFunctorIdentity, T0=fruit::impl::meta::ComponentFunctor::apply<fruit::impl::meta::RegisterConstructorAsUniquePtrFactory,fruit::impl::meta::Type<std::unique_ptr<ScalerImpl,std::default_delete<ScalerImpl>> (fruit::Assisted<double>,Multiplier *)>>::type, MetaExpr=fruit::impl::meta::Comp<fruit::impl::meta::Vector<>,fruit::impl::meta::Vector<fruit::impl::meta::Type<Multiplier>>,fruit::impl::meta::Vector<fruit::impl::meta::Type<Multiplier>>,fruit::impl::meta::Vector<fruit::impl::meta::Pair<fruit::impl::meta::Type<Multiplier>,fruit::impl::meta::Vector<>>>,fruit::impl::meta::Vector<fruit::impl::meta::Pair<fruit::impl::meta::Type<Scaler>,fruit::impl::meta::Type<ScalerImpl>>>,fruit::impl::meta::EmptyList> ] F:\VisualStudio Projects\Libraries\fruit\include\fruit/impl/meta/eval.h(117): note: see reference to class template instantiation 'fruit::impl::meta::GetResult::apply<fruit::impl::meta::Compose2ComponentFunctors::apply<InitialValue,T0>::type::apply<MetaExpr>::Op>' being compiled with [ InitialValue=fruit::impl::meta::ComponentFunctorIdentity, T0=fruit::impl::meta::ComponentFunctor::apply<fruit::impl::meta::RegisterConstructorAsUniquePtrFactory,fruit::impl::meta::Type<std::unique_ptr<ScalerImpl,std::default_delete<ScalerImpl>> (fruit::Assisted<double>,Multiplier *)>>::type, MetaExpr=fruit::impl::meta::Comp<fruit::impl::meta::Vector<>,fruit::impl::meta::Vector<fruit::impl::meta::Type<Multiplier>>,fruit::impl::meta::Vector<fruit::impl::meta::Type<Multiplier>>,fruit::impl::meta::Vector<fruit::impl::meta::Pair<fruit::impl::meta::Type<Multiplier>,fruit::impl::meta::Vector<>>>,fruit::impl::meta::Vector<fruit::impl::meta::Pair<fruit::impl::meta::Type<Scaler>,fruit::impl::meta::Type<ScalerImpl>>>,fruit::impl::meta::EmptyList> ] F:\VisualStudio Projects\Libraries\fruit\include\fruit/impl/meta/eval.h(117): note: see reference to class template instantiation 'fruit::impl::meta::DoEval<fruit::impl::meta::GetResult (__cdecl *)(fruit::impl::meta::Compose2ComponentFunctors::apply<InitialValue,T0>::type (__cdecl *)(Comp))>' being compiled with [ InitialValue=fruit::impl::meta::ComponentFunctorIdentity, T0=fruit::impl::meta::ComponentFunctor::apply<fruit::impl::meta::RegisterConstructorAsUniquePtrFactory,fruit::impl::meta::Type<std::unique_ptr<ScalerImpl,std::default_delete<ScalerImpl>> (fruit::Assisted<double>,Multiplier *)>>::type, Comp=fruit::impl::meta::Comp<fruit::impl::meta::Vector<>,fruit::impl::meta::Vector<fruit::impl::meta::Type<Multiplier>>,fruit::impl::meta::Vector<fruit::impl::meta::Type<Multiplier>>,fruit::impl::meta::Vector<fruit::impl::meta::Pair<fruit::impl::meta::Type<Multiplier>,fruit::impl::meta::Vector<>>>,fruit::impl::meta::Vector<fruit::impl::meta::Pair<fruit::impl::meta::Type<Scaler>,fruit::impl::meta::Type<ScalerImpl>>>,fruit::impl::meta::EmptyList> ] F:\VisualStudio Projects\Libraries\fruit\include\fruit/impl/meta/eval.h(249): note: see reference to class template instantiation 'fruit::impl::meta::DoEval<MaybeErrorMetaExpr>' being compiled with [ MaybeErrorMetaExpr=fruit::impl::meta::ComponentFunctor::apply<fruit::impl::meta::EnsureProvidedTypes,fruit::impl::meta::Vector<>,fruit::impl::meta::Vector<>,fruit::impl::meta::Vector<fruit::impl::meta::Type<Multiplier>>,fruit::impl::meta::Vector<fruit::impl::meta::Type<Multiplier>>>::type (__cdecl *)(fruit::impl::meta::GetResult (__cdecl *)(fruit::impl::meta::Compose2ComponentFunctors::apply<fruit::impl::meta::ComponentFunctorIdentity,fruit::impl::meta::ComponentFunctor::apply<fruit::impl::meta::RegisterConstructorAsUniquePtrFactory,fruit::impl::meta::Type<std::unique_ptr<ScalerImpl,std::default_delete<ScalerImpl>> (fruit::Assisted<double>,Multiplier *)>>::type>::type (__cdecl *)(fruit::impl::meta::Comp<fruit::impl::meta::Vector<>,fruit::impl::meta::Vector<fruit::impl::meta::Type<Multiplier>>,fruit::impl::meta::Vector<fruit::impl::meta::Type<Multiplier>>,fruit::impl::meta::Vector<fruit::impl::meta::Pair<fruit::impl::meta::Type<Multiplier>,fruit::impl::meta::Vector<>>>,fruit::impl::meta::Vector<fruit::impl::meta::Pair<fruit::impl::meta::Type<Scaler>,fruit::impl::meta::Type<ScalerImpl>>>,fruit::impl::meta::EmptyList>))) ] F:\VisualStudio Projects\Libraries\fruit\include\fruit/impl/meta/eval.h(220): note: see reference to class template instantiation 'fruit::impl::meta::DoEval<ElseMetaExpr>' being compiled with [ ElseMetaExpr=fruit::impl::meta::PropagateError (__cdecl *)(fruit::impl::meta::ComponentFunctor::apply<fruit::impl::meta::EnsureProvidedTypes,fruit::impl::meta::Vector<>,fruit::impl::meta::Vector<>,fruit::impl::meta::Vector<fruit::impl::meta::Type<Multiplier>>,fruit::impl::meta::Vector<fruit::impl::meta::Type<Multiplier>>>::type (__cdecl *)(fruit::impl::meta::GetResult (__cdecl *)(fruit::impl::meta::Compose2ComponentFunctors::apply<fruit::impl::meta::ComponentFunctorIdentity,fruit::impl::meta::ComponentFunctor::apply<fruit::impl::meta::RegisterConstructorAsUniquePtrFactory,fruit::impl::meta::Type<std::unique_ptr<ScalerImpl,std::default_delete<ScalerImpl>> (fruit::Assisted<double>,Multiplier *)>>::type>::type (__cdecl *)(fruit::impl::meta::Comp<fruit::impl::meta::Vector<>,fruit::impl::meta::Vector<fruit::impl::meta::Type<Multiplier>>,fruit::impl::meta::Vector<fruit::impl::meta::Type<Multiplier>>,fruit::impl::meta::Vector<fruit::impl::meta::Pair<fruit::impl::meta::Type<Multiplier>,fruit::impl::meta::Vector<>>>,fruit::impl::meta::Vector<fruit::impl::meta::Pair<fruit::impl::meta::Type<Scaler>,fruit::impl::meta::Type<ScalerImpl>>>,fruit::impl::meta::EmptyList>))),fruit::impl::meta::Compose2ComponentFunctors::apply<fruit::impl::meta::Compose2ComponentFunctors::apply<fruit::impl::meta::ComponentFunctorIdentity,fruit::impl::meta::ComponentFunctor::apply<fruit::impl::meta::RegisterConstructorAsUniquePtrFactory,fruit::impl::meta::Type<std::unique_ptr<ScalerImpl,std::default_delete<ScalerImpl>> (fruit::Assisted<double>,Multiplier *)>>::type>::type,fruit::impl::meta::ComponentFunctor::apply<fruit::impl::meta::EnsureProvidedTypes,fruit::impl::meta::Vector<>,fruit::impl::meta::Vector<>,fruit::impl::meta::Vector<fruit::impl::meta::Type<Multiplier>>,fruit::impl::meta::Vector<fruit::impl::meta::Type<Multiplier>>>::type>::type::apply<fruit::impl::meta::Comp<fruit::impl::meta::Vector<>,fruit::impl::meta::Vector<fruit::impl::meta::Type<Multiplier>>,fruit::impl::meta::Vector<fruit::impl::meta::Type<Multiplier>>,fruit::impl::meta::Vector<fruit::impl::meta::Pair<fruit::impl::meta::Type<Multiplier>,fruit::impl::meta::Vector<>>>,fruit::impl::meta::Vector<fruit::impl::meta::Pair<fruit::impl::meta::Type<Scaler>,fruit::impl::meta::Type<ScalerImpl>>>,fruit::impl::meta::EmptyList>>::Op) ] F:\VisualStudio Projects\Libraries\fruit\include\fruit/impl/meta/eval.h(236): note: see reference to class template instantiation 'fruit::impl::meta::EvalPropagateError<fruit::impl::meta::Compose2ComponentFunctors::apply<InitialValue,T0>::type::apply<MetaExpr>::Op,ElseMetaExpr>' being compiled with [ InitialValue=fruit::impl::meta::ComponentFunctorIdentity, T0=fruit::impl::meta::ComponentFunctor::apply<fruit::impl::meta::RegisterConstructorAsUniquePtrFactory,fruit::impl::meta::Type<std::unique_ptr<ScalerImpl,std::default_delete<ScalerImpl>> (fruit::Assisted<double>,Multiplier *)>>::type, MetaExpr=fruit::impl::meta::Comp<fruit::impl::meta::Vector<>,fruit::impl::meta::Vector<fruit::impl::meta::Type<Multiplier>>,fruit::impl::meta::Vector<fruit::impl::meta::Type<Multiplier>>,fruit::impl::meta::Vector<fruit::impl::meta::Pair<fruit::impl::meta::Type<Multiplier>,fruit::impl::meta::Vector<>>>,fruit::impl::meta::Vector<fruit::impl::meta::Pair<fruit::impl::meta::Type<Scaler>,fruit::impl::meta::Type<ScalerImpl>>>,fruit::impl::meta::EmptyList>, ElseMetaExpr=fruit::impl::meta::PropagateError (__cdecl *)(fruit::impl::meta::ComponentFunctor::apply<fruit::impl::meta::EnsureProvidedTypes,fruit::impl::meta::Vector<>,fruit::impl::meta::Vector<>,fruit::impl::meta::Vector<fruit::impl::meta::Type<Multiplier>>,fruit::impl::meta::Vector<fruit::impl::meta::Type<Multiplier>>>::type (__cdecl *)(fruit::impl::meta::GetResult (__cdecl *)(fruit::impl::meta::Compose2ComponentFunctors::apply<fruit::impl::meta::ComponentFunctorIdentity,fruit::impl::meta::ComponentFunctor::apply<fruit::impl::meta::RegisterConstructorAsUniquePtrFactory,fruit::impl::meta::Type<std::unique_ptr<ScalerImpl,std::default_delete<ScalerImpl>> (fruit::Assisted<double>,Multiplier *)>>::type>::type (__cdecl *)(fruit::impl::meta::Comp<fruit::impl::meta::Vector<>,fruit::impl::meta::Vector<fruit::impl::meta::Type<Multiplier>>,fruit::impl::meta::Vector<fruit::impl::meta::Type<Multiplier>>,fruit::impl::meta::Vector<fruit::impl::meta::Pair<fruit::impl::meta::Type<Multiplier>,fruit::impl::meta::Vector<>>>,fruit::impl::meta::Vector<fruit::impl::meta::Pair<fruit::impl::meta::Type<Scaler>,fruit::impl::meta::Type<ScalerImpl>>>,fruit::impl::meta::EmptyList>))),fruit::impl::meta::Compose2ComponentFunctors::apply<fruit::impl::meta::Compose2ComponentFunctors::apply<fruit::impl::meta::ComponentFunctorIdentity,fruit::impl::meta::ComponentFunctor::apply<fruit::impl::meta::RegisterConstructorAsUniquePtrFactory,fruit::impl::meta::Type<std::unique_ptr<ScalerImpl,std::default_delete<ScalerImpl>> (fruit::Assisted<double>,Multiplier *)>>::type>::type,fruit::impl::meta::ComponentFunctor::apply<fruit::impl::meta::EnsureProvidedTypes,fruit::impl::meta::Vector<>,fruit::impl::meta::Vector<>,fruit::impl::meta::Vector<fruit::impl::meta::Type<Multiplier>>,fruit::impl::meta::Vector<fruit::impl::meta::Type<Multiplier>>>::type>::type::apply<fruit::impl::meta::Comp<fruit::impl::meta::Vector<>,fruit::impl::meta::Vector<fruit::impl::meta::Type<Multiplier>>,fruit::impl::meta::Vector<fruit::impl::meta::Type<Multiplier>>,fruit::impl::meta::Vector<fruit::impl::meta::Pair<fruit::impl::meta::Type<Multiplier>,fruit::impl::meta::Vector<>>>,fruit::impl::meta::Vector<fruit::impl::meta::Pair<fruit::impl::meta::Type<Scaler>,fruit::impl::meta::Type<ScalerImpl>>>,fruit::impl::meta::EmptyList>>::Op) ] F:\VisualStudio Projects\Libraries\fruit\include\fruit/impl/meta/eval.h(117): note: see reference to class template instantiation 'fruit::impl::meta::DoEval<fruit::impl::meta::PropagateError (fruit::impl::meta::Compose2ComponentFunctors::apply<InitialValue,T0>::type (__cdecl *)(Comp),fruit::impl::meta::PropagateError (__cdecl *)(fruit::impl::meta::ComponentFunctor::apply<MetaExpr,fruit::impl::meta::Vector<>,fruit::impl::meta::Vector<>,fruit::impl::meta::Vector<fruit::impl::meta::Type<Multiplier>>,fruit::impl::meta::Vector<fruit::impl::meta::Type<Multiplier>>>::type (__cdecl *)(fruit::impl::meta::GetResult (__cdecl *)(fruit::impl::meta::Compose2ComponentFunctors::apply<InitialValue,T0>::type (__cdecl *)(Comp))),fruit::impl::meta::Compose2ComponentFunctors::apply<fruit::impl::meta::Compose2ComponentFunctors::apply<InitialValue,T0>::type,T1>::type::apply<Comp>::Op))>' being compiled with [ InitialValue=fruit::impl::meta::ComponentFunctorIdentity, T0=fruit::impl::meta::ComponentFunctor::apply<fruit::impl::meta::RegisterConstructorAsUniquePtrFactory,fruit::impl::meta::Type<std::unique_ptr<ScalerImpl,std::default_delete<ScalerImpl>> (fruit::Assisted<double>,Multiplier *)>>::type, Comp=fruit::impl::meta::Comp<fruit::impl::meta::Vector<>,fruit::impl::meta::Vector<fruit::impl::meta::Type<Multiplier>>,fruit::impl::meta::Vector<fruit::impl::meta::Type<Multiplier>>,fruit::impl::meta::Vector<fruit::impl::meta::Pair<fruit::impl::meta::Type<Multiplier>,fruit::impl::meta::Vector<>>>,fruit::impl::meta::Vector<fruit::impl::meta::Pair<fruit::impl::meta::Type<Scaler>,fruit::impl::meta::Type<ScalerImpl>>>,fruit::impl::meta::EmptyList>, MetaExpr=fruit::impl::meta::EnsureProvidedTypes, T1=fruit::impl::meta::ComponentFunctor::apply<fruit::impl::meta::EnsureProvidedTypes,fruit::impl::meta::Vector<>,fruit::impl::meta::Vector<>,fruit::impl::meta::Vector<fruit::impl::meta::Type<Multiplier>>,fruit::impl::meta::Vector<fruit::impl::meta::Type<Multiplier>>>::type ] F:\VisualStudio Projects\Libraries\fruit\include\fruit/impl/meta/eval.h(191): note: see reference to class template instantiation 'fruit::impl::meta::DoEval<ElseMetaExpr>' being compiled with [ ElseMetaExpr=fruit::impl::meta::Call (__cdecl *)(fruit::impl::meta::ComposeFunctors (__cdecl *)(fruit::impl::meta::ComponentFunctor (__cdecl *)(fruit::impl::meta::RegisterConstructorAsUniquePtrFactory,fruit::impl::meta::ConsSignatureWithVector (__cdecl *)(fruit::impl::meta::SignatureType (__cdecl *)(fruit::impl::meta::Type<std::unique_ptr<ScalerImpl,std::default_delete<ScalerImpl>> (double)>),fruit::impl::meta::SignatureArgs (__cdecl *)(fruit::impl::meta::GetInjectAnnotation (__cdecl *)(fruit::impl::meta::CopyAnnotation (__cdecl *)(fruit::impl::meta::SignatureType (__cdecl *)(fruit::impl::meta::Type<std::unique_ptr<ScalerImpl,std::default_delete<ScalerImpl>> (double)>),fruit::impl::meta::RemoveUniquePtr (__cdecl *)(fruit::impl::meta::RemoveAnnotations (__cdecl *)(fruit::impl::meta::SignatureType (__cdecl *)(fruit::impl::meta::Type<std::unique_ptr<ScalerImpl,std::default_delete<ScalerImpl>> (double)>)))))))),fruit::impl::meta::ComponentFunctor (__cdecl *)(fruit::impl::meta::EnsureProvidedTypes,fruit::impl::meta::Vector<>,fruit::impl::meta::Vector<>,fruit::impl::meta::NormalizeTypeVector (__cdecl *)(fruit::impl::meta::RemoveAssisted (__cdecl *)(fruit::impl::meta::SignatureArgs (__cdecl *)(fruit::impl::meta::ConsSignatureWithVector (__cdecl *)(fruit::impl::meta::SignatureType (__cdecl *)(fruit::impl::meta::Type<std::unique_ptr<ScalerImpl,std::default_delete<ScalerImpl>> (double)>),fruit::impl::meta::SignatureArgs (__cdecl *)(fruit::impl::meta::GetInjectAnnotation (__cdecl *)(fruit::impl::meta::CopyAnnotation (__cdecl *)(fruit::impl::meta::SignatureType (__cdecl *)(fruit::impl::meta::Type<std::unique_ptr<ScalerImpl,std::default_delete<ScalerImpl>> (double)>),fruit::impl::meta::RemoveUniquePtr (__cdecl *)(fruit::impl::meta::RemoveAnnotations (__cdecl *)(fruit::impl::meta::SignatureType (__cdecl *)(fruit::impl::meta::Type<std::unique_ptr<ScalerImpl,std::default_delete<ScalerImpl>> (double)>)))))))))),fruit::impl::meta::NormalizedNonConstTypesIn (__cdecl *)(fruit::impl::meta::RemoveAssisted (__cdecl *)(fruit::impl::meta::SignatureArgs (__cdecl *)(fruit::impl::meta::ConsSignatureWithVector (__cdecl *)(fruit::impl::meta::SignatureType (__cdecl *)(fruit::impl::meta::Type<std::unique_ptr<ScalerImpl,std::default_delete<ScalerImpl>> (double)>),fruit::impl::meta::SignatureArgs (__cdecl *)(fruit::impl::meta::GetInjectAnnotation (__cdecl *)(fruit::impl::meta::CopyAnnotation (__cdecl *)(fruit::impl::meta::SignatureType (__cdecl *)(fruit::impl::meta::Type<std::unique_ptr<ScalerImpl,std::default_delete<ScalerImpl>> (double)>),fruit::impl::meta::RemoveUniquePtr (__cdecl *)(fruit::impl::meta::RemoveAnnotations (__cdecl *)(fruit::impl::meta::SignatureType (__cdecl *)(fruit::impl::meta::Type<std::unique_ptr<ScalerImpl,std::default_delete<ScalerImpl>> (double)>)))))))))))),fruit::impl::meta::Comp<fruit::impl::meta::Vector<>,fruit::impl::meta::Vector<fruit::impl::meta::Type<Multiplier>>,fruit::impl::meta::Vector<fruit::impl::meta::Type<Multiplier>>,fruit::impl::meta::Vector<fruit::impl::meta::Pair<fruit::impl::meta::Type<Multiplier>,fruit::impl::meta::Vector<>>>,fruit::impl::meta::Vector<fruit::impl::meta::Pair<fruit::impl::meta::Type<Scaler>,fruit::impl::meta::Type<ScalerImpl>>>,fruit::impl::meta::EmptyList>) ] F:\VisualStudio Projects\Libraries\fruit\include\fruit/impl/meta/eval.h(202): note: see reference to class template instantiation 'fruit::impl::meta::EvalIf<fruit::impl::meta::Bool<false>,ThenMetaExpr,ElseMetaExpr>' being compiled with [ ThenMetaExpr=fruit::impl::meta::ConstructError (__cdecl *)(fruit::impl::FunctorSignatureDoesNotMatchErrorTag,fruit::impl::meta::Type<std::unique_ptr<ScalerImpl,std::default_delete<ScalerImpl>> (double)>,fruit::impl::meta::ConsSignatureWithVector (__cdecl *)(fruit::impl::meta::SignatureType (__cdecl *)(fruit::impl::meta::ConsSignatureWithVector (__cdecl *)(fruit::impl::meta::SignatureType (__cdecl *)(fruit::impl::meta::Type<std::unique_ptr<ScalerImpl,std::default_delete<ScalerImpl>> (double)>),fruit::impl::meta::SignatureArgs (__cdecl *)(fruit::impl::meta::GetInjectAnnotation (__cdecl *)(fruit::impl::meta::CopyAnnotation (__cdecl *)(fruit::impl::meta::SignatureType (__cdecl *)(fruit::impl::meta::Type<std::unique_ptr<ScalerImpl,std::default_delete<ScalerImpl>> (double)>),fruit::impl::meta::RemoveUniquePtr (__cdecl *)(fruit::impl::meta::RemoveAnnotations (__cdecl *)(fruit::impl::meta::SignatureType (__cdecl *)(fruit::impl::meta::Type<std::unique_ptr<ScalerImpl,std::default_delete<ScalerImpl>> (double)>)))))))),fruit::impl::meta::RemoveNonAssisted (__cdecl *)(fruit::impl::meta::SignatureArgs (__cdecl *)(fruit::impl::meta::ConsSignatureWithVector (__cdecl *)(fruit::impl::meta::SignatureType (__cdecl *)(fruit::impl::meta::Type<std::unique_ptr<ScalerImpl,std::default_delete<ScalerImpl>> (double)>),fruit::impl::meta::SignatureArgs (__cdecl *)(fruit::impl::meta::GetInjectAnnotation (__cdecl *)(fruit::impl::meta::CopyAnnotation (__cdecl *)(fruit::impl::meta::SignatureType (__cdecl *)(fruit::impl::meta::Type<std::unique_ptr<ScalerImpl,std::default_delete<ScalerImpl>> (double)>),fruit::impl::meta::RemoveUniquePtr (__cdecl *)(fruit::impl::meta::RemoveAnnotations (__cdecl *)(fruit::impl::meta::SignatureType (__cdecl *)(fruit::impl::meta::Type<std::unique_ptr<ScalerImpl,std::default_delete<ScalerImpl>> (double)>))))))))))), ElseMetaExpr=fruit::impl::meta::Call (__cdecl *)(fruit::impl::meta::ComposeFunctors (__cdecl *)(fruit::impl::meta::ComponentFunctor (__cdecl *)(fruit::impl::meta::RegisterConstructorAsUniquePtrFactory,fruit::impl::meta::ConsSignatureWithVector (__cdecl *)(fruit::impl::meta::SignatureType (__cdecl *)(fruit::impl::meta::Type<std::unique_ptr<ScalerImpl,std::default_delete<ScalerImpl>> (double)>),fruit::impl::meta::SignatureArgs (__cdecl *)(fruit::impl::meta::GetInjectAnnotation (__cdecl *)(fruit::impl::meta::CopyAnnotation (__cdecl *)(fruit::impl::meta::SignatureType (__cdecl *)(fruit::impl::meta::Type<std::unique_ptr<ScalerImpl,std::default_delete<ScalerImpl>> (double)>),fruit::impl::meta::RemoveUniquePtr (__cdecl *)(fruit::impl::meta::RemoveAnnotations (__cdecl *)(fruit::impl::meta::SignatureType (__cdecl *)(fruit::impl::meta::Type<std::unique_ptr<ScalerImpl,std::default_delete<ScalerImpl>> (double)>)))))))),fruit::impl::meta::ComponentFunctor (__cdecl *)(fruit::impl::meta::EnsureProvidedTypes,fruit::impl::meta::Vector<>,fruit::impl::meta::Vector<>,fruit::impl::meta::NormalizeTypeVector (__cdecl *)(fruit::impl::meta::RemoveAssisted (__cdecl *)(fruit::impl::meta::SignatureArgs (__cdecl *)(fruit::impl::meta::ConsSignatureWithVector (__cdecl *)(fruit::impl::meta::SignatureType (__cdecl *)(fruit::impl::meta::Type<std::unique_ptr<ScalerImpl,std::default_delete<ScalerImpl>> (double)>),fruit::impl::meta::SignatureArgs (__cdecl *)(fruit::impl::meta::GetInjectAnnotation (__cdecl *)(fruit::impl::meta::CopyAnnotation (__cdecl *)(fruit::impl::meta::SignatureType (__cdecl *)(fruit::impl::meta::Type<std::unique_ptr<ScalerImpl,std::default_delete<ScalerImpl>> (double)>),fruit::impl::meta::RemoveUniquePtr (__cdecl *)(fruit::impl::meta::RemoveAnnotations (__cdecl *)(fruit::impl::meta::SignatureType (__cdecl *)(fruit::impl::meta::Type<std::unique_ptr<ScalerImpl,std::default_delete<ScalerImpl>> (double)>)))))))))),fruit::impl::meta::NormalizedNonConstTypesIn (__cdecl *)(fruit::impl::meta::RemoveAssisted (__cdecl *)(fruit::impl::meta::SignatureArgs (__cdecl *)(fruit::impl::meta::ConsSignatureWithVector (__cdecl *)(fruit::impl::meta::SignatureType (__cdecl *)(fruit::impl::meta::Type<std::unique_ptr<ScalerImpl,std::default_delete<ScalerImpl>> (double)>),fruit::impl::meta::SignatureArgs (__cdecl *)(fruit::impl::meta::GetInjectAnnotation (__cdecl *)(fruit::impl::meta::CopyAnnotation (__cdecl *)(fruit::impl::meta::SignatureType (__cdecl *)(fruit::impl::meta::Type<std::unique_ptr<ScalerImpl,std::default_delete<ScalerImpl>> (double)>),fruit::impl::meta::RemoveUniquePtr (__cdecl *)(fruit::impl::meta::RemoveAnnotations (__cdecl *)(fruit::impl::meta::SignatureType (__cdecl *)(fruit::impl::meta::Type<std::unique_ptr<ScalerImpl,std::default_delete<ScalerImpl>> (double)>)))))))))))),fruit::impl::meta::Comp<fruit::impl::meta::Vector<>,fruit::impl::meta::Vector<fruit::impl::meta::Type<Multiplier>>,fruit::impl::meta::Vector<fruit::impl::meta::Type<Multiplier>>,fruit::impl::meta::Vector<fruit::impl::meta::Pair<fruit::impl::meta::Type<Multiplier>,fruit::impl::meta::Vector<>>>,fruit::impl::meta::Vector<fruit::impl::meta::Pair<fruit::impl::meta::Type<Scaler>,fruit::impl::meta::Type<ScalerImpl>>>,fruit::impl::meta::EmptyList>) ] F:\VisualStudio Projects\Libraries\fruit\include\fruit/impl/meta/eval.h(102): note: see reference to class template instantiation 'fruit::impl::meta::DoEval<fruit::impl::meta::If (fruit::impl::meta::Not (__cdecl *)(fruit::impl::meta::IsSame (__cdecl *)(AnnotatedSignature,fruit::impl::meta::ConsSignatureWithVector (__cdecl *)(fruit::impl::meta::SignatureType (__cdecl *)(fruit::impl::meta::ConsSignatureWithVector (__cdecl *)(fruit::impl::meta::SignatureType (__cdecl *)(AnnotatedSignature),fruit::impl::meta::SignatureArgs (__cdecl *)(fruit::impl::meta::GetInjectAnnotation (__cdecl *)(fruit::impl::meta::CopyAnnotation (__cdecl *)(fruit::impl::meta::SignatureType (__cdecl *)(AnnotatedSignature),fruit::impl::meta::RemoveUniquePtr (__cdecl *)(fruit::impl::meta::RemoveAnnotations (__cdecl *)(fruit::impl::meta::SignatureType (__cdecl *)(AnnotatedSignature)))))))),fruit::impl::meta::RemoveNonAssisted (__cdecl *)(fruit::impl::meta::SignatureArgs (__cdecl *)(fruit::impl::meta::ConsSignatureWithVector (__cdecl *)(fruit::impl::meta::SignatureType (__cdecl *)(AnnotatedSignature),fruit::impl::meta::SignatureArgs (__cdecl *)(fruit::impl::meta::GetInjectAnnotation (__cdecl *)(fruit::impl::meta::CopyAnnotation (__cdecl *)(fruit::impl::meta::SignatureType (__cdecl *)(AnnotatedSignature),fruit::impl::meta::RemoveUniquePtr (__cdecl *)(fruit::impl::meta::RemoveAnnotations (__cdecl *)(fruit::impl::meta::SignatureType (__cdecl *)(AnnotatedSignature)))))))))))),fruit::impl::meta::ConstructError (__cdecl *)(fruit::impl::FunctorSignatureDoesNotMatchErrorTag,AnnotatedSignature,fruit::impl::meta::ConsSignatureWithVector (__cdecl *)(fruit::impl::meta::SignatureType (__cdecl *)(fruit::impl::meta::ConsSignatureWithVector (__cdecl *)(fruit::impl::meta::SignatureType (__cdecl *)(AnnotatedSignature),fruit::impl::meta::SignatureArgs (__cdecl *)(fruit::impl::meta::GetInjectAnnotation (__cdecl *)(fruit::impl::meta::CopyAnnotation (__cdecl *)(fruit::impl::meta::SignatureType (__cdecl *)(AnnotatedSignature),fruit::impl::meta::RemoveUniquePtr (__cdecl *)(fruit::impl::meta::RemoveAnnotations (__cdecl *)(fruit::impl::meta::SignatureType (__cdecl *)(AnnotatedSignature)))))))),fruit::impl::meta::RemoveNonAssisted (__cdecl *)(fruit::impl::meta::SignatureArgs (__cdecl *)(fruit::impl::meta::ConsSignatureWithVector (__cdecl *)(fruit::impl::meta::SignatureType (__cdecl *)(AnnotatedSignature),fruit::impl::meta::SignatureArgs (__cdecl *)(fruit::impl::meta::GetInjectAnnotation (__cdecl *)(fruit::impl::meta::CopyAnnotation (__cdecl *)(fruit::impl::meta::SignatureType (__cdecl *)(AnnotatedSignature),fruit::impl::meta::RemoveUniquePtr (__cdecl *)(fruit::impl::meta::RemoveAnnotations (__cdecl *)(fruit::impl::meta::SignatureType (__cdecl *)(AnnotatedSignature))))))))))),fruit::impl::meta::Call (__cdecl *)(fruit::impl::meta::ComposeFunctors (__cdecl *)(fruit::impl::meta::ComponentFunctor (__cdecl *)(fruit::impl::meta::RegisterConstructorAsUniquePtrFactory,fruit::impl::meta::ConsSignatureWithVector (__cdecl *)(fruit::impl::meta::SignatureType (__cdecl *)(AnnotatedSignature),fruit::impl::meta::SignatureArgs (__cdecl *)(fruit::impl::meta::GetInjectAnnotation (__cdecl *)(fruit::impl::meta::CopyAnnotation (__cdecl *)(fruit::impl::meta::SignatureType (__cdecl *)(AnnotatedSignature),fruit::impl::meta::RemoveUniquePtr (__cdecl *)(fruit::impl::meta::RemoveAnnotations (__cdecl *)(fruit::impl::meta::SignatureType (__cdecl *)(AnnotatedSignature)))))))),fruit::impl::meta::ComponentFunctor (__cdecl *)(fruit::impl::meta::EnsureProvidedTypes,TargetRequirements,TargetNonConstRequirements,fruit::impl::meta::NormalizeTypeVector (__cdecl *)(fruit::impl::meta::RemoveAssisted (__cdecl *)(fruit::impl::meta::SignatureArgs (__cdecl *)(fruit::impl::meta::ConsSignatureWithVector (__cdecl *)(fruit::impl::meta::SignatureType (__cdecl *)(AnnotatedSignature),fruit::impl::meta::SignatureArgs (__cdecl *)(fruit::impl::meta::GetInjectAnnotation (__cdecl *)(fruit::impl::meta::CopyAnnotation (__cdecl *)(fruit::impl::meta::SignatureType (__cdecl *)(AnnotatedSignature),fruit::impl::meta::RemoveUniquePtr (__cdecl *)(fruit::impl::meta::RemoveAnnotations (__cdecl *)(fruit::impl::meta::SignatureType (__cdecl *)(AnnotatedSignature)))))))))),fruit::impl::meta::NormalizedNonConstTypesIn (__cdecl *)(fruit::impl::meta::RemoveAssisted (__cdecl *)(fruit::impl::meta::SignatureArgs (__cdecl *)(fruit::impl::meta::ConsSignatureWithVector (__cdecl *)(fruit::impl::meta::SignatureType (__cdecl *)(AnnotatedSignature),fruit::impl::meta::SignatureArgs (__cdecl *)(fruit::impl::meta::GetInjectAnnotation (__cdecl *)(fruit::impl::meta::CopyAnnotation (__cdecl *)(fruit::impl::meta::SignatureType (__cdecl *)(AnnotatedSignature),fruit::impl::meta::RemoveUniquePtr (__cdecl *)(fruit::impl::meta::RemoveAnnotations (__cdecl *)(fruit::impl::meta::SignatureType (__cdecl *)(AnnotatedSignature)))))))))))),Comp))>' being compiled with [ AnnotatedSignature=fruit::impl::meta::Type<std::unique_ptr<ScalerImpl,std::default_delete<ScalerImpl>> (double)>, TargetRequirements=fruit::impl::meta::Vector<>, TargetNonConstRequirements=fruit::impl::meta::Vector<>, Comp=fruit::impl::meta::Comp<fruit::impl::meta::Vector<>,fruit::impl::meta::Vector<fruit::impl::meta::Type<Multiplier>>,fruit::impl::meta::Vector<fruit::impl::meta::Type<Multiplier>>,fruit::impl::meta::Vector<fruit::impl::meta::Pair<fruit::impl::meta::Type<Multiplier>,fruit::impl::meta::Vector<>>>,fruit::impl::meta::Vector<fruit::impl::meta::Pair<fruit::impl::meta::Type<Scaler>,fruit::impl::meta::Type<ScalerImpl>>>,fruit::impl::meta::EmptyList> ] F:\VisualStudio Projects\Libraries\fruit\include\fruit/impl/meta/eval.h(117): note: see reference to class template instantiation 'fruit::impl::meta::DoEval<fruit::impl::meta::AutoRegisterFactoryHelper (Comp,TargetRequirements,TargetNonConstRequirements,fruit::impl::meta::FindInMap (__cdecl *)(fruit::impl::meta::Vector<T>,fruit::impl::meta::Type<C>),fruit::impl::meta::HasInjectAnnotation (__cdecl *)(fruit::impl::meta::Type<C>),fruit::impl::meta::IsAbstract (__cdecl *)(fruit::impl::meta::Type<C>),fruit::impl::meta::Type<std::unique_ptr<ScalerImpl,std::default_delete<ScalerImpl>>>,fruit::impl::meta::Type<ReturnType (double)>,fruit::impl::meta::RemoveAnnotations (__cdecl *)(fruit::impl::meta::Type<double>))>' being compiled with [ Comp=fruit::impl::meta::Comp<fruit::impl::meta::Vector<>,fruit::impl::meta::Vector<fruit::impl::meta::Type<Multiplier>>,fruit::impl::meta::Vector<fruit::impl::meta::Type<Multiplier>>,fruit::impl::meta::Vector<fruit::impl::meta::Pair<fruit::impl::meta::Type<Multiplier>,fruit::impl::meta::Vector<>>>,fruit::impl::meta::Vector<fruit::impl::meta::Pair<fruit::impl::meta::Type<Scaler>,fruit::impl::meta::Type<ScalerImpl>>>,fruit::impl::meta::EmptyList>, TargetRequirements=fruit::impl::meta::Vector<>, TargetNonConstRequirements=fruit::impl::meta::Vector<>, T=fruit::impl::meta::Pair<fruit::impl::meta::Type<Scaler>,fruit::impl::meta::Type<ScalerImpl>>, C=ScalerImpl, ReturnType=std::unique_ptr<ScalerImpl,std::default_delete<ScalerImpl>> ] F:\VisualStudio Projects\Libraries\fruit\include\fruit/impl/meta/eval.h(191): note: see reference to class template instantiation 'fruit::impl::meta::DoEval<ElseMetaExpr>' being compiled with [ ElseMetaExpr=fruit::impl::meta::AutoRegister (__cdecl *)(fruit::impl::meta::Comp<fruit::impl::meta::Vector<>,fruit::impl::meta::Vector<fruit::impl::meta::Type<Multiplier>>,fruit::impl::meta::Vector<fruit::impl::meta::Type<Multiplier>>,fruit::impl::meta::Vector<fruit::impl::meta::Pair<fruit::impl::meta::Type<Multiplier>,fruit::impl::meta::Vector<>>>,fruit::impl::meta::Vector<fruit::impl::meta::Pair<fruit::impl::meta::Type<Scaler>,fruit::impl::meta::Type<ScalerImpl>>>,fruit::impl::meta::EmptyList>,fruit::impl::meta::Vector<>,fruit::impl::meta::Vector<>,fruit::impl::meta::NormalizeType (__cdecl *)(fruit::impl::meta::Type<std::function<std::unique_ptr<ScalerImpl,std::default_delete<ScalerImpl>> (double)>>)) ] F:\VisualStudio Projects\Libraries\fruit\include\fruit/impl/meta/eval.h(215): note: see reference to class template instantiation 'fruit::impl::meta::EvalIf<fruit::impl::meta::Bool<false>,ThenMetaExpr,ElseMetaExpr>' being compiled with [ ThenMetaExpr=fruit::impl::meta::Catch (__cdecl *)(fruit::impl::meta::Catch (__cdecl *)(fruit::impl::meta::AutoRegister (__cdecl *)(fruit::impl::meta::Comp<fruit::impl::meta::Vector<>,fruit::impl::meta::Vector<fruit::impl::meta::Type<Multiplier>>,fruit::impl::meta::Vector<fruit::impl::meta::Type<Multiplier>>,fruit::impl::meta::Vector<fruit::impl::meta::Pair<fruit::impl::meta::Type<Multiplier>,fruit::impl::meta::Vector<>>>,fruit::impl::meta::Vector<fruit::impl::meta::Pair<fruit::impl::meta::Type<Scaler>,fruit::impl::meta::Type<ScalerImpl>>>,fruit::impl::meta::EmptyList>,fruit::impl::meta::Vector<>,fruit::impl::meta::Vector<>,fruit::impl::meta::NormalizeType (__cdecl *)(fruit::impl::meta::Type<std::function<std::unique_ptr<ScalerImpl,std::default_delete<ScalerImpl>> (double)>>)),fruit::impl::NoBindingFoundErrorTag,fruit::impl::meta::EnsureProvidedTypeErrorHandler<fruit::impl::meta::Type<std::function<std::unique_ptr<ScalerImpl,std::default_delete<ScalerImpl>> (double)>>>),fruit::impl::NoBindingFoundForAbstractClassErrorTag,fruit::impl::meta::EnsureProvidedTypeErrorHandler<fruit::impl::meta::Type<std::function<std::unique_ptr<ScalerImpl,std::default_delete<ScalerImpl>> (double)>>>), ElseMetaExpr=fruit::impl::meta::AutoRegister (__cdecl *)(fruit::impl::meta::Comp<fruit::impl::meta::Vector<>,fruit::impl::meta::Vector<fruit::impl::meta::Type<Multiplier>>,fruit::impl::meta::Vector<fruit::impl::meta::Type<Multiplier>>,fruit::impl::meta::Vector<fruit::impl::meta::Pair<fruit::impl::meta::Type<Multiplier>,fruit::impl::meta::Vector<>>>,fruit::impl::meta::Vector<fruit::impl::meta::Pair<fruit::impl::meta::Type<Scaler>,fruit::impl::meta::Type<ScalerImpl>>>,fruit::impl::meta::EmptyList>,fruit::impl::meta::Vector<>,fruit::impl::meta::Vector<>,fruit::impl::meta::NormalizeType (__cdecl *)(fruit::impl::meta::Type<std::function<std::unique_ptr<ScalerImpl,std::default_delete<ScalerImpl>> (double)>>)) ] F:\VisualStudio Projects\Libraries\fruit\include\fruit/impl/meta/eval.h(191): note: see reference to class template instantiation 'fruit::impl::meta::DoEval<ElseMetaExpr>' being compiled with [ ElseMetaExpr=fruit::impl::meta::If (__cdecl *)(fruit::impl::meta::And (__cdecl *)(fruit::impl::meta::Bool<false>,fruit::impl::meta::IsInSet (__cdecl *)(fruit::impl::meta::NormalizeType (__cdecl *)(fruit::impl::meta::Type<std::function<std::unique_ptr<ScalerImpl,std::default_delete<ScalerImpl>> (double)>>),fruit::impl::meta::Vector<>)),fruit::impl::meta::Catch (__cdecl *)(fruit::impl::meta::Catch (__cdecl *)(fruit::impl::meta::AutoRegister (__cdecl *)(fruit::impl::meta::Comp<fruit::impl::meta::Vector<>,fruit::impl::meta::Vector<fruit::impl::meta::Type<Multiplier>>,fruit::impl::meta::Vector<fruit::impl::meta::Type<Multiplier>>,fruit::impl::meta::Vector<fruit::impl::meta::Pair<fruit::impl::meta::Type<Multiplier>,fruit::impl::meta::Vector<>>>,fruit::impl::meta::Vector<fruit::impl::meta::Pair<fruit::impl::meta::Type<Scaler>,fruit::impl::meta::Type<ScalerImpl>>>,fruit::impl::meta::EmptyList>,fruit::impl::meta::Vector<>,fruit::impl::meta::Vector<>,fruit::impl::meta::NormalizeType (__cdecl *)(fruit::impl::meta::Type<std::function<std::unique_ptr<ScalerImpl,std::default_delete<ScalerImpl>> (double)>>)),fruit::impl::NoBindingFoundErrorTag,fruit::impl::meta::EnsureProvidedTypeErrorHandler<fruit::impl::meta::Type<std::function<std::unique_ptr<ScalerImpl,std::default_delete<ScalerImpl>> (double)>>>),fruit::impl::NoBindingFoundForAbstractClassErrorTag,fruit::impl::meta::EnsureProvidedTypeErrorHandler<fruit::impl::meta::Type<std::function<std::unique_ptr<ScalerImpl,std::default_delete<ScalerImpl>> (double)>>>),fruit::impl::meta::AutoRegister (__cdecl *)(fruit::impl::meta::Comp<fruit::impl::meta::Vector<>,fruit::impl::meta::Vector<fruit::impl::meta::Type<Multiplier>>,fruit::impl::meta::Vector<fruit::impl::meta::Type<Multiplier>>,fruit::impl::meta::Vector<fruit::impl::meta::Pair<fruit::impl::meta::Type<Multiplier>,fruit::impl::meta::Vector<>>>,fruit::impl::meta::Vector<fruit::impl::meta::Pair<fruit::impl::meta::Type<Scaler>,fruit::impl::meta::Type<ScalerImpl>>>,fruit::impl::meta::EmptyList>,fruit::impl::meta::Vector<>,fruit::impl::meta::Vector<>,fruit::impl::meta::NormalizeType (__cdecl *)(fruit::impl::meta::Type<std::function<std::unique_ptr<ScalerImpl,std::default_delete<ScalerImpl>> (double)>>))) ] F:\VisualStudio Projects\Libraries\fruit\include\fruit/impl/meta/eval.h(215): note: see reference to class template instantiation 'fruit::impl::meta::EvalIf<fruit::impl::meta::Bool<false>,ThenMetaExpr,ElseMetaExpr>' being compiled with [ ThenMetaExpr=fruit::impl::meta::Call (__cdecl *)(fruit::impl::meta::ComposeFunctors (__cdecl *)(fruit::impl::meta::ComponentFunctor (__cdecl *)(fruit::impl::meta::ProcessInterfaceBinding,fruit::impl::meta::NormalizeType (__cdecl *)(fruit::impl::meta::Type<std::function<std::unique_ptr<ScalerImpl,std::default_delete<ScalerImpl>> (double)>>),fruit::impl::meta::FindInMap (__cdecl *)(fruit::impl::meta::Vector<fruit::impl::meta::Pair<fruit::impl::meta::Type<Scaler>,fruit::impl::meta::Type<ScalerImpl>>>,fruit::impl::meta::NormalizeType (__cdecl *)(fruit::impl::meta::Type<std::function<std::unique_ptr<ScalerImpl,std::default_delete<ScalerImpl>> (double)>>)),fruit::impl::meta::Bool<false>),fruit::impl::meta::ComponentFunctor (__cdecl *)(fruit::impl::meta::EnsureProvidedType,fruit::impl::meta::Vector<>,fruit::impl::meta::Vector<>,fruit::impl::meta::FindInMap (__cdecl *)(fruit::impl::meta::Vector<fruit::impl::meta::Pair<fruit::impl::meta::Type<Scaler>,fruit::impl::meta::Type<ScalerImpl>>>,fruit::impl::meta::NormalizeType (__cdecl *)(fruit::impl::meta::Type<std::function<std::unique_ptr<ScalerImpl,std::default_delete<ScalerImpl>> (double)>>)),fruit::impl::meta::Bool<false>)),fruit::impl::meta::Comp<fruit::impl::meta::Vector<>,fruit::impl::meta::Vector<fruit::impl::meta::Type<Multiplier>>,fruit::impl::meta::Vector<fruit::impl::meta::Type<Multiplier>>,fruit::impl::meta::Vector<fruit::impl::meta::Pair<fruit::impl::meta::Type<Multiplier>,fruit::impl::meta::Vector<>>>,fruit::impl::meta::Vector<fruit::impl::meta::Pair<fruit::impl::meta::Type<Scaler>,fruit::impl::meta::Type<ScalerImpl>>>,fruit::impl::meta::EmptyList>), ElseMetaExpr=fruit::impl::meta::If (__cdecl *)(fruit::impl::meta::And (__cdecl *)(fruit::impl::meta::Bool<false>,fruit::impl::meta::IsInSet (__cdecl *)(fruit::impl::meta::NormalizeType (__cdecl *)(fruit::impl::meta::Type<std::function<std::unique_ptr<ScalerImpl,std::default_delete<ScalerImpl>> (double)>>),fruit::impl::meta::Vector<>)),fruit::impl::meta::Catch (__cdecl *)(fruit::impl::meta::Catch (__cdecl *)(fruit::impl::meta::AutoRegister (__cdecl *)(fruit::impl::meta::Comp<fruit::impl::meta::Vector<>,fruit::impl::meta::Vector<fruit::impl::meta::Type<Multiplier>>,fruit::impl::meta::Vector<fruit::impl::meta::Type<Multiplier>>,fruit::impl::meta::Vector<fruit::impl::meta::Pair<fruit::impl::meta::Type<Multiplier>,fruit::impl::meta::Vector<>>>,fruit::impl::meta::Vector<fruit::impl::meta::Pair<fruit::impl::meta::Type<Scaler>,fruit::impl::meta::Type<ScalerImpl>>>,fruit::impl::meta::EmptyList>,fruit::impl::meta::Vector<>,fruit::impl::meta::Vector<>,fruit::impl::meta::NormalizeType (__cdecl *)(fruit::impl::meta::Type<std::function<std::unique_ptr<ScalerImpl,std::default_delete<ScalerImpl>> (double)>>)),fruit::impl::NoBindingFoundErrorTag,fruit::impl::meta::EnsureProvidedTypeErrorHandler<fruit::impl::meta::Type<std::function<std::unique_ptr<ScalerImpl,std::default_delete<ScalerImpl>> (double)>>>),fruit::impl::NoBindingFoundForAbstractClassErrorTag,fruit::impl::meta::EnsureProvidedTypeErrorHandler<fruit::impl::meta::Type<std::function<std::unique_ptr<ScalerImpl,std::default_delete<ScalerImpl>> (double)>>>),fruit::impl::meta::AutoRegister (__cdecl *)(fruit::impl::meta::Comp<fruit::impl::meta::Vector<>,fruit::impl::meta::Vector<fruit::impl::meta::Type<Multiplier>>,fruit::impl::meta::Vector<fruit::impl::meta::Type<Multiplier>>,fruit::impl::meta::Vector<fruit::impl::meta::Pair<fruit::impl::meta::Type<Multiplier>,fruit::impl::meta::Vector<>>>,fruit::impl::meta::Vector<fruit::impl::meta::Pair<fruit::impl::meta::Type<Scaler>,fruit::impl::meta::Type<ScalerImpl>>>,fruit::impl::meta::EmptyList>,fruit::impl::meta::Vector<>,fruit::impl::meta::Vector<>,fruit::impl::meta::NormalizeType (__cdecl *)(fruit::impl::meta::Type<std::function<std::unique_ptr<ScalerImpl,std::default_delete<ScalerImpl>> (double)>>))) ] F:\VisualStudio Projects\Libraries\fruit\include\fruit/impl/meta/eval.h(191): note: see reference to class template instantiation 'fruit::impl::meta::DoEval<ElseMetaExpr>' being compiled with [ ElseMetaExpr=fruit::impl::meta::If (__cdecl *)(fruit::impl::meta::Not (__cdecl *)(fruit::impl::meta::IsNone (__cdecl *)(fruit::impl::meta::FindInMap (__cdecl *)(fruit::impl::meta::Vector<fruit::impl::meta::Pair<fruit::impl::meta::Type<Scaler>,fruit::impl::meta::Type<ScalerImpl>>>,fruit::impl::meta::NormalizeType (__cdecl *)(fruit::impl::meta::Type<std::function<std::unique_ptr<ScalerImpl,std::default_delete<ScalerImpl>> (double)>>)))),fruit::impl::meta::Call (__cdecl *)(fruit::impl::meta::ComposeFunctors (__cdecl *)(fruit::impl::meta::ComponentFunctor (__cdecl *)(fruit::impl::meta::ProcessInterfaceBinding,fruit::impl::meta::NormalizeType (__cdecl *)(fruit::impl::meta::Type<std::function<std::unique_ptr<ScalerImpl,std::default_delete<ScalerImpl>> (double)>>),fruit::impl::meta::FindInMap (__cdecl *)(fruit::impl::meta::Vector<fruit::impl::meta::Pair<fruit::impl::meta::Type<Scaler>,fruit::impl::meta::Type<ScalerImpl>>>,fruit::impl::meta::NormalizeType (__cdecl *)(fruit::impl::meta::Type<std::function<std::unique_ptr<ScalerImpl,std::default_delete<ScalerImpl>> (double)>>)),fruit::impl::meta::Bool<false>),fruit::impl::meta::ComponentFunctor (__cdecl *)(fruit::impl::meta::EnsureProvidedType,fruit::impl::meta::Vector<>,fruit::impl::meta::Vector<>,fruit::impl::meta::FindInMap (__cdecl *)(fruit::impl::meta::Vector<fruit::impl::meta::Pair<fruit::impl::meta::Type<Scaler>,fruit::impl::meta::Type<ScalerImpl>>>,fruit::impl::meta::NormalizeType (__cdecl *)(fruit::impl::meta::Type<std::function<std::unique_ptr<ScalerImpl,std::default_delete<ScalerImpl>> (double)>>)),fruit::impl::meta::Bool<false>)),fruit::impl::meta::Comp<fruit::impl::meta::Vector<>,fruit::impl::meta::Vector<fruit::impl::meta::Type<Multiplier>>,fruit::impl::meta::Vector<fruit::impl::meta::Type<Multiplier>>,fruit::impl::meta::Vector<fruit::impl::meta::Pair<fruit::impl::meta::Type<Multiplier>,fruit::impl::meta::Vector<>>>,fruit::impl::meta::Vector<fruit::impl::meta::Pair<fruit::impl::meta::Type<Scaler>,fruit::impl::meta::Type<ScalerImpl>>>,fruit::impl::meta::EmptyList>),fruit::impl::meta::If (__cdecl *)(fruit::impl::meta::And (__cdecl *)(fruit::impl::meta::Bool<false>,fruit::impl::meta::IsInSet (__cdecl *)(fruit::impl::meta::NormalizeType (__cdecl *)(fruit::impl::meta::Type<std::function<std::unique_ptr<ScalerImpl,std::default_delete<ScalerImpl>> (double)>>),fruit::impl::meta::Vector<>)),fruit::impl::meta::Catch (__cdecl *)(fruit::impl::meta::Catch (__cdecl *)(fruit::impl::meta::AutoRegister (__cdecl *)(fruit::impl::meta::Comp<fruit::impl::meta::Vector<>,fruit::impl::meta::Vector<fruit::impl::meta::Type<Multiplier>>,fruit::impl::meta::Vector<fruit::impl::meta::Type<Multiplier>>,fruit::impl::meta::Vector<fruit::impl::meta::Pair<fruit::impl::meta::Type<Multiplier>,fruit::impl::meta::Vector<>>>,fruit::impl::meta::Vector<fruit::impl::meta::Pair<fruit::impl::meta::Type<Scaler>,fruit::impl::meta::Type<ScalerImpl>>>,fruit::impl::meta::EmptyList>,fruit::impl::meta::Vector<>,fruit::impl::meta::Vector<>,fruit::impl::meta::NormalizeType (__cdecl *)(fruit::impl::meta::Type<std::function<std::unique_ptr<ScalerImpl,std::default_delete<ScalerImpl>> (double)>>)),fruit::impl::NoBindingFoundErrorTag,fruit::impl::meta::EnsureProvidedTypeErrorHandler<fruit::impl::meta::Type<std::function<std::unique_ptr<ScalerImpl,std::default_delete<ScalerImpl>> (double)>>>),fruit::impl::NoBindingFoundForAbstractClassErrorTag,fruit::impl::meta::EnsureProvidedTypeErrorHandler<fruit::impl::meta::Type<std::function<std::unique_ptr<ScalerImpl,std::default_delete<ScalerImpl>> (double)>>>),fruit::impl::meta::AutoRegister (__cdecl *)(fruit::impl::meta::Comp<fruit::impl::meta::Vector<>,fruit::impl::meta::Vector<fruit::impl::meta::Type<Multiplier>>,fruit::impl::meta::Vector<fruit::impl::meta::Type<Multiplier>>,fruit::impl::meta::Vector<fruit::impl::meta::Pair<fruit::impl::meta::Type<Multiplier>,fruit::impl::meta::Vector<>>>,fruit::impl::meta::Vector<fruit::impl::meta::Pair<fruit::impl::meta::Type<Scaler>,fruit::impl::meta::Type<ScalerImpl>>>,fruit::impl::meta::EmptyList>,fruit::impl::meta::Vector<>,fruit::impl::meta::Vector<>,fruit::impl::meta::NormalizeType (__cdecl *)(fruit::impl::meta::Type<std::function<std::unique_ptr<ScalerImpl,std::default_delete<ScalerImpl>> (double)>>)))) ] F:\VisualStudio Projects\Libraries\fruit\include\fruit/impl/meta/eval.h(215): note: see reference to class template instantiation 'fruit::impl::meta::EvalIf<fruit::impl::meta::Bool<false>,ThenMetaExpr,ElseMetaExpr>' being compiled with [ ThenMetaExpr=fruit::impl::meta::ComponentFunctorIdentity (__cdecl *)(fruit::impl::meta::Comp<fruit::impl::meta::Vector<>,fruit::impl::meta::Vector<fruit::impl::meta::Type<Multiplier>>,fruit::impl::meta::Vector<fruit::impl::meta::Type<Multiplier>>,fruit::impl::meta::Vector<fruit::impl::meta::Pair<fruit::impl::meta::Type<Multiplier>,fruit::impl::meta::Vector<>>>,fruit::impl::meta::Vector<fruit::impl::meta::Pair<fruit::impl::meta::Type<Scaler>,fruit::impl::meta::Type<ScalerImpl>>>,fruit::impl::meta::EmptyList>), ElseMetaExpr=fruit::impl::meta::If (__cdecl *)(fruit::impl::meta::Not (__cdecl *)(fruit::impl::meta::IsNone (__cdecl *)(fruit::impl::meta::FindInMap (__cdecl *)(fruit::impl::meta::Vector<fruit::impl::meta::Pair<fruit::impl::meta::Type<Scaler>,fruit::impl::meta::Type<ScalerImpl>>>,fruit::impl::meta::NormalizeType (__cdecl *)(fruit::impl::meta::Type<std::function<std::unique_ptr<ScalerImpl,std::default_delete<ScalerImpl>> (double)>>)))),fruit::impl::meta::Call (__cdecl *)(fruit::impl::meta::ComposeFunctors (__cdecl *)(fruit::impl::meta::ComponentFunctor (__cdecl *)(fruit::impl::meta::ProcessInterfaceBinding,fruit::impl::meta::NormalizeType (__cdecl *)(fruit::impl::meta::Type<std::function<std::unique_ptr<ScalerImpl,std::default_delete<ScalerImpl>> (double)>>),fruit::impl::meta::FindInMap (__cdecl *)(fruit::impl::meta::Vector<fruit::impl::meta::Pair<fruit::impl::meta::Type<Scaler>,fruit::impl::meta::Type<ScalerImpl>>>,fruit::impl::meta::NormalizeType (__cdecl *)(fruit::impl::meta::Type<std::function<std::unique_ptr<ScalerImpl,std::default_delete<ScalerImpl>> (double)>>)),fruit::impl::meta::Bool<false>),fruit::impl::meta::ComponentFunctor (__cdecl *)(fruit::impl::meta::EnsureProvidedType,fruit::impl::meta::Vector<>,fruit::impl::meta::Vector<>,fruit::impl::meta::FindInMap (__cdecl *)(fruit::impl::meta::Vector<fruit::impl::meta::Pair<fruit::impl::meta::Type<Scaler>,fruit::impl::meta::Type<ScalerImpl>>>,fruit::impl::meta::NormalizeType (__cdecl *)(fruit::impl::meta::Type<std::function<std::unique_ptr<ScalerImpl,std::default_delete<ScalerImpl>> (double)>>)),fruit::impl::meta::Bool<false>)),fruit::impl::meta::Comp<fruit::impl::meta::Vector<>,fruit::impl::meta::Vector<fruit::impl::meta::Type<Multiplier>>,fruit::impl::meta::Vector<fruit::impl::meta::Type<Multiplier>>,fruit::impl::meta::Vector<fruit::impl::meta::Pair<fruit::impl::meta::Type<Multiplier>,fruit::impl::meta::Vector<>>>,fruit::impl::meta::Vector<fruit::impl::meta::Pair<fruit::impl::meta::Type<Scaler>,fruit::impl::meta::Type<ScalerImpl>>>,fruit::impl::meta::EmptyList>),fruit::impl::meta::If (__cdecl *)(fruit::impl::meta::And (__cdecl *)(fruit::impl::meta::Bool<false>,fruit::impl::meta::IsInSet (__cdecl *)(fruit::impl::meta::NormalizeType (__cdecl *)(fruit::impl::meta::Type<std::function<std::unique_ptr<ScalerImpl,std::default_delete<ScalerImpl>> (double)>>),fruit::impl::meta::Vector<>)),fruit::impl::meta::Catch (__cdecl *)(fruit::impl::meta::Catch (__cdecl *)(fruit::impl::meta::AutoRegister (__cdecl *)(fruit::impl::meta::Comp<fruit::impl::meta::Vector<>,fruit::impl::meta::Vector<fruit::impl::meta::Type<Multiplier>>,fruit::impl::meta::Vector<fruit::impl::meta::Type<Multiplier>>,fruit::impl::meta::Vector<fruit::impl::meta::Pair<fruit::impl::meta::Type<Multiplier>,fruit::impl::meta::Vector<>>>,fruit::impl::meta::Vector<fruit::impl::meta::Pair<fruit::impl::meta::Type<Scaler>,fruit::impl::meta::Type<ScalerImpl>>>,fruit::impl::meta::EmptyList>,fruit::impl::meta::Vector<>,fruit::impl::meta::Vector<>,fruit::impl::meta::NormalizeType (__cdecl *)(fruit::impl::meta::Type<std::function<std::unique_ptr<ScalerImpl,std::default_delete<ScalerImpl>> (double)>>)),fruit::impl::NoBindingFoundErrorTag,fruit::impl::meta::EnsureProvidedTypeErrorHandler<fruit::impl::meta::Type<std::function<std::unique_ptr<ScalerImpl,std::default_delete<ScalerImpl>> (double)>>>),fruit::impl::NoBindingFoundForAbstractClassErrorTag,fruit::impl::meta::EnsureProvidedTypeErrorHandler<fruit::impl::meta::Type<std::function<std::unique_ptr<ScalerImpl,std::default_delete<ScalerImpl>> (double)>>>),fruit::impl::meta::AutoRegister (__cdecl *)(fruit::impl::meta::Comp<fruit::impl::meta::Vector<>,fruit::impl::meta::Vector<fruit::impl::meta::Type<Multiplier>>,fruit::impl::meta::Vector<fruit::impl::meta::Type<Multiplier>>,fruit::impl::meta::Vector<fruit::impl::meta::Pair<fruit::impl::meta::Type<Multiplier>,fruit::impl::meta::Vector<>>>,fruit::impl::meta::Vector<fruit::impl::meta::Pair<fruit::impl::meta::Type<Scaler>,fruit::impl::meta::Type<ScalerImpl>>>,fruit::impl::meta::EmptyList>,fruit::impl::meta::Vector<>,fruit::impl::meta::Vector<>,fruit::impl::meta::NormalizeType (__cdecl *)(fruit::impl::meta::Type<std::function<std::unique_ptr<ScalerImpl,std::default_delete<ScalerImpl>> (double)>>)))) ] F:\VisualStudio Projects\Libraries\fruit\include\fruit/impl/meta/eval.h(191): note: see reference to class template instantiation 'fruit::impl::meta::DoEval<ElseMetaExpr>' being compiled with [ ElseMetaExpr=fruit::impl::meta::If (__cdecl *)(fruit::impl::meta::And (__cdecl *)(fruit::impl::meta::IsInSet (__cdecl *)(fruit::impl::meta::NormalizeType (__cdecl *)(fruit::impl::meta::Type<std::function<std::unique_ptr<ScalerImpl,std::default_delete<ScalerImpl>> (double)>>),fruit::impl::meta::Vector<>),fruit::impl::meta::Or (__cdecl *)(fruit::impl::meta::Not (__cdecl *)(fruit::impl::meta::Bool<false>),fruit::impl::meta::IsInSet (__cdecl *)(fruit::impl::meta::NormalizeType (__cdecl *)(fruit::impl::meta::Type<std::function<std::unique_ptr<ScalerImpl,std::default_delete<ScalerImpl>> (double)>>),fruit::impl::meta::Vector<>))),fruit::impl::meta::ComponentFunctorIdentity (__cdecl *)(fruit::impl::meta::Comp<fruit::impl::meta::Vector<>,fruit::impl::meta::Vector<fruit::impl::meta::Type<Multiplier>>,fruit::impl::meta::Vector<fruit::impl::meta::Type<Multiplier>>,fruit::impl::meta::Vector<fruit::impl::meta::Pair<fruit::impl::meta::Type<Multiplier>,fruit::impl::meta::Vector<>>>,fruit::impl::meta::Vector<fruit::impl::meta::Pair<fruit::impl::meta::Type<Scaler>,fruit::impl::meta::Type<ScalerImpl>>>,fruit::impl::meta::EmptyList>),fruit::impl::meta::If (__cdecl *)(fruit::impl::meta::Not (__cdecl *)(fruit::impl::meta::IsNone (__cdecl *)(fruit::impl::meta::FindInMap (__cdecl *)(fruit::impl::meta::Vector<fruit::impl::meta::Pair<fruit::impl::meta::Type<Scaler>,fruit::impl::meta::Type<ScalerImpl>>>,fruit::impl::meta::NormalizeType (__cdecl *)(fruit::impl::meta::Type<std::function<std::unique_ptr<ScalerImpl,std::default_delete<ScalerImpl>> (double)>>)))),fruit::impl::meta::Call (__cdecl *)(fruit::impl::meta::ComposeFunctors (__cdecl *)(fruit::impl::meta::ComponentFunctor (__cdecl *)(fruit::impl::meta::ProcessInterfaceBinding,fruit::impl::meta::NormalizeType (__cdecl *)(fruit::impl::meta::Type<std::function<std::unique_ptr<ScalerImpl,std::default_delete<ScalerImpl>> (double)>>),fruit::impl::meta::FindInMap (__cdecl *)(fruit::impl::meta::Vector<fruit::impl::meta::Pair<fruit::impl::meta::Type<Scaler>,fruit::impl::meta::Type<ScalerImpl>>>,fruit::impl::meta::NormalizeType (__cdecl *)(fruit::impl::meta::Type<std::function<std::unique_ptr<ScalerImpl,std::default_delete<ScalerImpl>> (double)>>)),fruit::impl::meta::Bool<false>),fruit::impl::meta::ComponentFunctor (__cdecl *)(fruit::impl::meta::EnsureProvidedType,fruit::impl::meta::Vector<>,fruit::impl::meta::Vector<>,fruit::impl::meta::FindInMap (__cdecl *)(fruit::impl::meta::Vector<fruit::impl::meta::Pair<fruit::impl::meta::Type<Scaler>,fruit::impl::meta::Type<ScalerImpl>>>,fruit::impl::meta::NormalizeType (__cdecl *)(fruit::impl::meta::Type<std::function<std::unique_ptr<ScalerImpl,std::default_delete<ScalerImpl>> (double)>>)),fruit::impl::meta::Bool<false>)),fruit::impl::meta::Comp<fruit::impl::meta::Vector<>,fruit::impl::meta::Vector<fruit::impl::meta::Type<Multiplier>>,fruit::impl::meta::Vector<fruit::impl::meta::Type<Multiplier>>,fruit::impl::meta::Vector<fruit::impl::meta::Pair<fruit::impl::meta::Type<Multiplier>,fruit::impl::meta::Vector<>>>,fruit::impl::meta::Vector<fruit::impl::meta::Pair<fruit::impl::meta::Type<Scaler>,fruit::impl::meta::Type<ScalerImpl>>>,fruit::impl::meta::EmptyList>),fruit::impl::meta::If (__cdecl *)(fruit::impl::meta::And (__cdecl *)(fruit::impl::meta::Bool<false>,fruit::impl::meta::IsInSet (__cdecl *)(fruit::impl::meta::NormalizeType (__cdecl *)(fruit::impl::meta::Type<std::function<std::unique_ptr<ScalerImpl,std::default_delete<ScalerImpl>> (double)>>),fruit::impl::meta::Vector<>)),fruit::impl::meta::Catch (__cdecl *)(fruit::impl::meta::Catch (__cdecl *)(fruit::impl::meta::AutoRegister (__cdecl *)(fruit::impl::meta::Comp<fruit::impl::meta::Vector<>,fruit::impl::meta::Vector<fruit::impl::meta::Type<Multiplier>>,fruit::impl::meta::Vector<fruit::impl::meta::Type<Multiplier>>,fruit::impl::meta::Vector<fruit::impl::meta::Pair<fruit::impl::meta::Type<Multiplier>,fruit::impl::meta::Vector<>>>,fruit::impl::meta::Vector<fruit::impl::meta::Pair<fruit::impl::meta::Type<Scaler>,fruit::impl::meta::Type<ScalerImpl>>>,fruit::impl::meta::EmptyList>,fruit::impl::meta::Vector<>,fruit::impl::meta::Vector<>,fruit::impl::meta::NormalizeType (__cdecl *)(fruit::impl::meta::Type<std::function<std::unique_ptr<ScalerImpl,std::default_delete<ScalerImpl>> (double)>>)),fruit::impl::NoBindingFoundErrorTag,fruit::impl::meta::EnsureProvidedTypeErrorHandler<fruit::impl::meta::Type<std::function<std::unique_ptr<ScalerImpl,std::default_delete<ScalerImpl>> (double)>>>),fruit::impl::NoBindingFoundForAbstractClassErrorTag,fruit::impl::meta::EnsureProvidedTypeErrorHandler<fruit::impl::meta::Type<std::function<std::unique_ptr<ScalerImpl,std::default_delete<ScalerImpl>> (double)>>>),fruit::impl::meta::AutoRegister (__cdecl *)(fruit::impl::meta::Comp<fruit::impl::meta::Vector<>,fruit::impl::meta::Vector<fruit::impl::meta::Type<Multiplier>>,fruit::impl::meta::Vector<fruit::impl::meta::Type<Multiplier>>,fruit::impl::meta::Vector<fruit::impl::meta::Pair<fruit::impl::meta::Type<Multiplier>,fruit::impl::meta::Vector<>>>,fruit::impl::meta::Vector<fruit::impl::meta::Pair<fruit::impl::meta::Type<Scaler>,fruit::impl::meta::Type<ScalerImpl>>>,fruit::impl::meta::EmptyList>,fruit::impl::meta::Vector<>,fruit::impl::meta::Vector<>,fruit::impl::meta::NormalizeType (__cdecl *)(fruit::impl::meta::Type<std::function<std::unique_ptr<ScalerImpl,std::default_delete<ScalerImpl>> (double)>>))))) ] F:\VisualStudio Projects\Libraries\fruit\include\fruit/impl/meta/eval.h(202): note: see reference to class template instantiation 'fruit::impl::meta::EvalIf<fruit::impl::meta::Bool<false>,ThenMetaExpr,ElseMetaExpr>' being compiled with [ ThenMetaExpr=fruit::impl::meta::If (__cdecl *)(fruit::impl::meta::And (__cdecl *)(fruit::impl::meta::Bool<false>,fruit::impl::meta::Not (__cdecl *)(fruit::impl::meta::IsInSet (__cdecl *)(fruit::impl::meta::NormalizeType (__cdecl *)(fruit::impl::meta::Type<std::function<std::unique_ptr<ScalerImpl,std::default_delete<ScalerImpl>> (double)>>),fruit::impl::meta::Vector<fruit::impl::meta::Type<Multiplier>>))),fruit::impl::meta::ConstructError (__cdecl *)(fruit::impl::NonConstBindingRequiredButConstBindingProvidedErrorTag,fruit::impl::meta::NormalizeType (__cdecl *)(fruit::impl::meta::Type<std::function<std::unique_ptr<ScalerImpl,std::default_delete<ScalerImpl>> (double)>>)),fruit::impl::meta::ComponentFunctorIdentity (__cdecl *)(fruit::impl::meta::Comp<fruit::impl::meta::Vector<>,fruit::impl::meta::Vector<fruit::impl::meta::Type<Multiplier>>,fruit::impl::meta::Vector<fruit::impl::meta::Type<Multiplier>>,fruit::impl::meta::Vector<fruit::impl::meta::Pair<fruit::impl::meta::Type<Multiplier>,fruit::impl::meta::Vector<>>>,fruit::impl::meta::Vector<fruit::impl::meta::Pair<fruit::impl::meta::Type<Scaler>,fruit::impl::meta::Type<ScalerImpl>>>,fruit::impl::meta::EmptyList>)), ElseMetaExpr=fruit::impl::meta::If (__cdecl *)(fruit::impl::meta::And (__cdecl *)(fruit::impl::meta::IsInSet (__cdecl *)(fruit::impl::meta::NormalizeType (__cdecl *)(fruit::impl::meta::Type<std::function<std::unique_ptr<ScalerImpl,std::default_delete<ScalerImpl>> (double)>>),fruit::impl::meta::Vector<>),fruit::impl::meta::Or (__cdecl *)(fruit::impl::meta::Not (__cdecl *)(fruit::impl::meta::Bool<false>),fruit::impl::meta::IsInSet (__cdecl *)(fruit::impl::meta::NormalizeType (__cdecl *)(fruit::impl::meta::Type<std::function<std::unique_ptr<ScalerImpl,std::default_delete<ScalerImpl>> (double)>>),fruit::impl::meta::Vector<>))),fruit::impl::meta::ComponentFunctorIdentity (__cdecl *)(fruit::impl::meta::Comp<fruit::impl::meta::Vector<>,fruit::impl::meta::Vector<fruit::impl::meta::Type<Multiplier>>,fruit::impl::meta::Vector<fruit::impl::meta::Type<Multiplier>>,fruit::impl::meta::Vector<fruit::impl::meta::Pair<fruit::impl::meta::Type<Multiplier>,fruit::impl::meta::Vector<>>>,fruit::impl::meta::Vector<fruit::impl::meta::Pair<fruit::impl::meta::Type<Scaler>,fruit::impl::meta::Type<ScalerImpl>>>,fruit::impl::meta::EmptyList>),fruit::impl::meta::If (__cdecl *)(fruit::impl::meta::Not (__cdecl *)(fruit::impl::meta::IsNone (__cdecl *)(fruit::impl::meta::FindInMap (__cdecl *)(fruit::impl::meta::Vector<fruit::impl::meta::Pair<fruit::impl::meta::Type<Scaler>,fruit::impl::meta::Type<ScalerImpl>>>,fruit::impl::meta::NormalizeType (__cdecl *)(fruit::impl::meta::Type<std::function<std::unique_ptr<ScalerImpl,std::default_delete<ScalerImpl>> (double)>>)))),fruit::impl::meta::Call (__cdecl *)(fruit::impl::meta::ComposeFunctors (__cdecl *)(fruit::impl::meta::ComponentFunctor (__cdecl *)(fruit::impl::meta::ProcessInterfaceBinding,fruit::impl::meta::NormalizeType (__cdecl *)(fruit::impl::meta::Type<std::function<std::unique_ptr<ScalerImpl,std::default_delete<ScalerImpl>> (double)>>),fruit::impl::meta::FindInMap (__cdecl *)(fruit::impl::meta::Vector<fruit::impl::meta::Pair<fruit::impl::meta::Type<Scaler>,fruit::impl::meta::Type<ScalerImpl>>>,fruit::impl::meta::NormalizeType (__cdecl *)(fruit::impl::meta::Type<std::function<std::unique_ptr<ScalerImpl,std::default_delete<ScalerImpl>> (double)>>)),fruit::impl::meta::Bool<false>),fruit::impl::meta::ComponentFunctor (__cdecl *)(fruit::impl::meta::EnsureProvidedType,fruit::impl::meta::Vector<>,fruit::impl::meta::Vector<>,fruit::impl::meta::FindInMap (__cdecl *)(fruit::impl::meta::Vector<fruit::impl::meta::Pair<fruit::impl::meta::Type<Scaler>,fruit::impl::meta::Type<ScalerImpl>>>,fruit::impl::meta::NormalizeType (__cdecl *)(fruit::impl::meta::Type<std::function<std::unique_ptr<ScalerImpl,std::default_delete<ScalerImpl>> (double)>>)),fruit::impl::meta::Bool<false>)),fruit::impl::meta::Comp<fruit::impl::meta::Vector<>,fruit::impl::meta::Vector<fruit::impl::meta::Type<Multiplier>>,fruit::impl::meta::Vector<fruit::impl::meta::Type<Multiplier>>,fruit::impl::meta::Vector<fruit::impl::meta::Pair<fruit::impl::meta::Type<Multiplier>,fruit::impl::meta::Vector<>>>,fruit::impl::meta::Vector<fruit::impl::meta::Pair<fruit::impl::meta::Type<Scaler>,fruit::impl::meta::Type<ScalerImpl>>>,fruit::impl::meta::EmptyList>),fruit::impl::meta::If (__cdecl *)(fruit::impl::meta::And (__cdecl *)(fruit::impl::meta::Bool<false>,fruit::impl::meta::IsInSet (__cdecl *)(fruit::impl::meta::NormalizeType (__cdecl *)(fruit::impl::meta::Type<std::function<std::unique_ptr<ScalerImpl,std::default_delete<ScalerImpl>> (double)>>),fruit::impl::meta::Vector<>)),fruit::impl::meta::Catch (__cdecl *)(fruit::impl::meta::Catch (__cdecl *)(fruit::impl::meta::AutoRegister (__cdecl *)(fruit::impl::meta::Comp<fruit::impl::meta::Vector<>,fruit::impl::meta::Vector<fruit::impl::meta::Type<Multiplier>>,fruit::impl::meta::Vector<fruit::impl::meta::Type<Multiplier>>,fruit::impl::meta::Vector<fruit::impl::meta::Pair<fruit::impl::meta::Type<Multiplier>,fruit::impl::meta::Vector<>>>,fruit::impl::meta::Vector<fruit::impl::meta::Pair<fruit::impl::meta::Type<Scaler>,fruit::impl::meta::Type<ScalerImpl>>>,fruit::impl::meta::EmptyList>,fruit::impl::meta::Vector<>,fruit::impl::meta::Vector<>,fruit::impl::meta::NormalizeType (__cdecl *)(fruit::impl::meta::Type<std::function<std::unique_ptr<ScalerImpl,std::default_delete<ScalerImpl>> (double)>>)),fruit::impl::NoBindingFoundErrorTag,fruit::impl::meta::EnsureProvidedTypeErrorHandler<fruit::impl::meta::Type<std::function<std::unique_ptr<ScalerImpl,std::default_delete<ScalerImpl>> (double)>>>),fruit::impl::NoBindingFoundForAbstractClassErrorTag,fruit::impl::meta::EnsureProvidedTypeErrorHandler<fruit::impl::meta::Type<std::function<std::unique_ptr<ScalerImpl,std::default_delete<ScalerImpl>> (double)>>>),fruit::impl::meta::AutoRegister (__cdecl *)(fruit::impl::meta::Comp<fruit::impl::meta::Vector<>,fruit::impl::meta::Vector<fruit::impl::meta::Type<Multiplier>>,fruit::impl::meta::Vector<fruit::impl::meta::Type<Multiplier>>,fruit::impl::meta::Vector<fruit::impl::meta::Pair<fruit::impl::meta::Type<Multiplier>,fruit::impl::meta::Vector<>>>,fruit::impl::meta::Vector<fruit::impl::meta::Pair<fruit::impl::meta::Type<Scaler>,fruit::impl::meta::Type<ScalerImpl>>>,fruit::impl::meta::EmptyList>,fruit::impl::meta::Vector<>,fruit::impl::meta::Vector<>,fruit::impl::meta::NormalizeType (__cdecl *)(fruit::impl::meta::Type<std::function<std::unique_ptr<ScalerImpl,std::default_delete<ScalerImpl>> (double)>>))))) ] F:\VisualStudio Projects\Libraries\fruit\include\fruit/impl/meta/eval.h(102): note: see reference to class template instantiation 'fruit::impl::meta::DoEval<fruit::impl::meta::If (fruit::impl::meta::IsInSet (__cdecl *)(fruit::impl::meta::NormalizeType (__cdecl *)(AnnotatedT),fruit::impl::meta::Vector<MetaExpr>),fruit::impl::meta::If (__cdecl *)(fruit::impl::meta::And (__cdecl *)(NonConstBindingRequired,fruit::impl::meta::Not (__cdecl *)(fruit::impl::meta::IsInSet (__cdecl *)(fruit::impl::meta::NormalizeType (__cdecl *)(AnnotatedT),fruit::impl::meta::Vector<MetaExpr>))),fruit::impl::meta::ConstructError (__cdecl *)(fruit::impl::NonConstBindingRequiredButConstBindingProvidedErrorTag,fruit::impl::meta::NormalizeType (__cdecl *)(AnnotatedT)),fruit::impl::meta::ComponentFunctorIdentity (__cdecl *)(Comp)),fruit::impl::meta::If (__cdecl *)(fruit::impl::meta::And (__cdecl *)(fruit::impl::meta::IsInSet (__cdecl *)(fruit::impl::meta::NormalizeType (__cdecl *)(AnnotatedT),TargetRequirements),fruit::impl::meta::Or (__cdecl *)(fruit::impl::meta::Not (__cdecl *)(NonConstBindingRequired),fruit::impl::meta::IsInSet (__cdecl *)(fruit::impl::meta::NormalizeType (__cdecl *)(AnnotatedT),TargetNonConstRequirements))),fruit::impl::meta::ComponentFunctorIdentity (__cdecl *)(Comp),fruit::impl::meta::If (__cdecl *)(fruit::impl::meta::Not (__cdecl *)(fruit::impl::meta::IsNone (__cdecl *)(fruit::impl::meta::FindInMap (__cdecl *)(fruit::impl::meta::Vector<T>,fruit::impl::meta::NormalizeType (__cdecl *)(AnnotatedT)))),fruit::impl::meta::Call (__cdecl *)(fruit::impl::meta::ComposeFunctors (__cdecl *)(fruit::impl::meta::ComponentFunctor (__cdecl *)(fruit::impl::meta::ProcessInterfaceBinding,fruit::impl::meta::NormalizeType (__cdecl *)(AnnotatedT),fruit::impl::meta::FindInMap (__cdecl *)(fruit::impl::meta::Vector<T>,fruit::impl::meta::NormalizeType (__cdecl *)(AnnotatedT)),NonConstBindingRequired),fruit::impl::meta::ComponentFunctor (__cdecl *)(fruit::impl::meta::EnsureProvidedType,TargetRequirements,TargetNonConstRequirements,fruit::impl::meta::FindInMap (__cdecl *)(fruit::impl::meta::Vector<T>,fruit::impl::meta::NormalizeType (__cdecl *)(AnnotatedT)),NonConstBindingRequired)),Comp),fruit::impl::meta::If (__cdecl *)(fruit::impl::meta::And (__cdecl *)(NonConstBindingRequired,fruit::impl::meta::IsInSet (__cdecl *)(fruit::impl::meta::NormalizeType (__cdecl *)(AnnotatedT),TargetRequirements)),fruit::impl::meta::Catch (__cdecl *)(fruit::impl::meta::Catch (__cdecl *)(fruit::impl::meta::AutoRegister (__cdecl *)(Comp,TargetRequirements,TargetNonConstRequirements,fruit::impl::meta::NormalizeType (__cdecl *)(AnnotatedT)),fruit::impl::NoBindingFoundErrorTag,fruit::impl::meta::EnsureProvidedTypeErrorHandler<AnnotatedT>),fruit::impl::NoBindingFoundForAbstractClassErrorTag,fruit::impl::meta::EnsureProvidedTypeErrorHandler<AnnotatedT>),fruit::impl::meta::AutoRegister (__cdecl *)(Comp,TargetRequirements,TargetNonConstRequirements,fruit::impl::meta::NormalizeType (__cdecl *)(AnnotatedT))))))>' being compiled with [ AnnotatedT=fruit::impl::meta::Type<std::function<std::unique_ptr<ScalerImpl,std::default_delete<ScalerImpl>> (double)>>, MetaExpr=fruit::impl::meta::Type<Multiplier>, NonConstBindingRequired=fruit::impl::meta::Bool<false>, Comp=fruit::impl::meta::Comp<fruit::impl::meta::Vector<>,fruit::impl::meta::Vector<fruit::impl::meta::Type<Multiplier>>,fruit::impl::meta::Vector<fruit::impl::meta::Type<Multiplier>>,fruit::impl::meta::Vector<fruit::impl::meta::Pair<fruit::impl::meta::Type<Multiplier>,fruit::impl::meta::Vector<>>>,fruit::impl::meta::Vector<fruit::impl::meta::Pair<fruit::impl::meta::Type<Scaler>,fruit::impl::meta::Type<ScalerImpl>>>,fruit::impl::meta::EmptyList>, TargetRequirements=fruit::impl::meta::Vector<>, TargetNonConstRequirements=fruit::impl::meta::Vector<>, T=fruit::impl::meta::Pair<fruit::impl::meta::Type<Scaler>,fruit::impl::meta::Type<ScalerImpl>> ] F:\VisualStudio Projects\Libraries\fruit\include\fruit/impl/meta/eval.h(117): note: see reference to class template instantiation 'fruit::impl::meta::DoEval<fruit::impl::meta::EnsureProvidedType (Comp,MetaExpr,MetaExpr,fruit::impl::meta::Type<std::function<Signature>>,fruit::impl::meta::Bool<false>)>' being compiled with [ Comp=fruit::impl::meta::Comp<fruit::impl::meta::Vector<>,fruit::impl::meta::Vector<fruit::impl::meta::Type<Multiplier>>,fruit::impl::meta::Vector<fruit::impl::meta::Type<Multiplier>>,fruit::impl::meta::Vector<fruit::impl::meta::Pair<fruit::impl::meta::Type<Multiplier>,fruit::impl::meta::Vector<>>>,fruit::impl::meta::Vector<fruit::impl::meta::Pair<fruit::impl::meta::Type<Scaler>,fruit::impl::meta::Type<ScalerImpl>>>,fruit::impl::meta::EmptyList>, MetaExpr=fruit::impl::meta::Vector<>, Signature=std::unique_ptr<ScalerImpl,std::default_delete<ScalerImpl>> (double) ] F:\VisualStudio Projects\Libraries\fruit\include\fruit/impl/meta/eval.h(249): note: see reference to class template instantiation 'fruit::impl::meta::DoEval<MaybeErrorMetaExpr>' being compiled with [ MaybeErrorMetaExpr=fruit::impl::meta::ComponentFunctor::apply<fruit::impl::meta::EnsureProvidedType,fruit::impl::meta::Vector<>,fruit::impl::meta::Vector<>,fruit::impl::meta::Type<std::function<std::unique_ptr<ScalerImpl,std::default_delete<ScalerImpl>> (double)>>,fruit::impl::meta::Bool<false>>::type (__cdecl *)(fruit::impl::meta::GetResult (__cdecl *)(fruit::impl::meta::ComponentFunctorIdentity (__cdecl *)(fruit::impl::meta::Comp<fruit::impl::meta::Vector<>,fruit::impl::meta::Vector<fruit::impl::meta::Type<Multiplier>>,fruit::impl::meta::Vector<fruit::impl::meta::Type<Multiplier>>,fruit::impl::meta::Vector<fruit::impl::meta::Pair<fruit::impl::meta::Type<Multiplier>,fruit::impl::meta::Vector<>>>,fruit::impl::meta::Vector<fruit::impl::meta::Pair<fruit::impl::meta::Type<Scaler>,fruit::impl::meta::Type<ScalerImpl>>>,fruit::impl::meta::EmptyList>))) ] F:\VisualStudio Projects\Libraries\fruit\include\fruit/impl/meta/eval.h(220): note: see reference to class template instantiation 'fruit::impl::meta::DoEval<ElseMetaExpr>' being compiled with [ ElseMetaExpr=fruit::impl::meta::PropagateError (__cdecl *)(fruit::impl::meta::ComponentFunctor::apply<fruit::impl::meta::EnsureProvidedType,fruit::impl::meta::Vector<>,fruit::impl::meta::Vector<>,fruit::impl::meta::Type<std::function<std::unique_ptr<ScalerImpl,std::default_delete<ScalerImpl>> (double)>>,fruit::impl::meta::Bool<false>>::type (__cdecl *)(fruit::impl::meta::GetResult (__cdecl *)(fruit::impl::meta::ComponentFunctorIdentity (__cdecl *)(fruit::impl::meta::Comp<fruit::impl::meta::Vector<>,fruit::impl::meta::Vector<fruit::impl::meta::Type<Multiplier>>,fruit::impl::meta::Vector<fruit::impl::meta::Type<Multiplier>>,fruit::impl::meta::Vector<fruit::impl::meta::Pair<fruit::impl::meta::Type<Multiplier>,fruit::impl::meta::Vector<>>>,fruit::impl::meta::Vector<fruit::impl::meta::Pair<fruit::impl::meta::Type<Scaler>,fruit::impl::meta::Type<ScalerImpl>>>,fruit::impl::meta::EmptyList>))),fruit::impl::meta::Compose2ComponentFunctors::apply<fruit::impl::meta::ComponentFunctorIdentity,fruit::impl::meta::ComponentFunctor::apply<fruit::impl::meta::EnsureProvidedType,fruit::impl::meta::Vector<>,fruit::impl::meta::Vector<>,fruit::impl::meta::Type<std::function<std::unique_ptr<ScalerImpl,std::default_delete<ScalerImpl>> (double)>>,fruit::impl::meta::Bool<false>>::type>::type::apply<fruit::impl::meta::Comp<fruit::impl::meta::Vector<>,fruit::impl::meta::Vector<fruit::impl::meta::Type<Multiplier>>,fruit::impl::meta::Vector<fruit::impl::meta::Type<Multiplier>>,fruit::impl::meta::Vector<fruit::impl::meta::Pair<fruit::impl::meta::Type<Multiplier>,fruit::impl::meta::Vector<>>>,fruit::impl::meta::Vector<fruit::impl::meta::Pair<fruit::impl::meta::Type<Scaler>,fruit::impl::meta::Type<ScalerImpl>>>,fruit::impl::meta::EmptyList>>::Op) ] F:\VisualStudio Projects\Libraries\fruit\include\fruit/impl/meta/eval.h(236): note: see reference to class template instantiation 'fruit::impl::meta::EvalPropagateError<fruit::impl::meta::ComponentFunctorIdentity::apply<fruit::impl::meta::Comp<RsSupersetParam,PsParam,NonConstRsPsParam,DepsParam,InterfaceBindingsParam,DeferredBindingFunctorsParam>>::type,ElseMetaExpr>' being compiled with [ RsSupersetParam=fruit::impl::meta::Vector<>, PsParam=fruit::impl::meta::Vector<fruit::impl::meta::Type<Multiplier>>, NonConstRsPsParam=fruit::impl::meta::Vector<fruit::impl::meta::Type<Multiplier>>, DepsParam=fruit::impl::meta::Vector<fruit::impl::meta::Pair<fruit::impl::meta::Type<Multiplier>,fruit::impl::meta::Vector<>>>, InterfaceBindingsParam=fruit::impl::meta::Vector<fruit::impl::meta::Pair<fruit::impl::meta::Type<Scaler>,fruit::impl::meta::Type<ScalerImpl>>>, DeferredBindingFunctorsParam=fruit::impl::meta::EmptyList, ElseMetaExpr=fruit::impl::meta::PropagateError (__cdecl *)(fruit::impl::meta::ComponentFunctor::apply<fruit::impl::meta::EnsureProvidedType,fruit::impl::meta::Vector<>,fruit::impl::meta::Vector<>,fruit::impl::meta::Type<std::function<std::unique_ptr<ScalerImpl,std::default_delete<ScalerImpl>> (double)>>,fruit::impl::meta::Bool<false>>::type (__cdecl *)(fruit::impl::meta::GetResult (__cdecl *)(fruit::impl::meta::ComponentFunctorIdentity (__cdecl *)(fruit::impl::meta::Comp<fruit::impl::meta::Vector<>,fruit::impl::meta::Vector<fruit::impl::meta::Type<Multiplier>>,fruit::impl::meta::Vector<fruit::impl::meta::Type<Multiplier>>,fruit::impl::meta::Vector<fruit::impl::meta::Pair<fruit::impl::meta::Type<Multiplier>,fruit::impl::meta::Vector<>>>,fruit::impl::meta::Vector<fruit::impl::meta::Pair<fruit::impl::meta::Type<Scaler>,fruit::impl::meta::Type<ScalerImpl>>>,fruit::impl::meta::EmptyList>))),fruit::impl::meta::Compose2ComponentFunctors::apply<fruit::impl::meta::ComponentFunctorIdentity,fruit::impl::meta::ComponentFunctor::apply<fruit::impl::meta::EnsureProvidedType,fruit::impl::meta::Vector<>,fruit::impl::meta::Vector<>,fruit::impl::meta::Type<std::function<std::unique_ptr<ScalerImpl,std::default_delete<ScalerImpl>> (double)>>,fruit::impl::meta::Bool<false>>::type>::type::apply<fruit::impl::meta::Comp<fruit::impl::meta::Vector<>,fruit::impl::meta::Vector<fruit::impl::meta::Type<Multiplier>>,fruit::impl::meta::Vector<fruit::impl::meta::Type<Multiplier>>,fruit::impl::meta::Vector<fruit::impl::meta::Pair<fruit::impl::meta::Type<Multiplier>,fruit::impl::meta::Vector<>>>,fruit::impl::meta::Vector<fruit::impl::meta::Pair<fruit::impl::meta::Type<Scaler>,fruit::impl::meta::Type<ScalerImpl>>>,fruit::impl::meta::EmptyList>>::Op) ] F:\VisualStudio Projects\Libraries\fruit\include\fruit/impl/meta/eval.h(117): note: see reference to class template instantiation 'fruit::impl::meta::DoEval<fruit::impl::meta::PropagateError (fruit::impl::meta::ComponentFunctorIdentity (__cdecl *)(Comp),fruit::impl::meta::PropagateError (__cdecl *)(fruit::impl::meta::ComponentFunctor::apply<MetaExpr,fruit::impl::meta::Vector<>,fruit::impl::meta::Vector<>,fruit::impl::meta::Type<std::function<Signature>>,fruit::impl::meta::Bool<false>>::type (__cdecl *)(fruit::impl::meta::GetResult (__cdecl *)(fruit::impl::meta::ComponentFunctorIdentity (__cdecl *)(Comp))),fruit::impl::meta::Compose2ComponentFunctors::apply<InitialValue,T0>::type::apply<Comp>::Op))>' being compiled with [ Comp=fruit::impl::meta::Comp<fruit::impl::meta::Vector<>,fruit::impl::meta::Vector<fruit::impl::meta::Type<Multiplier>>,fruit::impl::meta::Vector<fruit::impl::meta::Type<Multiplier>>,fruit::impl::meta::Vector<fruit::impl::meta::Pair<fruit::impl::meta::Type<Multiplier>,fruit::impl::meta::Vector<>>>,fruit::impl::meta::Vector<fruit::impl::meta::Pair<fruit::impl::meta::Type<Scaler>,fruit::impl::meta::Type<ScalerImpl>>>,fruit::impl::meta::EmptyList>, MetaExpr=fruit::impl::meta::EnsureProvidedType, Signature=std::unique_ptr<ScalerImpl,std::default_delete<ScalerImpl>> (double), InitialValue=fruit::impl::meta::ComponentFunctorIdentity, T0=fruit::impl::meta::ComponentFunctor::apply<fruit::impl::meta::EnsureProvidedType,fruit::impl::meta::Vector<>,fruit::impl::meta::Vector<>,fruit::impl::meta::Type<std::function<std::unique_ptr<ScalerImpl,std::default_delete<ScalerImpl>> (double)>>,fruit::impl::meta::Bool<false>>::type ] F:\VisualStudio Projects\Libraries\fruit\include\fruit/impl/meta/eval.h(236): note: see reference to class template instantiation 'fruit::impl::meta::DoEval<MaybeErrorMetaExpr>' being compiled with [ MaybeErrorMetaExpr=fruit::impl::meta::Compose2ComponentFunctors::apply<fruit::impl::meta::ComponentFunctorIdentity,fruit::impl::meta::ComponentFunctor::apply<fruit::impl::meta::EnsureProvidedType,fruit::impl::meta::Vector<>,fruit::impl::meta::Vector<>,fruit::impl::meta::Type<std::function<std::unique_ptr<ScalerImpl,std::default_delete<ScalerImpl>> (double)>>,fruit::impl::meta::Bool<false>>::type>::type (__cdecl *)(fruit::impl::meta::Comp<fruit::impl::meta::Vector<>,fruit::impl::meta::Vector<fruit::impl::meta::Type<Multiplier>>,fruit::impl::meta::Vector<fruit::impl::meta::Type<Multiplier>>,fruit::impl::meta::Vector<fruit::impl::meta::Pair<fruit::impl::meta::Type<Multiplier>,fruit::impl::meta::Vector<>>>,fruit::impl::meta::Vector<fruit::impl::meta::Pair<fruit::impl::meta::Type<Scaler>,fruit::impl::meta::Type<ScalerImpl>>>,fruit::impl::meta::EmptyList>) ] F:\VisualStudio Projects\Libraries\fruit\include\fruit/impl/meta/eval.h(117): note: see reference to class template instantiation 'fruit::impl::meta::DoEval<fruit::impl::meta::PropagateError (fruit::impl::meta::Compose2ComponentFunctors::apply<InitialValue,T0>::type (__cdecl *)(Comp),fruit::impl::meta::PropagateError (__cdecl *)(fruit::impl::meta::ComponentFunctor::apply<MetaExpr,fruit::impl::meta::Type<ReturnType (const T &)>,fruit::impl::meta::Type<ReturnType (const T &)>>::type (__cdecl *)(fruit::impl::meta::GetResult (__cdecl *)(fruit::impl::meta::Compose2ComponentFunctors::apply<InitialValue,T0>::type (__cdecl *)(Comp))),fruit::impl::meta::Compose2ComponentFunctors::apply<fruit::impl::meta::Compose2ComponentFunctors::apply<InitialValue,T0>::type,T1>::type::apply<Comp>::Op))>' being compiled with [ InitialValue=fruit::impl::meta::ComponentFunctorIdentity, T0=fruit::impl::meta::ComponentFunctor::apply<fruit::impl::meta::EnsureProvidedType,fruit::impl::meta::Vector<>,fruit::impl::meta::Vector<>,fruit::impl::meta::Type<std::function<std::unique_ptr<ScalerImpl,std::default_delete<ScalerImpl>> (double)>>,fruit::impl::meta::Bool<false>>::type, Comp=fruit::impl::meta::Comp<fruit::impl::meta::Vector<>,fruit::impl::meta::Vector<fruit::impl::meta::Type<Multiplier>>,fruit::impl::meta::Vector<fruit::impl::meta::Type<Multiplier>>,fruit::impl::meta::Vector<fruit::impl::meta::Pair<fruit::impl::meta::Type<Multiplier>,fruit::impl::meta::Vector<>>>,fruit::impl::meta::Vector<fruit::impl::meta::Pair<fruit::impl::meta::Type<Scaler>,fruit::impl::meta::Type<ScalerImpl>>>,fruit::impl::meta::EmptyList>, MetaExpr=fruit::impl::meta::PreProcessRegisterProvider, ReturnType=ScalerFactory, T=std::function<std::unique_ptr<ScalerImpl,std::default_delete<ScalerImpl>> (double)>, T1=fruit::impl::meta::ComponentFunctor::apply<fruit::impl::meta::PreProcessRegisterProvider,fruit::impl::meta::Type<ScalerFactory (const std::function<std::unique_ptr<ScalerImpl,std::default_delete<ScalerImpl>> (double)> &)>,fruit::impl::meta::Type<ScalerFactory (const std::function<std::unique_ptr<ScalerImpl,std::default_delete<ScalerImpl>> (double)> &)>>::type ] F:\VisualStudio Projects\Libraries\fruit\include\fruit/impl/meta/eval.h(236): note: see reference to class template instantiation 'fruit::impl::meta::DoEval<MaybeErrorMetaExpr>' being compiled with [ MaybeErrorMetaExpr=fruit::impl::meta::Compose2ComponentFunctors::apply<fruit::impl::meta::Compose2ComponentFunctors::apply<fruit::impl::meta::ComponentFunctorIdentity,fruit::impl::meta::ComponentFunctor::apply<fruit::impl::meta::EnsureProvidedType,fruit::impl::meta::Vector<>,fruit::impl::meta::Vector<>,fruit::impl::meta::Type<std::function<std::unique_ptr<ScalerImpl,std::default_delete<ScalerImpl>> (double)>>,fruit::impl::meta::Bool<false>>::type>::type,fruit::impl::meta::ComponentFunctor::apply<fruit::impl::meta::PreProcessRegisterProvider,fruit::impl::meta::Type<ScalerFactory (const std::function<std::unique_ptr<ScalerImpl,std::default_delete<ScalerImpl>> (double)> &)>,fruit::impl::meta::Type<ScalerFactory (const std::function<std::unique_ptr<ScalerImpl,std::default_delete<ScalerImpl>> (double)> &)>>::type>::type (__cdecl *)(fruit::impl::meta::Comp<fruit::impl::meta::Vector<>,fruit::impl::meta::Vector<fruit::impl::meta::Type<Multiplier>>,fruit::impl::meta::Vector<fruit::impl::meta::Type<Multiplier>>,fruit::impl::meta::Vector<fruit::impl::meta::Pair<fruit::impl::meta::Type<Multiplier>,fruit::impl::meta::Vector<>>>,fruit::impl::meta::Vector<fruit::impl::meta::Pair<fruit::impl::meta::Type<Scaler>,fruit::impl::meta::Type<ScalerImpl>>>,fruit::impl::meta::EmptyList>) ] F:\VisualStudio Projects\Libraries\fruit\include\fruit/impl/meta/eval.h(117): note: see reference to class template instantiation 'fruit::impl::meta::DoEval<fruit::impl::meta::PropagateError (fruit::impl::meta::Compose2ComponentFunctors::apply<fruit::impl::meta::Compose2ComponentFunctors::apply<InitialValue,T0>::type,T1>::type (__cdecl *)(Comp),fruit::impl::meta::PropagateError (__cdecl *)(fruit::impl::meta::ComponentFunctor::apply<MetaExpr,fruit::impl::meta::Type<ReturnType (const T &)>,fruit::impl::meta::Type<ReturnType (const T &)>>::type (__cdecl *)(fruit::impl::meta::GetResult (__cdecl *)(fruit::impl::meta::Compose2ComponentFunctors::apply<fruit::impl::meta::Compose2ComponentFunctors::apply<InitialValue,T0>::type,T1>::type (__cdecl *)(Comp))),fruit::impl::meta::Compose2ComponentFunctors::apply<fruit::impl::meta::Compose2ComponentFunctors::apply<fruit::impl::meta::Compose2ComponentFunctors::apply<InitialValue,T0>::type,T1>::type,T2>::type::apply<Comp>::Op))>' being compiled with [ InitialValue=fruit::impl::meta::ComponentFunctorIdentity, T0=fruit::impl::meta::ComponentFunctor::apply<fruit::impl::meta::EnsureProvidedType,fruit::impl::meta::Vector<>,fruit::impl::meta::Vector<>,fruit::impl::meta::Type<std::function<std::unique_ptr<ScalerImpl,std::default_delete<ScalerImpl>> (double)>>,fruit::impl::meta::Bool<false>>::type, T1=fruit::impl::meta::ComponentFunctor::apply<fruit::impl::meta::PreProcessRegisterProvider,fruit::impl::meta::Type<ScalerFactory (const std::function<std::unique_ptr<ScalerImpl,std::default_delete<ScalerImpl>> (double)> &)>,fruit::impl::meta::Type<ScalerFactory (const std::function<std::unique_ptr<ScalerImpl,std::default_delete<ScalerImpl>> (double)> &)>>::type, Comp=fruit::impl::meta::Comp<fruit::impl::meta::Vector<>,fruit::impl::meta::Vector<fruit::impl::meta::Type<Multiplier>>,fruit::impl::meta::Vector<fruit::impl::meta::Type<Multiplier>>,fruit::impl::meta::Vector<fruit::impl::meta::Pair<fruit::impl::meta::Type<Multiplier>,fruit::impl::meta::Vector<>>>,fruit::impl::meta::Vector<fruit::impl::meta::Pair<fruit::impl::meta::Type<Scaler>,fruit::impl::meta::Type<ScalerImpl>>>,fruit::impl::meta::EmptyList>, MetaExpr=fruit::impl::meta::PostProcessRegisterProvider, ReturnType=ScalerFactory, T=std::function<std::unique_ptr<ScalerImpl,std::default_delete<ScalerImpl>> (double)>, T2=fruit::impl::meta::ComponentFunctor::apply<fruit::impl::meta::PostProcessRegisterProvider,fruit::impl::meta::Type<ScalerFactory (const std::function<std::unique_ptr<ScalerImpl,std::default_delete<ScalerImpl>> (double)> &)>,fruit::impl::meta::Type<ScalerFactory (const std::function<std::unique_ptr<ScalerImpl,std::default_delete<ScalerImpl>> (double)> &)>>::type ] F:\VisualStudio Projects\Libraries\fruit\include\fruit/impl/meta/eval.h(236): note: see reference to class template instantiation 'fruit::impl::meta::DoEval<MaybeErrorMetaExpr>' being compiled with [ MaybeErrorMetaExpr=fruit::impl::meta::Call (__cdecl *)(fruit::impl::meta::ComposeFunctors (__cdecl *)(fruit::impl::meta::ComponentFunctor (__cdecl *)(fruit::impl::meta::EnsureProvidedType,fruit::impl::meta::Vector<>,fruit::impl::meta::Vector<>,fruit::impl::meta::CopyAnnotation (__cdecl *)(fruit::impl::meta::Type<ScalerImpl>,fruit::impl::meta::ConsStdFunction (__cdecl *)(fruit::impl::meta::ConsSignature (__cdecl *)(fruit::impl::meta::ConsUniquePtr (__cdecl *)(fruit::impl::meta::RemoveAnnotations (__cdecl *)(fruit::impl::meta::Type<ScalerImpl>)),fruit::impl::meta::Type<double>))),fruit::impl::meta::Bool<false>),fruit::impl::meta::ComponentFunctor (__cdecl *)(fruit::impl::meta::PreProcessRegisterProvider,fruit::impl::meta::ConsSignature (__cdecl *)(fruit::impl::meta::CopyAnnotation (__cdecl *)(fruit::impl::meta::CopyAnnotation (__cdecl *)(fruit::impl::meta::SignatureType (__cdecl *)(fruit::impl::meta::Type<std::unique_ptr<Scaler,std::default_delete<Scaler>> (double)>),fruit::impl::meta::Type<Scaler>),fruit::impl::meta::ConsStdFunction (__cdecl *)(fruit::impl::meta::ConsSignature (__cdecl *)(fruit::impl::meta::ConsUniquePtr (__cdecl *)(fruit::impl::meta::Type<Scaler>),fruit::impl::meta::Type<double>))),fruit::impl::meta::CopyAnnotation (__cdecl *)(fruit::impl::meta::Type<ScalerImpl>,fruit::impl::meta::ConsConstReference (__cdecl *)(fruit::impl::meta::ConsStdFunction (__cdecl *)(fruit::impl::meta::ConsSignature (__cdecl *)(fruit::impl::meta::ConsUniquePtr (__cdecl *)(fruit::impl::meta::RemoveAnnotations (__cdecl *)(fruit::impl::meta::Type<ScalerImpl>)),fruit::impl::meta::Type<double>))))),fruit::impl::meta::ConsSignature (__cdecl *)(fruit::impl::meta::ConsStdFunction (__cdecl *)(fruit::impl::meta::ConsSignature (__cdecl *)(fruit::impl::meta::ConsUniquePtr (__cdecl *)(fruit::impl::meta::Type<Scaler>),fruit::impl::meta::Type<double>)),fruit::impl::meta::ConsConstReference (__cdecl *)(fruit::impl::meta::ConsStdFunction (__cdecl *)(fruit::impl::meta::ConsSignature (__cdecl *)(fruit::impl::meta::ConsUniquePtr (__cdecl *)(fruit::impl::meta::RemoveAnnotations (__cdecl *)(fruit::impl::meta::Type<ScalerImpl>)),fruit::impl::meta::Type<double>))))),fruit::impl::meta::ComponentFunctor (__cdecl *)(fruit::impl::meta::PostProcessRegisterProvider,fruit::impl::meta::ConsSignature (__cdecl *)(fruit::impl::meta::CopyAnnotation (__cdecl *)(fruit::impl::meta::CopyAnnotation (__cdecl *)(fruit::impl::meta::SignatureType (__cdecl *)(fruit::impl::meta::Type<std::unique_ptr<Scaler,std::default_delete<Scaler>> (double)>),fruit::impl::meta::Type<Scaler>),fruit::impl::meta::ConsStdFunction (__cdecl *)(fruit::impl::meta::ConsSignature (__cdecl *)(fruit::impl::meta::ConsUniquePtr (__cdecl *)(fruit::impl::meta::Type<Scaler>),fruit::impl::meta::Type<double>))),fruit::impl::meta::CopyAnnotation (__cdecl *)(fruit::impl::meta::Type<ScalerImpl>,fruit::impl::meta::ConsConstReference (__cdecl *)(fruit::impl::meta::ConsStdFunction (__cdecl *)(fruit::impl::meta::ConsSignature (__cdecl *)(fruit::impl::meta::ConsUniquePtr (__cdecl *)(fruit::impl::meta::RemoveAnnotations (__cdecl *)(fruit::impl::meta::Type<ScalerImpl>)),fruit::impl::meta::Type<double>))))),fruit::impl::meta::ConsSignature (__cdecl *)(fruit::impl::meta::ConsStdFunction (__cdecl *)(fruit::impl::meta::ConsSignature (__cdecl *)(fruit::impl::meta::ConsUniquePtr (__cdecl *)(fruit::impl::meta::Type<Scaler>),fruit::impl::meta::Type<double>)),fruit::impl::meta::ConsConstReference (__cdecl *)(fruit::impl::meta::ConsStdFunction (__cdecl *)(fruit::impl::meta::ConsSignature (__cdecl *)(fruit::impl::meta::ConsUniquePtr (__cdecl *)(fruit::impl::meta::RemoveAnnotations (__cdecl *)(fruit::impl::meta::Type<ScalerImpl>)),fruit::impl::meta::Type<double>)))))),fruit::impl::meta::Comp<fruit::impl::meta::Vector<>,fruit::impl::meta::Vector<fruit::impl::meta::Type<Multiplier>>,fruit::impl::meta::Vector<fruit::impl::meta::Type<Multiplier>>,fruit::impl::meta::Vector<fruit::impl::meta::Pair<fruit::impl::meta::Type<Multiplier>,fruit::impl::meta::Vector<>>>,fruit::impl::meta::Vector<fruit::impl::meta::Pair<fruit::impl::meta::Type<Scaler>,fruit::impl::meta::Type<ScalerImpl>>>,fruit::impl::meta::EmptyList>) ] F:\VisualStudio Projects\Libraries\fruit\include\fruit/impl/meta/eval.h(102): note: see reference to class template instantiation 'fruit::impl::meta::DoEval<fruit::impl::meta::PropagateError (fruit::impl::meta::Call (__cdecl *)(fruit::impl::meta::ComposeFunctors (__cdecl *)(fruit::impl::meta::ComponentFunctor (__cdecl *)(fruit::impl::meta::EnsureProvidedType,TargetRequirements,TargetNonConstRequirements,fruit::impl::meta::CopyAnnotation (__cdecl *)(AnnotatedC,fruit::impl::meta::ConsStdFunction (__cdecl *)(fruit::impl::meta::ConsSignature (__cdecl *)(fruit::impl::meta::ConsUniquePtr (__cdecl *)(fruit::impl::meta::RemoveAnnotations (__cdecl *)(AnnotatedC)),fruit::impl::meta::Type<double>))),fruit::impl::meta::Bool<false>),fruit::impl::meta::ComponentFunctor (__cdecl *)(fruit::impl::meta::PreProcessRegisterProvider,fruit::impl::meta::ConsSignature (__cdecl *)(fruit::impl::meta::CopyAnnotation (__cdecl *)(fruit::impl::meta::CopyAnnotation (__cdecl *)(fruit::impl::meta::SignatureType (__cdecl *)(AnnotatedSignature),fruit::impl::meta::Type<I>),fruit::impl::meta::ConsStdFunction (__cdecl *)(fruit::impl::meta::ConsSignature (__cdecl *)(fruit::impl::meta::ConsUniquePtr (__cdecl *)(fruit::impl::meta::Type<I>),fruit::impl::meta::Type<double>))),fruit::impl::meta::CopyAnnotation (__cdecl *)(AnnotatedC,fruit::impl::meta::ConsConstReference (__cdecl *)(fruit::impl::meta::ConsStdFunction (__cdecl *)(fruit::impl::meta::ConsSignature (__cdecl *)(fruit::impl::meta::ConsUniquePtr (__cdecl *)(fruit::impl::meta::RemoveAnnotations (__cdecl *)(AnnotatedC)),fruit::impl::meta::Type<double>))))),fruit::impl::meta::ConsSignature (__cdecl *)(fruit::impl::meta::ConsStdFunction (__cdecl *)(fruit::impl::meta::ConsSignature (__cdecl *)(fruit::impl::meta::ConsUniquePtr (__cdecl *)(fruit::impl::meta::Type<I>),fruit::impl::meta::Type<double>)),fruit::impl::meta::ConsConstReference (__cdecl *)(fruit::impl::meta::ConsStdFunction (__cdecl *)(fruit::impl::meta::ConsSignature (__cdecl *)(fruit::impl::meta::ConsUniquePtr (__cdecl *)(fruit::impl::meta::RemoveAnnotations (__cdecl *)(AnnotatedC)),fruit::impl::meta::Type<double>))))),fruit::impl::meta::ComponentFunctor (__cdecl *)(fruit::impl::meta::PostProcessRegisterProvider,fruit::impl::meta::ConsSignature (__cdecl *)(fruit::impl::meta::CopyAnnotation (__cdecl *)(fruit::impl::meta::CopyAnnotation (__cdecl *)(fruit::impl::meta::SignatureType (__cdecl *)(AnnotatedSignature),fruit::impl::meta::Type<I>),fruit::impl::meta::ConsStdFunction (__cdecl *)(fruit::impl::meta::ConsSignature (__cdecl *)(fruit::impl::meta::ConsUniquePtr (__cdecl *)(fruit::impl::meta::Type<I>),fruit::impl::meta::Type<double>))),fruit::impl::meta::CopyAnnotation (__cdecl *)(AnnotatedC,fruit::impl::meta::ConsConstReference (__cdecl *)(fruit::impl::meta::ConsStdFunction (__cdecl *)(fruit::impl::meta::ConsSignature (__cdecl *)(fruit::impl::meta::ConsUniquePtr (__cdecl *)(fruit::impl::meta::RemoveAnnotations (__cdecl *)(AnnotatedC)),fruit::impl::meta::Type<double>))))),fruit::impl::meta::ConsSignature (__cdecl *)(fruit::impl::meta::ConsStdFunction (__cdecl *)(fruit::impl::meta::ConsSignature (__cdecl *)(fruit::impl::meta::ConsUniquePtr (__cdecl *)(fruit::impl::meta::Type<I>),fruit::impl::meta::Type<double>)),fruit::impl::meta::ConsConstReference (__cdecl *)(fruit::impl::meta::ConsStdFunction (__cdecl *)(fruit::impl::meta::ConsSignature (__cdecl *)(fruit::impl::meta::ConsUniquePtr (__cdecl *)(fruit::impl::meta::RemoveAnnotations (__cdecl *)(AnnotatedC)),fruit::impl::meta::Type<double>)))))),Comp),fruit::impl::meta::If (__cdecl *)(fruit::impl::meta::Not (__cdecl *)(fruit::impl::meta::HasVirtualDestructor (__cdecl *)(fruit::impl::meta::Type<I>)),fruit::impl::meta::ConstructError (__cdecl *)(fruit::impl::FactoryBindingForUniquePtrOfClassWithNoVirtualDestructorErrorTag,fruit::impl::meta::ConsStdFunction (__cdecl *)(fruit::impl::meta::ConsSignature (__cdecl *)(fruit::impl::meta::ConsUniquePtr (__cdecl *)(fruit::impl::meta::Type<I>),fruit::impl::meta::Type<double>)),fruit::impl::meta::ConsStdFunction (__cdecl *)(fruit::impl::meta::ConsSignature (__cdecl *)(fruit::impl::meta::ConsUniquePtr (__cdecl *)(fruit::impl::meta::RemoveAnnotations (__cdecl *)(AnnotatedC)),fruit::impl::meta::Type<double>))),fruit::impl::meta::AutoRegisterFactoryHelper::apply<Comp,TargetRequirements,TargetNonConstRequirements,fruit::impl::meta::Type<C>,fruit::impl::meta::Bool<false>,fruit::impl::meta::Bool<true>,MetaExpr,AnnotatedSignature,fruit::impl::meta::Type<double>>::Op))>' being compiled with [ TargetRequirements=fruit::impl::meta::Vector<>, TargetNonConstRequirements=fruit::impl::meta::Vector<>, AnnotatedC=fruit::impl::meta::Type<ScalerImpl>, AnnotatedSignature=fruit::impl::meta::Type<std::unique_ptr<Scaler,std::default_delete<Scaler>> (double)>, I=Scaler, Comp=fruit::impl::meta::Comp<fruit::impl::meta::Vector<>,fruit::impl::meta::Vector<fruit::impl::meta::Type<Multiplier>>,fruit::impl::meta::Vector<fruit::impl::meta::Type<Multiplier>>,fruit::impl::meta::Vector<fruit::impl::meta::Pair<fruit::impl::meta::Type<Multiplier>,fruit::impl::meta::Vector<>>>,fruit::impl::meta::Vector<fruit::impl::meta::Pair<fruit::impl::meta::Type<Scaler>,fruit::impl::meta::Type<ScalerImpl>>>,fruit::impl::meta::EmptyList>, C=ScalerImpl, MetaExpr=fruit::impl::meta::Type<std::unique_ptr<Scaler,std::default_delete<Scaler>>> ] F:\VisualStudio Projects\Libraries\fruit\include\fruit/impl/meta/eval.h(117): note: see reference to class template instantiation 'fruit::impl::meta::DoEval<fruit::impl::meta::AutoRegisterFactoryHelper (Comp,TargetRequirements,TargetNonConstRequirements,fruit::impl::meta::FindInMap (__cdecl *)(fruit::impl::meta::Vector<T>,fruit::impl::meta::Type<I>),fruit::impl::meta::HasInjectAnnotation (__cdecl *)(fruit::impl::meta::Type<I>),fruit::impl::meta::IsAbstract (__cdecl *)(fruit::impl::meta::Type<I>),fruit::impl::meta::Type<std::unique_ptr<Scaler,std::default_delete<Scaler>>>,fruit::impl::meta::Type<std::unique_ptr<Scaler,std::default_delete<Scaler>> (double)>,fruit::impl::meta::RemoveAnnotations (__cdecl *)(fruit::impl::meta::Type<double>))>' being compiled with [ Comp=fruit::impl::meta::Comp<fruit::impl::meta::Vector<>,fruit::impl::meta::Vector<fruit::impl::meta::Type<Multiplier>>,fruit::impl::meta::Vector<fruit::impl::meta::Type<Multiplier>>,fruit::impl::meta::Vector<fruit::impl::meta::Pair<fruit::impl::meta::Type<Multiplier>,fruit::impl::meta::Vector<>>>,fruit::impl::meta::Vector<fruit::impl::meta::Pair<fruit::impl::meta::Type<Scaler>,fruit::impl::meta::Type<ScalerImpl>>>,fruit::impl::meta::EmptyList>, TargetRequirements=fruit::impl::meta::Vector<>, TargetNonConstRequirements=fruit::impl::meta::Vector<>, T=fruit::impl::meta::Pair<fruit::impl::meta::Type<Scaler>,fruit::impl::meta::Type<ScalerImpl>>, I=Scaler ] F:\VisualStudio Projects\Libraries\fruit\include\fruit/impl/meta/eval.h(191): note: see reference to class template instantiation 'fruit::impl::meta::DoEval<ElseMetaExpr>' being compiled with [ ElseMetaExpr=fruit::impl::meta::AutoRegister (__cdecl *)(fruit::impl::meta::Comp<fruit::impl::meta::Vector<>,fruit::impl::meta::Vector<fruit::impl::meta::Type<Multiplier>>,fruit::impl::meta::Vector<fruit::impl::meta::Type<Multiplier>>,fruit::impl::meta::Vector<fruit::impl::meta::Pair<fruit::impl::meta::Type<Multiplier>,fruit::impl::meta::Vector<>>>,fruit::impl::meta::Vector<fruit::impl::meta::Pair<fruit::impl::meta::Type<Scaler>,fruit::impl::meta::Type<ScalerImpl>>>,fruit::impl::meta::EmptyList>,fruit::impl::meta::Vector<>,fruit::impl::meta::Vector<>,fruit::impl::meta::NormalizeType (__cdecl *)(fruit::impl::meta::Type<ScalerFactory>)) ] F:\VisualStudio Projects\Libraries\fruit\include\fruit/impl/meta/eval.h(215): note: see reference to class template instantiation 'fruit::impl::meta::EvalIf<fruit::impl::meta::Bool<false>,ThenMetaExpr,ElseMetaExpr>' being compiled with [ ThenMetaExpr=fruit::impl::meta::Catch (__cdecl *)(fruit::impl::meta::Catch (__cdecl *)(fruit::impl::meta::AutoRegister (__cdecl *)(fruit::impl::meta::Comp<fruit::impl::meta::Vector<>,fruit::impl::meta::Vector<fruit::impl::meta::Type<Multiplier>>,fruit::impl::meta::Vector<fruit::impl::meta::Type<Multiplier>>,fruit::impl::meta::Vector<fruit::impl::meta::Pair<fruit::impl::meta::Type<Multiplier>,fruit::impl::meta::Vector<>>>,fruit::impl::meta::Vector<fruit::impl::meta::Pair<fruit::impl::meta::Type<Scaler>,fruit::impl::meta::Type<ScalerImpl>>>,fruit::impl::meta::EmptyList>,fruit::impl::meta::Vector<>,fruit::impl::meta::Vector<>,fruit::impl::meta::NormalizeType (__cdecl *)(fruit::impl::meta::Type<ScalerFactory>)),fruit::impl::NoBindingFoundErrorTag,fruit::impl::meta::EnsureProvidedTypeErrorHandler<fruit::impl::meta::Type<ScalerFactory>>),fruit::impl::NoBindingFoundForAbstractClassErrorTag,fruit::impl::meta::EnsureProvidedTypeErrorHandler<fruit::impl::meta::Type<ScalerFactory>>), ElseMetaExpr=fruit::impl::meta::AutoRegister (__cdecl *)(fruit::impl::meta::Comp<fruit::impl::meta::Vector<>,fruit::impl::meta::Vector<fruit::impl::meta::Type<Multiplier>>,fruit::impl::meta::Vector<fruit::impl::meta::Type<Multiplier>>,fruit::impl::meta::Vector<fruit::impl::meta::Pair<fruit::impl::meta::Type<Multiplier>,fruit::impl::meta::Vector<>>>,fruit::impl::meta::Vector<fruit::impl::meta::Pair<fruit::impl::meta::Type<Scaler>,fruit::impl::meta::Type<ScalerImpl>>>,fruit::impl::meta::EmptyList>,fruit::impl::meta::Vector<>,fruit::impl::meta::Vector<>,fruit::impl::meta::NormalizeType (__cdecl *)(fruit::impl::meta::Type<ScalerFactory>)) ] F:\VisualStudio Projects\Libraries\fruit\include\fruit/impl/meta/eval.h(191): note: see reference to class template instantiation 'fruit::impl::meta::DoEval<ElseMetaExpr>' being compiled with [ ElseMetaExpr=fruit::impl::meta::If (__cdecl *)(fruit::impl::meta::And (__cdecl *)(fruit::impl::meta::IsSame::apply<fruit::impl::meta::Type<ScalerFactory>,fruit::impl::meta::Type<ScalerFactory>>::type,fruit::impl::meta::IsInSet (__cdecl *)(fruit::impl::meta::NormalizeType (__cdecl *)(fruit::impl::meta::Type<ScalerFactory>),fruit::impl::meta::Vector<>)),fruit::impl::meta::Catch (__cdecl *)(fruit::impl::meta::Catch (__cdecl *)(fruit::impl::meta::AutoRegister (__cdecl *)(fruit::impl::meta::Comp<fruit::impl::meta::Vector<>,fruit::impl::meta::Vector<fruit::impl::meta::Type<Multiplier>>,fruit::impl::meta::Vector<fruit::impl::meta::Type<Multiplier>>,fruit::impl::meta::Vector<fruit::impl::meta::Pair<fruit::impl::meta::Type<Multiplier>,fruit::impl::meta::Vector<>>>,fruit::impl::meta::Vector<fruit::impl::meta::Pair<fruit::impl::meta::Type<Scaler>,fruit::impl::meta::Type<ScalerImpl>>>,fruit::impl::meta::EmptyList>,fruit::impl::meta::Vector<>,fruit::impl::meta::Vector<>,fruit::impl::meta::NormalizeType (__cdecl *)(fruit::impl::meta::Type<ScalerFactory>)),fruit::impl::NoBindingFoundErrorTag,fruit::impl::meta::EnsureProvidedTypeErrorHandler<fruit::impl::meta::Type<ScalerFactory>>),fruit::impl::NoBindingFoundForAbstractClassErrorTag,fruit::impl::meta::EnsureProvidedTypeErrorHandler<fruit::impl::meta::Type<ScalerFactory>>),fruit::impl::meta::AutoRegister (__cdecl *)(fruit::impl::meta::Comp<fruit::impl::meta::Vector<>,fruit::impl::meta::Vector<fruit::impl::meta::Type<Multiplier>>,fruit::impl::meta::Vector<fruit::impl::meta::Type<Multiplier>>,fruit::impl::meta::Vector<fruit::impl::meta::Pair<fruit::impl::meta::Type<Multiplier>,fruit::impl::meta::Vector<>>>,fruit::impl::meta::Vector<fruit::impl::meta::Pair<fruit::impl::meta::Type<Scaler>,fruit::impl::meta::Type<ScalerImpl>>>,fruit::impl::meta::EmptyList>,fruit::impl::meta::Vector<>,fruit::impl::meta::Vector<>,fruit::impl::meta::NormalizeType (__cdecl *)(fruit::impl::meta::Type<ScalerFactory>))) ] F:\VisualStudio Projects\Libraries\fruit\include\fruit/impl/meta/eval.h(215): note: see reference to class template instantiation 'fruit::impl::meta::EvalIf<fruit::impl::meta::Bool<false>,ThenMetaExpr,ElseMetaExpr>' being compiled with [ ThenMetaExpr=fruit::impl::meta::Call (__cdecl *)(fruit::impl::meta::ComposeFunctors (__cdecl *)(fruit::impl::meta::ComponentFunctor (__cdecl *)(fruit::impl::meta::ProcessInterfaceBinding,fruit::impl::meta::NormalizeType (__cdecl *)(fruit::impl::meta::Type<ScalerFactory>),fruit::impl::meta::FindInMap (__cdecl *)(fruit::impl::meta::Vector<fruit::impl::meta::Pair<fruit::impl::meta::Type<Scaler>,fruit::impl::meta::Type<ScalerImpl>>>,fruit::impl::meta::NormalizeType (__cdecl *)(fruit::impl::meta::Type<ScalerFactory>)),fruit::impl::meta::IsSame::apply<fruit::impl::meta::Type<ScalerFactory>,fruit::impl::meta::Type<ScalerFactory>>::type),fruit::impl::meta::ComponentFunctor (__cdecl *)(fruit::impl::meta::EnsureProvidedType,fruit::impl::meta::Vector<>,fruit::impl::meta::Vector<>,fruit::impl::meta::FindInMap (__cdecl *)(fruit::impl::meta::Vector<fruit::impl::meta::Pair<fruit::impl::meta::Type<Scaler>,fruit::impl::meta::Type<ScalerImpl>>>,fruit::impl::meta::NormalizeType (__cdecl *)(fruit::impl::meta::Type<ScalerFactory>)),fruit::impl::meta::IsSame::apply<fruit::impl::meta::Type<ScalerFactory>,fruit::impl::meta::Type<ScalerFactory>>::type)),fruit::impl::meta::Comp<fruit::impl::meta::Vector<>,fruit::impl::meta::Vector<fruit::impl::meta::Type<Multiplier>>,fruit::impl::meta::Vector<fruit::impl::meta::Type<Multiplier>>,fruit::impl::meta::Vector<fruit::impl::meta::Pair<fruit::impl::meta::Type<Multiplier>,fruit::impl::meta::Vector<>>>,fruit::impl::meta::Vector<fruit::impl::meta::Pair<fruit::impl::meta::Type<Scaler>,fruit::impl::meta::Type<ScalerImpl>>>,fruit::impl::meta::EmptyList>), ElseMetaExpr=fruit::impl::meta::If (__cdecl *)(fruit::impl::meta::And (__cdecl *)(fruit::impl::meta::IsSame::apply<fruit::impl::meta::Type<ScalerFactory>,fruit::impl::meta::Type<ScalerFactory>>::type,fruit::impl::meta::IsInSet (__cdecl *)(fruit::impl::meta::NormalizeType (__cdecl *)(fruit::impl::meta::Type<ScalerFactory>),fruit::impl::meta::Vector<>)),fruit::impl::meta::Catch (__cdecl *)(fruit::impl::meta::Catch (__cdecl *)(fruit::impl::meta::AutoRegister (__cdecl *)(fruit::impl::meta::Comp<fruit::impl::meta::Vector<>,fruit::impl::meta::Vector<fruit::impl::meta::Type<Multiplier>>,fruit::impl::meta::Vector<fruit::impl::meta::Type<Multiplier>>,fruit::impl::meta::Vector<fruit::impl::meta::Pair<fruit::impl::meta::Type<Multiplier>,fruit::impl::meta::Vector<>>>,fruit::impl::meta::Vector<fruit::impl::meta::Pair<fruit::impl::meta::Type<Scaler>,fruit::impl::meta::Type<ScalerImpl>>>,fruit::impl::meta::EmptyList>,fruit::impl::meta::Vector<>,fruit::impl::meta::Vector<>,fruit::impl::meta::NormalizeType (__cdecl *)(fruit::impl::meta::Type<ScalerFactory>)),fruit::impl::NoBindingFoundErrorTag,fruit::impl::meta::EnsureProvidedTypeErrorHandler<fruit::impl::meta::Type<ScalerFactory>>),fruit::impl::NoBindingFoundForAbstractClassErrorTag,fruit::impl::meta::EnsureProvidedTypeErrorHandler<fruit::impl::meta::Type<ScalerFactory>>),fruit::impl::meta::AutoRegister (__cdecl *)(fruit::impl::meta::Comp<fruit::impl::meta::Vector<>,fruit::impl::meta::Vector<fruit::impl::meta::Type<Multiplier>>,fruit::impl::meta::Vector<fruit::impl::meta::Type<Multiplier>>,fruit::impl::meta::Vector<fruit::impl::meta::Pair<fruit::impl::meta::Type<Multiplier>,fruit::impl::meta::Vector<>>>,fruit::impl::meta::Vector<fruit::impl::meta::Pair<fruit::impl::meta::Type<Scaler>,fruit::impl::meta::Type<ScalerImpl>>>,fruit::impl::meta::EmptyList>,fruit::impl::meta::Vector<>,fruit::impl::meta::Vector<>,fruit::impl::meta::NormalizeType (__cdecl *)(fruit::impl::meta::Type<ScalerFactory>))) ] F:\VisualStudio Projects\Libraries\fruit\include\fruit/impl/meta/eval.h(191): note: see reference to class template instantiation 'fruit::impl::meta::DoEval<ElseMetaExpr>' being compiled with [ ElseMetaExpr=fruit::impl::meta::If (__cdecl *)(fruit::impl::meta::Not (__cdecl *)(fruit::impl::meta::IsNone (__cdecl *)(fruit::impl::meta::FindInMap (__cdecl *)(fruit::impl::meta::Vector<fruit::impl::meta::Pair<fruit::impl::meta::Type<Scaler>,fruit::impl::meta::Type<ScalerImpl>>>,fruit::impl::meta::NormalizeType (__cdecl *)(fruit::impl::meta::Type<ScalerFactory>)))),fruit::impl::meta::Call (__cdecl *)(fruit::impl::meta::ComposeFunctors (__cdecl *)(fruit::impl::meta::ComponentFunctor (__cdecl *)(fruit::impl::meta::ProcessInterfaceBinding,fruit::impl::meta::NormalizeType (__cdecl *)(fruit::impl::meta::Type<ScalerFactory>),fruit::impl::meta::FindInMap (__cdecl *)(fruit::impl::meta::Vector<fruit::impl::meta::Pair<fruit::impl::meta::Type<Scaler>,fruit::impl::meta::Type<ScalerImpl>>>,fruit::impl::meta::NormalizeType (__cdecl *)(fruit::impl::meta::Type<ScalerFactory>)),fruit::impl::meta::IsSame::apply<fruit::impl::meta::Type<ScalerFactory>,fruit::impl::meta::Type<ScalerFactory>>::type),fruit::impl::meta::ComponentFunctor (__cdecl *)(fruit::impl::meta::EnsureProvidedType,fruit::impl::meta::Vector<>,fruit::impl::meta::Vector<>,fruit::impl::meta::FindInMap (__cdecl *)(fruit::impl::meta::Vector<fruit::impl::meta::Pair<fruit::impl::meta::Type<Scaler>,fruit::impl::meta::Type<ScalerImpl>>>,fruit::impl::meta::NormalizeType (__cdecl *)(fruit::impl::meta::Type<ScalerFactory>)),fruit::impl::meta::IsSame::apply<fruit::impl::meta::Type<ScalerFactory>,fruit::impl::meta::Type<ScalerFactory>>::type)),fruit::impl::meta::Comp<fruit::impl::meta::Vector<>,fruit::impl::meta::Vector<fruit::impl::meta::Type<Multiplier>>,fruit::impl::meta::Vector<fruit::impl::meta::Type<Multiplier>>,fruit::impl::meta::Vector<fruit::impl::meta::Pair<fruit::impl::meta::Type<Multiplier>,fruit::impl::meta::Vector<>>>,fruit::impl::meta::Vector<fruit::impl::meta::Pair<fruit::impl::meta::Type<Scaler>,fruit::impl::meta::Type<ScalerImpl>>>,fruit::impl::meta::EmptyList>),fruit::impl::meta::If (__cdecl *)(fruit::impl::meta::And (__cdecl *)(fruit::impl::meta::IsSame::apply<fruit::impl::meta::Type<ScalerFactory>,fruit::impl::meta::Type<ScalerFactory>>::type,fruit::impl::meta::IsInSet (__cdecl *)(fruit::impl::meta::NormalizeType (__cdecl *)(fruit::impl::meta::Type<ScalerFactory>),fruit::impl::meta::Vector<>)),fruit::impl::meta::Catch (__cdecl *)(fruit::impl::meta::Catch (__cdecl *)(fruit::impl::meta::AutoRegister (__cdecl *)(fruit::impl::meta::Comp<fruit::impl::meta::Vector<>,fruit::impl::meta::Vector<fruit::impl::meta::Type<Multiplier>>,fruit::impl::meta::Vector<fruit::impl::meta::Type<Multiplier>>,fruit::impl::meta::Vector<fruit::impl::meta::Pair<fruit::impl::meta::Type<Multiplier>,fruit::impl::meta::Vector<>>>,fruit::impl::meta::Vector<fruit::impl::meta::Pair<fruit::impl::meta::Type<Scaler>,fruit::impl::meta::Type<ScalerImpl>>>,fruit::impl::meta::EmptyList>,fruit::impl::meta::Vector<>,fruit::impl::meta::Vector<>,fruit::impl::meta::NormalizeType (__cdecl *)(fruit::impl::meta::Type<ScalerFactory>)),fruit::impl::NoBindingFoundErrorTag,fruit::impl::meta::EnsureProvidedTypeErrorHandler<fruit::impl::meta::Type<ScalerFactory>>),fruit::impl::NoBindingFoundForAbstractClassErrorTag,fruit::impl::meta::EnsureProvidedTypeErrorHandler<fruit::impl::meta::Type<ScalerFactory>>),fruit::impl::meta::AutoRegister (__cdecl *)(fruit::impl::meta::Comp<fruit::impl::meta::Vector<>,fruit::impl::meta::Vector<fruit::impl::meta::Type<Multiplier>>,fruit::impl::meta::Vector<fruit::impl::meta::Type<Multiplier>>,fruit::impl::meta::Vector<fruit::impl::meta::Pair<fruit::impl::meta::Type<Multiplier>,fruit::impl::meta::Vector<>>>,fruit::impl::meta::Vector<fruit::impl::meta::Pair<fruit::impl::meta::Type<Scaler>,fruit::impl::meta::Type<ScalerImpl>>>,fruit::impl::meta::EmptyList>,fruit::impl::meta::Vector<>,fruit::impl::meta::Vector<>,fruit::impl::meta::NormalizeType (__cdecl *)(fruit::impl::meta::Type<ScalerFactory>)))) ] F:\VisualStudio Projects\Libraries\fruit\include\fruit/impl/meta/eval.h(215): note: see reference to class template instantiation 'fruit::impl::meta::EvalIf<fruit::impl::meta::Bool<false>,ThenMetaExpr,ElseMetaExpr>' being compiled with [ ThenMetaExpr=fruit::impl::meta::ComponentFunctorIdentity (__cdecl *)(fruit::impl::meta::Comp<fruit::impl::meta::Vector<>,fruit::impl::meta::Vector<fruit::impl::meta::Type<Multiplier>>,fruit::impl::meta::Vector<fruit::impl::meta::Type<Multiplier>>,fruit::impl::meta::Vector<fruit::impl::meta::Pair<fruit::impl::meta::Type<Multiplier>,fruit::impl::meta::Vector<>>>,fruit::impl::meta::Vector<fruit::impl::meta::Pair<fruit::impl::meta::Type<Scaler>,fruit::impl::meta::Type<ScalerImpl>>>,fruit::impl::meta::EmptyList>), ElseMetaExpr=fruit::impl::meta::If (__cdecl *)(fruit::impl::meta::Not (__cdecl *)(fruit::impl::meta::IsNone (__cdecl *)(fruit::impl::meta::FindInMap (__cdecl *)(fruit::impl::meta::Vector<fruit::impl::meta::Pair<fruit::impl::meta::Type<Scaler>,fruit::impl::meta::Type<ScalerImpl>>>,fruit::impl::meta::NormalizeType (__cdecl *)(fruit::impl::meta::Type<ScalerFactory>)))),fruit::impl::meta::Call (__cdecl *)(fruit::impl::meta::ComposeFunctors (__cdecl *)(fruit::impl::meta::ComponentFunctor (__cdecl *)(fruit::impl::meta::ProcessInterfaceBinding,fruit::impl::meta::NormalizeType (__cdecl *)(fruit::impl::meta::Type<ScalerFactory>),fruit::impl::meta::FindInMap (__cdecl *)(fruit::impl::meta::Vector<fruit::impl::meta::Pair<fruit::impl::meta::Type<Scaler>,fruit::impl::meta::Type<ScalerImpl>>>,fruit::impl::meta::NormalizeType (__cdecl *)(fruit::impl::meta::Type<ScalerFactory>)),fruit::impl::meta::IsSame::apply<fruit::impl::meta::Type<ScalerFactory>,fruit::impl::meta::Type<ScalerFactory>>::type),fruit::impl::meta::ComponentFunctor (__cdecl *)(fruit::impl::meta::EnsureProvidedType,fruit::impl::meta::Vector<>,fruit::impl::meta::Vector<>,fruit::impl::meta::FindInMap (__cdecl *)(fruit::impl::meta::Vector<fruit::impl::meta::Pair<fruit::impl::meta::Type<Scaler>,fruit::impl::meta::Type<ScalerImpl>>>,fruit::impl::meta::NormalizeType (__cdecl *)(fruit::impl::meta::Type<ScalerFactory>)),fruit::impl::meta::IsSame::apply<fruit::impl::meta::Type<ScalerFactory>,fruit::impl::meta::Type<ScalerFactory>>::type)),fruit::impl::meta::Comp<fruit::impl::meta::Vector<>,fruit::impl::meta::Vector<fruit::impl::meta::Type<Multiplier>>,fruit::impl::meta::Vector<fruit::impl::meta::Type<Multiplier>>,fruit::impl::meta::Vector<fruit::impl::meta::Pair<fruit::impl::meta::Type<Multiplier>,fruit::impl::meta::Vector<>>>,fruit::impl::meta::Vector<fruit::impl::meta::Pair<fruit::impl::meta::Type<Scaler>,fruit::impl::meta::Type<ScalerImpl>>>,fruit::impl::meta::EmptyList>),fruit::impl::meta::If (__cdecl *)(fruit::impl::meta::And (__cdecl *)(fruit::impl::meta::IsSame::apply<fruit::impl::meta::Type<ScalerFactory>,fruit::impl::meta::Type<ScalerFactory>>::type,fruit::impl::meta::IsInSet (__cdecl *)(fruit::impl::meta::NormalizeType (__cdecl *)(fruit::impl::meta::Type<ScalerFactory>),fruit::impl::meta::Vector<>)),fruit::impl::meta::Catch (__cdecl *)(fruit::impl::meta::Catch (__cdecl *)(fruit::impl::meta::AutoRegister (__cdecl *)(fruit::impl::meta::Comp<fruit::impl::meta::Vector<>,fruit::impl::meta::Vector<fruit::impl::meta::Type<Multiplier>>,fruit::impl::meta::Vector<fruit::impl::meta::Type<Multiplier>>,fruit::impl::meta::Vector<fruit::impl::meta::Pair<fruit::impl::meta::Type<Multiplier>,fruit::impl::meta::Vector<>>>,fruit::impl::meta::Vector<fruit::impl::meta::Pair<fruit::impl::meta::Type<Scaler>,fruit::impl::meta::Type<ScalerImpl>>>,fruit::impl::meta::EmptyList>,fruit::impl::meta::Vector<>,fruit::impl::meta::Vector<>,fruit::impl::meta::NormalizeType (__cdecl *)(fruit::impl::meta::Type<ScalerFactory>)),fruit::impl::NoBindingFoundErrorTag,fruit::impl::meta::EnsureProvidedTypeErrorHandler<fruit::impl::meta::Type<ScalerFactory>>),fruit::impl::NoBindingFoundForAbstractClassErrorTag,fruit::impl::meta::EnsureProvidedTypeErrorHandler<fruit::impl::meta::Type<ScalerFactory>>),fruit::impl::meta::AutoRegister (__cdecl *)(fruit::impl::meta::Comp<fruit::impl::meta::Vector<>,fruit::impl::meta::Vector<fruit::impl::meta::Type<Multiplier>>,fruit::impl::meta::Vector<fruit::impl::meta::Type<Multiplier>>,fruit::impl::meta::Vector<fruit::impl::meta::Pair<fruit::impl::meta::Type<Multiplier>,fruit::impl::meta::Vector<>>>,fruit::impl::meta::Vector<fruit::impl::meta::Pair<fruit::impl::meta::Type<Scaler>,fruit::impl::meta::Type<ScalerImpl>>>,fruit::impl::meta::EmptyList>,fruit::impl::meta::Vector<>,fruit::impl::meta::Vector<>,fruit::impl::meta::NormalizeType (__cdecl *)(fruit::impl::meta::Type<ScalerFactory>)))) ] F:\VisualStudio Projects\Libraries\fruit\include\fruit/impl/meta/eval.h(191): note: see reference to class template instantiation 'fruit::impl::meta::DoEval<ElseMetaExpr>' being compiled with [ ElseMetaExpr=fruit::impl::meta::If (__cdecl *)(fruit::impl::meta::And (__cdecl *)(fruit::impl::meta::IsInSet (__cdecl *)(fruit::impl::meta::NormalizeType (__cdecl *)(fruit::impl::meta::Type<ScalerFactory>),fruit::impl::meta::Vector<>),fruit::impl::meta::Or (__cdecl *)(fruit::impl::meta::Not (__cdecl *)(fruit::impl::meta::IsSame::apply<fruit::impl::meta::Type<ScalerFactory>,fruit::impl::meta::Type<ScalerFactory>>::type),fruit::impl::meta::IsInSet (__cdecl *)(fruit::impl::meta::NormalizeType (__cdecl *)(fruit::impl::meta::Type<ScalerFactory>),fruit::impl::meta::Vector<>))),fruit::impl::meta::ComponentFunctorIdentity (__cdecl *)(fruit::impl::meta::Comp<fruit::impl::meta::Vector<>,fruit::impl::meta::Vector<fruit::impl::meta::Type<Multiplier>>,fruit::impl::meta::Vector<fruit::impl::meta::Type<Multiplier>>,fruit::impl::meta::Vector<fruit::impl::meta::Pair<fruit::impl::meta::Type<Multiplier>,fruit::impl::meta::Vector<>>>,fruit::impl::meta::Vector<fruit::impl::meta::Pair<fruit::impl::meta::Type<Scaler>,fruit::impl::meta::Type<ScalerImpl>>>,fruit::impl::meta::EmptyList>),fruit::impl::meta::If (__cdecl *)(fruit::impl::meta::Not (__cdecl *)(fruit::impl::meta::IsNone (__cdecl *)(fruit::impl::meta::FindInMap (__cdecl *)(fruit::impl::meta::Vector<fruit::impl::meta::Pair<fruit::impl::meta::Type<Scaler>,fruit::impl::meta::Type<ScalerImpl>>>,fruit::impl::meta::NormalizeType (__cdecl *)(fruit::impl::meta::Type<ScalerFactory>)))),fruit::impl::meta::Call (__cdecl *)(fruit::impl::meta::ComposeFunctors (__cdecl *)(fruit::impl::meta::ComponentFunctor (__cdecl *)(fruit::impl::meta::ProcessInterfaceBinding,fruit::impl::meta::NormalizeType (__cdecl *)(fruit::impl::meta::Type<ScalerFactory>),fruit::impl::meta::FindInMap (__cdecl *)(fruit::impl::meta::Vector<fruit::impl::meta::Pair<fruit::impl::meta::Type<Scaler>,fruit::impl::meta::Type<ScalerImpl>>>,fruit::impl::meta::NormalizeType (__cdecl *)(fruit::impl::meta::Type<ScalerFactory>)),fruit::impl::meta::IsSame::apply<fruit::impl::meta::Type<ScalerFactory>,fruit::impl::meta::Type<ScalerFactory>>::type),fruit::impl::meta::ComponentFunctor (__cdecl *)(fruit::impl::meta::EnsureProvidedType,fruit::impl::meta::Vector<>,fruit::impl::meta::Vector<>,fruit::impl::meta::FindInMap (__cdecl *)(fruit::impl::meta::Vector<fruit::impl::meta::Pair<fruit::impl::meta::Type<Scaler>,fruit::impl::meta::Type<ScalerImpl>>>,fruit::impl::meta::NormalizeType (__cdecl *)(fruit::impl::meta::Type<ScalerFactory>)),fruit::impl::meta::IsSame::apply<fruit::impl::meta::Type<ScalerFactory>,fruit::impl::meta::Type<ScalerFactory>>::type)),fruit::impl::meta::Comp<fruit::impl::meta::Vector<>,fruit::impl::meta::Vector<fruit::impl::meta::Type<Multiplier>>,fruit::impl::meta::Vector<fruit::impl::meta::Type<Multiplier>>,fruit::impl::meta::Vector<fruit::impl::meta::Pair<fruit::impl::meta::Type<Multiplier>,fruit::impl::meta::Vector<>>>,fruit::impl::meta::Vector<fruit::impl::meta::Pair<fruit::impl::meta::Type<Scaler>,fruit::impl::meta::Type<ScalerImpl>>>,fruit::impl::meta::EmptyList>),fruit::impl::meta::If (__cdecl *)(fruit::impl::meta::And (__cdecl *)(fruit::impl::meta::IsSame::apply<fruit::impl::meta::Type<ScalerFactory>,fruit::impl::meta::Type<ScalerFactory>>::type,fruit::impl::meta::IsInSet (__cdecl *)(fruit::impl::meta::NormalizeType (__cdecl *)(fruit::impl::meta::Type<ScalerFactory>),fruit::impl::meta::Vector<>)),fruit::impl::meta::Catch (__cdecl *)(fruit::impl::meta::Catch (__cdecl *)(fruit::impl::meta::AutoRegister (__cdecl *)(fruit::impl::meta::Comp<fruit::impl::meta::Vector<>,fruit::impl::meta::Vector<fruit::impl::meta::Type<Multiplier>>,fruit::impl::meta::Vector<fruit::impl::meta::Type<Multiplier>>,fruit::impl::meta::Vector<fruit::impl::meta::Pair<fruit::impl::meta::Type<Multiplier>,fruit::impl::meta::Vector<>>>,fruit::impl::meta::Vector<fruit::impl::meta::Pair<fruit::impl::meta::Type<Scaler>,fruit::impl::meta::Type<ScalerImpl>>>,fruit::impl::meta::EmptyList>,fruit::impl::meta::Vector<>,fruit::impl::meta::Vector<>,fruit::impl::meta::NormalizeType (__cdecl *)(fruit::impl::meta::Type<ScalerFactory>)),fruit::impl::NoBindingFoundErrorTag,fruit::impl::meta::EnsureProvidedTypeErrorHandler<fruit::impl::meta::Type<ScalerFactory>>),fruit::impl::NoBindingFoundForAbstractClassErrorTag,fruit::impl::meta::EnsureProvidedTypeErrorHandler<fruit::impl::meta::Type<ScalerFactory>>),fruit::impl::meta::AutoRegister (__cdecl *)(fruit::impl::meta::Comp<fruit::impl::meta::Vector<>,fruit::impl::meta::Vector<fruit::impl::meta::Type<Multiplier>>,fruit::impl::meta::Vector<fruit::impl::meta::Type<Multiplier>>,fruit::impl::meta::Vector<fruit::impl::meta::Pair<fruit::impl::meta::Type<Multiplier>,fruit::impl::meta::Vector<>>>,fruit::impl::meta::Vector<fruit::impl::meta::Pair<fruit::impl::meta::Type<Scaler>,fruit::impl::meta::Type<ScalerImpl>>>,fruit::impl::meta::EmptyList>,fruit::impl::meta::Vector<>,fruit::impl::meta::Vector<>,fruit::impl::meta::NormalizeType (__cdecl *)(fruit::impl::meta::Type<ScalerFactory>))))) ] F:\VisualStudio Projects\Libraries\fruit\include\fruit/impl/meta/eval.h(202): note: see reference to class template instantiation 'fruit::impl::meta::EvalIf<fruit::impl::meta::Bool<false>,ThenMetaExpr,ElseMetaExpr>' being compiled with [ ThenMetaExpr=fruit::impl::meta::If (__cdecl *)(fruit::impl::meta::And (__cdecl *)(fruit::impl::meta::IsSame::apply<fruit::impl::meta::Type<ScalerFactory>,fruit::impl::meta::Type<ScalerFactory>>::type,fruit::impl::meta::Not (__cdecl *)(fruit::impl::meta::IsInSet (__cdecl *)(fruit::impl::meta::NormalizeType (__cdecl *)(fruit::impl::meta::Type<ScalerFactory>),fruit::impl::meta::Vector<fruit::impl::meta::Type<Multiplier>>))),fruit::impl::meta::ConstructError (__cdecl *)(fruit::impl::NonConstBindingRequiredButConstBindingProvidedErrorTag,fruit::impl::meta::NormalizeType (__cdecl *)(fruit::impl::meta::Type<ScalerFactory>)),fruit::impl::meta::ComponentFunctorIdentity (__cdecl *)(fruit::impl::meta::Comp<fruit::impl::meta::Vector<>,fruit::impl::meta::Vector<fruit::impl::meta::Type<Multiplier>>,fruit::impl::meta::Vector<fruit::impl::meta::Type<Multiplier>>,fruit::impl::meta::Vector<fruit::impl::meta::Pair<fruit::impl::meta::Type<Multiplier>,fruit::impl::meta::Vector<>>>,fruit::impl::meta::Vector<fruit::impl::meta::Pair<fruit::impl::meta::Type<Scaler>,fruit::impl::meta::Type<ScalerImpl>>>,fruit::impl::meta::EmptyList>)), ElseMetaExpr=fruit::impl::meta::If (__cdecl *)(fruit::impl::meta::And (__cdecl *)(fruit::impl::meta::IsInSet (__cdecl *)(fruit::impl::meta::NormalizeType (__cdecl *)(fruit::impl::meta::Type<ScalerFactory>),fruit::impl::meta::Vector<>),fruit::impl::meta::Or (__cdecl *)(fruit::impl::meta::Not (__cdecl *)(fruit::impl::meta::IsSame::apply<fruit::impl::meta::Type<ScalerFactory>,fruit::impl::meta::Type<ScalerFactory>>::type),fruit::impl::meta::IsInSet (__cdecl *)(fruit::impl::meta::NormalizeType (__cdecl *)(fruit::impl::meta::Type<ScalerFactory>),fruit::impl::meta::Vector<>))),fruit::impl::meta::ComponentFunctorIdentity (__cdecl *)(fruit::impl::meta::Comp<fruit::impl::meta::Vector<>,fruit::impl::meta::Vector<fruit::impl::meta::Type<Multiplier>>,fruit::impl::meta::Vector<fruit::impl::meta::Type<Multiplier>>,fruit::impl::meta::Vector<fruit::impl::meta::Pair<fruit::impl::meta::Type<Multiplier>,fruit::impl::meta::Vector<>>>,fruit::impl::meta::Vector<fruit::impl::meta::Pair<fruit::impl::meta::Type<Scaler>,fruit::impl::meta::Type<ScalerImpl>>>,fruit::impl::meta::EmptyList>),fruit::impl::meta::If (__cdecl *)(fruit::impl::meta::Not (__cdecl *)(fruit::impl::meta::IsNone (__cdecl *)(fruit::impl::meta::FindInMap (__cdecl *)(fruit::impl::meta::Vector<fruit::impl::meta::Pair<fruit::impl::meta::Type<Scaler>,fruit::impl::meta::Type<ScalerImpl>>>,fruit::impl::meta::NormalizeType (__cdecl *)(fruit::impl::meta::Type<ScalerFactory>)))),fruit::impl::meta::Call (__cdecl *)(fruit::impl::meta::ComposeFunctors (__cdecl *)(fruit::impl::meta::ComponentFunctor (__cdecl *)(fruit::impl::meta::ProcessInterfaceBinding,fruit::impl::meta::NormalizeType (__cdecl *)(fruit::impl::meta::Type<ScalerFactory>),fruit::impl::meta::FindInMap (__cdecl *)(fruit::impl::meta::Vector<fruit::impl::meta::Pair<fruit::impl::meta::Type<Scaler>,fruit::impl::meta::Type<ScalerImpl>>>,fruit::impl::meta::NormalizeType (__cdecl *)(fruit::impl::meta::Type<ScalerFactory>)),fruit::impl::meta::IsSame::apply<fruit::impl::meta::Type<ScalerFactory>,fruit::impl::meta::Type<ScalerFactory>>::type),fruit::impl::meta::ComponentFunctor (__cdecl *)(fruit::impl::meta::EnsureProvidedType,fruit::impl::meta::Vector<>,fruit::impl::meta::Vector<>,fruit::impl::meta::FindInMap (__cdecl *)(fruit::impl::meta::Vector<fruit::impl::meta::Pair<fruit::impl::meta::Type<Scaler>,fruit::impl::meta::Type<ScalerImpl>>>,fruit::impl::meta::NormalizeType (__cdecl *)(fruit::impl::meta::Type<ScalerFactory>)),fruit::impl::meta::IsSame::apply<fruit::impl::meta::Type<ScalerFactory>,fruit::impl::meta::Type<ScalerFactory>>::type)),fruit::impl::meta::Comp<fruit::impl::meta::Vector<>,fruit::impl::meta::Vector<fruit::impl::meta::Type<Multiplier>>,fruit::impl::meta::Vector<fruit::impl::meta::Type<Multiplier>>,fruit::impl::meta::Vector<fruit::impl::meta::Pair<fruit::impl::meta::Type<Multiplier>,fruit::impl::meta::Vector<>>>,fruit::impl::meta::Vector<fruit::impl::meta::Pair<fruit::impl::meta::Type<Scaler>,fruit::impl::meta::Type<ScalerImpl>>>,fruit::impl::meta::EmptyList>),fruit::impl::meta::If (__cdecl *)(fruit::impl::meta::And (__cdecl *)(fruit::impl::meta::IsSame::apply<fruit::impl::meta::Type<ScalerFactory>,fruit::impl::meta::Type<ScalerFactory>>::type,fruit::impl::meta::IsInSet (__cdecl *)(fruit::impl::meta::NormalizeType (__cdecl *)(fruit::impl::meta::Type<ScalerFactory>),fruit::impl::meta::Vector<>)),fruit::impl::meta::Catch (__cdecl *)(fruit::impl::meta::Catch (__cdecl *)(fruit::impl::meta::AutoRegister (__cdecl *)(fruit::impl::meta::Comp<fruit::impl::meta::Vector<>,fruit::impl::meta::Vector<fruit::impl::meta::Type<Multiplier>>,fruit::impl::meta::Vector<fruit::impl::meta::Type<Multiplier>>,fruit::impl::meta::Vector<fruit::impl::meta::Pair<fruit::impl::meta::Type<Multiplier>,fruit::impl::meta::Vector<>>>,fruit::impl::meta::Vector<fruit::impl::meta::Pair<fruit::impl::meta::Type<Scaler>,fruit::impl::meta::Type<ScalerImpl>>>,fruit::impl::meta::EmptyList>,fruit::impl::meta::Vector<>,fruit::impl::meta::Vector<>,fruit::impl::meta::NormalizeType (__cdecl *)(fruit::impl::meta::Type<ScalerFactory>)),fruit::impl::NoBindingFoundErrorTag,fruit::impl::meta::EnsureProvidedTypeErrorHandler<fruit::impl::meta::Type<ScalerFactory>>),fruit::impl::NoBindingFoundForAbstractClassErrorTag,fruit::impl::meta::EnsureProvidedTypeErrorHandler<fruit::impl::meta::Type<ScalerFactory>>),fruit::impl::meta::AutoRegister (__cdecl *)(fruit::impl::meta::Comp<fruit::impl::meta::Vector<>,fruit::impl::meta::Vector<fruit::impl::meta::Type<Multiplier>>,fruit::impl::meta::Vector<fruit::impl::meta::Type<Multiplier>>,fruit::impl::meta::Vector<fruit::impl::meta::Pair<fruit::impl::meta::Type<Multiplier>,fruit::impl::meta::Vector<>>>,fruit::impl::meta::Vector<fruit::impl::meta::Pair<fruit::impl::meta::Type<Scaler>,fruit::impl::meta::Type<ScalerImpl>>>,fruit::impl::meta::EmptyList>,fruit::impl::meta::Vector<>,fruit::impl::meta::Vector<>,fruit::impl::meta::NormalizeType (__cdecl *)(fruit::impl::meta::Type<ScalerFactory>))))) ] F:\VisualStudio Projects\Libraries\fruit\include\fruit/impl/meta/eval.h(102): note: see reference to class template instantiation 'fruit::impl::meta::DoEval<fruit::impl::meta::If (fruit::impl::meta::IsInSet (__cdecl *)(fruit::impl::meta::NormalizeType (__cdecl *)(AnnotatedT),fruit::impl::meta::Vector<MetaExpr>),fruit::impl::meta::If (__cdecl *)(fruit::impl::meta::And (__cdecl *)(NonConstBindingRequired,fruit::impl::meta::Not (__cdecl *)(fruit::impl::meta::IsInSet (__cdecl *)(fruit::impl::meta::NormalizeType (__cdecl *)(AnnotatedT),fruit::impl::meta::Vector<MetaExpr>))),fruit::impl::meta::ConstructError (__cdecl *)(fruit::impl::NonConstBindingRequiredButConstBindingProvidedErrorTag,fruit::impl::meta::NormalizeType (__cdecl *)(AnnotatedT)),fruit::impl::meta::ComponentFunctorIdentity (__cdecl *)(Comp)),fruit::impl::meta::If (__cdecl *)(fruit::impl::meta::And (__cdecl *)(fruit::impl::meta::IsInSet (__cdecl *)(fruit::impl::meta::NormalizeType (__cdecl *)(AnnotatedT),TargetRequirements),fruit::impl::meta::Or (__cdecl *)(fruit::impl::meta::Not (__cdecl *)(NonConstBindingRequired),fruit::impl::meta::IsInSet (__cdecl *)(fruit::impl::meta::NormalizeType (__cdecl *)(AnnotatedT),TargetNonConstRequirements))),fruit::impl::meta::ComponentFunctorIdentity (__cdecl *)(Comp),fruit::impl::meta::If (__cdecl *)(fruit::impl::meta::Not (__cdecl *)(fruit::impl::meta::IsNone (__cdecl *)(fruit::impl::meta::FindInMap (__cdecl *)(fruit::impl::meta::Vector<T>,fruit::impl::meta::NormalizeType (__cdecl *)(AnnotatedT)))),fruit::impl::meta::Call (__cdecl *)(fruit::impl::meta::ComposeFunctors (__cdecl *)(fruit::impl::meta::ComponentFunctor (__cdecl *)(fruit::impl::meta::ProcessInterfaceBinding,fruit::impl::meta::NormalizeType (__cdecl *)(AnnotatedT),fruit::impl::meta::FindInMap (__cdecl *)(fruit::impl::meta::Vector<T>,fruit::impl::meta::NormalizeType (__cdecl *)(AnnotatedT)),NonConstBindingRequired),fruit::impl::meta::ComponentFunctor (__cdecl *)(fruit::impl::meta::EnsureProvidedType,TargetRequirements,TargetNonConstRequirements,fruit::impl::meta::FindInMap (__cdecl *)(fruit::impl::meta::Vector<T>,fruit::impl::meta::NormalizeType (__cdecl *)(AnnotatedT)),NonConstBindingRequired)),Comp),fruit::impl::meta::If (__cdecl *)(fruit::impl::meta::And (__cdecl *)(NonConstBindingRequired,fruit::impl::meta::IsInSet (__cdecl *)(fruit::impl::meta::NormalizeType (__cdecl *)(AnnotatedT),TargetRequirements)),fruit::impl::meta::Catch (__cdecl *)(fruit::impl::meta::Catch (__cdecl *)(fruit::impl::meta::AutoRegister (__cdecl *)(Comp,TargetRequirements,TargetNonConstRequirements,fruit::impl::meta::NormalizeType (__cdecl *)(AnnotatedT)),fruit::impl::NoBindingFoundErrorTag,fruit::impl::meta::EnsureProvidedTypeErrorHandler<AnnotatedT>),fruit::impl::NoBindingFoundForAbstractClassErrorTag,fruit::impl::meta::EnsureProvidedTypeErrorHandler<AnnotatedT>),fruit::impl::meta::AutoRegister (__cdecl *)(Comp,TargetRequirements,TargetNonConstRequirements,fruit::impl::meta::NormalizeType (__cdecl *)(AnnotatedT))))))>' being compiled with [ AnnotatedT=fruit::impl::meta::Type<ScalerFactory>, MetaExpr=fruit::impl::meta::Type<Multiplier>, NonConstBindingRequired=fruit::impl::meta::IsSame::apply<fruit::impl::meta::Type<ScalerFactory>,fruit::impl::meta::Type<ScalerFactory>>::type, Comp=fruit::impl::meta::Comp<fruit::impl::meta::Vector<>,fruit::impl::meta::Vector<fruit::impl::meta::Type<Multiplier>>,fruit::impl::meta::Vector<fruit::impl::meta::Type<Multiplier>>,fruit::impl::meta::Vector<fruit::impl::meta::Pair<fruit::impl::meta::Type<Multiplier>,fruit::impl::meta::Vector<>>>,fruit::impl::meta::Vector<fruit::impl::meta::Pair<fruit::impl::meta::Type<Scaler>,fruit::impl::meta::Type<ScalerImpl>>>,fruit::impl::meta::EmptyList>, TargetRequirements=fruit::impl::meta::Vector<>, TargetNonConstRequirements=fruit::impl::meta::Vector<>, T=fruit::impl::meta::Pair<fruit::impl::meta::Type<Scaler>,fruit::impl::meta::Type<ScalerImpl>> ] F:\VisualStudio Projects\Libraries\fruit\include\fruit/impl/meta/eval.h(117): note: see reference to class template instantiation 'fruit::impl::meta::DoEval<fruit::impl::meta::EnsureProvidedType (Comp,MetaExpr,MetaExpr,fruit::impl::meta::Type<ScalerFactory>,fruit::impl::meta::Bool<true>)>' being compiled with [ Comp=fruit::impl::meta::Comp<fruit::impl::meta::Vector<>,fruit::impl::meta::Vector<fruit::impl::meta::Type<Multiplier>>,fruit::impl::meta::Vector<fruit::impl::meta::Type<Multiplier>>,fruit::impl::meta::Vector<fruit::impl::meta::Pair<fruit::impl::meta::Type<Multiplier>,fruit::impl::meta::Vector<>>>,fruit::impl::meta::Vector<fruit::impl::meta::Pair<fruit::impl::meta::Type<Scaler>,fruit::impl::meta::Type<ScalerImpl>>>,fruit::impl::meta::EmptyList>, MetaExpr=fruit::impl::meta::Vector<> ] F:\VisualStudio Projects\Libraries\fruit\include\fruit/impl/meta/eval.h(236): note: see reference to class template instantiation 'fruit::impl::meta::DoEval<MaybeErrorMetaExpr>' being compiled with [ MaybeErrorMetaExpr=fruit::impl::meta::ComponentFunctor::apply<fruit::impl::meta::EnsureProvidedType,fruit::impl::meta::Vector<>,fruit::impl::meta::Vector<>,fruit::impl::meta::Type<ScalerFactory>,fruit::impl::meta::Bool<true>>::type (__cdecl *)(fruit::impl::meta::Comp<fruit::impl::meta::Vector<>,fruit::impl::meta::Vector<fruit::impl::meta::Type<Multiplier>>,fruit::impl::meta::Vector<fruit::impl::meta::Type<Multiplier>>,fruit::impl::meta::Vector<fruit::impl::meta::Pair<fruit::impl::meta::Type<Multiplier>,fruit::impl::meta::Vector<>>>,fruit::impl::meta::Vector<fruit::impl::meta::Pair<fruit::impl::meta::Type<Scaler>,fruit::impl::meta::Type<ScalerImpl>>>,fruit::impl::meta::EmptyList>) ] F:\VisualStudio Projects\Libraries\fruit\include\fruit/impl/meta/eval.h(102): note: see reference to class template instantiation 'fruit::impl::meta::DoEval<fruit::impl::meta::PropagateError (fruit::impl::meta::ComponentFunctor::apply<MetaExpr,fruit::impl::meta::Vector<>,fruit::impl::meta::Vector<>,fruit::impl::meta::Type<ScalerFactory>,fruit::impl::meta::Bool<true>>::type (__cdecl *)(Comp),fruit::impl::meta::PropagateError (__cdecl *)(fruit::impl::meta::ComponentFunctorIdentity (__cdecl *)(fruit::impl::meta::GetResult (__cdecl *)(fruit::impl::meta::ComponentFunctor::apply<MetaExpr,fruit::impl::meta::Vector<>,fruit::impl::meta::Vector<>,fruit::impl::meta::Type<ScalerFactory>,fruit::impl::meta::Bool<true>>::type (__cdecl *)(Comp))),fruit::impl::meta::Compose2ComponentFunctors::apply<fruit::impl::meta::ComponentFunctor::apply<MetaExpr,fruit::impl::meta::Vector<>,fruit::impl::meta::Vector<>,fruit::impl::meta::Type<ScalerFactory>,fruit::impl::meta::Bool<true>>::type,fruit::impl::meta::ComponentFunctorIdentity>::type::apply<Comp>::Op))>' being compiled with [ MetaExpr=fruit::impl::meta::EnsureProvidedType, Comp=fruit::impl::meta::Comp<fruit::impl::meta::Vector<>,fruit::impl::meta::Vector<fruit::impl::meta::Type<Multiplier>>,fruit::impl::meta::Vector<fruit::impl::meta::Type<Multiplier>>,fruit::impl::meta::Vector<fruit::impl::meta::Pair<fruit::impl::meta::Type<Multiplier>,fruit::impl::meta::Vector<>>>,fruit::impl::meta::Vector<fruit::impl::meta::Pair<fruit::impl::meta::Type<Scaler>,fruit::impl::meta::Type<ScalerImpl>>>,fruit::impl::meta::EmptyList> ] F:\VisualStudio Projects\Libraries\fruit\include\fruit/impl/meta/eval.h(102): note: see reference to class template instantiation 'fruit::impl::meta::DoEval<fruit::impl::meta::Call (fruit::impl::meta::FoldVector (__cdecl *)(TypesToProvide,fruit::impl::meta::EnsureProvidedTypes::apply<MetaExpr,fruit::impl::meta::Vector<>,fruit::impl::meta::Vector<>,TypesToProvide,fruit::impl::meta::Vector<fruit::impl::meta::Type<ScalerFactory>>>::Helper,fruit::impl::meta::ComponentFunctorIdentity),Comp)>' being compiled with [ TypesToProvide=fruit::impl::meta::Vector<fruit::impl::meta::Type<ScalerFactory>>, MetaExpr=fruit::impl::meta::Comp<fruit::impl::meta::Vector<>,fruit::impl::meta::Vector<fruit::impl::meta::Type<Multiplier>>,fruit::impl::meta::Vector<fruit::impl::meta::Type<Multiplier>>,fruit::impl::meta::Vector<fruit::impl::meta::Pair<fruit::impl::meta::Type<Multiplier>,fruit::impl::meta::Vector<>>>,fruit::impl::meta::Vector<fruit::impl::meta::Pair<fruit::impl::meta::Type<Scaler>,fruit::impl::meta::Type<ScalerImpl>>>,fruit::impl::meta::EmptyList>, Comp=fruit::impl::meta::Comp<fruit::impl::meta::Vector<>,fruit::impl::meta::Vector<fruit::impl::meta::Type<Multiplier>>,fruit::impl::meta::Vector<fruit::impl::meta::Type<Multiplier>>,fruit::impl::meta::Vector<fruit::impl::meta::Pair<fruit::impl::meta::Type<Multiplier>,fruit::impl::meta::Vector<>>>,fruit::impl::meta::Vector<fruit::impl::meta::Pair<fruit::impl::meta::Type<Scaler>,fruit::impl::meta::Type<ScalerImpl>>>,fruit::impl::meta::EmptyList> ] F:\VisualStudio Projects\Libraries\fruit\include\fruit/impl/meta/eval.h(102): note: see reference to class template instantiation 'fruit::impl::meta::DoEval<fruit::impl::meta::EnsureProvidedTypes (SourceComp,fruit::impl::meta::SetDifference (__cdecl *)(fruit::impl::meta::Vector<>,fruit::impl::meta::Vector<MetaExpr>),fruit::impl::meta::SetIntersection (__cdecl *)(fruit::impl::meta::SetDifference (__cdecl *)(fruit::impl::meta::Vector<>,fruit::impl::meta::Vector<MetaExpr>),fruit::impl::meta::Vector<MetaExpr>),fruit::impl::meta::SetToVector (__cdecl *)(fruit::impl::meta::SetUnion (__cdecl *)(fruit::impl::meta::SetDifference (__cdecl *)(fruit::impl::meta::SetUnion (__cdecl *)(fruit::impl::meta::Vector<MetaExpr>,fruit::impl::meta::SetDifference (__cdecl *)(fruit::impl::meta::Vector<>,fruit::impl::meta::Vector<fruit::impl::meta::Type<Multiplier>>)),fruit::impl::meta::SetUnion (__cdecl *)(fruit::impl::meta::SetDifference (__cdecl *)(fruit::impl::meta::Vector<>,fruit::impl::meta::Vector<MetaExpr>),fruit::impl::meta::Vector<fruit::impl::meta::Type<Multiplier>>)),fruit::impl::meta::SetIntersection (__cdecl *)(fruit::impl::meta::SetUnion (__cdecl *)(fruit::impl::meta::SetIntersection (__cdecl *)(fruit::impl::meta::Vector<MetaExpr>,fruit::impl::meta::Vector<MetaExpr>),fruit::impl::meta::SetIntersection (__cdecl *)(fruit::impl::meta::SetDifference (__cdecl *)(fruit::impl::meta::Vector<>,fruit::impl::meta::Vector<fruit::impl::meta::Type<Multiplier>>),fruit::impl::meta::Vector<fruit::impl::meta::Type<Multiplier>>)),fruit::impl::meta::SetUnion (__cdecl *)(fruit::impl::meta::SetDifference (__cdecl *)(fruit::impl::meta::SetDifference (__cdecl *)(fruit::impl::meta::Vector<>,fruit::impl::meta::Vector<MetaExpr>),fruit::impl::meta::Vector<MetaExpr>),fruit::impl::meta::SetDifference (__cdecl *)(fruit::impl::meta::Vector<fruit::impl::meta::Type<Multiplier>>,fruit::impl::meta::Vector<fruit::impl::meta::Type<Multiplier>>))))),fruit::impl::meta::SetIntersection (__cdecl *)(fruit::impl::meta::SetUnion (__cdecl *)(fruit::impl::meta::SetDifference (__cdecl *)(fruit::impl::meta::SetUnion (__cdecl *)(fruit::impl::meta::Vector<MetaExpr>,fruit::impl::meta::SetDifference (__cdecl *)(fruit::impl::meta::Vector<>,fruit::impl::meta::Vector<fruit::impl::meta::Type<Multiplier>>)),fruit::impl::meta::SetUnion (__cdecl *)(fruit::impl::meta::SetDifference (__cdecl *)(fruit::impl::meta::Vector<>,fruit::impl::meta::Vector<MetaExpr>),fruit::impl::meta::Vector<fruit::impl::meta::Type<Multiplier>>)),fruit::impl::meta::SetIntersection (__cdecl *)(fruit::impl::meta::SetUnion (__cdecl *)(fruit::impl::meta::SetIntersection (__cdecl *)(fruit::impl::meta::Vector<MetaExpr>,fruit::impl::meta::Vector<MetaExpr>),fruit::impl::meta::SetIntersection (__cdecl *)(fruit::impl::meta::SetDifference (__cdecl *)(fruit::impl::meta::Vector<>,fruit::impl::meta::Vector<fruit::impl::meta::Type<Multiplier>>),fruit::impl::meta::Vector<fruit::impl::meta::Type<Multiplier>>)),fruit::impl::meta::SetUnion (__cdecl *)(fruit::impl::meta::SetDifference (__cdecl *)(fruit::impl::meta::SetDifference (__cdecl *)(fruit::impl::meta::Vector<>,fruit::impl::meta::Vector<MetaExpr>),fruit::impl::meta::Vector<MetaExpr>),fruit::impl::meta::SetDifference (__cdecl *)(fruit::impl::meta::Vector<fruit::impl::meta::Type<Multiplier>>,fruit::impl::meta::Vector<fruit::impl::meta::Type<Multiplier>>)))),fruit::impl::meta::SetUnion (__cdecl *)(fruit::impl::meta::Vector<fruit::impl::meta::Type<Multiplier>>,fruit::impl::meta::Vector<MetaExpr>)))>' being compiled with [ SourceComp=fruit::impl::meta::Comp<fruit::impl::meta::Vector<>,fruit::impl::meta::Vector<fruit::impl::meta::Type<Multiplier>>,fruit::impl::meta::Vector<fruit::impl::meta::Type<Multiplier>>,fruit::impl::meta::Vector<fruit::impl::meta::Pair<fruit::impl::meta::Type<Multiplier>,fruit::impl::meta::Vector<>>>,fruit::impl::meta::Vector<fruit::impl::meta::Pair<fruit::impl::meta::Type<Scaler>,fruit::impl::meta::Type<ScalerImpl>>>,fruit::impl::meta::EmptyList>, MetaExpr=fruit::impl::meta::Type<ScalerFactory> ] F:\VisualStudio Projects\Libraries\fruit\include\fruit/impl/meta/eval.h(117): note: see reference to class template instantiation 'fruit::impl::meta::DoEval<fruit::impl::meta::ConvertComponent (Comp,MetaExpr)>' being compiled with [ Comp=fruit::impl::meta::Comp<fruit::impl::meta::Vector<>,fruit::impl::meta::Vector<fruit::impl::meta::Type<Multiplier>>,fruit::impl::meta::Vector<fruit::impl::meta::Type<Multiplier>>,fruit::impl::meta::Vector<fruit::impl::meta::Pair<fruit::impl::meta::Type<Multiplier>,fruit::impl::meta::Vector<>>>,fruit::impl::meta::Vector<fruit::impl::meta::Pair<fruit::impl::meta::Type<Scaler>,fruit::impl::meta::Type<ScalerImpl>>>,fruit::impl::meta::EmptyList>, MetaExpr=fruit::impl::meta::Comp<fruit::impl::meta::Vector<>,fruit::impl::meta::Vector<fruit::impl::meta::Type<ScalerFactory>>,fruit::impl::meta::Vector<fruit::impl::meta::Type<ScalerFactory>>,fruit::impl::meta::Vector<fruit::impl::meta::Pair<fruit::impl::meta::Type<ScalerFactory>,fruit::impl::meta::Vector<>>>,fruit::impl::meta::Vector<>,fruit::impl::meta::EmptyList> ] F:\VisualStudio Projects\Libraries\fruit\include\fruit/impl/meta/eval.h(249): note: see reference to class template instantiation 'fruit::impl::meta::DoEval<MaybeErrorMetaExpr>' being compiled with [ MaybeErrorMetaExpr=fruit::impl::meta::ComponentFunctor::apply<fruit::impl::meta::ConvertComponent,fruit::impl::meta::Comp<fruit::impl::meta::Vector<>,fruit::impl::meta::Vector<fruit::impl::meta::Type<ScalerFactory>>,fruit::impl::meta::Vector<fruit::impl::meta::Type<ScalerFactory>>,fruit::impl::meta::Vector<fruit::impl::meta::Pair<fruit::impl::meta::Type<ScalerFactory>,fruit::impl::meta::Vector<>>>,fruit::impl::meta::Vector<>,fruit::impl::meta::EmptyList>>::type (__cdecl *)(fruit::impl::meta::GetResult (__cdecl *)(fruit::impl::meta::Compose2ComponentFunctors::apply<fruit::impl::meta::Compose2ComponentFunctors::apply<fruit::impl::meta::ComponentFunctor::apply<fruit::impl::meta::AddDeferredInterfaceBinding,fruit::impl::meta::Type<Scaler>,fruit::impl::meta::Type<ScalerImpl>>::type,fruit::impl::meta::ComponentFunctor::apply<fruit::impl::meta::InstallComponentHelper,fruit::impl::meta::Type<Multiplier>>::type>::type,fruit::impl::meta::ProcessDeferredBindings>::type (__cdecl *)(fruit::impl::meta::Comp<fruit::impl::meta::Vector<>,fruit::impl::meta::Vector<>,fruit::impl::meta::Vector<>,fruit::impl::meta::Vector<>,fruit::impl::meta::Vector<>,fruit::impl::meta::EmptyList>))) ] F:\VisualStudio Projects\Libraries\fruit\include\fruit/impl/meta/eval.h(220): note: see reference to class template instantiation 'fruit::impl::meta::DoEval<ElseMetaExpr>' being compiled with [ ElseMetaExpr=fruit::impl::meta::PropagateError (__cdecl *)(fruit::impl::meta::ComponentFunctor::apply<fruit::impl::meta::ConvertComponent,fruit::impl::meta::Comp<fruit::impl::meta::Vector<>,fruit::impl::meta::Vector<fruit::impl::meta::Type<ScalerFactory>>,fruit::impl::meta::Vector<fruit::impl::meta::Type<ScalerFactory>>,fruit::impl::meta::Vector<fruit::impl::meta::Pair<fruit::impl::meta::Type<ScalerFactory>,fruit::impl::meta::Vector<>>>,fruit::impl::meta::Vector<>,fruit::impl::meta::EmptyList>>::type (__cdecl *)(fruit::impl::meta::GetResult (__cdecl *)(fruit::impl::meta::Compose2ComponentFunctors::apply<fruit::impl::meta::Compose2ComponentFunctors::apply<fruit::impl::meta::ComponentFunctor::apply<fruit::impl::meta::AddDeferredInterfaceBinding,fruit::impl::meta::Type<Scaler>,fruit::impl::meta::Type<ScalerImpl>>::type,fruit::impl::meta::ComponentFunctor::apply<fruit::impl::meta::InstallComponentHelper,fruit::impl::meta::Type<Multiplier>>::type>::type,fruit::impl::meta::ProcessDeferredBindings>::type (__cdecl *)(fruit::impl::meta::Comp<fruit::impl::meta::Vector<>,fruit::impl::meta::Vector<>,fruit::impl::meta::Vector<>,fruit::impl::meta::Vector<>,fruit::impl::meta::Vector<>,fruit::impl::meta::EmptyList>))),fruit::impl::meta::Compose2ComponentFunctors::apply<fruit::impl::meta::Compose2ComponentFunctors::apply<fruit::impl::meta::Compose2ComponentFunctors::apply<fruit::impl::meta::ComponentFunctor::apply<fruit::impl::meta::AddDeferredInterfaceBinding,fruit::impl::meta::Type<Scaler>,fruit::impl::meta::Type<ScalerImpl>>::type,fruit::impl::meta::ComponentFunctor::apply<fruit::impl::meta::InstallComponentHelper,fruit::impl::meta::Type<Multiplier>>::type>::type,fruit::impl::meta::ProcessDeferredBindings>::type,fruit::impl::meta::ComponentFunctor::apply<fruit::impl::meta::ConvertComponent,fruit::impl::meta::Comp<fruit::impl::meta::Vector<>,fruit::impl::meta::Vector<fruit::impl::meta::Type<ScalerFactory>>,fruit::impl::meta::Vector<fruit::impl::meta::Type<ScalerFactory>>,fruit::impl::meta::Vector<fruit::impl::meta::Pair<fruit::impl::meta::Type<ScalerFactory>,fruit::impl::meta::Vector<>>>,fruit::impl::meta::Vector<>,fruit::impl::meta::EmptyList>>::type>::type::apply<fruit::impl::meta::Comp<fruit::impl::meta::Vector<>,fruit::impl::meta::Vector<>,fruit::impl::meta::Vector<>,fruit::impl::meta::Vector<>,fruit::impl::meta::Vector<>,fruit::impl::meta::EmptyList>>::Op) ] F:\VisualStudio Projects\Libraries\fruit\include\fruit/impl/meta/eval.h(236): note: see reference to class template instantiation 'fruit::impl::meta::EvalPropagateError<fruit::impl::meta::Compose2ComponentFunctors::apply<fruit::impl::meta::Compose2ComponentFunctors::apply<fruit::impl::meta::ComponentFunctor::apply<MetaExpr,fruit::impl::meta::Type<I>,fruit::impl::meta::Type<C>>::type,fruit::impl::meta::ComponentFunctor::apply<fruit::impl::meta::InstallComponentHelper,fruit::impl::meta::Type<Multiplier>>::type>::type,fruit::impl::meta::ProcessDeferredBindings>::type::apply<fruit::impl::meta::Comp<RsSupersetParam,PsParam,NonConstRsPsParam,DepsParam,InterfaceBindingsParam,DeferredBindingFunctorsParam>>::Op,ElseMetaExpr>' being compiled with [ MetaExpr=fruit::impl::meta::AddDeferredInterfaceBinding, I=Scaler, C=ScalerImpl, RsSupersetParam=fruit::impl::meta::Vector<>, PsParam=fruit::impl::meta::Vector<>, NonConstRsPsParam=fruit::impl::meta::Vector<>, DepsParam=fruit::impl::meta::Vector<>, InterfaceBindingsParam=fruit::impl::meta::Vector<>, DeferredBindingFunctorsParam=fruit::impl::meta::EmptyList, ElseMetaExpr=fruit::impl::meta::PropagateError (__cdecl *)(fruit::impl::meta::ComponentFunctor::apply<fruit::impl::meta::ConvertComponent,fruit::impl::meta::Comp<fruit::impl::meta::Vector<>,fruit::impl::meta::Vector<fruit::impl::meta::Type<ScalerFactory>>,fruit::impl::meta::Vector<fruit::impl::meta::Type<ScalerFactory>>,fruit::impl::meta::Vector<fruit::impl::meta::Pair<fruit::impl::meta::Type<ScalerFactory>,fruit::impl::meta::Vector<>>>,fruit::impl::meta::Vector<>,fruit::impl::meta::EmptyList>>::type (__cdecl *)(fruit::impl::meta::GetResult (__cdecl *)(fruit::impl::meta::Compose2ComponentFunctors::apply<fruit::impl::meta::Compose2ComponentFunctors::apply<fruit::impl::meta::ComponentFunctor::apply<fruit::impl::meta::AddDeferredInterfaceBinding,fruit::impl::meta::Type<Scaler>,fruit::impl::meta::Type<ScalerImpl>>::type,fruit::impl::meta::ComponentFunctor::apply<fruit::impl::meta::InstallComponentHelper,fruit::impl::meta::Type<Multiplier>>::type>::type,fruit::impl::meta::ProcessDeferredBindings>::type (__cdecl *)(fruit::impl::meta::Comp<fruit::impl::meta::Vector<>,fruit::impl::meta::Vector<>,fruit::impl::meta::Vector<>,fruit::impl::meta::Vector<>,fruit::impl::meta::Vector<>,fruit::impl::meta::EmptyList>))),fruit::impl::meta::Compose2ComponentFunctors::apply<fruit::impl::meta::Compose2ComponentFunctors::apply<fruit::impl::meta::Compose2ComponentFunctors::apply<fruit::impl::meta::ComponentFunctor::apply<fruit::impl::meta::AddDeferredInterfaceBinding,fruit::impl::meta::Type<Scaler>,fruit::impl::meta::Type<ScalerImpl>>::type,fruit::impl::meta::ComponentFunctor::apply<fruit::impl::meta::InstallComponentHelper,fruit::impl::meta::Type<Multiplier>>::type>::type,fruit::impl::meta::ProcessDeferredBindings>::type,fruit::impl::meta::ComponentFunctor::apply<fruit::impl::meta::ConvertComponent,fruit::impl::meta::Comp<fruit::impl::meta::Vector<>,fruit::impl::meta::Vector<fruit::impl::meta::Type<ScalerFactory>>,fruit::impl::meta::Vector<fruit::impl::meta::Type<ScalerFactory>>,fruit::impl::meta::Vector<fruit::impl::meta::Pair<fruit::impl::meta::Type<ScalerFactory>,fruit::impl::meta::Vector<>>>,fruit::impl::meta::Vector<>,fruit::impl::meta::EmptyList>>::type>::type::apply<fruit::impl::meta::Comp<fruit::impl::meta::Vector<>,fruit::impl::meta::Vector<>,fruit::impl::meta::Vector<>,fruit::impl::meta::Vector<>,fruit::impl::meta::Vector<>,fruit::impl::meta::EmptyList>>::Op) ] F:\VisualStudio Projects\Libraries\fruit\include\fruit/impl/meta/eval.h(102): note: see reference to class template instantiation 'fruit::impl::meta::DoEval<fruit::impl::meta::PropagateError (fruit::impl::meta::Compose2ComponentFunctors::apply<fruit::impl::meta::Compose2ComponentFunctors::apply<fruit::impl::meta::ComponentFunctor::apply<MetaExpr,fruit::impl::meta::Type<I>,fruit::impl::meta::Type<C>>::type,fruit::impl::meta::ComponentFunctor::apply<fruit::impl::meta::InstallComponentHelper,fruit::impl::meta::Type<Multiplier>>::type>::type,fruit::impl::meta::ProcessDeferredBindings>::type (__cdecl *)(Comp),fruit::impl::meta::PropagateError (__cdecl *)(fruit::impl::meta::ComponentFunctor::apply<fruit::impl::meta::ConvertComponent,fruit::impl::meta::Comp<RsSupersetParam,PsParam,NonConstRsPsParam,DepsParam,InterfaceBindingsParam,DeferredBindingFunctorsParam>>::type (__cdecl *)(fruit::impl::meta::GetResult (__cdecl *)(fruit::impl::meta::Compose2ComponentFunctors::apply<fruit::impl::meta::Compose2ComponentFunctors::apply<fruit::impl::meta::ComponentFunctor::apply<MetaExpr,fruit::impl::meta::Type<I>,fruit::impl::meta::Type<C>>::type,fruit::impl::meta::ComponentFunctor::apply<fruit::impl::meta::InstallComponentHelper,fruit::impl::meta::Type<Multiplier>>::type>::type,fruit::impl::meta::ProcessDeferredBindings>::type (__cdecl *)(Comp))),fruit::impl::meta::Compose2ComponentFunctors::apply<fruit::impl::meta::Compose2ComponentFunctors::apply<fruit::impl::meta::Compose2ComponentFunctors::apply<fruit::impl::meta::ComponentFunctor::apply<MetaExpr,fruit::impl::meta::Type<I>,fruit::impl::meta::Type<C>>::type,fruit::impl::meta::ComponentFunctor::apply<fruit::impl::meta::InstallComponentHelper,fruit::impl::meta::Type<Multiplier>>::type>::type,fruit::impl::meta::ProcessDeferredBindings>::type,fruit::impl::meta::ComponentFunctor::apply<fruit::impl::meta::ConvertComponent,fruit::impl::meta::Comp<RsSupersetParam,PsParam,NonConstRsPsParam,DepsParam,InterfaceBindingsParam,DeferredBindingFunctorsParam>>::type>::type::apply<Comp>::Op))>' being compiled with [ MetaExpr=fruit::impl::meta::AddDeferredInterfaceBinding, I=Scaler, C=ScalerImpl, Comp=fruit::impl::meta::Comp<fruit::impl::meta::Vector<>,fruit::impl::meta::Vector<>,fruit::impl::meta::Vector<>,fruit::impl::meta::Vector<>,fruit::impl::meta::Vector<>,fruit::impl::meta::EmptyList>, RsSupersetParam=fruit::impl::meta::Vector<>, PsParam=fruit::impl::meta::Vector<fruit::impl::meta::Type<ScalerFactory>>, NonConstRsPsParam=fruit::impl::meta::Vector<fruit::impl::meta::Type<ScalerFactory>>, DepsParam=fruit::impl::meta::Vector<fruit::impl::meta::Pair<fruit::impl::meta::Type<ScalerFactory>,fruit::impl::meta::Vector<>>>, InterfaceBindingsParam=fruit::impl::meta::Vector<>, DeferredBindingFunctorsParam=fruit::impl::meta::EmptyList ] F:\VisualStudio Projects\Libraries\fruit\include\fruit/impl/component.defn.h(37): note: see reference to class template instantiation 'fruit::impl::meta::DoEval<fruit::impl::meta::Call (fruit::impl::meta::ReverseComposeFunctors (fruit::impl::meta::ComponentFunctor (fruit::impl::meta::ConvertComponent,fruit::impl::meta::Comp<RsSupersetParam,PsParam,NonConstRsPsParam,DepsParam,InterfaceBindingsParam,DeferredBindingFunctorsParam>),fruit::impl::meta::ProcessDeferredBindings,fruit::impl::meta::ProcessBinding (fruit::impl::InstallComponent<fruit::Component<Multiplier> (void)>),fruit::impl::meta::ProcessBinding (fruit::impl::Bind<Scaler,ScalerImpl>)),fruit::impl::meta::ConstructComponentImpl (void))>' being compiled with [ RsSupersetParam=fruit::impl::meta::Vector<>, PsParam=fruit::impl::meta::Vector<fruit::impl::meta::Type<ScalerFactory>>, NonConstRsPsParam=fruit::impl::meta::Vector<fruit::impl::meta::Type<ScalerFactory>>, DepsParam=fruit::impl::meta::Vector<fruit::impl::meta::Pair<fruit::impl::meta::Type<ScalerFactory>,fruit::impl::meta::Vector<>>>, InterfaceBindingsParam=fruit::impl::meta::Vector<>, DeferredBindingFunctorsParam=fruit::impl::meta::EmptyList ] F:\VisualStudio Projects\Libraries\fruit\include\fruit/impl/component.defn.h(37): note: see reference to alias template instantiation 'fruit::impl::meta::Eval<fruit::impl::meta::Call(fruit::impl::meta::ReverseComposeFunctors (fruit::impl::meta::ComponentFunctor (fruit::impl::meta::ConvertComponent,fruit::impl::meta::Comp<RsSupersetParam,PsParam,NonConstRsPsParam,DepsParam,InterfaceBindingsParam,DeferredBindingFunctorsParam>),fruit::impl::meta::ProcessDeferredBindings,fruit::impl::meta::ProcessBinding (fruit::impl::InstallComponent<fruit::Component<Multiplier> (void)>),fruit::impl::meta::ProcessBinding (fruit::impl::Bind<Scaler,ScalerImpl>)),fruit::impl::meta::ConstructComponentImpl (void))>' being compiled with [ RsSupersetParam=fruit::impl::meta::Vector<>, PsParam=fruit::impl::meta::Vector<fruit::impl::meta::Type<ScalerFactory>>, NonConstRsPsParam=fruit::impl::meta::Vector<fruit::impl::meta::Type<ScalerFactory>>, DepsParam=fruit::impl::meta::Vector<fruit::impl::meta::Pair<fruit::impl::meta::Type<ScalerFactory>,fruit::impl::meta::Vector<>>>, InterfaceBindingsParam=fruit::impl::meta::Vector<>, DeferredBindingFunctorsParam=fruit::impl::meta::EmptyList ] F:\VisualStudio Projects\Libraries\fruit\include\fruit/impl/component.defn.h(55): note: see reference to alias template instantiation 'fruit::impl::meta::OpForComponent<fruit::impl::InstallComponent<fruit::Component<Multiplier> (void)>,fruit::impl::Bind<Scaler,ScalerImpl>>::ConvertTo<fruit::impl::meta::Comp<RsSupersetParam,PsParam,NonConstRsPsParam,DepsParam,InterfaceBindingsParam,DeferredBindingFunctorsParam>>' being compiled with [ RsSupersetParam=fruit::impl::meta::Vector<>, PsParam=fruit::impl::meta::Vector<fruit::impl::meta::Type<ScalerFactory>>, NonConstRsPsParam=fruit::impl::meta::Vector<fruit::impl::meta::Type<ScalerFactory>>, DepsParam=fruit::impl::meta::Vector<fruit::impl::meta::Pair<fruit::impl::meta::Type<ScalerFactory>,fruit::impl::meta::Vector<>>>, InterfaceBindingsParam=fruit::impl::meta::Vector<>, DeferredBindingFunctorsParam=fruit::impl::meta::EmptyList ] F:\VisualStudio Projects\Libraries\fruit\examples\scaling_doubles\scaler.cpp(38): note: see reference to function template instantiation 'fruit::Component<ScalerFactory>::Component<fruit::impl::InstallComponent<fruit::Component<Multiplier> (void)>,fruit::impl::Bind<Scaler,ScalerImpl>>(fruit::PartialComponent<fruit::impl::InstallComponent<fruit::Component<Multiplier> (void)>,fruit::impl::Bind<Scaler,ScalerImpl>> &&) noexcept' being compiled F:\VisualStudio Projects\Libraries\fruit\examples\scaling_doubles\scaler.cpp(38): note: see reference to function template instantiation 'fruit::Component<ScalerFactory>::Component<fruit::impl::InstallComponent<fruit::Component<Multiplier> (void)>,fruit::impl::Bind<Scaler,ScalerImpl>>(fruit::PartialComponent<fruit::impl::InstallComponent<fruit::Component<Multiplier> (void)>,fruit::impl::Bind<Scaler,ScalerImpl>> &&) noexcept' being compiled

Error 2 and 3 (same line:)
F:\VisualStudio Projects\Libraries\fruit\include\fruit\impl\component_functors.defn.h(455): error C3536: 'object_provider': cannot be used before it is initialized F:\VisualStudio Projects\Libraries\fruit\include\fruit\impl\component_functors.defn.h(455): error C2440: '<function-style-cast>': cannot convert from 'int' to 'std::function<Signature>' with [ Signature=std::unique_ptr<ScalerImpl,std::default_delete<ScalerImpl>> (double) ] F:\VisualStudio Projects\Libraries\fruit\include\fruit/impl/component_functors.defn.h(455): note: No constructor could take the source type, or constructor overload resolution was ambiguous

I started off with Visual Studio 2019 as thats what I'm targetting, and when that didn't work I tried VS2022, and when that failed I tried VS2022 Preview seeing as another cmake project I tried to build failed with the standard VS2022 version but succeeded in the Preview.

However I can only build the project if I used GCC, but the codebase I want to use it with is all in VS2019

@poletti-marco
Copy link
Contributor

Hi, I just tried building the latest HEAD with MSVC 2019 and it builds fine.

To be precise, I used VS 2022 but setting it up to use MSVC 2019.
For some reason, my VS 2019 installation doesn't seem to work anymore (I get a BSOD). It's probably an issue with my installation and unrelated to Fruit.

I used this CMakeSettings.json:

{
  "configurations": [
    {
      "name": "x64-Release MSVC 2019",
      "generator": "Visual Studio 16 2019 Win64",
      "configurationType": "Release",
      "buildRoot": "${projectDir}\\out\\build\\${name}",
      "cmakeCommandArgs": "-DFRUIT_USES_BOOST=False",
      "buildCommandArgs": "",
      "intelliSenseMode": "windows-msvc-x64"
    }
  ]
}

Were you building from HEAD or from the last release?
If you used the last release, I recommend you try HEAD.

Can you provide some more details on how you built it, e.g. posting the CMakeSettings.json and any other configuration / commands that you used?
Then I can try to reproduce the issue using those instructions.

Thanks

@IrisPeter
Copy link
Author

IrisPeter commented Feb 14, 2022

In CMakeLists.txt

Before the project(FRUIT... line I added:

Visual Studio 2022

cmake_minimum_required(VERSION 3.21)

Visual Studio 2019

#cmake_minimum_required(VERSION 3.20)

The line after I added set(CMAKE_VERBOSE_MAKEFILE ON)

I seem to have a CMakePresetts.json rather than a CMakeSettings.json.

The setting for MSVC is:

      "displayName": "Windows x64 Debug",
      "description": "Target Windows with the Visual Studio development environment.",
      "generator": "Ninja",
      "binaryDir": "${sourceDir}/out/build/${presetName}",
      "architecture": {
        "value": "x64",
        "strategy": "external"
      },
      "cacheVariables": {
        "CMAKE_BUILD_TYPE": "Debug",
        "CMAKE_INSTALL_PREFIX": "${sourceDir}/out/install/${presetName}"`
      },
      "vendor": { "microsoft.com/VisualStudioSettings/CMake/1.0": { "hostOS": [ "Windows" ] } }

I have been building fruit with Boost, and I cloned the repository via the Visual Studio Start Window on the 8th.

@IrisPeter
Copy link
Author

@poletti-marco Is there any more information you would like me to supply?

@IrisPeter IrisPeter reopened this Apr 7, 2022
@IrisPeter
Copy link
Author

@poletti-marco hit the wrong button, still trying to get to the bottom of this

@IrisPeter
Copy link
Author

Hi @poletti-marco,

I've just spotted the releases page https://github.com/google/fruit/releases/tag/v3.6.0

Once I extracted the attached Zip File, and modified the CMakeLists.txt to target my current Visual Studio's. I was able to install the fruit library successfully.

I haven't yet attempted to build any of the samples with it because I haven't had enough time in the work day to get it done, however I did also manage to build the samples against the vcpkg, using "Project from existing code", to create the projects, and the vcpkg project integration, and through that I was able to combine and run the samples

@poletti-marco
Copy link
Contributor

poletti-marco commented May 3, 2022 via email

@IrisPeter
Copy link
Author

@poletti-marco

I think we can probably close this issue, as it doesn't exist in the last released version of fruit-3.6.0, it only occurs when cloning the current state of the repository.

Or would you like it to stay open to log the fact there is a problem specific to MSVC in the repository as it stands?

@poletti-marco
Copy link
Contributor

poletti-marco commented May 20, 2022 via email

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants