compilation; default-directory: "~/prog_dev/boost-svn/ro/boost_1_49_0/sandbox/rw/variadic_templates/sandbox/petros/" -*- Compilation started at Wed Jul 11 14:58:57 make run install -d `dirname variant_zero_one.o` /home/evansl/download/gcc/4.8-20120624/install/bin/g++ -c -Wall -Wstrict-overflow -ftemplate-depth-300 -O3 -std=gnu++11 -ftemplate-backtrace-limit=0 -DCXX0X_VARIADIC_TEMPLATES -DBOOST_USE_MPL_VARIADIC_TEMPLATES -DBOOST_MPL_CFG_NO_PREPROCESSED_HEADERS -I/home/evansl/prog_dev/boost-svn/ro/boost_1_49_0/sandbox/local/lje -I/home/evansl/prog_dev/boost-svn/ro/boost_1_49_0 -DTEMPLATE_DEPTH=300 variant_zero_one.cpp -MMD -o variant_zero_one.o variant_zero_one.cpp:44:16: error: declaration of 'class _V' template < typename _V> ^ variant_zero_one.cpp:33:11: error: shadows template parm 'class _V' template ^ variant_zero_one.cpp:53:16: error: declaration of 'class _V' template < typename _V> ^ variant_zero_one.cpp:33:11: error: shadows template parm 'class _V' template ^ variant_zero_one.cpp: In member function 'double VariantT<_V, _Z, _U>::operator[](size_t) const': variant_zero_one.cpp:65:5: warning: no return statement in function returning non-void [-Wreturn-type] } ^ variant_zero_one.cpp: In member function 'bool VariantT<_V, _Z, _U>::isZero() const': variant_zero_one.cpp:67:40: error: there are no arguments to 'which' that depend on a template parameter, so a declaration of 'which' must be available [-fpermissive] bool isZero() const { return which() == 1 ; } ^ variant_zero_one.cpp:67:40: note: (if you use '-fpermissive', G++ will accept your code, but allowing the use of an undeclared name is deprecated) variant_zero_one.cpp: In member function 'bool VariantT<_V, _Z, _U>::isUnit() const': variant_zero_one.cpp:68:40: error: there are no arguments to 'which' that depend on a template parameter, so a declaration of 'which' must be available [-fpermissive] bool isUnit() const { return which() == 2 ; } ^ variant_zero_one.cpp: At global scope: variant_zero_one.cpp:102:19: error: declaration of 'class _V1' template ^ variant_zero_one.cpp:73:12: error: shadows template parm 'class _V1' template < typename _V1, typename _V2 > ^ variant_zero_one.cpp:102:33: error: declaration of 'class _V2' template ^ variant_zero_one.cpp:73:26: error: shadows template parm 'class _V2' template < typename _V1, typename _V2 > ^ variant_zero_one.cpp: In member function 'double MultVarVar<_V1, _V2>::operator[](size_t) const': variant_zero_one.cpp:87:62: error: 'v1' was not declared in this scope boost::apply_visitor ( elementwise_visitor( i ), v1, v2 ) ; ^ variant_zero_one.cpp:87:66: error: 'v2' was not declared in this scope boost::apply_visitor ( elementwise_visitor( i ), v1, v2 ) ; ^ variant_zero_one.cpp: At global scope: variant_zero_one.cpp:111:143: error: template argument 1 is invalid ltVarVar<_V1, _V2>, typename MultVarVar<_V1,_V2>::zero_type, typename MultVarVar<_V1,_V2>::unit_type, _V1, _V2 > { ^ variant_zero_one.cpp:118:13: error: template argument 1 is invalid _V2 > variant_type; ^ variant_zero_one.cpp: In constructor 'MultVarVarResult<_V1, _V2>::MultVarVarResult(const _V&)': variant_zero_one.cpp:126:10: error: 'typedef int MultVarVarResult<_V1, _V2>::variant_type' is not a non-static data member of 'MultVarVarResult<_V1, _V2>' :variant_type(v) ^ variant_zero_one.cpp: In copy constructor 'MultVarVarResult<_V1, _V2>::MultVarVarResult(const self_type&)': variant_zero_one.cpp:129:10: error: 'typedef int MultVarVarResult<_V1, _V2>::variant_type' is not a non-static data member of 'MultVarVarResult<_V1, _V2>' :variant_type(static_cast(v)) ^ variant_zero_one.cpp: In member function 'double MultVarVarResult<_V1, _V2>::operator[](size_t) const': variant_zero_one.cpp:143:5: warning: no return statement in function returning non-void [-Wreturn-type] } ^ In file included from /home/evansl/prog_dev/boost-svn/ro/boost_1_49_0/boost/variant/apply_visitor.hpp:16:0, from /home/evansl/prog_dev/boost-svn/ro/boost_1_49_0/boost/variant.hpp:23, from variant_zero_one.cpp:12: /home/evansl/prog_dev/boost-svn/ro/boost_1_49_0/boost/variant/detail/apply_visitor_unary.hpp: In instantiation of 'typename Visitor::result_type boost::apply_visitor(const Visitor&, Visitable&) [with Visitor = subscript_operator; Visitable = const MultVarVarResult, VariantT >; typename Visitor::result_type = double]': variant_zero_one.cpp:142:9: required from 'double MultVarVarResult<_V1, _V2>::operator[](size_t) const [with _V1 = VariantT; _V2 = VariantT; size_t = long unsigned int]' variant_zero_one.cpp:176:15: required from here /home/evansl/prog_dev/boost-svn/ro/boost_1_49_0/boost/variant/detail/apply_visitor_unary.hpp:76:43: error: 'const class MultVarVarResult, VariantT >' has no member named 'apply_visitor' return visitable.apply_visitor(visitor); ^ /home/evansl/prog_dev/boost-svn/ro/boost_1_49_0/boost/variant/detail/apply_visitor_unary.hpp: In function 'typename Visitor::result_type boost::apply_visitor(const Visitor&, Visitable&) [with Visitor = subscript_operator; Visitable = const MultVarVarResult, VariantT >; typename Visitor::result_type = double]': /home/evansl/prog_dev/boost-svn/ro/boost_1_49_0/boost/variant/detail/apply_visitor_unary.hpp:77:1: warning: control reaches end of non-void function [-Wreturn-type] } ^ make: *** [variant_zero_one.o] Error 1 Compilation exited abnormally with code 2 at Wed Jul 11 14:59:02