내가 부스트 :: 변형벡터
std::vector<boost::variant<mesh::Entity&, mesh::Vertex, mesh::Edge> >
xField::getZeros(const mesh::Region& s, char *EntityS) const
{
//Vertex
if(EntityS == "V")
{
std::vector<mesh::Vertex> zeros;
for(Region::vertexIterator itv = s.beginVertex();
itv != s.endVertex(); ++itv)
{
if(abs(getVal(*itv)) < 1.e-12)
zeros.push_back(*itv);
}
return zeros;
}
else if ..
을 사용하려고하지만 오류가 나타납니다 오류 : 변환을 비 스칼라 타입 '표준 : : 벡터' '표준에서 :: 벡터> '
수정 요청 :
zeroVector xField::getZeros(const mesh::Region& s, char *EntityS) const
{
//Vertex
if(EntityS == "V")
{
zeroVector zeros;
for(Region::vertexIterator itv = s.beginVertex(); itv != s.endVertex(); ++itv)
{
if(abs(getVal(*itv)) < 1.e-12)
zeros.push_back(zeroVariant(*itv));
}
return zeros;
을 나는 .H 파일 형식 정의 정의
typedef boost::variant<mesh::Entity&, mesh::Vertex, mesh::Edge> zeroVariant;
typedef std::vector<zeroVariant> zeroVector;
지금은있어 다음과 같은 오류 :
/softs/boost/1.53.0/64/gcc/4.5.1/include/boost/detail/reference_content.hpp : 멤버 함수에서 ' void boost :: detail :: variant :: assign_storage :: internal_visit (T &, int) const [T = boost :: detail :: reference_content] ': /softs/boost/1.53.0/64/gcc/4.5 visitor :: result_type boost :: detail :: variant :: visitation_impl_invoke_impl (int, Visitor &, VoidPtrCV, T *, mpl_ : 130 : 9 : : true_) [with Visitor = 부울 :: detail :: variant :: assign_storage, VoidPtrCV = void *, T = boost :: detail :: reference_content, typename 방문자 :: re sult_type = void, mpl _ :: true_ = mpl _ :: bool_ '' /softs/boost/1.53.0/64/gcc/4.5.1/include/boost/variant/detail/visitation_impl.hpp:173:9 : 인스턴스화 됨 from 'typename Visitor :: result_type boost :: detail :: variant :: visitation_impl_invoke (int, Visitor &, VoidPtrCV, T *, NoBackupFlag, int) [방문객 = 부스트 :: 세부 :: variant :: assign_storage, VoidPtrCV = void *, T = boost :: detail :: reference_content, NoBackupFlag = boost :: variant :: has_fallback_type_, typename 방문자 :: result_type = void] ' /softs/boost/1.53.0/64/gcc/4.5.1/include /boost/variant/detail/visitation_impl.hpp:260:1 : 'typename'으로부터 인스턴스화 됨 :: :: result_type boost :: detail :: variant :: visitation_impl (int, int, Visitor &, VoidPtrCV, mpl _ :: false_, NoBackupFlag, 어떤 *, step0 *) [which = mpl _ :: int_ < 0>, step0 = 부스트 :: 세부 :: 변이 :: visitation_impl_step, 부스트 :: 세부 :: 다시 ference_content, boost :: mpl :: l_item, mesh :: Vertex, boost :: mpl :: l_item, mesh :: Edge, boost :: mpl :: l_end>>>, boost :: mpl :: l_iter>, 방문자 = boost :: detail :: variant :: assign_storage, VoidPtrCV = void *, NoBackupFlag = 부스트 :: 변형 :: has_fallback_type_, typename 방문자 :: result_type = void, mpl _ :: false_ = mpl _ :: bool_] ' /softs/부울/1.53.0/64/gcc/4.5.1/포함/부스트/변종/variant.hpp : 2326 : 13 : '정적 typename에서 인스턴스 Visitor :: result_type 부스트 :: 변종 :: internal_apply_visitor_impl (int, int, Visitor &, T1 = 메쉬 :: 버텍스, T2 = 메쉬 :: 에지, T3 = 부스트 : : detail :: variant :: void_, T4 = boost :: detail :: variant :: void_, T5 = boost :: detail :: variant :: void_, T6 = boost :: detail :: variant :: void_, T7 = boost :: detail :: variant :: void_, T8 = boost :: detail :: variant :: void_, T9 = boost :: detail :: varia nt :: void_, T10 = boost :: detail :: variant :: void_, T11 = boost :: detail :: variant :: void_, T12 = boost :: detail :: variant :: void_, T13 = boost :: detail :: 변형 :: void_, T14 = 부스트 :: 세부 :: 변형 :: 무효 _, T15 = 부스트 :: 세부 :: 변형 :: 무효 _, T16 = 부스트 :: 세부 :: 변형 :: 무효 _, T17 = 부스트 : : detail :: variant :: void_, T18 = boost :: detail :: variant :: void_, T19 = boost :: detail :: variant :: void_, typename 방문자 :: result_type = void] ' /softs/boost/1.53.0/64/gcc/4.5.1/포함/부스트/변형/변형.hipp : 2337 : 13 : 'typename Visitor :: 인스턴스 :: 부화 :: 변형 :: 내부 _apply_visitor (방문객 &)에서 인스턴스화 됨 [Visitor = boost :: detail :: variant :: assign_storage, T0_ = mesh :: Entity &, T1 = 메쉬 :: 버텍스, T2 = 메쉬 :: 에지, T3 = 부스트 :: 디테일 :: 변형 :: 무효 _, T4 = 부스트 :: 디테일 :: 변형 :: 무효 _, T5 = 부스트 :: 디테일 :: 변형 :: 무효 _ , T6 = boost :: detail :: variant :: void_, T7 = boost :: detail :: variant :: void, T8 = boost :: detail :: variant :: void_, T9 = boost :: detail :: variant : : void_, T10 = boost :: detail :: variant :: void_, T11 = boost :: detail :: variant :: void_, T12 = boost :: detail :: variant :: void_, T13 = boost :: detail :: variant :: void_, T14 = boost :: detail :: variant :: void_, T15 = boost :: detail :: variant :: void_, T16 = boost :: detail :: variant :: void_, T17 = boost :: detail :: 변형 :: void_, T18 = 부스트 :: 세부 :: 변형 :: 무효 _, T19 = 부스트 :: 세부 :: 변형 :: 무효 _, 타입 이름 방문자 :: result_type = void] ' /softs/boost/1.53.0/64/gcc/4.5.1/include/boost/variant/variant.hpp : 2085 : 13 : void boost :: variant :: variant_assign (const boost :: variant &)에서 인스턴스화 됨 [T0_ = 메쉬 포함] :: Entity &, T1 = 메쉬 :: 버텍스, T2 = 메쉬 :: 에지, T3 = 부스트 :: 디테일 :: 변형 :: 무효 _, T4 = 부스트 :: 디테일 :: 변형 :: 무효 _, T5 = 부스트 :: 상세 :: 변형 :: void_, T6 = 부스트 :: 세부 :: 변형 :: 무효 _, T7 = 부스트 :: 세부 :: 변형 :: 무효 _, T8 = 부스트 :: 세부 :: 변형 :: 무효 _, T9 = 부스트 :: detail :: variant :: void_, T10 = boost :: detail :: variant :: void_, T11 = boost :: detail :: variant :: void_, T12 = boost :: detail :: variant :: void_, T13 = boost :: detail :: variant :: void_, T14 = boost :: detail :: variant :: void_, T15 = boost :: detail :: variant :: void_, T16 = boost :: detail :: variant :: void_ , T17 = boost :: detail :: variant :: void_, T18 = boost :: detail :: variant :: void_, T19 = boost :: detail :: variant :: void_, boost :: variant = boost :: variant] ' /softs/boost/1.53.0/64/gcc/4.5.1/includes 부스트 :: 변형 :: & boost :: variant :: operator = (const boost :: variant &) [T0_ = 메쉬와 함께 :: 메쉬 :: 엔티티 &, T1 = 부스트 :: 변형/variant.hpp : 2175 : 메쉬 :: 버텍스, T2 = 메쉬 :: 에지, T3 = 부스트 :: 디테일 :: 변형 :: 무효 _, T4 = 부스트 :: 디테일 :: 변형 :: 무효 _, T5 = 부스트 :: 디테일 :: 변형 :: 무효 _ , T6 = boost :: detail :: variant :: void_, T7 = boost :: detail :: variant :: void, T8 = boost :: detail :: variant :: void_, T9 = boost :: detail :: variant : : void_, T10 = boost :: detail :: variant :: void_, T11 = boost :: detail :: variant :: void_, T12 = boost :: detail :: variant :: void_, T13 = boost :: detail :: variant :: void_, T14 = boost :: detail :: variant :: void_, T15 = boost :: detail :: variant :: void_, T16 = boost :: detail :: variant :: void_, T17 = boost :: detail :: 변형 :: void_, T18 = 부스트 :: 세부 :: 변형 :: 무효 _, T19 = 부스트 :: 세부 :: 변형 :: 무효 _, 부스트 :: 변형 = 부스트 :: 변형] ' /usr/include/C++/4.5/bits/vector : void std :: vector에서 인스턴스화했습니다. :: void _ std :: vector :: void _ str :: vector :: void _str :: , _Alloc = std :: allocator>, std :: vector < _Tp, _Alloc> :: iterator = __gnu_cxx :: __ normal_iterator *, std :: vector>>, typename std :: _ 벡터베이스 < _Tp, _Alloc> :: _ Tp_alloc_type :: pointer = boost :: variant *] ' /usr/include/c++/4.5/bits/stl_vector.h:749:4 :'void std :: vector < _Tp, _Alloc> :: push_back (const value_type &)에서 인스턴스화했습니다. [with _Tp = boost :: variant, _Alloc = std :: allocator>, value_type = boost :: variant] ' /home/mycode.cc:128:42 : 여기서 인스턴스화 /softs/boost/1.53.0/ 64/gcc/4.5.1/include/boost/detail/reference_content.hpp : 62 : 24 : 오류 : 'boost :: detail :: reference_content & boost :: detail :: reference_content :: operator = (const boost :: detail :: reference_content &) [refT = 메쉬 :: 엔티티 &, 부스트 :: detail_content = boost :: detail :: reference_content] '이 (가) 개인 전용입니다. /softs/boost/1.53.0/64/gcc/4.5.1/include/boost/variant/variant.hpp:526:9 : 오류 :이 컨텍스트 내
미리 감사드립니다 !!!!!
감사하지만, "EvVariantVector xField :: getZeros (const mesh :: Region & s, char * EntityS) const".h 파일에서 정의 할 때 .cpp 파일에서 "EvVariantVector"를 인식하지 못합니다. 다음 오류 : 오류 : 'boost :: detail :: reference_content & boost :: detail :: reference_content :: operator = (const boost :: detail :: reference_content &) [refT = mesh :: Entity &, boost :: detail :: reference_content = boost :: detail :: reference_content ] '는 private –
어디에서 typedef를 넣었고 cpp가 그것을 볼 수 있습니까? typedef를 h 파일에 넣으십시오. – Pete
아 질문에 대한 귀하의 변화를 보았습니다 ... – Pete