Boost-users
Threads by month
- ----- 2025 -----
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2008 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2007 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2006 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2005 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2004 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2003 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2002 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2001 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2000 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1999 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1998 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1997 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- 28292 discussions
Hello,
I am working on some trajectory calculations, and having a strange
compiler error. First, great that I should get a compiler error at
all! Second, what am I missing?
quantity<acceleration> g() {
static const auto gValue = static_cast<double>(9.812);
static const auto metersPerSecondPerSecond = meters / second / second;
static const quantity<acceleration> g = gValue*metersPerSecondPerSecond;
return g;
}
double Class1::CalculateZeta(double timeMilliseconds, double heightMeters) {
static const auto two = static_cast<double>(2);
static const auto milliseconds = milli*seconds;
const auto t = timeMilliseconds*milliseconds;
const auto h = heightMeters*meters;
const auto g_ = g();
auto result = -(g_ / two)*(t*t) + h;
return result.value();
}
Just if I did the dimensional analysis, I might expect the time
components (i.e. T^2) to cancel themselves out, which should leave me
with length+length, no?
This is exposed via a C++ CLR (VS2013), but the Boost.Units are done internally.
What am I missing here? I need to normalize the units, say to meters, etc?
Best regards,
Michael Powell
Errors:
Error 4 error C2676: binary '+' :
'boost::units::quantity<boost::units::unit<boost::units::list<boost::units::dim<Derived,boost::units::static_rational<1,1>>,boost::units::dimensionless_type>,boost::units::heterogeneous_system<boost::units::heterogeneous_system_impl<boost::units::list<boost::units::heterogeneous_system_dim<boost::units::si::meter_base_unit,boost::units::static_rational<1,1>>,boost::units::dimensionless_type>,boost::units::list<boost::units::dim<Derived,boost::units::static_rational<1,1>>,boost::units::dimensionless_type>,boost::units::list<boost::units::scale_list_dim<Scale>,boost::units::dimensionless_type>>>,void>,double>'
does not define this operator or a conversion to a type acceptable to
the predefined operator
I:\Source\Spikes\Kingdom.Physics\src\Kingdom.Physics.Calculators\Class1.cpp
43 1 Kingdom.Physics.Calculators
Error 2 error C2784:
'add_typeof_helper<boost::units::unit<Dim1,System1,void>,boost::units::unit<Dim2,System2,void>>::type
boost::units::operator +(const boost::units::unit<Dim1,System1,void>
&,const boost::units::unit<Dim2,System2,void> &)' : could not deduce
template argument for 'const boost::units::unit<Dim1,System1,void> &'
from 'boost::units::quantity<boost::units::unit<boost::units::list<boost::units::dim<Derived,boost::units::static_rational<1,1>>,boost::units::dimensionless_type>,boost::units::heterogeneous_system<boost::units::heterogeneous_system_impl<boost::units::list<boost::units::heterogeneous_system_dim<boost::units::si::meter_base_unit,boost::units::static_rational<1,1>>,boost::units::dimensionless_type>,boost::units::list<boost::units::dim<Derived,boost::units::static_rational<1,1>>,boost::units::dimensionless_type>,boost::units::list<boost::units::scale_list_dim<Scale>,boost::units::dimensionless_type>>>,void>,double>'
I:\Source\Spikes\Kingdom.Physics\src\Kingdom.Physics.Calculators\Class1.cpp
43 1 Kingdom.Physics.Calculators
Error 3 error C2893: Failed to specialize function template
'add_typeof_helper<boost::units::quantity<Unit1,X>,boost::units::quantity<Unit2,Y>>::type
boost::units::operator +(const boost::units::quantity<Unit1,X> &,const
boost::units::quantity<Unit2,Y> &)'
I:\Source\Spikes\Kingdom.Physics\src\Kingdom.Physics.Calculators\Class1.cpp
43 1 Kingdom.Physics.Calculators
5 IntelliSense: no operator "+" matches these operands
operand types are:
boost::units::quantity<boost::units::unit<boost::units::list<boost::units::dim<boost::units::length_base_dimension,
boost::units::static_rational<1L, 1L>>,
boost::units::dimensionless_type>,
boost::units::heterogeneous_system<boost::units::heterogeneous_system_impl<boost::units::list<boost::units::heterogeneous_system_dim<boost::units::si::meter_base_unit,
boost::units::static_rational<1L, 1L>>,
boost::units::dimensionless_type>,
boost::units::list<boost::units::dim<boost::units::length_base_dimension,
boost::units::static_rational<1L, 1L>>,
boost::units::dimensionless_type>,
boost::units::list<boost::units::scale_list_dim<boost::units::scale<10L,
boost::units::static_rational<-6L, 1L>>>,
boost::units::dimensionless_type>>>, void>, double> + const
boost::units::quantity<boost::units::unit<boost::units::length_dimension,
boost::units::si::system, void>, double>
i:\Source\Spikes\Kingdom.Physics\src\Kingdom.Physics.Calculators\Class1.cpp
43 49 Kingdom.Physics.Calculators
3
7
1
0
Hello,
I'd like to calculate air density at altitude. Studying some notes on wikipedia:
https://en.wikipedia.org/wiki/Density_of_air
Symbol is typically Greek Rho, whose dimensions are generally M/L^3;
units will probably be kg/m^3, although I am also reading about
slugs/ft^3.
Which incorporates a gas constant value:
http://en.wikipedia.org/wiki/Gas_constant
Whose units appear to be Joules/(Volume*Temp).
I'm not seeing anything too terribly exotic there; all these units /
dimensions are present in Boost.Units?
As is usually the case, it is interesting to see how the units library
"reduces" the units during code writing, compilation. Very impressive
indeed.
Thank you...
Best regards,
Michael Powell
1
4
Hello Units community,
Please enable the Github issues.
I've a clone of the repo and done so for mine.
Also see reported issue as an example how to visualize:
https://github.com/mwpowellhtx/units/issues/1
Kudos to http://latex.codecogs.com/ for a neat looking presentation.
Thank you...
Best regards,
Michael Powell
1
0
Release candidate files for 1.59.0 are available at:
http://boost.cowic.de/rc/
(rc1 failed a smoke test)
As always, the release managers would appreciate it if you download
the candidate of your choice and give building it a try. Please report
both success and failure, and anything else that is noteworthy.
This helps ensure the candidates build OK before we push them out to
SourceForge.
The files (and associated md5s) are:
MD5 (boost_1_59_0_rc2.7z) = 1854999b8d32ba89acbf4384fe55e0ab
MD5 (boost_1_59_0_rc2.tar.bz2) = 1783f07dd4736ffd9fc97874ce4ef4bf
MD5 (boost_1_59_0_rc2.tar.gz) = 47e6db09fd7e1265b9b7046f654e9a72
MD5 (boost_1_59_0_rc2.zip) = 9061c5bbc3399f3f220036e896c202aa
Thanks!
-- The release managers
P.S. Release notes are here:
http://www.boost.org/users/history/version_1_59_0.html
3
4
Hello,
Here's a crazy question.
I am exploring what to do with a simulation calculator, for
dimensional analysis, dimensional safety, and potentially adopting
Boost.Unit to help with that.
What with the decomposition of Boost into Git Submodules, and since
Boost.Units is header only (yes?), do I really need the whole library,
or I could just adopt a Boost.Unit submodule and include it as
appropriate?
Thanks in advance...
Best regards,
Michael Powell
1
1
I'd like a combiner to return the slot iterator as a range.
1. What is the type of the iterator? (any exposed meta function to get
this? I couldn't see in the docs)
2. Are the itertors valid after the combiner returns?
3. Is this already possible without a custom combiner?
E.g.
template<class T>
struct MyRangeCombiner
{
typedef boost::iterator_range< some_meta<T>::type > result_type;
template<class It>
result_type operator()(It begin, It end) const {
return boost::make_iterator_range(begin,end);
}
};
class ComboSlot
{
public:
void method1(int i) {..}
void method2(double d) {..}
};
boost::signals2::signal< ComboSlot&() , MyRangeCombiner<ComboSlot> > sig;
// in use
for( ComboSlot& cs : sig() ) {
cs.method1(3);
cs.method2(3.14);
}
A broader picture is the following: More often than not I have a family
of events (signals). The slots are connected in groups, such as the the
ComboSlot above. One straightforward implementation is to maintain
different signals for every method:
ComboSlot cs;
boost::signals2::signal< void(int) > sigMethod1;
boost::signals2::signal< void(double) > sigMethod2;
sigMethod1.connect( &ComboSlot::method1, _1 );
sigMethod2.connect( &ComboSlot::method2, _1 );
...
There is quite a bit of waste associated with above. Not only it requires
more code, but also we know for sure that if method1 is connected, so will
method2, and they will be connected to slots who calls the corresponding
method on the same ComboSlot.
One other alternative is to write a combiner which loops and calls the
method within operator(). Returning a range would be a better alternative.
Thanks
Nick
2
5
Hi folks,
I have some code making use of both Boost MPL (and Variant) with
occasional use of lexical_cast in some translation units. This is
working fine on Linux/Unix/MacOS X with a wide range of GCC and clang
versions. However, when porting to Windows with MS Visual Studio 2013
and Boost 1.58, I've encountered an unexpected and subtle interaction
with the MPL and Boost headers. If I include them in the "wrong" order
it leads to bizarre compile errors.
After many hours of testing, I've reduced the failure down to the
minimal testcase below. In the code sample below, there are two
#includes for boost/lexical_cast.hpp. If the first is uncommented,
compiling fails. If this is commented and the second is uncommented,
compiling succeeds! The odd thing: the critical place is before and
after defining BOOST_MPL_LIMIT_VECTOR_SIZE. In the failure case the
limit size is 20, when succeeding it's 40. The code below requires more
than 20 to successfully compile.
While it's fairly obvious with hindsight that lexical_cast is indirectly
including boost/mpl/limits/vector.hpp which is defaulting the limit to
20, the fact that the behaviour is differing between compilers is a bit
unexpected, particularly since I don't want to mess with the limit if
already set in case the users of my library need a higher limit, but
they might have used lexical_cast themselves.
Has anyone else run into this type of problem before? It's also made me
realise that using variant with MPL lists might be problematic if the
end user changes the limit and this changes the underlying type? Should
I just use vector40.hpp and ignore the limit? If I did this, do I need
to worry about the intermediate types in the code below, or do I just
need to use vector40 in place of vector<> (or in place of
vector0<>)--I'm unsure how insert_range knows which type to use or is it
vector0 in this case and I should be "allocating" space by using a
different type? [I am using vector<> in reality but tried vector0 here
to see if it made a difference]
Thanks all,
Roger
----source--------------------------------------------------------------
#include <string>
#include <vector>
#include <cstdint>
# ifndef BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
/// Disable MPL header preprocessing (to allow the following macros to
be modified).
# define BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
# endif
#include <boost/lexical_cast.hpp>
# ifndef BOOST_MPL_LIMIT_VECTOR_SIZE
/// MPL vector size limit increase.
# define BOOST_MPL_LIMIT_VECTOR_SIZE 40
# endif
//#include <boost/lexical_cast.hpp>
# ifndef BOOST_MPL_LIMIT_LIST_SIZE
/// MPL list size limit increase.
# define BOOST_MPL_LIMIT_LIST_SIZE 40
# endif
#include <boost/mpl/insert_range.hpp>
#include <boost/mpl/joint_view.hpp>
#include <boost/mpl/transform_view.hpp>
#include <boost/mpl/vector.hpp>
#include <boost/mpl/vector/vector0.hpp>
#include <boost/version.hpp>
#if BOOST_VERSION >= 105800
# include <boost/type_traits/remove_cv.hpp>
#endif
typedef boost::mpl::vector<std::string,
bool> non_numeric_types;
typedef boost::mpl::vector<uint8_t,
uint16_t,
uint32_t,
uint64_t,
int8_t,
int16_t,
int32_t,
int64_t> integer_types;
typedef boost::mpl::vector<float,
double,
long double> float_types;
typedef boost::mpl::joint_view<integer_types,
float_types>::type numeric_types_view;
typedef boost::mpl::joint_view<non_numeric_types,
numeric_types_view>::type basic_types_view;
template<typename T>
struct make_vector
{
typedef std::vector<T> type;
};
typedef boost::mpl::transform_view<basic_types_view,
make_vector<boost::mpl::_1> >::type list_types_view;
typedef boost::mpl::joint_view<basic_types_view, list_types_view>
all_types_view;
typedef boost::mpl::insert_range<boost::mpl::vector0<>,
boost::mpl::end<boost::mpl::vector0<> >::type, all_types_view>::type
discriminated_types;
------------------------------------------------------------------------
----error log-----------------------------------------------------------
1> Environment Variables passed to tool:
1> VS_UNICODE_OUTPUT=1500
1> C:\Program Files (x86)\Microsoft Visual Studio
12.0\VC\bin\x86_amd64\CL.exe /c
/I"D:\bioformats\cpp\cmake\..\ext\gtest-1.7.0\include"
/ID:\bioformats\cpp\lib /I"D:\bioformats\v1\bioformats-build\cpp\lib"
/I"D:\bioformats\v1\superbuild-install\include\boost-1_58"
/I"D:\bioformats\v1\superbuild-install\include" /Zi /nologo /W3 /WX- /Od
/Ob0 /D WIN32 /D _WINDOWS /D _DEBUG /D BOOST_ALL_DYN_LINK /D
BOOST_ALL_NO_LIB /D _CRT_SECURE_NO_WARNINGS /D "CMAKE_INTDIR=\"Debug\""
/D _MBCS /Gm- /EHsc /RTC1 /MDd /GS /fp:precise /Zc:wchar_t /Zc:forScope
/GR /Fo"testinclude.dir\Debug\\" /Fd"testinclude.dir\Debug\vc120.pdb"
/Gd /TP /errorReport:prompt /bigobj
"D:\bioformats\cpp\test\ome-bioformats\testinclude.cpp"
1> Tracking command:
1> C:\Program Files (x86)\MSBuild\12.0\bin\Tracker.exe /d "C:\Program
Files (x86)\MSBuild\12.0\bin\FileTracker.dll" /i
D:\bioformats\v1\bioformats-build\cpp\test\ome-bioformats\testinclude.dir\Debug\testinclude.tlog
/r D:\BIOFORMATS\CPP\TEST\OME-BIOFORMATS\TESTINCLUDE.CPP /b
MSBuildConsole_CancelEventa3d26d0a2f3141fdad0e9cdd682fa900 /c
"C:\Program Files (x86)\Microsoft Visual Studio
12.0\VC\bin\x86_amd64\CL.exe" /c
/I"D:\bioformats\cpp\cmake\..\ext\gtest-1.7.0\include"
/ID:\bioformats\cpp\lib /I"D:\bioformats\v1\bioformats-build\cpp\lib"
/I"D:\bioformats\v1\superbuild-install\include\boost-1_58"
/I"D:\bioformats\v1\superbuild-install\include" /Zi /nologo /W3 /WX- /Od
/Ob0 /D WIN32 /D _WINDOWS /D _DEBUG /D BOOST_ALL_DYN_LINK /D
BOOST_ALL_NO_LIB /D _CRT_SECURE_NO_WARNINGS /D "CMAKE_INTDIR=\"Debug\""
/D _MBCS /Gm- /EHsc /RTC1 /MDd /GS /fp:precise /Zc:wchar_t /Zc:forScope
/GR /Fo"testinclude.dir\Debug\\" /Fd"testinclude.dir\Debug\vc120.pdb"
/Gd /TP /errorReport:prompt /bigobj
"D:\bioformats\cpp\test\ome-bioformats\testinclude.cpp"
1> testinclude.cpp
1>D:\bioformats\v1\superbuild-install\include\boost-1_58\boost/mpl/aux_/push_front_impl.hpp(45):
error C2664: 'int
boost::mpl::assertion_failed<false>(boost::mpl::assert<false>::type)' :
cannot convert argument 1 from 'boost::mpl::failed ************(__cdecl
boost::mpl::push_front_impl<boost::mpl::aux::vector_tag<20>>::apply<Sequence,T>::REQUESTED_PUSH_FRONT_SPECIALIZATION_FOR_SEQUENCE_DOES_NOT_EXIST::*
***********)(Sequence)' to 'boost::mpl::assert<false>::type'
1> with
1> [
1> Sequence=boost::mpl::vector20<signed
char,short,int,__int64,float,double,long
double,std::vector<std::basic_string<char,std::char_traits<char>,std::allocator<char>>,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char>>>>,std::vector<bool,std::allocator<bool>>,std::vector<unsigned
char,std::allocator<unsigned char>>,std::vector<unsigned
short,std::allocator<char16_t>>,std::vector<unsigned
int,std::allocator<char32_t>>,std::vector<unsigned
__int64,std::allocator<unsigned __int64>>,std::vector<signed
char,std::allocator<signed
char>>,std::vector<short,std::allocator<short>>,std::vector<int,std::allocator<int>>,std::vector<__int64,std::allocator<__int64>>,std::vector<float,std::allocator<float>>,std::vector<double,std::allocator<double>>,std::vector<long
double,std::allocator<long double>>>
1> , T=unsigned __int64
1> ]
1> No constructor could take the source type, or constructor
overload resolution was ambiguous
1>
D:\bioformats\v1\superbuild-install\include\boost-1_58\boost/mpl/push_front.hpp(32)
: see reference to class template instantiation
'boost::mpl::push_front_impl<boost::mpl::aux::vector_tag<20>>::apply<Sequence,T>'
being compiled
1> with
1> [
1> Sequence=boost::mpl::vector20<signed
char,short,int,__int64,float,double,long
double,std::vector<std::basic_string<char,std::char_traits<char>,std::allocator<char>>,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char>>>>,std::vector<bool,std::allocator<bool>>,std::vector<unsigned
char,std::allocator<unsigned char>>,std::vector<unsigned
short,std::allocator<char16_t>>,std::vector<unsigned
int,std::allocator<char32_t>>,std::vector<unsigned
__int64,std::allocator<unsigned __int64>>,std::vector<signed
char,std::allocator<signed
char>>,std::vector<short,std::allocator<short>>,std::vector<int,std::allocator<int>>,std::vector<__int64,std::allocator<__int64>>,std::vector<float,std::allocator<float>>,std::vector<double,std::allocator<double>>,std::vector<long
double,std::allocator<long double>>>
1> , T=unsigned __int64
1> ]
1>
D:\bioformats\v1\superbuild-install\include\boost-1_58\boost/mpl/push_front.hpp(47)
: see reference to class template instantiation
'boost::mpl::push_front<T1,T2>' being compiled
1> with
1> [
1> T1=boost::mpl::vector20<signed
char,short,int,__int64,float,double,long
double,std::vector<std::basic_string<char,std::char_traits<char>,std::allocator<char>>,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char>>>>,std::vector<bool,std::allocator<bool>>,std::vector<unsigned
char,std::allocator<unsigned char>>,std::vector<unsigned
short,std::allocator<char16_t>>,std::vector<unsigned
int,std::allocator<char32_t>>,std::vector<unsigned
__int64,std::allocator<unsigned __int64>>,std::vector<signed
char,std::allocator<signed
char>>,std::vector<short,std::allocator<short>>,std::vector<int,std::allocator<int>>,std::vector<__int64,std::allocator<__int64>>,std::vector<float,std::allocator<float>>,std::vector<double,std::allocator<double>>,std::vector<long
double,std::allocator<long double>>>
1> , T2=unsigned __int64
1> ]
1>
D:\bioformats\v1\superbuild-install\include\boost-1_58\boost/mpl/apply_wrap.hpp(145)
: see reference to class template instantiation
'boost::mpl::push_front<boost::mpl::na,boost::mpl::na>::apply<T1,T2,boost::mpl::na,boost::mpl::na,boost::mpl::na>'
being compiled
1> with
1> [
1> T1=boost::mpl::vector20<signed
char,short,int,__int64,float,double,long
double,std::vector<std::basic_string<char,std::char_traits<char>,std::allocator<char>>,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char>>>>,std::vector<bool,std::allocator<bool>>,std::vector<unsigned
char,std::allocator<unsigned char>>,std::vector<unsigned
short,std::allocator<char16_t>>,std::vector<unsigned
int,std::allocator<char32_t>>,std::vector<unsigned
__int64,std::allocator<unsigned __int64>>,std::vector<signed
char,std::allocator<signed
char>>,std::vector<short,std::allocator<short>>,std::vector<int,std::allocator<int>>,std::vector<__int64,std::allocator<__int64>>,std::vector<float,std::allocator<float>>,std::vector<double,std::allocator<double>>,std::vector<long
double,std::allocator<long double>>>
1> , T2=unsigned __int64
1> ]
1>
D:\bioformats\v1\superbuild-install\include\boost-1_58\boost/mpl/apply.hpp(154)
: see reference to class template instantiation
'boost::mpl::apply_wrap2<boost::mpl::lambda<F,boost::mpl::void_>::type,T1,T2>'
being compiled
1> with
1> [
1> F=boost::mpl::push_front<boost::mpl::na,boost::mpl::na>
1> , T1=boost::mpl::vector20<signed
char,short,int,__int64,float,double,long
double,std::vector<std::basic_string<char,std::char_traits<char>,std::allocator<char>>,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char>>>>,std::vector<bool,std::allocator<bool>>,std::vector<unsigned
char,std::allocator<unsigned char>>,std::vector<unsigned
short,std::allocator<char16_t>>,std::vector<unsigned
int,std::allocator<char32_t>>,std::vector<unsigned
__int64,std::allocator<unsigned __int64>>,std::vector<signed
char,std::allocator<signed
char>>,std::vector<short,std::allocator<short>>,std::vector<int,std::allocator<int>>,std::vector<__int64,std::allocator<__int64>>,std::vector<float,std::allocator<float>>,std::vector<double,std::allocator<double>>,std::vector<long
double,std::allocator<long double>>>
1> , T2=unsigned __int64
1> ]
1>
D:\bioformats\v1\superbuild-install\include\boost-1_58\boost/mpl/aux_/reverse_fold_impl_body.hpp(151)
: see reference to class template instantiation
'boost::mpl::apply2<BackwardOp,boost::mpl::vector20<T,short,int,__int64,float,double,long
double,std::vector<std::basic_string<char,std::char_traits<char>,std::allocator<char>>,std::allocator<_Ty>>,std::vector<bool,std::allocator<bool>>,std::vector<unsigned
char,std::allocator<unsigned char>>,std::vector<unsigned
short,std::allocator<char16_t>>,std::vector<unsigned
int,std::allocator<char32_t>>,std::vector<unsigned
__int64,std::allocator<unsigned
__int64>>,std::vector<T,std::allocator<signed
char>>,std::vector<short,std::allocator<short>>,std::vector<int,std::allocator<int>>,std::vector<__int64,std::allocator<__int64>>,std::vector<float,std::allocator<float>>,std::vector<double,std::allocator<double>>,std::vector<long
double,std::allocator<long double>>>,unsigned __int64>' being compiled
1> with
1> [
1> BackwardOp=boost::mpl::push_front<boost::mpl::na,boost::mpl::na>
1> , T=signed char
1> ,
_Ty=std::basic_string<char,std::char_traits<char>,std::allocator<char>>
1> ]
1>
D:\bioformats\v1\superbuild-install\include\boost-1_58\boost/mpl/aux_/reverse_fold_impl_body.hpp(149)
: see reference to class template instantiation
'boost::mpl::aux::reverse_fold_impl<-1,boost::mpl::joint_iter<L1,L1,boost::mpl::joint_iter<boost::mpl::joint_iter<boost::mpl::joint_iter<boost::mpl::v_iter<boost::mpl::vector2<T0,T1>,2>,boost::mpl::v_iter<boost::mpl::vector2<T0,T1>,2>,boost::mpl::joint_iter<boost::mpl::v_iter<Vector,3>,boost::mpl::v_iter<Vector,8>,I2>>,boost::mpl::joint_iter<boost::mpl::v_iter<boost::mpl::vector2<T0,T1>,2>,boost::mpl::v_iter<boost::mpl::vector2<T0,T1>,2>,boost::mpl::joint_iter<boost::mpl::v_iter<Vector,8>,boost::mpl::v_iter<Vector,8>,boost::mpl::v_iter<boost::mpl::vector3<float,double,T2>,3>>>,boost::mpl::aux::transform_iter<boost::mpl::joint_iter<boost::mpl::v_iter<boost::mpl::vector2<T0,T1>,0>,boost::mpl::v_iter<boost::mpl::vector2<T0,T1>,2>,boost::mpl::joint_iter<boost::mpl::v_iter<Vector,0>,boost::mpl::v_iter<Vector,8>,boost::mpl::v_iter<boost::mpl::vector3<float,double,T2>,0>>>,boost::mpl::joint_iter<boost::mpl::v_iter<boost::mpl::vector2<T0,T1>,2>,boost::mpl::v_iter<boost::mpl::vector2<T0,T1>,
2>,boost::mpl::joint_iter<boost::mpl::v_iter<Vector,8>,boost::mpl::v_iter<Vector,8>,boost::mpl::v_iter<boost::mpl::vector3<float,double,T2>,3>>>,boost::mpl::protect<boost::mpl::bind1<boost::mpl::quote1<F,Tag>,boost::mpl::arg<1>>,0>>>,boost::mpl::joint_iter<boost::mpl::joint_iter<boost::mpl::v_iter<boost::mpl::vector2<T0,T1>,2>,boost::mpl::v_iter<boost::mpl::vector2<T0,T1>,2>,boost::mpl::joint_iter<boost::mpl::v_iter<Vector,8>,boost::mpl::v_iter<Vector,8>,boost::mpl::v_iter<boost::mpl::vector3<float,double,T2>,3>>>,boost::mpl::joint_iter<boost::mpl::v_iter<boost::mpl::vector2<T0,T1>,2>,boost::mpl::v_iter<boost::mpl::vector2<T0,T1>,2>,boost::mpl::joint_iter<boost::mpl::v_iter<Vector,8>,boost::mpl::v_iter<Vector,8>,boost::mpl::v_iter<boost::mpl::vector3<float,double,T2>,3>>>,boost::mpl::aux::transform_iter<boost::mpl::joint_iter<boost::mpl::v_iter<boost::mpl::vector2<T0,T1>,2>,boost::mpl::v_iter<boost::mpl::vector2<T0,T1>,2>,boost::mpl::joint_iter<boost::mpl::v_iter<Vector,8>,boost::mp
l
::v_iter<Vector,8>,boost::mpl::v_iter<boost::mpl::vector3<float,double,T2>,3>>>,boost::mpl::joint_iter<boost::mpl::v_iter<boost::mpl::vector2<T0,T1>,2>,boost::mpl::v_iter<boost::mpl::vector2<T0,T1>,2>,boost::mpl::joint_iter<boost::mpl::v_iter<Vector,8>,boost::mpl::v_iter<Vector,8>,boost::mpl::v_iter<boost::mpl::vector3<float,double,T2>,3>>>,boost::mpl::protect<boost::mpl::bind1<boost::mpl::quote1<F,Tag>,boost::mpl::arg<1>>,0>>>,boost::mpl::v_iter<boost::mpl::vector0<boost::mpl::na>,0>>>,Last,boost::mpl::vector0<boost::mpl::na>,BackwardOp,ForwardOp>'
being compiled
1> with
1> [
1> L1=boost::mpl::v_iter<boost::mpl::vector0<boost::mpl::na>,0>
1> , T0=std::string
1> , T1=bool
1> ,
Vector=boost::mpl::vector8<uint8_t,uint16_t,uint32_t,uint64_t,int8_t,int16_t,int32_t,int64_t>
1> , I2=boost::mpl::v_iter<boost::mpl::vector3<float,double,long double>,0>
1> , T2=long double
1> , F=make_vector
1> , Tag=boost::mpl::void_
1> ,
Last=boost::mpl::joint_iter<boost::mpl::v_iter<boost::mpl::vector0<boost::mpl::na>,0>,boost::mpl::v_iter<boost::mpl::vector0<boost::mpl::na>,0>,boost::mpl::joint_iter<boost::mpl::joint_iter<boost::mpl::joint_iter<boost::mpl::v_iter<boost::mpl::vector2<std::string,bool>,2>,boost::mpl::v_iter<boost::mpl::vector2<std::string,bool>,2>,boost::mpl::joint_iter<boost::mpl::v_iter<boost::mpl::vector8<uint8_t,uint16_t,uint32_t,uint64_t,int8_t,int16_t,int32_t,int64_t>,8>,boost::mpl::v_iter<boost::mpl::vector8<uint8_t,uint16_t,uint32_t,uint64_t,int8_t,int16_t,int32_t,int64_t>,8>,boost::mpl::v_iter<boost::mpl::vector3<float,double,long
double>,3>>>,boost::mpl::joint_iter<boost::mpl::v_iter<boost::mpl::vector2<std::string,bool>,2>,boost::mpl::v_iter<boost::mpl::vector2<std::string,bool>,2>,boost::mpl::joint_iter<boost::mpl::v_iter<boost::mpl::vector8<uint8_t,uint16_t,uint32_t,uint64_t,int8_t,int16_t,int32_t,int64_t>,8>,boost::mpl::v_iter<boost::mpl::vector8<uint8_t,uint16_t,uint32_t,uint64_t,int8_t,int16_t,int32_t,int64_t>,8>,boost::mpl::v_iter<boost::mpl::vector3<float,double,long
double>,3>>>,boost::mpl::aux::transform_iter<boost::mpl::joint_iter<boost::mpl::v_iter<boost::mpl::vector2<std::string,bool>,2>,boost::mpl::v_iter<boost::mpl::vector2<std::string,bool>,2>,boost::mpl::joint_iter<boost::mpl::v_iter<boost::mpl::vector8<uint8_t,uint16_t,uint32_t,uint64_t,int8_t,int16_t,int32_t,int64_t>,8>,boost::mpl::v_iter<boost::mpl::vector8<uint8_t,uint16_t,uint32_t,uint64_t,int8_t,int16_t,int32_t,int64_t>,8>,boost::mpl::v_iter<boost::mpl::vector3<float,double,long
double>,3>>>,boost::mpl::joint_iter<boost::mpl::v_iter<boost::mpl::vector2<std::string,bool>,2>,boost::mpl::v_iter<boost::mpl::vector2<std::string,bool>,2>,boost::mpl::joint_iter<boost::mpl::v_iter<boost::mpl::vector8<uint8_t,uint16_t,uint32_t,uint64_t,int8_t,int16_t,int32_t,int64_t>,8>,boost::mpl::v_iter<boost::mpl::vector8<uint8_t,uint16_t,uint32_t,uint64_t,int8_t,int16_t,int32_t,int64_t>,8>,boost::mpl::v_iter<boost::mpl::vector3<float,double,long
double>,3>>>,boost::mpl::protect<boost::mpl::bind1<boost::mpl::quote1<make_vector,boost::mpl::void_>,boost::mpl::arg<1>>,0>>>,boost::mpl::joint_iter<boost::mpl::joint_iter<boost::mpl::v_iter<boost::mpl::vector2<std::string,bool>,2>,boost::mpl::v_iter<boost::mpl::vector2<std::string,bool>,2>,boost::mpl::joint_iter<boost::mpl::v_iter<boost::mpl::vector8<uint8_t,uint16_t,uint32_t,uint64_t,int8_t,int16_t,int32_t,int64_t>,8>,boost::mpl::v_iter<boost::mpl::vector8<uint8_t,uint16_t,uint32_t,uint64_t,int8_t,int16_t,int32_t,int64_t>,8>,boost::mpl::v_iter<boost::mpl::vector3<float,double,long
double>,3>>>,boost::mpl::joint_iter<boost::mpl::v_iter<boost::mpl::vector2<std::string,bool>,2>,boost::mpl::v_iter<boost::mpl::vector2<std::string,bool>,2>,boost::mpl::joint_iter<boost::mpl::v_iter<boost::mpl::vector8<uint8_t,uint16_t,uint32_t,uint64_t,int8_t,int16_t,int32_t,int64_t>,8>,boost::mpl::v_iter<boost::mpl::vector8<uint8_t,uint16_t,uint32_t,uint64_t,int8_t,int16_t,int32_t,int64_t>,8>,boost::mpl::v_iter<boost::mpl::vector3<float,double,long
double>,3>>>,boost::mpl::aux::transform_iter<boost::mpl::joint_iter<boost::mpl::v_iter<boost::mpl::vector2<std::string,bool>,2>,boost::mpl::v_iter<boost::mpl::vector2<std::string,bool>,2>,boost::mpl::joint_iter<boost::mpl::v_iter<boost::mpl::vector8<uint8_t,uint16_t,uint32_t,uint64_t,int8_t,int16_t,int32_t,int64_t>,8>,boost::mpl::v_iter<boost::mpl::vector8<uint8_t,uint16_t,uint32_t,uint64_t,int8_t,int16_t,int32_t,int64_t>,8>,boost::mpl::v_iter<boost::mpl::vector3<float,double,long
double>,3>>>,boost::mpl::joint_iter<boost::mpl::v_iter<boost::mpl::vector2<std::string,bool>,2>,boost::mpl::v_iter<boost::mpl::vector2<std::string,bool>,2>,boost::mpl::joint_iter<boost::mpl::v_iter<boost::mpl::vector8<uint8_t,uint16_t,uint32_t,uint64_t,int8_t,int16_t,int32_t,int64_t>,8>,boost::mpl::v_iter<boost::mpl::vector8<uint8_t,uint16_t,uint32_t,uint64_t,int8_t,int16_t,int32_t,int64_t>,8>,boost::mpl::v_iter<boost::mpl::vector3<float,double,long
double>,3>>>,boost::mpl::protect<boost::mpl::bind1<boost::mpl::quote1<make_vector,boost::mpl::void_>,boost::mpl::arg<1>>,0>>>,boost::mpl::v_iter<boost::mpl::vector0<boost::mpl::na>,0>>>
1> , BackwardOp=boost::mpl::push_front<boost::mpl::na,boost::mpl::na>
1> , ForwardOp=boost::mpl::arg<1>
1> ]
1>
D:\bioformats\v1\superbuild-install\include\boost-1_58\boost/mpl/aux_/reverse_fold_impl_body.hpp(149)
: see reference to class template instantiation
'boost::mpl::aux::reverse_fold_impl<-1,boost::mpl::joint_iter<L1,L1,boost::mpl::joint_iter<boost::mpl::joint_iter<boost::mpl::joint_iter<boost::mpl::v_iter<boost::mpl::vector2<T0,T1>,2>,boost::mpl::v_iter<boost::mpl::vector2<T0,T1>,2>,boost::mpl::joint_iter<boost::mpl::v_iter<Vector,2>,boost::mpl::v_iter<Vector,8>,I2>>,boost::mpl::joint_iter<boost::mpl::v_iter<boost::mpl::vector2<T0,T1>,2>,boost::mpl::v_iter<boost::mpl::vector2<T0,T1>,2>,boost::mpl::joint_iter<boost::mpl::v_iter<Vector,8>,boost::mpl::v_iter<Vector,8>,boost::mpl::v_iter<boost::mpl::vector3<float,double,T2>,3>>>,boost::mpl::aux::transform_iter<boost::mpl::joint_iter<boost::mpl::v_iter<boost::mpl::vector2<T0,T1>,0>,boost::mpl::v_iter<boost::mpl::vector2<T0,T1>,2>,boost::mpl::joint_iter<boost::mpl::v_iter<Vector,0>,boost::mpl::v_iter<Vector,8>,boost::mpl::v_iter<boost::mpl::vector3<float,double,T2>,0>>>,boost::mpl::joint_iter<boost::mpl::v_iter<boost::mpl::vector2<T0,T1>,2>,boost::mpl::v_iter<boost::mpl::vector2<T0,T1>,
2>,boost::mpl::joint_iter<boost::mpl::v_iter<Vector,8>,boost::mpl::v_iter<Vector,8>,boost::mpl::v_iter<boost::mpl::vector3<float,double,T2>,3>>>,boost::mpl::protect<boost::mpl::bind1<boost::mpl::quote1<F,Tag>,boost::mpl::arg<1>>,0>>>,boost::mpl::joint_iter<boost::mpl::joint_iter<boost::mpl::v_iter<boost::mpl::vector2<T0,T1>,2>,boost::mpl::v_iter<boost::mpl::vector2<T0,T1>,2>,boost::mpl::joint_iter<boost::mpl::v_iter<Vector,8>,boost::mpl::v_iter<Vector,8>,boost::mpl::v_iter<boost::mpl::vector3<float,double,T2>,3>>>,boost::mpl::joint_iter<boost::mpl::v_iter<boost::mpl::vector2<T0,T1>,2>,boost::mpl::v_iter<boost::mpl::vector2<T0,T1>,2>,boost::mpl::joint_iter<boost::mpl::v_iter<Vector,8>,boost::mpl::v_iter<Vector,8>,boost::mpl::v_iter<boost::mpl::vector3<float,double,T2>,3>>>,boost::mpl::aux::transform_iter<boost::mpl::joint_iter<boost::mpl::v_iter<boost::mpl::vector2<T0,T1>,2>,boost::mpl::v_iter<boost::mpl::vector2<T0,T1>,2>,boost::mpl::joint_iter<boost::mpl::v_iter<Vector,8>,boost::mp
l
::v_iter<Vector,8>,boost::mpl::v_iter<boost::mpl::vector3<float,double,T2>,3>>>,boost::mpl::joint_iter<boost::mpl::v_iter<boost::mpl::vector2<T0,T1>,2>,boost::mpl::v_iter<boost::mpl::vector2<T0,T1>,2>,boost::mpl::joint_iter<boost::mpl::v_iter<Vector,8>,boost::mpl::v_iter<Vector,8>,boost::mpl::v_iter<boost::mpl::vector3<float,double,T2>,3>>>,boost::mpl::protect<boost::mpl::bind1<boost::mpl::quote1<F,Tag>,boost::mpl::arg<1>>,0>>>,boost::mpl::v_iter<boost::mpl::vector0<boost::mpl::na>,0>>>,Last,boost::mpl::vector0<boost::mpl::na>,BackwardOp,ForwardOp>'
being compiled
1> with
1> [
1> L1=boost::mpl::v_iter<boost::mpl::vector0<boost::mpl::na>,0>
1> , T0=std::string
1> , T1=bool
1> ,
Vector=boost::mpl::vector8<uint8_t,uint16_t,uint32_t,uint64_t,int8_t,int16_t,int32_t,int64_t>
1> , I2=boost::mpl::v_iter<boost::mpl::vector3<float,double,long double>,0>
1> , T2=long double
1> , F=make_vector
1> , Tag=boost::mpl::void_
1> ,
Last=boost::mpl::joint_iter<boost::mpl::v_iter<boost::mpl::vector0<boost::mpl::na>,0>,boost::mpl::v_iter<boost::mpl::vector0<boost::mpl::na>,0>,boost::mpl::joint_iter<boost::mpl::joint_iter<boost::mpl::joint_iter<boost::mpl::v_iter<boost::mpl::vector2<std::string,bool>,2>,boost::mpl::v_iter<boost::mpl::vector2<std::string,bool>,2>,boost::mpl::joint_iter<boost::mpl::v_iter<boost::mpl::vector8<uint8_t,uint16_t,uint32_t,uint64_t,int8_t,int16_t,int32_t,int64_t>,8>,boost::mpl::v_iter<boost::mpl::vector8<uint8_t,uint16_t,uint32_t,uint64_t,int8_t,int16_t,int32_t,int64_t>,8>,boost::mpl::v_iter<boost::mpl::vector3<float,double,long
double>,3>>>,boost::mpl::joint_iter<boost::mpl::v_iter<boost::mpl::vector2<std::string,bool>,2>,boost::mpl::v_iter<boost::mpl::vector2<std::string,bool>,2>,boost::mpl::joint_iter<boost::mpl::v_iter<boost::mpl::vector8<uint8_t,uint16_t,uint32_t,uint64_t,int8_t,int16_t,int32_t,int64_t>,8>,boost::mpl::v_iter<boost::mpl::vector8<uint8_t,uint16_t,uint32_t,uint64_t,int8_t,int16_t,int32_t,int64_t>,8>,boost::mpl::v_iter<boost::mpl::vector3<float,double,long
double>,3>>>,boost::mpl::aux::transform_iter<boost::mpl::joint_iter<boost::mpl::v_iter<boost::mpl::vector2<std::string,bool>,2>,boost::mpl::v_iter<boost::mpl::vector2<std::string,bool>,2>,boost::mpl::joint_iter<boost::mpl::v_iter<boost::mpl::vector8<uint8_t,uint16_t,uint32_t,uint64_t,int8_t,int16_t,int32_t,int64_t>,8>,boost::mpl::v_iter<boost::mpl::vector8<uint8_t,uint16_t,uint32_t,uint64_t,int8_t,int16_t,int32_t,int64_t>,8>,boost::mpl::v_iter<boost::mpl::vector3<float,double,long
double>,3>>>,boost::mpl::joint_iter<boost::mpl::v_iter<boost::mpl::vector2<std::string,bool>,2>,boost::mpl::v_iter<boost::mpl::vector2<std::string,bool>,2>,boost::mpl::joint_iter<boost::mpl::v_iter<boost::mpl::vector8<uint8_t,uint16_t,uint32_t,uint64_t,int8_t,int16_t,int32_t,int64_t>,8>,boost::mpl::v_iter<boost::mpl::vector8<uint8_t,uint16_t,uint32_t,uint64_t,int8_t,int16_t,int32_t,int64_t>,8>,boost::mpl::v_iter<boost::mpl::vector3<float,double,long
double>,3>>>,boost::mpl::protect<boost::mpl::bind1<boost::mpl::quote1<make_vector,boost::mpl::void_>,boost::mpl::arg<1>>,0>>>,boost::mpl::joint_iter<boost::mpl::joint_iter<boost::mpl::v_iter<boost::mpl::vector2<std::string,bool>,2>,boost::mpl::v_iter<boost::mpl::vector2<std::string,bool>,2>,boost::mpl::joint_iter<boost::mpl::v_iter<boost::mpl::vector8<uint8_t,uint16_t,uint32_t,uint64_t,int8_t,int16_t,int32_t,int64_t>,8>,boost::mpl::v_iter<boost::mpl::vector8<uint8_t,uint16_t,uint32_t,uint64_t,int8_t,int16_t,int32_t,int64_t>,8>,boost::mpl::v_iter<boost::mpl::vector3<float,double,long
double>,3>>>,boost::mpl::joint_iter<boost::mpl::v_iter<boost::mpl::vector2<std::string,bool>,2>,boost::mpl::v_iter<boost::mpl::vector2<std::string,bool>,2>,boost::mpl::joint_iter<boost::mpl::v_iter<boost::mpl::vector8<uint8_t,uint16_t,uint32_t,uint64_t,int8_t,int16_t,int32_t,int64_t>,8>,boost::mpl::v_iter<boost::mpl::vector8<uint8_t,uint16_t,uint32_t,uint64_t,int8_t,int16_t,int32_t,int64_t>,8>,boost::mpl::v_iter<boost::mpl::vector3<float,double,long
double>,3>>>,boost::mpl::aux::transform_iter<boost::mpl::joint_iter<boost::mpl::v_iter<boost::mpl::vector2<std::string,bool>,2>,boost::mpl::v_iter<boost::mpl::vector2<std::string,bool>,2>,boost::mpl::joint_iter<boost::mpl::v_iter<boost::mpl::vector8<uint8_t,uint16_t,uint32_t,uint64_t,int8_t,int16_t,int32_t,int64_t>,8>,boost::mpl::v_iter<boost::mpl::vector8<uint8_t,uint16_t,uint32_t,uint64_t,int8_t,int16_t,int32_t,int64_t>,8>,boost::mpl::v_iter<boost::mpl::vector3<float,double,long
double>,3>>>,boost::mpl::joint_iter<boost::mpl::v_iter<boost::mpl::vector2<std::string,bool>,2>,boost::mpl::v_iter<boost::mpl::vector2<std::string,bool>,2>,boost::mpl::joint_iter<boost::mpl::v_iter<boost::mpl::vector8<uint8_t,uint16_t,uint32_t,uint64_t,int8_t,int16_t,int32_t,int64_t>,8>,boost::mpl::v_iter<boost::mpl::vector8<uint8_t,uint16_t,uint32_t,uint64_t,int8_t,int16_t,int32_t,int64_t>,8>,boost::mpl::v_iter<boost::mpl::vector3<float,double,long
double>,3>>>,boost::mpl::protect<boost::mpl::bind1<boost::mpl::quote1<make_vector,boost::mpl::void_>,boost::mpl::arg<1>>,0>>>,boost::mpl::v_iter<boost::mpl::vector0<boost::mpl::na>,0>>>
1> , BackwardOp=boost::mpl::push_front<boost::mpl::na,boost::mpl::na>
1> , ForwardOp=boost::mpl::arg<1>
1> ]
1>
D:\bioformats\v1\superbuild-install\include\boost-1_58\boost/mpl/aux_/reverse_fold_impl_body.hpp(149)
: see reference to class template instantiation
'boost::mpl::aux::reverse_fold_impl<-1,boost::mpl::joint_iter<L1,L1,boost::mpl::joint_iter<boost::mpl::joint_iter<boost::mpl::joint_iter<boost::mpl::v_iter<boost::mpl::vector2<T0,T1>,2>,boost::mpl::v_iter<boost::mpl::vector2<T0,T1>,2>,boost::mpl::joint_iter<boost::mpl::v_iter<Vector,1>,boost::mpl::v_iter<Vector,8>,I2>>,boost::mpl::joint_iter<boost::mpl::v_iter<boost::mpl::vector2<T0,T1>,2>,boost::mpl::v_iter<boost::mpl::vector2<T0,T1>,2>,boost::mpl::joint_iter<boost::mpl::v_iter<Vector,8>,boost::mpl::v_iter<Vector,8>,boost::mpl::v_iter<boost::mpl::vector3<float,double,T2>,3>>>,boost::mpl::aux::transform_iter<boost::mpl::joint_iter<boost::mpl::v_iter<boost::mpl::vector2<T0,T1>,0>,boost::mpl::v_iter<boost::mpl::vector2<T0,T1>,2>,boost::mpl::joint_iter<boost::mpl::v_iter<Vector,0>,boost::mpl::v_iter<Vector,8>,boost::mpl::v_iter<boost::mpl::vector3<float,double,T2>,0>>>,boost::mpl::joint_iter<boost::mpl::v_iter<boost::mpl::vector2<T0,T1>,2>,boost::mpl::v_iter<boost::mpl::vector2<T0,T1>,
2>,boost::mpl::joint_iter<boost::mpl::v_iter<Vector,8>,boost::mpl::v_iter<Vector,8>,boost::mpl::v_iter<boost::mpl::vector3<float,double,T2>,3>>>,boost::mpl::protect<boost::mpl::bind1<boost::mpl::quote1<F,Tag>,boost::mpl::arg<1>>,0>>>,boost::mpl::joint_iter<boost::mpl::joint_iter<boost::mpl::v_iter<boost::mpl::vector2<T0,T1>,2>,boost::mpl::v_iter<boost::mpl::vector2<T0,T1>,2>,boost::mpl::joint_iter<boost::mpl::v_iter<Vector,8>,boost::mpl::v_iter<Vector,8>,boost::mpl::v_iter<boost::mpl::vector3<float,double,T2>,3>>>,boost::mpl::joint_iter<boost::mpl::v_iter<boost::mpl::vector2<T0,T1>,2>,boost::mpl::v_iter<boost::mpl::vector2<T0,T1>,2>,boost::mpl::joint_iter<boost::mpl::v_iter<Vector,8>,boost::mpl::v_iter<Vector,8>,boost::mpl::v_iter<boost::mpl::vector3<float,double,T2>,3>>>,boost::mpl::aux::transform_iter<boost::mpl::joint_iter<boost::mpl::v_iter<boost::mpl::vector2<T0,T1>,2>,boost::mpl::v_iter<boost::mpl::vector2<T0,T1>,2>,boost::mpl::joint_iter<boost::mpl::v_iter<Vector,8>,boost::mp
l
::v_iter<Vector,8>,boost::mpl::v_iter<boost::mpl::vector3<float,double,T2>,3>>>,boost::mpl::joint_iter<boost::mpl::v_iter<boost::mpl::vector2<T0,T1>,2>,boost::mpl::v_iter<boost::mpl::vector2<T0,T1>,2>,boost::mpl::joint_iter<boost::mpl::v_iter<Vector,8>,boost::mpl::v_iter<Vector,8>,boost::mpl::v_iter<boost::mpl::vector3<float,double,T2>,3>>>,boost::mpl::protect<boost::mpl::bind1<boost::mpl::quote1<F,Tag>,boost::mpl::arg<1>>,0>>>,boost::mpl::v_iter<boost::mpl::vector0<boost::mpl::na>,0>>>,Last,boost::mpl::vector0<boost::mpl::na>,BackwardOp,ForwardOp>'
being compiled
1> with
1> [
1> L1=boost::mpl::v_iter<boost::mpl::vector0<boost::mpl::na>,0>
1> , T0=std::string
1> , T1=bool
1> ,
Vector=boost::mpl::vector8<uint8_t,uint16_t,uint32_t,uint64_t,int8_t,int16_t,int32_t,int64_t>
1> , I2=boost::mpl::v_iter<boost::mpl::vector3<float,double,long double>,0>
1> , T2=long double
1> , F=make_vector
1> , Tag=boost::mpl::void_
1> ,
Last=boost::mpl::joint_iter<boost::mpl::v_iter<boost::mpl::vector0<boost::mpl::na>,0>,boost::mpl::v_iter<boost::mpl::vector0<boost::mpl::na>,0>,boost::mpl::joint_iter<boost::mpl::joint_iter<boost::mpl::joint_iter<boost::mpl::v_iter<boost::mpl::vector2<std::string,bool>,2>,boost::mpl::v_iter<boost::mpl::vector2<std::string,bool>,2>,boost::mpl::joint_iter<boost::mpl::v_iter<boost::mpl::vector8<uint8_t,uint16_t,uint32_t,uint64_t,int8_t,int16_t,int32_t,int64_t>,8>,boost::mpl::v_iter<boost::mpl::vector8<uint8_t,uint16_t,uint32_t,uint64_t,int8_t,int16_t,int32_t,int64_t>,8>,boost::mpl::v_iter<boost::mpl::vector3<float,double,long
double>,3>>>,boost::mpl::joint_iter<boost::mpl::v_iter<boost::mpl::vector2<std::string,bool>,2>,boost::mpl::v_iter<boost::mpl::vector2<std::string,bool>,2>,boost::mpl::joint_iter<boost::mpl::v_iter<boost::mpl::vector8<uint8_t,uint16_t,uint32_t,uint64_t,int8_t,int16_t,int32_t,int64_t>,8>,boost::mpl::v_iter<boost::mpl::vector8<uint8_t,uint16_t,uint32_t,uint64_t,int8_t,int16_t,int32_t,int64_t>,8>,boost::mpl::v_iter<boost::mpl::vector3<float,double,long
double>,3>>>,boost::mpl::aux::transform_iter<boost::mpl::joint_iter<boost::mpl::v_iter<boost::mpl::vector2<std::string,bool>,2>,boost::mpl::v_iter<boost::mpl::vector2<std::string,bool>,2>,boost::mpl::joint_iter<boost::mpl::v_iter<boost::mpl::vector8<uint8_t,uint16_t,uint32_t,uint64_t,int8_t,int16_t,int32_t,int64_t>,8>,boost::mpl::v_iter<boost::mpl::vector8<uint8_t,uint16_t,uint32_t,uint64_t,int8_t,int16_t,int32_t,int64_t>,8>,boost::mpl::v_iter<boost::mpl::vector3<float,double,long
double>,3>>>,boost::mpl::joint_iter<boost::mpl::v_iter<boost::mpl::vector2<std::string,bool>,2>,boost::mpl::v_iter<boost::mpl::vector2<std::string,bool>,2>,boost::mpl::joint_iter<boost::mpl::v_iter<boost::mpl::vector8<uint8_t,uint16_t,uint32_t,uint64_t,int8_t,int16_t,int32_t,int64_t>,8>,boost::mpl::v_iter<boost::mpl::vector8<uint8_t,uint16_t,uint32_t,uint64_t,int8_t,int16_t,int32_t,int64_t>,8>,boost::mpl::v_iter<boost::mpl::vector3<float,double,long
double>,3>>>,boost::mpl::protect<boost::mpl::bind1<boost::mpl::quote1<make_vector,boost::mpl::void_>,boost::mpl::arg<1>>,0>>>,boost::mpl::joint_iter<boost::mpl::joint_iter<boost::mpl::v_iter<boost::mpl::vector2<std::string,bool>,2>,boost::mpl::v_iter<boost::mpl::vector2<std::string,bool>,2>,boost::mpl::joint_iter<boost::mpl::v_iter<boost::mpl::vector8<uint8_t,uint16_t,uint32_t,uint64_t,int8_t,int16_t,int32_t,int64_t>,8>,boost::mpl::v_iter<boost::mpl::vector8<uint8_t,uint16_t,uint32_t,uint64_t,int8_t,int16_t,int32_t,int64_t>,8>,boost::mpl::v_iter<boost::mpl::vector3<float,double,long
double>,3>>>,boost::mpl::joint_iter<boost::mpl::v_iter<boost::mpl::vector2<std::string,bool>,2>,boost::mpl::v_iter<boost::mpl::vector2<std::string,bool>,2>,boost::mpl::joint_iter<boost::mpl::v_iter<boost::mpl::vector8<uint8_t,uint16_t,uint32_t,uint64_t,int8_t,int16_t,int32_t,int64_t>,8>,boost::mpl::v_iter<boost::mpl::vector8<uint8_t,uint16_t,uint32_t,uint64_t,int8_t,int16_t,int32_t,int64_t>,8>,boost::mpl::v_iter<boost::mpl::vector3<float,double,long
double>,3>>>,boost::mpl::aux::transform_iter<boost::mpl::joint_iter<boost::mpl::v_iter<boost::mpl::vector2<std::string,bool>,2>,boost::mpl::v_iter<boost::mpl::vector2<std::string,bool>,2>,boost::mpl::joint_iter<boost::mpl::v_iter<boost::mpl::vector8<uint8_t,uint16_t,uint32_t,uint64_t,int8_t,int16_t,int32_t,int64_t>,8>,boost::mpl::v_iter<boost::mpl::vector8<uint8_t,uint16_t,uint32_t,uint64_t,int8_t,int16_t,int32_t,int64_t>,8>,boost::mpl::v_iter<boost::mpl::vector3<float,double,long
double>,3>>>,boost::mpl::joint_iter<boost::mpl::v_iter<boost::mpl::vector2<std::string,bool>,2>,boost::mpl::v_iter<boost::mpl::vector2<std::string,bool>,2>,boost::mpl::joint_iter<boost::mpl::v_iter<boost::mpl::vector8<uint8_t,uint16_t,uint32_t,uint64_t,int8_t,int16_t,int32_t,int64_t>,8>,boost::mpl::v_iter<boost::mpl::vector8<uint8_t,uint16_t,uint32_t,uint64_t,int8_t,int16_t,int32_t,int64_t>,8>,boost::mpl::v_iter<boost::mpl::vector3<float,double,long
double>,3>>>,boost::mpl::protect<boost::mpl::bind1<boost::mpl::quote1<make_vector,boost::mpl::void_>,boost::mpl::arg<1>>,0>>>,boost::mpl::v_iter<boost::mpl::vector0<boost::mpl::na>,0>>>
1> , BackwardOp=boost::mpl::push_front<boost::mpl::na,boost::mpl::na>
1> , ForwardOp=boost::mpl::arg<1>
1> ]
1>
D:\bioformats\v1\superbuild-install\include\boost-1_58\boost/mpl/aux_/reverse_fold_impl_body.hpp(149)
: see reference to class template instantiation
'boost::mpl::aux::reverse_fold_impl<-1,boost::mpl::joint_iter<L1,L1,boost::mpl::joint_iter<boost::mpl::joint_iter<boost::mpl::joint_iter<boost::mpl::v_iter<boost::mpl::vector2<T0,T1>,2>,boost::mpl::v_iter<boost::mpl::vector2<T0,T1>,2>,I2>,boost::mpl::joint_iter<boost::mpl::v_iter<boost::mpl::vector2<T0,T1>,2>,boost::mpl::v_iter<boost::mpl::vector2<T0,T1>,2>,boost::mpl::joint_iter<boost::mpl::v_iter<boost::mpl::vector8<unsigned
char,unsigned
short,T2,T3,T4,T5,T6,T7>,8>,boost::mpl::v_iter<boost::mpl::vector8<unsigned
char,unsigned
short,T2,T3,T4,T5,T6,T7>,8>,boost::mpl::v_iter<boost::mpl::vector3<float,double,long
double>,3>>>,boost::mpl::aux::transform_iter<boost::mpl::joint_iter<boost::mpl::v_iter<boost::mpl::vector2<T0,T1>,0>,boost::mpl::v_iter<boost::mpl::vector2<T0,T1>,2>,boost::mpl::joint_iter<boost::mpl::v_iter<boost::mpl::vector8<unsigned
char,unsigned
short,T2,T3,T4,T5,T6,T7>,0>,boost::mpl::v_iter<boost::mpl::vector8<unsigned
char,unsigned
short,T2,T3,T4,T5,T6,T7>,8>,boost::mpl::v_iter<boost::mpl::vector3<float,double,long
double>,0>>>,boost::mpl::joint_iter<boost::mpl::v_iter<boost::mpl::vector2<T0,T1>,2>,boost::mpl::v_iter<boost::mpl::vector2<T0,T1>,2>,boost::mpl::joint_iter<boost::mpl::v_iter<boost::mpl::vector8<unsigned
char,unsigned
short,T2,T3,T4,T5,T6,T7>,8>,boost::mpl::v_iter<boost::mpl::vector8<unsigned
char,unsigned
short,T2,T3,T4,T5,T6,T7>,8>,boost::mpl::v_iter<boost::mpl::vector3<float,double,long
double>,3>>>,boost::mpl::protect<boost::mpl::bind1<boost::mpl::quote1<F,Tag>,boost::mpl::arg<1>>,0>>>,boost::mpl::joint_iter<boost::mpl::joint_iter<boost::mpl::v_iter<boost::mpl::vector2<T0,T1>,2>,boost::mpl::v_iter<boost::mpl::vector2<T0,T1>,2>,boost::mpl::joint_iter<boost::mpl::v_iter<boost::mpl::vector8<unsigned
char,unsigned
short,T2,T3,T4,T5,T6,T7>,8>,boost::mpl::v_iter<boost::mpl::vector8<unsigned
char,unsigned
short,T2,T3,T4,T5,T6,T7>,8>,boost::mpl::v_iter<boost::mpl::vector3<float,double,long
double>,3>>>,boost::mpl::joint_iter<boost::mpl::v_iter<boost::mpl::vector2<T0,T1>,2>,boost::mpl::v_iter<boost::mpl::vector2<T0,T1>,2>,boost::mpl::joint_iter<boost::mpl::v_iter<boost::mpl::vector8<unsigned
char,unsigned
short,T2,T3,T4,T5,T6,T7>,8>,boost::mpl::v_iter<boost::mpl::vector8<unsigned
char,unsigned
short,T2,T3,T4,T5,T6,T7>,8>,boost::mpl::v_iter<boost::mpl::vector3<float,double,long
double>,3>>>,boost::mpl::aux::transform_iter<boost::mpl::joint_iter<boost::mpl::v_iter<boost::mpl::vector2<T0,T1>,2>,boost::mpl::v_iter<boost::mpl::vector2<T0,T1>,2>,boost::mpl::joint_iter<boost::mpl::v_iter<boost::mpl::vector8<unsigned
char,unsigned
short,T2,T3,T4,T5,T6,T7>,8>,boost::mpl::v_iter<boost::mpl::vector8<unsigned
char,unsigned
short,T2,T3,T4,T5,T6,T7>,8>,boost::mpl::v_iter<boost::mpl::vector3<float,double,long
double>,3>>>,boost::mpl::joint_iter<boost::mpl::v_iter<boost::mpl::vector2<T0,T1>,2>,boost::mpl::v_iter<boost::mpl::vector2<T0,T1>,2>,boost::mpl::joint_iter<boost::mpl::v_iter<boost::mpl::vector8<unsigned
char,unsigned
short,T2,T3,T4,T5,T6,T7>,8>,boost::mpl::v_iter<boost::mpl::vector8<unsigned
char,unsigned
short,T2,T3,T4,T5,T6,T7>,8>,boost::mpl::v_iter<boost::mpl::vector3<float,double,long
double>,3>>>,boost::mpl::protect<boost::mpl::bind1<boost::mpl::quote1<F,Tag>,boost::mpl::arg<1>>,0>>>,boost::mpl::v_iter<boost::mpl::vector0<boost::mpl::na>,0>>>,Last,boost::mpl::vector0<boost::mpl::na>,BackwardOp,ForwardOp>'
being compiled
1> with
1> [
1> L1=boost::mpl::v_iter<boost::mpl::vector0<boost::mpl::na>,0>
1> , T0=std::string
1> , T1=bool
1> ,
I2=boost::mpl::joint_iter<boost::mpl::v_iter<boost::mpl::vector8<uint8_t,uint16_t,uint32_t,uint64_t,int8_t,int16_t,int32_t,int64_t>,0>,boost::mpl::v_iter<boost::mpl::vector8<uint8_t,uint16_t,uint32_t,uint64_t,int8_t,int16_t,int32_t,int64_t>,8>,boost::mpl::v_iter<boost::mpl::vector3<float,double,long
double>,0>>
1> , T2=uint32_t
1> , T3=uint64_t
1> , T4=int8_t
1> , T5=int16_t
1> , T6=int32_t
1> , T7=int64_t
1> , F=make_vector
1> , Tag=boost::mpl::void_
1> ,
Last=boost::mpl::joint_iter<boost::mpl::v_iter<boost::mpl::vector0<boost::mpl::na>,0>,boost::mpl::v_iter<boost::mpl::vector0<boost::mpl::na>,0>,boost::mpl::joint_iter<boost::mpl::joint_iter<boost::mpl::joint_iter<boost::mpl::v_iter<boost::mpl::vector2<std::string,bool>,2>,boost::mpl::v_iter<boost::mpl::vector2<std::string,bool>,2>,boost::mpl::joint_iter<boost::mpl::v_iter<boost::mpl::vector8<uint8_t,uint16_t,uint32_t,uint64_t,int8_t,int16_t,int32_t,int64_t>,8>,boost::mpl::v_iter<boost::mpl::vector8<uint8_t,uint16_t,uint32_t,uint64_t,int8_t,int16_t,int32_t,int64_t>,8>,boost::mpl::v_iter<boost::mpl::vector3<float,double,long
double>,3>>>,boost::mpl::joint_iter<boost::mpl::v_iter<boost::mpl::vector2<std::string,bool>,2>,boost::mpl::v_iter<boost::mpl::vector2<std::string,bool>,2>,boost::mpl::joint_iter<boost::mpl::v_iter<boost::mpl::vector8<uint8_t,uint16_t,uint32_t,uint64_t,int8_t,int16_t,int32_t,int64_t>,8>,boost::mpl::v_iter<boost::mpl::vector8<uint8_t,uint16_t,uint32_t,uint64_t,int8_t,int16_t,int32_t,int64_t>,8>,boost::mpl::v_iter<boost::mpl::vector3<float,double,long
double>,3>>>,boost::mpl::aux::transform_iter<boost::mpl::joint_iter<boost::mpl::v_iter<boost::mpl::vector2<std::string,bool>,2>,boost::mpl::v_iter<boost::mpl::vector2<std::string,bool>,2>,boost::mpl::joint_iter<boost::mpl::v_iter<boost::mpl::vector8<uint8_t,uint16_t,uint32_t,uint64_t,int8_t,int16_t,int32_t,int64_t>,8>,boost::mpl::v_iter<boost::mpl::vector8<uint8_t,uint16_t,uint32_t,uint64_t,int8_t,int16_t,int32_t,int64_t>,8>,boost::mpl::v_iter<boost::mpl::vector3<float,double,long
double>,3>>>,boost::mpl::joint_iter<boost::mpl::v_iter<boost::mpl::vector2<std::string,bool>,2>,boost::mpl::v_iter<boost::mpl::vector2<std::string,bool>,2>,boost::mpl::joint_iter<boost::mpl::v_iter<boost::mpl::vector8<uint8_t,uint16_t,uint32_t,uint64_t,int8_t,int16_t,int32_t,int64_t>,8>,boost::mpl::v_iter<boost::mpl::vector8<uint8_t,uint16_t,uint32_t,uint64_t,int8_t,int16_t,int32_t,int64_t>,8>,boost::mpl::v_iter<boost::mpl::vector3<float,double,long
double>,3>>>,boost::mpl::protect<boost::mpl::bind1<boost::mpl::quote1<make_vector,boost::mpl::void_>,boost::mpl::arg<1>>,0>>>,boost::mpl::joint_iter<boost::mpl::joint_iter<boost::mpl::v_iter<boost::mpl::vector2<std::string,bool>,2>,boost::mpl::v_iter<boost::mpl::vector2<std::string,bool>,2>,boost::mpl::joint_iter<boost::mpl::v_iter<boost::mpl::vector8<uint8_t,uint16_t,uint32_t,uint64_t,int8_t,int16_t,int32_t,int64_t>,8>,boost::mpl::v_iter<boost::mpl::vector8<uint8_t,uint16_t,uint32_t,uint64_t,int8_t,int16_t,int32_t,int64_t>,8>,boost::mpl::v_iter<boost::mpl::vector3<float,double,long
double>,3>>>,boost::mpl::joint_iter<boost::mpl::v_iter<boost::mpl::vector2<std::string,bool>,2>,boost::mpl::v_iter<boost::mpl::vector2<std::string,bool>,2>,boost::mpl::joint_iter<boost::mpl::v_iter<boost::mpl::vector8<uint8_t,uint16_t,uint32_t,uint64_t,int8_t,int16_t,int32_t,int64_t>,8>,boost::mpl::v_iter<boost::mpl::vector8<uint8_t,uint16_t,uint32_t,uint64_t,int8_t,int16_t,int32_t,int64_t>,8>,boost::mpl::v_iter<boost::mpl::vector3<float,double,long
double>,3>>>,boost::mpl::aux::transform_iter<boost::mpl::joint_iter<boost::mpl::v_iter<boost::mpl::vector2<std::string,bool>,2>,boost::mpl::v_iter<boost::mpl::vector2<std::string,bool>,2>,boost::mpl::joint_iter<boost::mpl::v_iter<boost::mpl::vector8<uint8_t,uint16_t,uint32_t,uint64_t,int8_t,int16_t,int32_t,int64_t>,8>,boost::mpl::v_iter<boost::mpl::vector8<uint8_t,uint16_t,uint32_t,uint64_t,int8_t,int16_t,int32_t,int64_t>,8>,boost::mpl::v_iter<boost::mpl::vector3<float,double,long
double>,3>>>,boost::mpl::joint_iter<boost::mpl::v_iter<boost::mpl::vector2<std::string,bool>,2>,boost::mpl::v_iter<boost::mpl::vector2<std::string,bool>,2>,boost::mpl::joint_iter<boost::mpl::v_iter<boost::mpl::vector8<uint8_t,uint16_t,uint32_t,uint64_t,int8_t,int16_t,int32_t,int64_t>,8>,boost::mpl::v_iter<boost::mpl::vector8<uint8_t,uint16_t,uint32_t,uint64_t,int8_t,int16_t,int32_t,int64_t>,8>,boost::mpl::v_iter<boost::mpl::vector3<float,double,long
double>,3>>>,boost::mpl::protect<boost::mpl::bind1<boost::mpl::quote1<make_vector,boost::mpl::void_>,boost::mpl::arg<1>>,0>>>,boost::mpl::v_iter<boost::mpl::vector0<boost::mpl::na>,0>>>
1> , BackwardOp=boost::mpl::push_front<boost::mpl::na,boost::mpl::na>
1> , ForwardOp=boost::mpl::arg<1>
1> ]
1>
D:\bioformats\v1\superbuild-install\include\boost-1_58\boost/mpl/aux_/reverse_fold_impl_body.hpp(149)
: see reference to class template instantiation
'boost::mpl::aux::reverse_fold_impl<-1,boost::mpl::joint_iter<L1,L1,boost::mpl::joint_iter<boost::mpl::joint_iter<boost::mpl::joint_iter<boost::mpl::v_iter<Vector,1>,boost::mpl::v_iter<Vector,2>,I2>,boost::mpl::joint_iter<boost::mpl::v_iter<Vector,2>,boost::mpl::v_iter<Vector,2>,boost::mpl::joint_iter<boost::mpl::v_iter<boost::mpl::vector8<T0,T1,T2,T3,T4,T5,T6,T7>,8>,boost::mpl::v_iter<boost::mpl::vector8<T0,T1,T2,T3,T4,T5,T6,T7>,8>,boost::mpl::v_iter<boost::mpl::vector3<float,double,long
double>,3>>>,boost::mpl::aux::transform_iter<boost::mpl::joint_iter<boost::mpl::v_iter<Vector,0>,boost::mpl::v_iter<Vector,2>,boost::mpl::joint_iter<boost::mpl::v_iter<boost::mpl::vector8<T0,T1,T2,T3,T4,T5,T6,T7>,0>,boost::mpl::v_iter<boost::mpl::vector8<T0,T1,T2,T3,T4,T5,T6,T7>,8>,boost::mpl::v_iter<boost::mpl::vector3<float,double,long
double>,0>>>,boost::mpl::joint_iter<boost::mpl::v_iter<Vector,2>,boost::mpl::v_iter<Vector,2>,boost::mpl::joint_iter<boost::mpl::v_iter<boost::mpl::vector8<T0,T1,T2,T3,T4,T5,T6,T7>,8>,boost::mpl::v_iter<boost::mpl::vector8<T0,T1,T2,T3,T4,T5,T6,T7>,8>,boost::mpl::v_iter<boost::mpl::vector3<float,double,long
double>,3>>>,boost::mpl::protect<boost::mpl::bind1<boost::mpl::quote1<F,Tag>,boost::mpl::arg<1>>,0>>>,boost::mpl::joint_iter<boost::mpl::joint_iter<boost::mpl::v_iter<Vector,2>,boost::mpl::v_iter<Vector,2>,boost::mpl::joint_iter<boost::mpl::v_iter<boost::mpl::vector8<T0,T1,T2,T3,T4,T5,T6,T7>,8>,boost::mpl::v_iter<boost::mpl::vector8<T0,T1,T2,T3,T4,T5,T6,T7>,8>,boost::mpl::v_iter<boost::mpl::vector3<float,double,long
double>,3>>>,boost::mpl::joint_iter<boost::mpl::v_iter<Vector,2>,boost::mpl::v_iter<Vector,2>,boost::mpl::joint_iter<boost::mpl::v_iter<boost::mpl::vector8<T0,T1,T2,T3,T4,T5,T6,T7>,8>,boost::mpl::v_iter<boost::mpl::vector8<T0,T1,T2,T3,T4,T5,T6,T7>,8>,boost::mpl::v_iter<boost::mpl::vector3<float,double,long
double>,3>>>,boost::mpl::aux::transform_iter<boost::mpl::joint_iter<boost::mpl::v_iter<Vector,2>,boost::mpl::v_iter<Vector,2>,boost::mpl::joint_iter<boost::mpl::v_iter<boost::mpl::vector8<T0,T1,T2,T3,T4,T5,T6,T7>,8>,boost::mpl::v_iter<boost::mpl::vector8<T0,T1,T2,T3,T4,T5,T6,T7>,8>,boost::mpl::v_iter<boost::mpl::vector3<float,double,long
double>,3>>>,boost::mpl::joint_iter<boost::mpl::v_iter<Vector,2>,boost::mpl::v_iter<Vector,2>,boost::mpl::joint_iter<boost::mpl::v_iter<boost::mpl::vector8<T0,T1,T2,T3,T4,T5,T6,T7>,8>,boost::mpl::v_iter<boost::mpl::vector8<T0,T1,T2,T3,T4,T5,T6,T7>,8>,boost::mpl::v_iter<boost::mpl::vector3<float,double,long
double>,3>>>,boost::mpl::protect<boost::mpl::bind1<boost::mpl::quote1<F,Tag>,boost::mpl::arg<1>>,0>>>,boost::mpl::v_iter<boost::mpl::vector0<boost::mpl::na>,0>>>,Last,boost::mpl::vector0<boost::mpl::na>,BackwardOp,ForwardOp>'
being compiled
1> with
1> [
1> L1=boost::mpl::v_iter<boost::mpl::vector0<boost::mpl::na>,0>
1> , Vector=boost::mpl::vector2<std::string,bool>
1> ,
I2=boost::mpl::joint_iter<boost::mpl::v_iter<boost::mpl::vector8<uint8_t,uint16_t,uint32_t,uint64_t,int8_t,int16_t,int32_t,int64_t>,0>,boost::mpl::v_iter<boost::mpl::vector8<uint8_t,uint16_t,uint32_t,uint64_t,int8_t,int16_t,int32_t,int64_t>,8>,boost::mpl::v_iter<boost::mpl::vector3<float,double,long
double>,0>>
1> , T0=uint8_t
1> , T1=uint16_t
1> , T2=uint32_t
1> , T3=uint64_t
1> , T4=int8_t
1> , T5=int16_t
1> , T6=int32_t
1> , T7=int64_t
1> , F=make_vector
1> , Tag=boost::mpl::void_
1> ,
Last=boost::mpl::joint_iter<boost::mpl::v_iter<boost::mpl::vector0<boost::mpl::na>,0>,boost::mpl::v_iter<boost::mpl::vector0<boost::mpl::na>,0>,boost::mpl::joint_iter<boost::mpl::joint_iter<boost::mpl::joint_iter<boost::mpl::v_iter<boost::mpl::vector2<std::string,bool>,2>,boost::mpl::v_iter<boost::mpl::vector2<std::string,bool>,2>,boost::mpl::joint_iter<boost::mpl::v_iter<boost::mpl::vector8<uint8_t,uint16_t,uint32_t,uint64_t,int8_t,int16_t,int32_t,int64_t>,8>,boost::mpl::v_iter<boost::mpl::vector8<uint8_t,uint16_t,uint32_t,uint64_t,int8_t,int16_t,int32_t,int64_t>,8>,boost::mpl::v_iter<boost::mpl::vector3<float,double,long
double>,3>>>,boost::mpl::joint_iter<boost::mpl::v_iter<boost::mpl::vector2<std::string,bool>,2>,boost::mpl::v_iter<boost::mpl::vector2<std::string,bool>,2>,boost::mpl::joint_iter<boost::mpl::v_iter<boost::mpl::vector8<uint8_t,uint16_t,uint32_t,uint64_t,int8_t,int16_t,int32_t,int64_t>,8>,boost::mpl::v_iter<boost::mpl::vector8<uint8_t,uint16_t,uint32_t,uint64_t,int8_t,int16_t,int32_t,int64_t>,8>,boost::mpl::v_iter<boost::mpl::vector3<float,double,long
double>,3>>>,boost::mpl::aux::transform_iter<boost::mpl::joint_iter<boost::mpl::v_iter<boost::mpl::vector2<std::string,bool>,2>,boost::mpl::v_iter<boost::mpl::vector2<std::string,bool>,2>,boost::mpl::joint_iter<boost::mpl::v_iter<boost::mpl::vector8<uint8_t,uint16_t,uint32_t,uint64_t,int8_t,int16_t,int32_t,int64_t>,8>,boost::mpl::v_iter<boost::mpl::vector8<uint8_t,uint16_t,uint32_t,uint64_t,int8_t,int16_t,int32_t,int64_t>,8>,boost::mpl::v_iter<boost::mpl::vector3<float,double,long
double>,3>>>,boost::mpl::joint_iter<boost::mpl::v_iter<boost::mpl::vector2<std::string,bool>,2>,boost::mpl::v_iter<boost::mpl::vector2<std::string,bool>,2>,boost::mpl::joint_iter<boost::mpl::v_iter<boost::mpl::vector8<uint8_t,uint16_t,uint32_t,uint64_t,int8_t,int16_t,int32_t,int64_t>,8>,boost::mpl::v_iter<boost::mpl::vector8<uint8_t,uint16_t,uint32_t,uint64_t,int8_t,int16_t,int32_t,int64_t>,8>,boost::mpl::v_iter<boost::mpl::vector3<float,double,long
double>,3>>>,boost::mpl::protect<boost::mpl::bind1<boost::mpl::quote1<make_vector,boost::mpl::void_>,boost::mpl::arg<1>>,0>>>,boost::mpl::joint_iter<boost::mpl::joint_iter<boost::mpl::v_iter<boost::mpl::vector2<std::string,bool>,2>,boost::mpl::v_iter<boost::mpl::vector2<std::string,bool>,2>,boost::mpl::joint_iter<boost::mpl::v_iter<boost::mpl::vector8<uint8_t,uint16_t,uint32_t,uint64_t,int8_t,int16_t,int32_t,int64_t>,8>,boost::mpl::v_iter<boost::mpl::vector8<uint8_t,uint16_t,uint32_t,uint64_t,int8_t,int16_t,int32_t,int64_t>,8>,boost::mpl::v_iter<boost::mpl::vector3<float,double,long
double>,3>>>,boost::mpl::joint_iter<boost::mpl::v_iter<boost::mpl::vector2<std::string,bool>,2>,boost::mpl::v_iter<boost::mpl::vector2<std::string,bool>,2>,boost::mpl::joint_iter<boost::mpl::v_iter<boost::mpl::vector8<uint8_t,uint16_t,uint32_t,uint64_t,int8_t,int16_t,int32_t,int64_t>,8>,boost::mpl::v_iter<boost::mpl::vector8<uint8_t,uint16_t,uint32_t,uint64_t,int8_t,int16_t,int32_t,int64_t>,8>,boost::mpl::v_iter<boost::mpl::vector3<float,double,long
double>,3>>>,boost::mpl::aux::transform_iter<boost::mpl::joint_iter<boost::mpl::v_iter<boost::mpl::vector2<std::string,bool>,2>,boost::mpl::v_iter<boost::mpl::vector2<std::string,bool>,2>,boost::mpl::joint_iter<boost::mpl::v_iter<boost::mpl::vector8<uint8_t,uint16_t,uint32_t,uint64_t,int8_t,int16_t,int32_t,int64_t>,8>,boost::mpl::v_iter<boost::mpl::vector8<uint8_t,uint16_t,uint32_t,uint64_t,int8_t,int16_t,int32_t,int64_t>,8>,boost::mpl::v_iter<boost::mpl::vector3<float,double,long
double>,3>>>,boost::mpl::joint_iter<boost::mpl::v_iter<boost::mpl::vector2<std::string,bool>,2>,boost::mpl::v_iter<boost::mpl::vector2<std::string,bool>,2>,boost::mpl::joint_iter<boost::mpl::v_iter<boost::mpl::vector8<uint8_t,uint16_t,uint32_t,uint64_t,int8_t,int16_t,int32_t,int64_t>,8>,boost::mpl::v_iter<boost::mpl::vector8<uint8_t,uint16_t,uint32_t,uint64_t,int8_t,int16_t,int32_t,int64_t>,8>,boost::mpl::v_iter<boost::mpl::vector3<float,double,long
double>,3>>>,boost::mpl::protect<boost::mpl::bind1<boost::mpl::quote1<make_vector,boost::mpl::void_>,boost::mpl::arg<1>>,0>>>,boost::mpl::v_iter<boost::mpl::vector0<boost::mpl::na>,0>>>
1> , BackwardOp=boost::mpl::push_front<boost::mpl::na,boost::mpl::na>
1> , ForwardOp=boost::mpl::arg<1>
1> ]
1>
D:\bioformats\v1\superbuild-install\include\boost-1_58\boost/mpl/reverse_fold.hpp(41)
: see reference to class template instantiation
'boost::mpl::aux::reverse_fold_impl<-1,boost::mpl::joint_iter<boost::mpl::v_iter<boost::mpl::vector0<boost::mpl::na>,0>,boost::mpl::v_iter<boost::mpl::vector0<boost::mpl::na>,0>,boost::mpl::joint_iter<boost::mpl::joint_iter<boost::mpl::joint_iter<boost::mpl::v_iter<boost::mpl::vector2<T0,T1>,0>,boost::mpl::v_iter<boost::mpl::vector2<T0,T1>,2>,boost::mpl::joint_iter<boost::mpl::v_iter<boost::mpl::vector8<unsigned
char,unsigned
short,T2,T3,T4,T5,T6,T7>,0>,boost::mpl::v_iter<boost::mpl::vector8<unsigned
char,unsigned
short,T2,T3,T4,T5,T6,T7>,8>,boost::mpl::v_iter<boost::mpl::vector3<float,double,long
double>,0>>>,boost::mpl::joint_iter<boost::mpl::v_iter<boost::mpl::vector2<T0,T1>,2>,boost::mpl::v_iter<boost::mpl::vector2<T0,T1>,2>,boost::mpl::joint_iter<boost::mpl::v_iter<boost::mpl::vector8<unsigned
char,unsigned
short,T2,T3,T4,T5,T6,T7>,8>,boost::mpl::v_iter<boost::mpl::vector8<unsigned
char,unsigned
short,T2,T3,T4,T5,T6,T7>,8>,boost::mpl::v_iter<boost::mpl::vector3<float,double,long
double>,3>>>,boost::mpl::aux::transform_iter<boost::mpl::joint_iter<boost::mpl::v_iter<boost::mpl::vector2<T0,T1>,0>,boost::mpl::v_iter<boost::mpl::vector2<T0,T1>,2>,boost::mpl::joint_iter<boost::mpl::v_iter<boost::mpl::vector8<unsigned
char,unsigned
short,T2,T3,T4,T5,T6,T7>,0>,boost::mpl::v_iter<boost::mpl::vector8<unsigned
char,unsigned
short,T2,T3,T4,T5,T6,T7>,8>,boost::mpl::v_iter<boost::mpl::vector3<float,double,long
double>,0>>>,boost::mpl::joint_iter<boost::mpl::v_iter<boost::mpl::vector2<T0,T1>,2>,boost::mpl::v_iter<boost::mpl::vector2<T0,T1>,2>,boost::mpl::joint_iter<boost::mpl::v_iter<boost::mpl::vector8<unsigned
char,unsigned
short,T2,T3,T4,T5,T6,T7>,8>,boost::mpl::v_iter<boost::mpl::vector8<unsigned
char,unsigned
short,T2,T3,T4,T5,T6,T7>,8>,boost::mpl::v_iter<boost::mpl::vector3<float,double,long
double>,3>>>,boost::mpl::protect<boost::mpl::bind1<boost::mpl::quote1<F,Tag>,boost::mpl::arg<1>>,0>>>,boost::mpl::joint_iter<boost::mpl::joint_iter<boost::mpl::v_iter<boost::mpl::vector2<T0,T1>,2>,boost::mpl::v_iter<boost::mpl::vector2<T0,T1>,2>,boost::mpl::joint_iter<boost::mpl::v_iter<boost::mpl::vector8<unsigned
char,unsigned
short,T2,T3,T4,T5,T6,T7>,8>,boost::mpl::v_iter<boost::mpl::vector8<unsigned
char,unsigned
short,T2,T3,T4,T5,T6,T7>,8>,boost::mpl::v_iter<boost::mpl::vector3<float,double,long
double>,3>>>,boost::mpl::joint_iter<boost::mpl::v_iter<boost::mpl::vector2<T0,T1>,2>,boost::mpl::v_iter<boost::mpl::vector2<T0,T1>,2>,boost::mpl::joint_iter<boost::mpl::v_iter<boost::mpl::vector8<unsigned
char,unsigned
short,T2,T3,T4,T5,T6,T7>,8>,boost::mpl::v_iter<boost::mpl::vector8<unsigned
char,unsigned
short,T2,T3,T4,T5,T6,T7>,8>,boost::mpl::v_iter<boost::mpl::vector3<float,double,long
double>,3>>>,boost::mpl::aux::transform_iter<boost::mpl::joint_iter<boost::mpl::v_iter<boost::mpl::vector2<T0,T1>,2>,boost::mpl::v_iter<boost::mpl::vector2<T0,T1>,2>,boost::mpl::joint_iter<boost::mpl::v_iter<boost::mpl::vector8<unsigned
char,unsigned
short,T2,T3,T4,T5,T6,T7>,8>,boost::mpl::v_iter<boost::mpl::vector8<unsigned
char,unsigned
short,T2,T3,T4,T5,T6,T7>,8>,boost::mpl::v_iter<boost::mpl::vector3<float,double,long
double>,3>>>,boost::mpl::joint_iter<boost::mpl::v_iter<boost::mpl::vector2<T0,T1>,2>,boost::mpl::v_iter<boost::mpl::vector2<T0,T1>,2>,boost::mpl::joint_iter<boost::mpl::v_iter<boost::mpl::vector8<unsigned
char,unsigned
short,T2,T3,T4,T5,T6,T7>,8>,boost::mpl::v_iter<boost::mpl::vector8<unsigned
char,unsigned
short,T2,T3,T4,T5,T6,T7>,8>,boost::mpl::v_iter<boost::mpl::vector3<float,double,long
double>,3>>>,boost::mpl::protect<boost::mpl::bind1<boost::mpl::quote1<F,Tag>,boost::mpl::arg<1>>,0>>>,boost::mpl::v_iter<boost::mpl::vector0<boost::mpl::na>,0>>>,boost::mpl::joint_iter<boost::mpl::v_iter<boost::mpl::vector0<boost::mpl::na>,0>,boost::mpl::v_iter<boost::mpl::vector0<boost::mpl::na>,0>,boost::mpl::joint_iter<boost::mpl::joint_iter<boost::mpl::joint_iter<boost::mpl::v_iter<boost::mpl::vector2<T0,T1>,2>,boost::mpl::v_iter<boost::mpl::vector2<T0,T1>,2>,boost::mpl::joint_iter<boost::mpl::v_iter<boost::mpl::vector8<unsigned
char,unsigned
short,T2,T3,T4,T5,T6,T7>,8>,boost::mpl::v_iter<boost::mpl::vector8<unsigned
char,unsigned
short,T2,T3,T4,T5,T6,T7>,8>,boost::mpl::v_iter<boost::mpl::vector3<float,double,long
double>,3>>>,boost::mpl::joint_iter<boost::mpl::v_iter<boost::mpl::vector2<T0,T1>,2>,boost::mpl::v_iter<boost::mpl::vector2<T0,T1>,2>,boost::mpl::joint_iter<boost::mpl::v_iter<boost::mpl::vector8<unsigned
char,unsigned
short,T2,T3,T4,T5,T6,T7>,8>,boost::mpl::v_iter<boost::mpl::vector8<unsigned
char,unsigned
short,T2,T3,T4,T5,T6,T7>,8>,boost::mpl::v_iter<boost::mpl::vector3<float,double,long
double>,3>>>,boost::mpl::aux::transform_iter<boost::mpl::joint_iter<boost::mpl::v_iter<boost::mpl::vector2<T0,T1>,2>,boost::mpl::v_iter<boost::mpl::vector2<T0,T1>,2>,boost::mpl::joint_iter<boost::mpl::v_iter<boost::mpl::vector8<unsigned
char,unsigned
short,T2,T3,T4,T5,T6,T7>,8>,boost::mpl::v_iter<boost::mpl::vector8<unsigned
char,unsigned
short,T2,T3,T4,T5,T6,T7>,8>,boost::mpl::v_iter<boost::mpl::vector3<float,double,long
double>,3>>>,boost::mpl::joint_iter<boost::mpl::v_iter<boost::mpl::vector2<T0,T1>,2>,boost::mpl::v_iter<boost::mpl::vector2<T0,T1>,2>,boost::mpl::joint_iter<boost::mpl::v_iter<boost::mpl::vector8<unsigned
char,unsigned
short,T2,T3,T4,T5,T6,T7>,8>,boost::mpl::v_iter<boost::mpl::vector8<unsigned
char,unsigned
short,T2,T3,T4,T5,T6,T7>,8>,boost::mpl::v_iter<boost::mpl::vector3<float,double,long
double>,3>>>,boost::mpl::protect<boost::mpl::bind1<boost::mpl::quote1<F,Tag>,boost::mpl::arg<1>>,0>>>,boost::mpl::joint_iter<boost::mpl::joint_iter<boost::mpl::v_iter<boost::mpl::vector2<T0,T1>,2>,boost::mpl::v_iter<boost::mpl::vector2<T0,T1>,2>,boost::mpl::joint_iter<boost::mpl::v_iter<boost::mpl::vector8<unsigned
char,unsigned
short,T2,T3,T4,T5,T6,T7>,8>,boost::mpl::v_iter<boost::mpl::vector8<unsigned
char,unsigned
short,T2,T3,T4,T5,T6,T7>,8>,boost::mpl::v_iter<boost::mpl::vector3<float,double,long
double>,3>>>,boost::mpl::joint_iter<boost::mpl::v_iter<boost::mpl::vector2<T0,T1>,2>,boost::mpl::v_iter<boost::mpl::vector2<T0,T1>,2>,boost::mpl::joint_iter<boost::mpl::v_iter<boost::mpl::vector8<unsigned
char,unsigned
short,T2,T3,T4,T5,T6,T7>,8>,boost::mpl::v_iter<boost::mpl::vector8<unsigned
char,unsigned
short,T2,T3,T4,T5,T6,T7>,8>,boost::mpl::v_iter<boost::mpl::vector3<float,double,long
double>,3>>>,boost::mpl::aux::transform_iter<boost::mpl::joint_iter<boost::mpl::v_iter<boost::mpl::vector2<T0,T1>,2>,boost::mpl::v_iter<boost::mpl::vector2<T0,T1>,2>,boost::mpl::joint_iter<boost::mpl::v_iter<boost::mpl::vector8<unsigned
char,unsigned
short,T2,T3,T4,T5,T6,T7>,8>,boost::mpl::v_iter<boost::mpl::vector8<unsigned
char,unsigned
short,T2,T3,T4,T5,T6,T7>,8>,boost::mpl::v_iter<boost::mpl::vector3<float,double,long
double>,3>>>,boost::mpl::joint_iter<boost::mpl::v_iter<boost::mpl::vector2<T0,T1>,2>,boost::mpl::v_iter<boost::mpl::vector2<T0,T1>,2>,boost::mpl::joint_iter<boost::mpl::v_iter<boost::mpl::vector8<unsigned
char,unsigned
short,T2,T3,T4,T5,T6,T7>,8>,boost::mpl::v_iter<boost::mpl::vector8<unsigned
char,unsigned
short,T2,T3,T4,T5,T6,T7>,8>,boost::mpl::v_iter<boost::mpl::vector3<float,double,long
double>,3>>>,boost::mpl::protect<boost::mpl::bind1<boost::mpl::quote1<F,Tag>,boost::mpl::arg<1>>,0>>>,boost::mpl::v_iter<boost::mpl::vector0<boost::mpl::na>,0>>>,State,BackwardOp,ForwardOp>'
being compiled
1> with
1> [
1> T0=std::string
1> , T1=bool
1> , T2=uint32_t
1> , T3=uint64_t
1> , T4=int8_t
1> , T5=int16_t
1> , T6=int32_t
1> , T7=int64_t
1> , F=make_vector
1> , Tag=boost::mpl::void_
1> , State=boost::mpl::vector0<boost::mpl::na>
1> , BackwardOp=boost::mpl::push_front<boost::mpl::na,boost::mpl::na>
1> , ForwardOp=boost::mpl::arg<1>
1> ]
1>
D:\bioformats\v1\superbuild-install\include\boost-1_58\boost/mpl/copy.hpp(49)
: see reference to class template instantiation
'boost::mpl::reverse_fold<Sequence,boost::mpl::vector0<boost::mpl::na>,boost::mpl::push_front<boost::mpl::na,boost::mpl::na>,boost::mpl::arg<1>>'
being compiled
1> with
1> [
1>
Sequence=boost::mpl::joint_view<boost::mpl::iterator_range<boost::mpl::v_iter<boost::mpl::vector0<boost::mpl::na>,0>,boost::mpl::v_iter<boost::mpl::vector0<boost::mpl::na>,0>>,boost::mpl::joint_view<all_types_view,boost::mpl::iterator_range<boost::mpl::v_iter<boost::mpl::vector0<boost::mpl::na>,0>,boost::mpl::v_iter<boost::mpl::vector0<boost::mpl::na>,0>>>>
1> ]
1>
D:\bioformats\v1\superbuild-install\include\boost-1_58\boost/mpl/copy.hpp(54)
: see reference to class template instantiation
'boost::mpl::aux::reverse_copy_impl<P1,P2>' being compiled
1> with
1> [
1>
P1=boost::mpl::joint_view<boost::mpl::iterator_range<boost::mpl::v_iter<boost::mpl::vector0<boost::mpl::na>,0>,boost::mpl::v_iter<boost::mpl::vector0<boost::mpl::na>,0>>,boost::mpl::joint_view<all_types_view,boost::mpl::iterator_range<boost::mpl::v_iter<boost::mpl::vector0<boost::mpl::na>,0>,boost::mpl::v_iter<boost::mpl::vector0<boost::mpl::na>,0>>>>
1> ,
P2=boost::mpl::front_inserter<boost::mpl::clear_impl<boost::mpl::aux::vector_tag<0>>::apply<boost::mpl::vector0<boost::mpl::na>>::type>
1> ]
1>
D:\bioformats\v1\superbuild-install\include\boost-1_58\boost/mpl/aux_/insert_range_impl.hpp(56)
: see reference to class template instantiation
'boost::mpl::reverse_copy<boost::mpl::joint_view<boost::mpl::iterator_range<boost::mpl::v_iter<boost::mpl::vector0<boost::mpl::na>,0>,Pos>,boost::mpl::joint_view<Range,boost::mpl::iterator_range<boost::mpl::v_iter<boost::mpl::vector0<boost::mpl::na>,0>,Pos>>>,boost::mpl::front_inserter<boost::mpl::clear_impl<boost::mpl::aux::vector_tag<0>>::apply<Sequence>::type>>'
being compiled
1> with
1> [
1> Pos=boost::mpl::v_iter<boost::mpl::vector0<boost::mpl::na>,0>
1> , Range=all_types_view
1> , Sequence=boost::mpl::vector0<boost::mpl::na>
1> ]
1>
D:\bioformats\v1\superbuild-install\include\boost-1_58\boost/mpl/insert_range.hpp(33)
: see reference to class template instantiation
'boost::mpl::insert_range_impl<boost::mpl::aux::vector_tag<0>>::apply<Sequence,Pos,Range>'
being compiled
1> with
1> [
1> Sequence=boost::mpl::vector0<boost::mpl::na>
1> , Pos=boost::mpl::v_iter<boost::mpl::vector0<boost::mpl::na>,0>
1> , Range=all_types_view
1> ]
1> D:\bioformats\cpp\test\ome-bioformats\testinclude.cpp(63) :
see reference to class template instantiation
'boost::mpl::insert_range<boost::mpl::vector0<boost::mpl::na>,boost::mpl::v_iter<boost::mpl::vector0<boost::mpl::na>,0>,all_types_view>'
being compiled
1>D:\bioformats\v1\superbuild-install\include\boost-1_58\boost/mpl/aux_/reverse_fold_impl_body.hpp(151):
error C2039: 'type' : is not a member of
'boost::mpl::apply2<BackwardOp,boost::mpl::vector20<T,short,int,__int64,float,double,long
double,std::vector<std::basic_string<char,std::char_traits<char>,std::allocator<char>>,std::allocator<_Ty>>,std::vector<bool,std::allocator<bool>>,std::vector<unsigned
char,std::allocator<unsigned char>>,std::vector<unsigned
short,std::allocator<char16_t>>,std::vector<unsigned
int,std::allocator<char32_t>>,std::vector<unsigned
__int64,std::allocator<unsigned
__int64>>,std::vector<T,std::allocator<signed
char>>,std::vector<short,std::allocator<short>>,std::vector<int,std::allocator<int>>,std::vector<__int64,std::allocator<__int64>>,std::vector<float,std::allocator<float>>,std::vector<double,std::allocator<double>>,std::vector<long
double,std::allocator<long double>>>,unsigned __int64>'
1> with
1> [
1> BackwardOp=boost::mpl::push_front<boost::mpl::na,boost::mpl::na>
1> , T=signed char
1> ,
_Ty=std::basic_string<char,std::char_traits<char>,std::allocator<char>>
1> ]
1>D:\bioformats\v1\superbuild-install\include\boost-1_58\boost/mpl/aux_/reverse_fold_impl_body.hpp(151):
error C3203: 'type' : unspecialized class template can't be used as a
template argument for template parameter 'T1', expected a real type
1>D:\bioformats\v1\superbuild-install\include\boost-1_58\boost/mpl/push_front.hpp(31):
error C2903: 'apply' : symbol is neither a class template nor a function
template
1>
D:\bioformats\v1\superbuild-install\include\boost-1_58\boost/mpl/push_front.hpp(47)
: see reference to class template instantiation
'boost::mpl::push_front<T1,T2>' being compiled
1> with
1> [
1> T1=int
1> , T2=unsigned int
1> ]
1>
D:\bioformats\v1\superbuild-install\include\boost-1_58\boost/mpl/apply_wrap.hpp(145)
: see reference to class template instantiation
'boost::mpl::push_front<boost::mpl::na,boost::mpl::na>::apply<T1,T2,boost::mpl::na,boost::mpl::na,boost::mpl::na>'
being compiled
1> with
1> [
1> T1=int
1> , T2=unsigned int
1> ]
1>
D:\bioformats\v1\superbuild-install\include\boost-1_58\boost/mpl/apply.hpp(154)
: see reference to class template instantiation
'boost::mpl::apply_wrap2<boost::mpl::lambda<F,boost::mpl::void_>::type,T1,T2>'
being compiled
1> with
1> [
1> F=boost::mpl::push_front<boost::mpl::na,boost::mpl::na>
1> , T1=int
1> , T2=unsigned int
1> ]
1>
D:\bioformats\v1\superbuild-install\include\boost-1_58\boost/mpl/aux_/reverse_fold_impl_body.hpp(151)
: see reference to class template instantiation
'boost::mpl::apply2<BackwardOp,int,unsigned int>' being compiled
1> with
1> [
1> BackwardOp=boost::mpl::push_front<boost::mpl::na,boost::mpl::na>
1> ]
1>D:\bioformats\v1\superbuild-install\include\boost-1_58\boost/mpl/push_front.hpp(31):
error C2039: 'apply' : is not a member of
'boost::mpl::push_front_impl<boost::mpl::non_sequence_tag>'
1>
D:\bioformats\v1\superbuild-install\include\boost-1_58\boost/mpl/aux_/push_front_impl.hpp(66)
: see declaration of
'boost::mpl::push_front_impl<boost::mpl::non_sequence_tag>'
1>D:\bioformats\v1\superbuild-install\include\boost-1_58\boost/mpl/push_front.hpp(31):
error C2955: 'boost::mpl::apply' : use of class template requires
template argument list
1>
D:\bioformats\v1\superbuild-install\include\boost-1_58\boost/mpl/apply.hpp(188)
: see declaration of 'boost::mpl::apply'
1>D:\bioformats\v1\superbuild-install\include\boost-1_58\boost/mpl/push_front.hpp(31):
error C2143: syntax error : missing ',' before '<'
1>D:\bioformats\v1\superbuild-install\include\boost-1_58\boost/mpl/aux_/reverse_fold_impl_body.hpp(151):
error C2039: 'type' : is not a member of
'boost::mpl::apply2<BackwardOp,int,unsigned int>'
1> with
1> [
1> BackwardOp=boost::mpl::push_front<boost::mpl::na,boost::mpl::na>
1> ]
1>
D:\bioformats\v1\superbuild-install\include\boost-1_58\boost/mpl/aux_/push_front_impl.hpp(66)
: see declaration of
'boost::mpl::push_front_impl<boost::mpl::non_sequence_tag>'
1>
D:\bioformats\v1\superbuild-install\include\boost-1_58\boost/mpl/apply.hpp(188)
: see declaration of 'boost::mpl::apply'
1>D:\bioformats\v1\superbuild-install\include\boost-1_58\boost/mpl/aux_/reverse_fold_impl_body.hpp(151):
error C2039: 'type' : is not a member of
'boost::mpl::apply2<BackwardOp,int,unsigned short>'
1> with
1> [
1> BackwardOp=boost::mpl::push_front<boost::mpl::na,boost::mpl::na>
1> ]
1>
D:\bioformats\v1\superbuild-install\include\boost-1_58\boost/mpl/aux_/push_front_impl.hpp(66)
: see declaration of
'boost::mpl::push_front_impl<boost::mpl::non_sequence_tag>'
1>
D:\bioformats\v1\superbuild-install\include\boost-1_58\boost/mpl/apply.hpp(188)
: see declaration of 'boost::mpl::apply'
1>D:\bioformats\v1\superbuild-install\include\boost-1_58\boost/mpl/aux_/reverse_fold_impl_body.hpp(151):
error C2039: 'type' : is not a member of
'boost::mpl::apply2<BackwardOp,int,unsigned char>'
1> with
1> [
1> BackwardOp=boost::mpl::push_front<boost::mpl::na,boost::mpl::na>
1> ]
1>
D:\bioformats\v1\superbuild-install\include\boost-1_58\boost/mpl/aux_/push_front_impl.hpp(66)
: see declaration of
'boost::mpl::push_front_impl<boost::mpl::non_sequence_tag>'
1>
D:\bioformats\v1\superbuild-install\include\boost-1_58\boost/mpl/apply.hpp(188)
: see declaration of 'boost::mpl::apply'
1>D:\bioformats\v1\superbuild-install\include\boost-1_58\boost/mpl/aux_/reverse_fold_impl_body.hpp(151):
error C2039: 'type' : is not a member of
'boost::mpl::apply2<BackwardOp,int,bool>'
1> with
1> [
1> BackwardOp=boost::mpl::push_front<boost::mpl::na,boost::mpl::na>
1> ]
1>
D:\bioformats\v1\superbuild-install\include\boost-1_58\boost/mpl/aux_/push_front_impl.hpp(66)
: see declaration of
'boost::mpl::push_front_impl<boost::mpl::non_sequence_tag>'
1>
D:\bioformats\v1\superbuild-install\include\boost-1_58\boost/mpl/apply.hpp(188)
: see declaration of 'boost::mpl::apply'
1>D:\bioformats\v1\superbuild-install\include\boost-1_58\boost/mpl/aux_/reverse_fold_impl_body.hpp(151):
error C2039: 'type' : is not a member of
'boost::mpl::apply2<BackwardOp,int,std::basic_string<char,std::char_traits<char>,std::allocator<char>>>'
1> with
1> [
1> BackwardOp=boost::mpl::push_front<boost::mpl::na,boost::mpl::na>
1> ]
1> The command exited with code 2.
------------------------------------------------------------------------
2
3

[Interprocess] or [Container]: Error with internally in rbtree_best_fit deallocation
by David Schneider 05 Aug '15
by David Schneider 05 Aug '15
05 Aug '15
Hello,
I've been upgrading a Windows 3.0 industrial control suite that relies
heavily on GlobalAlloc() etc. I've used Boost's IPC functions to create
a replacement that works very, very well for multiple applications so far.
I'm using Boost 1.57 or 1.58, both exhibit the same behavior, across
Windows 7, 8.1 & 10 64-bit, with 32-bit applications, compiled in Visual
Studio 2013. All code displayed is from 1.58 but I don't see it being
materially different from 1.57 in this case.
Unfortunately, I've come up against an issue I can't best. 6 or 7 of the
applications are working more or less without hitches, but I've come to
port the last one and rbtree_best_fit is messing up pretty badly. It
happens during a destruct operation on a vector. It always, always
happens on the same vector, and I can even watch all operations on it by
pre-allocating it large because rbtree_best_fit will reliably assign the
same address (in every application, a 64mb memory pool is mapped into
the same address space)
What happens is the vector gets constructed with a UUID generated by
Boost as its identifier. (A handle including a pointer to said vector
goes into an interprocess map, but that's another story).
Here's the typedefs used to create the memory pool & vector:
namespace ipc = boost::interprocess;
typedef ipc::managed_windows_shared_memory managed_pool_t;
typedef managed_pool_t::segment_manager managed_pool_segment_manager_t;
typedef ipc::allocator < char, managed_pool_segment_manager_t >
managed_pool_allocator_t;
typedef ipc::vector< char, managed_pool_allocator_t > GLE_handle_vector_t;
How it is constructed:
GLE_handle_vector_t *foo;
foo =
_managed_pool->construct<GLE_handle_vector_t>(uuid_str)(_managed_pool->get_segment_manager());
foo->resize((GLE_handle_vector_t::size_type)dwBytes); // dwBytes has
some added to it in this case to prevent the need to re-allocate the
vector's data buffer
Later on it is resized at least 12 times:
mvector->resize(dwBytes);
Then something goes to free it.
_managed_pool->destroy<GLE_handle_vector_t>(UUID);
Keep in mind that this has worked for 6 other programs all sharing
memory at the same time over at least a hundred hours of running-time so
far.
Yes, I have checked that the UUID is correct. I get, of course, an
extremely long template error. I'll include it at the end. The relevant
part is this:
> w16gle.dll!boost::interprocess::operator<(const
boost::interprocess::rbtree_best_fit<boost::interprocess::mutex_family,boost::interprocess::offset_ptr<void,int,unsigned
int,0>,0>::block_ctrl & a, const
boost::interprocess::rbtree_best_fit<boost::interprocess::mutex_family,boost::interprocess::offset_ptr<void,int,unsigned
int,0>,0>::block_ctrl & b) Line 126 C++
The offending line is:
{ return a.m_size < b.m_size; }
Going into the immediate window,
&a
0x700a434c {...}
boost::interprocess::rbtree_best_fit<boost::interprocess::mutex_family,boost::interprocess::offset_ptr<void,int,unsigned
int,0>,0>::SizeHolder: {m_prev_size=??? m_size=??? m_prev_allocated=??? ...}
boost::intrusive::generic_hook<boost::intrusive::rbtree_algorithms<boost::intrusive::rbtree_node_traits<boost::interprocess::offset_ptr<void,int,unsigned
int,0>,1> >,boost::intrusive::dft_tag,0,3>: {...}
&b
0x3f09bed8 {...}
boost::interprocess::rbtree_best_fit<boost::interprocess::mutex_family,boost::interprocess::offset_ptr<void,int,unsigned
int,0>,0>::SizeHolder: {m_prev_size=0 m_size=513 m_prev_allocated=1 ...}
boost::intrusive::generic_hook<boost::intrusive::rbtree_algorithms<boost::intrusive::rbtree_node_traits<boost::interprocess::offset_ptr<void,int,unsigned
int,0>,1> >,boost::intrusive::dft_tag,0,3>: {...}
B's address is correct. I have no idea where it is getting A's address,
especially since it is passed by reference. Inspecting the memory all
around that location reveals that it is not allocated. My understanding
is that at this point the code is trying to merge this block with the
next free one, but that's as far as I got understanding it. I've tried
tracing the call stack thoroughly but it goes through some "external
code" on the call stack just before this error.
w16gle.dll!boost::interprocess::operator<(const
boost::interprocess::rbtree_best_fit<boost::interprocess::mutex_family,boost::interprocess::offset_ptr<void,int,unsigned
int,0>,0>::block_ctrl & a, const
boost::interprocess::rbtree_best_fit<boost::interprocess::mutex_family,boost::interprocess::offset_ptr<void,int,unsigned
int,0>,0>::block_ctrl & b) Line 126 C++
*_[External Code]_*
w16gle.dll!boost::intrusive::detail::key_nodeptr_comp<std::less<boost::interprocess::rbtree_best_fit<boost::interprocess::mutex_family,boost::interprocess::offset_ptr<void,int,unsigned
int,0>,0>::block_ctrl>,boost::intrusive::bhtraits<boost::interprocess::rbtree_best_fit<boost::interprocess::mutex_family,boost::interprocess::offset_ptr<void,int,unsigned
int,0>,0>::block_ctrl,boost::intrusive::rbtree_node_traits<boost::interprocess::offset_ptr<void,int,unsigned
int,0>,1>,0,boost::intrusive::dft_tag,3>
>::operator()<boost::interprocess::offset_ptr<boost::intrusive::compact_rbtree_node<boost::interprocess::offset_ptr<void,int,unsigned int,0> >,int,unsigned int,0>,boost::interprocess::offset_ptr<boost::intrusive::compact_rbtree_node<boost::interprocess::offset_ptr<void,int,unsigned int,0> >,int,unsigned int,0> >(const boost::interprocess::offset_ptr<boost::intrusive::compact_rbtree_node<boost::interprocess::offset_ptr<void,int,unsigned int,0> >,int,unsigned int,0> & key1, const boost::interprocess::offset_ptr<boost::intrusive::compact_rbtree_node<boost::interprocess::offset_ptr<void,int,unsigned int,0> >,int,unsigned int,0> & key2) Line 78 C++
_I would be happy to just use the simple_seq_fit allocator to avoid this
bug_, since it would do fine for this, but when I typedef it...
namespace boost {
namespace interprocess {
typedef basic_managed_windows_shared_memory<char,
simple_seq_fit<mutex_family>, iset_index> managed_windows_shared_seq_memory;
}
}
and use it, I get compilation errors:
c:\boost\include\boost-1_58\boost\interprocess\managed_windows_shared_memory.hpp(45):
error C2027: use of undefined type
'boost::interprocess::simple_seq_fit<boost::interprocess::mutex_family,boost::interprocess::offset_ptr<void,ptrdiff_t,size_t,0>>'
1>
c:\boost\include\boost-1_58\boost\interprocess\managed_windows_shared_memory.hpp(70)
: see reference to class template instantiation
'boost::interprocess::ipcdetail::wshmem_open_or_create<AllocationAlgorithm>'
being compiled
1> with
.... there's over 100 of them. No way I'm figuring that out.
Please help me. Is there some way to troubleshoot what rbtree_best_fit
is doing wrong? If a Boost developer wants to have a private discussion
with me on the matter please feel free to contact me, since there's
obviously a bug somewhere, I might be open to that. Alternatively, how
do I get the seq_best_fit to work?
Thank you for your help!
Here is the whole call stack during the access violation with
rbtree_best_fit that I referred to above.
> w16gle.dll!boost::interprocess::operator<(const
boost::interprocess::rbtree_best_fit<boost::interprocess::mutex_family,boost::interprocess::offset_ptr<void,int,unsigned
int,0>,0>::block_ctrl & a, const
boost::interprocess::rbtree_best_fit<boost::interprocess::mutex_family,boost::interprocess::offset_ptr<void,int,unsigned
int,0>,0>::block_ctrl & b) Line 126 C++
[External Code]
w16gle.dll!boost::intrusive::detail::key_nodeptr_comp<std::less<boost::interprocess::rbtree_best_fit<boost::interprocess::mutex_family,boost::interprocess::offset_ptr<void,int,unsigned
int,0>,0>::block_ctrl>,boost::intrusive::bhtraits<boost::interprocess::rbtree_best_fit<boost::interprocess::mutex_family,boost::interprocess::offset_ptr<void,int,unsigned
int,0>,0>::block_ctrl,boost::intrusive::rbtree_node_traits<boost::interprocess::offset_ptr<void,int,unsigned
int,0>,1>,0,boost::intrusive::dft_tag,3>
>::operator()<boost::interprocess::offset_ptr<boost::intrusive::compact_rbtree_node<boost::interprocess::offset_ptr<void,int,unsigned int,0> >,int,unsigned int,0>,boost::interprocess::offset_ptr<boost::intrusive::compact_rbtree_node<boost::interprocess::offset_ptr<void,int,unsigned int,0> >,int,unsigned int,0> >(const boost::interprocess::offset_ptr<boost::intrusive::compact_rbtree_node<boost::interprocess::offset_ptr<void,int,unsigned int,0> >,int,unsigned int,0> & key1, const boost::interprocess::offset_ptr<boost::intrusive::compact_rbtree_node<boost::interprocess::offset_ptr<void,int,unsigned int,0> >,int,unsigned int,0> & key2) Line 78 C++
w16gle.dll!boost::intrusive::bstree_algorithms<boost::intrusive::rbtree_node_traits<boost::interprocess::offset_ptr<void,int,unsigned
int,0>,1>
>::insert_equal_lower_bound_check<boost::intrusive::detail::key_nodeptr_comp<std::less<boost::interprocess::rbtree_best_fit<boost::interprocess::mutex_family,boost::interprocess::offset_ptr<void,int,unsigned int,0>,0>::block_ctrl>,boost::intrusive::bhtraits<boost::interprocess::rbtree_best_fit<boost::interprocess::mutex_family,boost::interprocess::offset_ptr<void,int,unsigned int,0>,0>::block_ctrl,boost::intrusive::rbtree_node_traits<boost::interprocess::offset_ptr<void,int,unsigned int,0>,1>,0,boost::intrusive::dft_tag,3> > >(const boost::interprocess::offset_ptr<boost::intrusive::compact_rbtree_node<boost::interprocess::offset_ptr<void,int,unsigned int,0> >,int,unsigned int,0> & h, const boost::interprocess::offset_ptr<boost::intrusive::compact_rbtree_node<boost::interprocess::offset_ptr<void,int,unsigned int,0> >,int,unsigned int,0> & new_node, boost::intrusive::detail::key_nodeptr_comp<std::less<boost::interprocess::rbtree_best_fit<boost::interprocess::mutex_family,boost::interprocess::offset_ptr<void,int,unsigned int,0>,0>::block_ctrl>,boost::intrusive::bhtraits<boost::interprocess::rbtree_best_fit<boost::interprocess::mutex_family,boost::interprocess::offset_ptr<void,int,unsigned int,0>,0>::block_ctrl,boost::intrusive::rbtree_node_traits<boost::interprocess::offset_ptr<void,int,unsigned int,0>,1>,0,boost::intrusive::dft_tag,3> > comp, boost::intrusive::insert_commit_data_t<boost::interprocess::offset_ptr<boost::intrusive::compact_rbtree_node<boost::interprocess::offset_ptr<void,int,unsigned int,0> >,int,unsigned int,0> > & commit_data, unsigned int * pdepth) Line 1692 C++
w16gle.dll!boost::intrusive::bstree_algorithms<boost::intrusive::rbtree_node_traits<boost::interprocess::offset_ptr<void,int,unsigned
int,0>,1>
>::insert_equal_check<boost::intrusive::detail::key_nodeptr_comp<std::less<boost::interprocess::rbtree_best_fit<boost::interprocess::mutex_family,boost::interprocess::offset_ptr<void,int,unsigned int,0>,0>::block_ctrl>,boost::intrusive::bhtraits<boost::interprocess::rbtree_best_fit<boost::interprocess::mutex_family,boost::interprocess::offset_ptr<void,int,unsigned int,0>,0>::block_ctrl,boost::intrusive::rbtree_node_traits<boost::interprocess::offset_ptr<void,int,unsigned int,0>,1>,0,boost::intrusive::dft_tag,3> > >(const boost::interprocess::offset_ptr<boost::intrusive::compact_rbtree_node<boost::interprocess::offset_ptr<void,int,unsigned int,0> >,int,unsigned int,0> & header, const boost::interprocess::offset_ptr<boost::intrusive::compact_rbtree_node<boost::interprocess::offset_ptr<void,int,unsigned int,0> >,int,unsigned int,0> & hint, const boost::interprocess::offset_ptr<boost::intrusive::compact_rbtree_node<boost::interprocess::offset_ptr<void,int,unsigned int,0> >,int,unsigned int,0> & new_node, boost::intrusive::detail::key_nodeptr_comp<std::less<boost::interprocess::rbtree_best_fit<boost::interprocess::mutex_family,boost::interprocess::offset_ptr<void,int,unsigned int,0>,0>::block_ctrl>,boost::intrusive::bhtraits<boost::interprocess::rbtree_best_fit<boost::interprocess::mutex_family,boost::interprocess::offset_ptr<void,int,unsigned int,0>,0>::block_ctrl,boost::intrusive::rbtree_node_traits<boost::interprocess::offset_ptr<void,int,unsigned int,0>,1>,0,boost::intrusive::dft_tag,3> > comp, boost::intrusive::insert_commit_data_t<boost::interprocess::offset_ptr<boost::intrusive::compact_rbtree_node<boost::interprocess::offset_ptr<void,int,unsigned int,0> >,int,unsigned int,0> > & commit_data, unsigned int * pdepth) Line 1657 C++
w16gle.dll!boost::intrusive::bstree_algorithms<boost::intrusive::rbtree_node_traits<boost::interprocess::offset_ptr<void,int,unsigned
int,0>,1>
>::insert_equal<boost::intrusive::detail::key_nodeptr_comp<std::less<boost::interprocess::rbtree_best_fit<boost::interprocess::mutex_family,boost::interprocess::offset_ptr<void,int,unsigned int,0>,0>::block_ctrl>,boost::intrusive::bhtraits<boost::interprocess::rbtree_best_fit<boost::interprocess::mutex_family,boost::interprocess::offset_ptr<void,int,unsigned int,0>,0>::block_ctrl,boost::intrusive::rbtree_node_traits<boost::interprocess::offset_ptr<void,int,unsigned int,0>,1>,0,boost::intrusive::dft_tag,3> > >(const boost::interprocess::offset_ptr<boost::intrusive::compact_rbtree_node<boost::interprocess::offset_ptr<void,int,unsigned int,0> >,int,unsigned int,0> & h, const boost::interprocess::offset_ptr<boost::intrusive::compact_rbtree_node<boost::interprocess::offset_ptr<void,int,unsigned int,0> >,int,unsigned int,0> & hint, const boost::interprocess::offset_ptr<boost::intrusive::compact_rbtree_node<boost::interprocess::offset_ptr<void,int,unsigned int,0> >,int,unsigned int,0> & new_node, boost::intrusive::detail::key_nodeptr_comp<std::less<boost::interprocess::rbtree_best_fit<boost::interprocess::mutex_family,boost::interprocess::offset_ptr<void,int,unsigned int,0>,0>::block_ctrl>,boost::intrusive::bhtraits<boost::interprocess::rbtree_best_fit<boost::interprocess::mutex_family,boost::interprocess::offset_ptr<void,int,unsigned int,0>,0>::block_ctrl,boost::intrusive::rbtree_node_traits<boost::interprocess::offset_ptr<void,int,unsigned int,0>,1>,0,boost::intrusive::dft_tag,3> > comp, unsigned int * pdepth) Line 1121 C++
w16gle.dll!boost::intrusive::rbtree_algorithms<boost::intrusive::rbtree_node_traits<boost::interprocess::offset_ptr<void,int,unsigned
int,0>,1>
>::insert_equal<boost::intrusive::detail::key_nodeptr_comp<std::less<boost::interprocess::rbtree_best_fit<boost::interprocess::mutex_family,boost::interprocess::offset_ptr<void,int,unsigned int,0>,0>::block_ctrl>,boost::intrusive::bhtraits<boost::interprocess::rbtree_best_fit<boost::interprocess::mutex_family,boost::interprocess::offset_ptr<void,int,unsigned int,0>,0>::block_ctrl,boost::intrusive::rbtree_node_traits<boost::interprocess::offset_ptr<void,int,unsigned int,0>,1>,0,boost::intrusive::dft_tag,3> > >(const boost::interprocess::offset_ptr<boost::intrusive::compact_rbtree_node<boost::interprocess::offset_ptr<void,int,unsigned int,0> >,int,unsigned int,0> & header, const boost::interprocess::offset_ptr<boost::intrusive::compact_rbtree_node<boost::interprocess::offset_ptr<void,int,unsigned int,0> >,int,unsigned int,0> & hint, const boost::interprocess::offset_ptr<boost::intrusive::compact_rbtree_node<boost::interprocess::offset_ptr<void,int,unsigned int,0> >,int,unsigned int,0> & new_node, boost::intrusive::detail::key_nodeptr_comp<std::less<boost::interprocess::rbtree_best_fit<boost::interprocess::mutex_family,boost::interprocess::offset_ptr<void,int,unsigned int,0>,0>::block_ctrl>,boost::intrusive::bhtraits<boost::interprocess::rbtree_best_fit<boost::interprocess::mutex_family,boost::interprocess::offset_ptr<void,int,unsigned int,0>,0>::block_ctrl,boost::intrusive::rbtree_node_traits<boost::interprocess::offset_ptr<void,int,unsigned int,0>,1>,0,boost::intrusive::dft_tag,3> > comp) Line 374 C++
w16gle.dll!boost::intrusive::bstree_impl<boost::intrusive::bhtraits<boost::interprocess::rbtree_best_fit<boost::interprocess::mutex_family,boost::interprocess::offset_ptr<void,int,unsigned
int,0>,0>::block_ctrl,boost::intrusive::rbtree_node_traits<boost::interprocess::offset_ptr<void,int,unsigned
int,0>,1>,0,boost::intrusive::dft_tag,3>,void,unsigned
int,1,5,void>::insert_equal(boost::intrusive::tree_iterator<boost::intrusive::bhtraits<boost::interprocess::rbtree_best_fit<boost::interprocess::mutex_family,boost::interprocess::offset_ptr<void,int,unsigned
int,0>,0>::block_ctrl,boost::intrusive::rbtree_node_traits<boost::interprocess::offset_ptr<void,int,unsigned
int,0>,1>,0,boost::intrusive::dft_tag,3>,1> hint,
boost::interprocess::rbtree_best_fit<boost::interprocess::mutex_family,boost::interprocess::offset_ptr<void,int,unsigned
int,0>,0>::block_ctrl & value) Line 1039 C++
w16gle.dll!boost::intrusive::multiset_impl<boost::intrusive::bhtraits<boost::interprocess::rbtree_best_fit<boost::interprocess::mutex_family,boost::interprocess::offset_ptr<void,int,unsigned
int,0>,0>::block_ctrl,boost::intrusive::rbtree_node_traits<boost::interprocess::offset_ptr<void,int,unsigned
int,0>,1>,0,boost::intrusive::dft_tag,3>,void,unsigned
int,1,void>::insert(boost::intrusive::tree_iterator<boost::intrusive::bhtraits<boost::interprocess::rbtree_best_fit<boost::interprocess::mutex_family,boost::interprocess::offset_ptr<void,int,unsigned
int,0>,0>::block_ctrl,boost::intrusive::rbtree_node_traits<boost::interprocess::offset_ptr<void,int,unsigned
int,0>,1>,0,boost::intrusive::dft_tag,3>,1> hint,
boost::interprocess::rbtree_best_fit<boost::interprocess::mutex_family,boost::interprocess::offset_ptr<void,int,unsigned
int,0>,0>::block_ctrl & value) Line 656 C++
w16gle.dll!boost::interprocess::rbtree_best_fit<boost::interprocess::mutex_family,boost::interprocess::offset_ptr<void,int,unsigned
int,0>,0>::priv_deallocate(void * addr) Line 1390 C++
w16gle.dll!boost::interprocess::rbtree_best_fit<boost::interprocess::mutex_family,boost::interprocess::offset_ptr<void,int,unsigned
int,0>,0>::deallocate(void * addr) Line 1321 C++
w16gle.dll!boost::interprocess::segment_manager_base<boost::interprocess::rbtree_best_fit<boost::interprocess::mutex_family,boost::interprocess::offset_ptr<void,int,unsigned
int,0>,0> >::deallocate(void * addr) Line 227 C++
w16gle.dll!boost::interprocess::allocator<char,boost::interprocess::segment_manager<char,boost::interprocess::rbtree_best_fit<boost::interprocess::mutex_family,boost::interprocess::offset_ptr<void,int,unsigned
int,0>,0>,boost::interprocess::iset_index> >::deallocate(const
boost::interprocess::offset_ptr<char,int,unsigned int,0> & ptr, unsigned
int __formal) Line 159 C++
w16gle.dll!boost::container::container_detail::vector_alloc_holder<boost::interprocess::allocator<char,boost::interprocess::segment_manager<char,boost::interprocess::rbtree_best_fit<boost::interprocess::mutex_family,boost::interprocess::offset_ptr<void,int,unsigned
int,0>,0>,boost::interprocess::iset_index>
>,boost::container::container_detail::integral_constant<unsigned int,2>
>::~vector_alloc_holder<boost::interprocess::allocator<char,boost::interprocess::segment_manager<char,boost::interprocess::rbtree_best_fit<boost::interprocess::mutex_family,boost::interprocess::offset_ptr<void,int,unsigned int,0>,0>,boost::interprocess::iset_index> >,boost::container::container_detail::integral_constant<unsigned int,2> >() Line 395 C++
w16gle.dll!boost::container::vector<char,boost::interprocess::allocator<char,boost::interprocess::segment_manager<char,boost::interprocess::rbtree_best_fit<boost::interprocess::mutex_family,boost::interprocess::offset_ptr<void,int,unsigned
int,0>,0>,boost::interprocess::iset_index> >
>::~vector<char,boost::interprocess::allocator<char,boost::interprocess::segment_manager<char,boost::interprocess::rbtree_best_fit<boost::interprocess::mutex_family,boost::interprocess::offset_ptr<void,int,unsigned int,0>,0>,boost::interprocess::iset_index> > >() Line 985 C++
[External Code]
w16gle.dll!boost::interprocess::ipcdetail::placement_destroy<boost::container::vector<char,boost::interprocess::allocator<char,boost::interprocess::segment_manager<char,boost::interprocess::rbtree_best_fit<boost::interprocess::mutex_family,boost::interprocess::offset_ptr<void,int,unsigned
int,0>,0>,boost::interprocess::iset_index> > > >::destroy_n(void * mem,
unsigned int num, unsigned int & destroyed) Line 61 C++
w16gle.dll!boost::interprocess::segment_manager<char,boost::interprocess::rbtree_best_fit<boost::interprocess::mutex_family,boost::interprocess::offset_ptr<void,int,unsigned
int,0>,0>,boost::interprocess::iset_index>::priv_generic_named_destroy<char>(const
char * name,
boost::interprocess::iset_index<boost::interprocess::ipcdetail::index_config<char,boost::interprocess::rbtree_best_fit<boost::interprocess::mutex_family,boost::interprocess::offset_ptr<void,int,unsigned
int,0>,0> > > & index,
boost::interprocess::ipcdetail::in_place_interface & table,
boost::interprocess::ipcdetail::bool_<1> is_intrusive_index) Line 975 C++
w16gle.dll!boost::interprocess::segment_manager<char,boost::interprocess::rbtree_best_fit<boost::interprocess::mutex_family,boost::interprocess::offset_ptr<void,int,unsigned
int,0>,0>,boost::interprocess::iset_index>::destroy<boost::container::vector<char,boost::interprocess::allocator<char,boost::interprocess::segment_manager<char,boost::interprocess::rbtree_best_fit<boost::interprocess::mutex_family,boost::interprocess::offset_ptr<void,int,unsigned
int,0>,0>,boost::interprocess::iset_index> > >
>(boost::interprocess::ipcdetail::char_ptr_holder<char> name) Line
538 C++
w16gle.dll!boost::interprocess::ipcdetail::basic_managed_memory_impl<char,boost::interprocess::rbtree_best_fit<boost::interprocess::mutex_family,boost::interprocess::offset_ptr<void,int,unsigned
int,0>,0>,boost::interprocess::iset_index,8>::destroy<boost::container::vector<char,boost::interprocess::allocator<char,boost::interprocess::segment_manager<char,boost::interprocess::rbtree_best_fit<boost::interprocess::mutex_family,boost::interprocess::offset_ptr<void,int,unsigned
int,0>,0>,boost::interprocess::iset_index> > > >(const char * name) Line
568 C++
w16gle.dll!global_mem::GlobalFree(void * hMem, bool
ignore_invalid) Line 904 C++
w16gle.dll!GLEGlobalFree(void * hMem, bool ignore_invalid) Line
175 C++
w_menu32.dll!CreateVUBreakTabList(HWND__ * hWnd, unsigned short
Index, unsigned short BreakTabAant) Line 723 C++
w_comm.exe!TestNieuweTabel() Line 163 C++
w_comm.exe!CommTimer(HWND__ * hWnd) Line 552 C++
w_comm.exe!WndProc(HWND__ * hWnd, unsigned int message, unsigned
int wParam, long lParam) Line 365 C++
[External Code]
[Frames below may be incorrect and/or missing, no symbols loaded
for user32.dll]
w_bars32.dll!CallOldProc(HWND__ * Wnd, unsigned int Msg, unsigned
int wParam, long lParam, long hookkey) Line 126 C++
w_bars32.dll!SubclassParWndProc(HWND__ * Wnd, unsigned short Msg,
unsigned int wParam, long lParam) Line 104 C++
[External Code]
w_comm.exe!WinMain(HINSTANCE__ * hInstance, HINSTANCE__ *
hPrevInstance, char * lpCmdLine, int nCmdShow) Line 191 C++
[External Code]
1
0

[Boost.Iterator] transform_iterator equivalent for output iterators
by dariomtï¼ gmail.com 05 Aug '15
by dariomtï¼ gmail.com 05 Aug '15
05 Aug '15
Here is my problem: for any given algorithm that writes its output into an
output iterator, I'd like to apply a transformation *before* writing to the
output iterator.
e.g. inside the algorithm the output iterator is dereferenced and
incremented to write each result, typically like this:
*output++ = ith_result;
I'd like to wrap the output iterator with a unary function func such that
the effect is equivalent to:
*output++ = func( ith_result );
I'm looking at the adaptors in Boost.Iterator but I cannot find a suitable
one.
Am I missing anything?
Is there a better approach?
Regards
7
8