mirror of
https://git.salome-platform.org/gitpub/modules/smesh.git
synced 2025-01-15 04:40:33 +05:00
Tentative d externalisation en medcoupling memoire
This commit is contained in:
parent
d96d5ee20c
commit
9bd2dd723e
@ -26,7 +26,6 @@
|
|||||||
// Module : SMESH
|
// Module : SMESH
|
||||||
//
|
//
|
||||||
#include "DriverMED_Family.h"
|
#include "DriverMED_Family.h"
|
||||||
#include "MED_Factory.hxx"
|
|
||||||
|
|
||||||
#include <sstream>
|
#include <sstream>
|
||||||
|
|
||||||
@ -366,67 +365,6 @@ DriverMED_Family
|
|||||||
return aFamilies;
|
return aFamilies;
|
||||||
}
|
}
|
||||||
|
|
||||||
//=============================================================================
|
|
||||||
/*!
|
|
||||||
* Create TFamilyInfo for this family
|
|
||||||
*/
|
|
||||||
//=============================================================================
|
|
||||||
MED::PFamilyInfo
|
|
||||||
DriverMED_Family::GetFamilyInfo(const MED::PWrapper& theWrapper,
|
|
||||||
const MED::PMeshInfo& theMeshInfo) const
|
|
||||||
{
|
|
||||||
ostringstream aStr;
|
|
||||||
aStr << "FAM_" << myId;
|
|
||||||
set<string>::const_iterator aGrIter = myGroupNames.begin();
|
|
||||||
for(; aGrIter != myGroupNames.end(); aGrIter++){
|
|
||||||
aStr << "_" << *aGrIter;
|
|
||||||
}
|
|
||||||
string aValue = aStr.str();
|
|
||||||
// PAL19785,0019867 - med forbids whitespace to be the last char in the name
|
|
||||||
int maxSize = MED::GetNOMLength();
|
|
||||||
int lastCharPos = min( maxSize, (int) aValue.size() ) - 1;
|
|
||||||
while ( isspace( aValue[ lastCharPos ] ))
|
|
||||||
aValue.resize( lastCharPos-- );
|
|
||||||
|
|
||||||
MED::PFamilyInfo anInfo;
|
|
||||||
if(myId == 0 || myGroupAttributVal == 0){
|
|
||||||
anInfo = theWrapper->CrFamilyInfo(theMeshInfo,
|
|
||||||
aValue,
|
|
||||||
myId,
|
|
||||||
myGroupNames);
|
|
||||||
}else{
|
|
||||||
MED::TStringVector anAttrDescs (1, ""); // 1 attribute with empty description,
|
|
||||||
MED::TIntVector anAttrIds (1, myId); // Id=0,
|
|
||||||
MED::TIntVector anAttrVals (1, myGroupAttributVal);
|
|
||||||
anInfo = theWrapper->CrFamilyInfo(theMeshInfo,
|
|
||||||
aValue,
|
|
||||||
myId,
|
|
||||||
myGroupNames,
|
|
||||||
anAttrDescs,
|
|
||||||
anAttrIds,
|
|
||||||
anAttrVals);
|
|
||||||
}
|
|
||||||
|
|
||||||
// cout << endl;
|
|
||||||
// cout << "Groups: ";
|
|
||||||
// set<string>::iterator aGrIter = myGroupNames.begin();
|
|
||||||
// for (; aGrIter != myGroupNames.end(); aGrIter++)
|
|
||||||
// {
|
|
||||||
// cout << " " << *aGrIter;
|
|
||||||
// }
|
|
||||||
// cout << endl;
|
|
||||||
//
|
|
||||||
// cout << "Elements: ";
|
|
||||||
// set<const SMDS_MeshElement *>::iterator anIter = myElements.begin();
|
|
||||||
// for (; anIter != myElements.end(); anIter++)
|
|
||||||
// {
|
|
||||||
// cout << " " << (*anIter)->GetID();
|
|
||||||
// }
|
|
||||||
// cout << endl;
|
|
||||||
|
|
||||||
return anInfo;
|
|
||||||
}
|
|
||||||
|
|
||||||
//=============================================================================
|
//=============================================================================
|
||||||
/*!
|
/*!
|
||||||
* Initialize the tool by SMESHDS_GroupBase
|
* Initialize the tool by SMESHDS_GroupBase
|
||||||
|
@ -91,8 +91,9 @@ class MESHDRIVERMED_EXPORT DriverMED_Family
|
|||||||
const bool doAllInGroups);
|
const bool doAllInGroups);
|
||||||
|
|
||||||
//! Create TFamilyInfo for this family
|
//! Create TFamilyInfo for this family
|
||||||
|
template<class LowLevelWriter>
|
||||||
MED::PFamilyInfo
|
MED::PFamilyInfo
|
||||||
GetFamilyInfo (const MED::PWrapper& theWrapper,
|
GetFamilyInfo(const LowLevelWriter& theWrapper,
|
||||||
const MED::PMeshInfo& theMeshInfo) const;
|
const MED::PMeshInfo& theMeshInfo) const;
|
||||||
|
|
||||||
//! Returns elements of this family
|
//! Returns elements of this family
|
||||||
@ -154,4 +155,70 @@ class MESHDRIVERMED_EXPORT DriverMED_Family
|
|||||||
ElemTypeSet myTypes; // Issue 0020576
|
ElemTypeSet myTypes; // Issue 0020576
|
||||||
};
|
};
|
||||||
|
|
||||||
|
#include "MED_Factory.hxx"
|
||||||
|
|
||||||
|
#include <set>
|
||||||
|
#include <string>
|
||||||
|
//=============================================================================
|
||||||
|
/*!
|
||||||
|
* Create TFamilyInfo for this family
|
||||||
|
*/
|
||||||
|
//=============================================================================
|
||||||
|
template<class LowLevelWriter>
|
||||||
|
MED::PFamilyInfo
|
||||||
|
DriverMED_Family::GetFamilyInfo(const LowLevelWriter& theWrapper,
|
||||||
|
const MED::PMeshInfo& theMeshInfo) const
|
||||||
|
{
|
||||||
|
std::ostringstream aStr;
|
||||||
|
aStr << "FAM_" << myId;
|
||||||
|
std::set<std::string>::const_iterator aGrIter = myGroupNames.begin();
|
||||||
|
for(; aGrIter != myGroupNames.end(); aGrIter++){
|
||||||
|
aStr << "_" << *aGrIter;
|
||||||
|
}
|
||||||
|
std::string aValue = aStr.str();
|
||||||
|
// PAL19785,0019867 - med forbids whitespace to be the last char in the name
|
||||||
|
int maxSize = MED::GetNOMLength();
|
||||||
|
int lastCharPos = std::min( maxSize, (int) aValue.size() ) - 1;
|
||||||
|
while ( isspace( aValue[ lastCharPos ] ))
|
||||||
|
aValue.resize( lastCharPos-- );
|
||||||
|
|
||||||
|
MED::PFamilyInfo anInfo;
|
||||||
|
if(myId == 0 || myGroupAttributVal == 0){
|
||||||
|
anInfo = theWrapper->CrFamilyInfo(theMeshInfo,
|
||||||
|
aValue,
|
||||||
|
myId,
|
||||||
|
myGroupNames);
|
||||||
|
}else{
|
||||||
|
MED::TStringVector anAttrDescs (1, ""); // 1 attribute with empty description,
|
||||||
|
MED::TIntVector anAttrIds (1, myId); // Id=0,
|
||||||
|
MED::TIntVector anAttrVals (1, myGroupAttributVal);
|
||||||
|
anInfo = theWrapper->CrFamilyInfo(theMeshInfo,
|
||||||
|
aValue,
|
||||||
|
myId,
|
||||||
|
myGroupNames,
|
||||||
|
anAttrDescs,
|
||||||
|
anAttrIds,
|
||||||
|
anAttrVals);
|
||||||
|
}
|
||||||
|
|
||||||
|
// cout << endl;
|
||||||
|
// cout << "Groups: ";
|
||||||
|
// set<string>::iterator aGrIter = myGroupNames.begin();
|
||||||
|
// for (; aGrIter != myGroupNames.end(); aGrIter++)
|
||||||
|
// {
|
||||||
|
// cout << " " << *aGrIter;
|
||||||
|
// }
|
||||||
|
// cout << endl;
|
||||||
|
//
|
||||||
|
// cout << "Elements: ";
|
||||||
|
// set<const SMDS_MeshElement *>::iterator anIter = myElements.begin();
|
||||||
|
// for (; anIter != myElements.end(); anIter++)
|
||||||
|
// {
|
||||||
|
// cout << " " << (*anIter)->GetID();
|
||||||
|
// }
|
||||||
|
// cout << endl;
|
||||||
|
|
||||||
|
return anInfo;
|
||||||
|
}
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@ -30,6 +30,7 @@
|
|||||||
#include "DriverMED_Family.h"
|
#include "DriverMED_Family.h"
|
||||||
#include "MED_Factory.hxx"
|
#include "MED_Factory.hxx"
|
||||||
#include "MED_Utilities.hxx"
|
#include "MED_Utilities.hxx"
|
||||||
|
#include "MEDCoupling_Wrapper.hxx"
|
||||||
#include "SMDS_IteratorOnIterators.hxx"
|
#include "SMDS_IteratorOnIterators.hxx"
|
||||||
#include "SMDS_MeshNode.hxx"
|
#include "SMDS_MeshNode.hxx"
|
||||||
#include "SMDS_SetIterator.hxx"
|
#include "SMDS_SetIterator.hxx"
|
||||||
@ -343,13 +344,26 @@ namespace
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Driver_Mesh::Status DriverMED_W_SMESHDS_Mesh::Perform()
|
||||||
|
{
|
||||||
|
MED::PWrapper myMed = CrWrapperW(myFile, myVersion);
|
||||||
|
return this->PerformInternal<MED::PWrapper>(myMed);
|
||||||
|
}
|
||||||
|
|
||||||
|
Driver_Mesh::Status DriverMED_W_SMESHDS_Mesh::PerformMedcoupling()
|
||||||
|
{
|
||||||
|
MED::MCPWrapper myMed(new MED::MCTWrapper);
|
||||||
|
return this->PerformInternal<MED::MCPWrapper>(myMed);
|
||||||
|
}
|
||||||
|
|
||||||
//================================================================================
|
//================================================================================
|
||||||
/*!
|
/*!
|
||||||
* \brief Write my mesh
|
* \brief Write my mesh
|
||||||
*/
|
*/
|
||||||
//================================================================================
|
//================================================================================
|
||||||
|
|
||||||
Driver_Mesh::Status DriverMED_W_SMESHDS_Mesh::Perform()
|
template<class LowLevelWriter>
|
||||||
|
Driver_Mesh::Status DriverMED_W_SMESHDS_Mesh::PerformInternal(LowLevelWriter myMed)
|
||||||
{
|
{
|
||||||
Status aResult = DRS_OK;
|
Status aResult = DRS_OK;
|
||||||
try {
|
try {
|
||||||
@ -471,7 +485,6 @@ Driver_Mesh::Status DriverMED_W_SMESHDS_Mesh::Perform()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
MED::PWrapper myMed = CrWrapperW(myFile, myVersion);
|
|
||||||
PMeshInfo aMeshInfo = myMed->CrMeshInfo(aMeshDimension,aSpaceDimension,aMeshName);
|
PMeshInfo aMeshInfo = myMed->CrMeshInfo(aMeshDimension,aSpaceDimension,aMeshName);
|
||||||
//MESSAGE("Add - aMeshName : "<<aMeshName<<"; "<<aMeshInfo->GetName());
|
//MESSAGE("Add - aMeshName : "<<aMeshName<<"; "<<aMeshInfo->GetName());
|
||||||
myMed->SetMeshInfo(aMeshInfo);
|
myMed->SetMeshInfo(aMeshInfo);
|
||||||
@ -532,7 +545,7 @@ Driver_Mesh::Status DriverMED_W_SMESHDS_Mesh::Perform()
|
|||||||
list<DriverMED_FamilyPtr>::iterator aFamsIter;
|
list<DriverMED_FamilyPtr>::iterator aFamsIter;
|
||||||
for (aFamsIter = aFamilies.begin(); aFamsIter != aFamilies.end(); aFamsIter++)
|
for (aFamsIter = aFamilies.begin(); aFamsIter != aFamilies.end(); aFamsIter++)
|
||||||
{
|
{
|
||||||
PFamilyInfo aFamilyInfo = (*aFamsIter)->GetFamilyInfo(myMed,aMeshInfo);
|
PFamilyInfo aFamilyInfo = (*aFamsIter)->GetFamilyInfo<LowLevelWriter>(myMed,aMeshInfo);
|
||||||
myMed->SetFamilyInfo(aFamilyInfo);
|
myMed->SetFamilyInfo(aFamilyInfo);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -76,6 +76,11 @@ class MESHDRIVERMED_EXPORT DriverMED_W_SMESHDS_Mesh: public Driver_SMESHDS_Mesh
|
|||||||
*/
|
*/
|
||||||
virtual Status Perform();
|
virtual Status Perform();
|
||||||
|
|
||||||
|
Status PerformMedcoupling();
|
||||||
|
|
||||||
|
template<class LowLevelWriter>
|
||||||
|
Driver_Mesh::Status PerformInternal(LowLevelWriter myMed);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|
||||||
std::list<SMESHDS_GroupBase*> myGroups;
|
std::list<SMESHDS_GroupBase*> myGroups;
|
||||||
|
168
src/MEDWrapper/MEDCoupling_Wrapper.hxx
Normal file
168
src/MEDWrapper/MEDCoupling_Wrapper.hxx
Normal file
@ -0,0 +1,168 @@
|
|||||||
|
// Copyright (C) 2021 CEA/DEN, EDF R&D
|
||||||
|
//
|
||||||
|
// This library is free software; you can redistribute it and/or
|
||||||
|
// modify it under the terms of the GNU Lesser General Public
|
||||||
|
// License as published by the Free Software Foundation; either
|
||||||
|
// version 2.1 of the License, or (at your option) any later version.
|
||||||
|
//
|
||||||
|
// This library is distributed in the hope that it will be useful,
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
// Lesser General Public License for more details.
|
||||||
|
//
|
||||||
|
// You should have received a copy of the GNU Lesser General Public
|
||||||
|
// License along with this library; if not, write to the Free Software
|
||||||
|
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||||
|
//
|
||||||
|
// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
|
||||||
|
//
|
||||||
|
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include "MED_Wrapper.hxx"
|
||||||
|
|
||||||
|
#include "med.h"
|
||||||
|
|
||||||
|
#include <memory>
|
||||||
|
|
||||||
|
namespace MED
|
||||||
|
{
|
||||||
|
class MEDWRAPPER_EXPORT MCTWrapper
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
//! Create a MEDWrapper MED Mesh representation
|
||||||
|
PMeshInfo
|
||||||
|
CrMeshInfo(TInt theDim = 0,
|
||||||
|
TInt theSpaceDim = 0,
|
||||||
|
const std::string& theValue = "",
|
||||||
|
EMaillage theType = eNON_STRUCTURE,
|
||||||
|
const std::string& theDesc = "");
|
||||||
|
//! Write the MEDWrapper MED Mesh representation into the MED file
|
||||||
|
void
|
||||||
|
SetMeshInfo(const TMeshInfo& theInfo,
|
||||||
|
TErr* theErr = NULL);
|
||||||
|
//! Write a MEDWrapper MED Family representation into the MED file
|
||||||
|
void
|
||||||
|
SetFamilyInfo(const TFamilyInfo& theInfo,
|
||||||
|
TErr* theErr = NULL);
|
||||||
|
//! Create a MEDWrapper MED Nodes representation
|
||||||
|
PNodeInfo
|
||||||
|
CrNodeInfo(const PMeshInfo& theMeshInfo,
|
||||||
|
TInt theNbElem,
|
||||||
|
EModeSwitch theMode = eFULL_INTERLACE,
|
||||||
|
ERepere theSystem = eCART,
|
||||||
|
EBooleen theIsElemNum = eVRAI,
|
||||||
|
EBooleen theIsElemNames = eFAUX);
|
||||||
|
//! Write the MEDWrapper MED Nodes representation into the MED file
|
||||||
|
void
|
||||||
|
SetNodeInfo(const TNodeInfo& theInfo,
|
||||||
|
TErr* theErr = NULL);
|
||||||
|
|
||||||
|
//! Read a MEDWrapper MED Family representation by its numbers
|
||||||
|
void
|
||||||
|
GetFamilyInfo(TInt theFamId,
|
||||||
|
TFamilyInfo& theInfo,
|
||||||
|
TErr* theErr = NULL);
|
||||||
|
|
||||||
|
//! Create a MEDWrapper MED Family representation
|
||||||
|
PFamilyInfo
|
||||||
|
CrFamilyInfo(const PMeshInfo& theMeshInfo,
|
||||||
|
const std::string& theValue,
|
||||||
|
TInt theId,
|
||||||
|
const TStringSet& theGroupNames,
|
||||||
|
const TStringVector& theAttrDescs = TStringVector(),
|
||||||
|
const TIntVector& theAttrIds = TIntVector(),
|
||||||
|
const TIntVector& theAttrVals = TIntVector());
|
||||||
|
|
||||||
|
//! Create a MEDWrapper MED Polygones representation
|
||||||
|
virtual
|
||||||
|
PPolygoneInfo
|
||||||
|
CrPolygoneInfo(const PMeshInfo& theMeshInfo,
|
||||||
|
EEntiteMaillage theEntity,
|
||||||
|
EGeometrieElement theGeom,
|
||||||
|
TInt theNbElem,
|
||||||
|
TInt theConnSize,
|
||||||
|
EConnectivite theConnMode = eNOD,
|
||||||
|
EBooleen theIsElemNum = eVRAI,
|
||||||
|
EBooleen theIsElemNames = eVRAI);
|
||||||
|
|
||||||
|
//! Create a MEDWrapper MED Polygones representation
|
||||||
|
virtual
|
||||||
|
PPolygoneInfo
|
||||||
|
CrPolygoneInfo(const PMeshInfo& theMeshInfo,
|
||||||
|
EEntiteMaillage theEntity,
|
||||||
|
EGeometrieElement theGeom,
|
||||||
|
const TIntVector& theIndexes,
|
||||||
|
const TIntVector& theConnectivities,
|
||||||
|
EConnectivite theConnMode = eNOD,
|
||||||
|
const TIntVector& theFamilyNums = TIntVector(),
|
||||||
|
const TIntVector& theElemNums = TIntVector(),
|
||||||
|
const TStringVector& theElemNames = TStringVector());
|
||||||
|
|
||||||
|
|
||||||
|
//! Write a MEDWrapper MED Polygones representation into the MED file
|
||||||
|
virtual
|
||||||
|
void
|
||||||
|
SetPolygoneInfo(const TPolygoneInfo& theInfo,
|
||||||
|
TErr* theErr = NULL);
|
||||||
|
|
||||||
|
|
||||||
|
//! Create a MEDWrapper MED Polyedres representation
|
||||||
|
virtual
|
||||||
|
PPolyedreInfo
|
||||||
|
CrPolyedreInfo(const PMeshInfo& theMeshInfo,
|
||||||
|
EEntiteMaillage theEntity,
|
||||||
|
EGeometrieElement theGeom,
|
||||||
|
TInt theNbElem,
|
||||||
|
TInt theNbFaces,
|
||||||
|
TInt theConnSize,
|
||||||
|
EConnectivite theConnMode = eNOD,
|
||||||
|
EBooleen theIsElemNum = eVRAI,
|
||||||
|
EBooleen theIsElemNames = eVRAI);
|
||||||
|
|
||||||
|
|
||||||
|
//! Write a MEDWrapper MED Polyedres representation into the MED file
|
||||||
|
virtual
|
||||||
|
void
|
||||||
|
SetPolyedreInfo(const TPolyedreInfo& theInfo,
|
||||||
|
TErr* theErr = NULL);
|
||||||
|
|
||||||
|
|
||||||
|
//! Create a MEDWrapper MED Balls representation
|
||||||
|
/*! This feature is supported since version 3.0 */
|
||||||
|
virtual
|
||||||
|
PBallInfo
|
||||||
|
CrBallInfo(const PMeshInfo& theMeshInfo,
|
||||||
|
TInt theNbBalls,
|
||||||
|
EBooleen theIsElemNum = eVRAI);
|
||||||
|
|
||||||
|
//! Write a MEDWrapper representation of MED_BALL into the MED file
|
||||||
|
/*! This feature is supported since version 3.0 */
|
||||||
|
virtual
|
||||||
|
void
|
||||||
|
SetBallInfo(const TBallInfo& theInfo,
|
||||||
|
TErr* theErr = NULL);
|
||||||
|
|
||||||
|
|
||||||
|
//! Create a MEDWrapper MED Cells representation
|
||||||
|
virtual
|
||||||
|
PCellInfo
|
||||||
|
CrCellInfo(const PMeshInfo& theMeshInfo,
|
||||||
|
EEntiteMaillage theEntity,
|
||||||
|
EGeometrieElement theGeom,
|
||||||
|
TInt theNbElem,
|
||||||
|
EConnectivite theConnMode = eNOD,
|
||||||
|
EBooleen theIsElemNum = eVRAI,
|
||||||
|
EBooleen theIsElemNames = eFAUX,
|
||||||
|
EModeSwitch theMode = eFULL_INTERLACE);
|
||||||
|
|
||||||
|
//! Write the MEDWrapper MED Cells representation into the MED file
|
||||||
|
virtual
|
||||||
|
void
|
||||||
|
SetCellInfo(const TCellInfo& theInfo,
|
||||||
|
TErr* theErr = NULL);
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
using MCPWrapper = std::shared_ptr<MCTWrapper>;
|
||||||
|
}
|
@ -33,7 +33,7 @@ namespace MED
|
|||||||
{
|
{
|
||||||
//----------------------------------------------------------------------------
|
//----------------------------------------------------------------------------
|
||||||
class TFile;
|
class TFile;
|
||||||
typedef boost::shared_ptr<TFile> PFile;
|
typedef std::shared_ptr<TFile> PFile;
|
||||||
|
|
||||||
typedef enum {eLECTURE, eLECTURE_ECRITURE, eLECTURE_AJOUT, eCREATION} EModeAcces;
|
typedef enum {eLECTURE, eLECTURE_ECRITURE, eLECTURE_AJOUT, eCREATION} EModeAcces;
|
||||||
|
|
||||||
@ -963,23 +963,23 @@ namespace MED
|
|||||||
//----------------------------------------------------------------------------
|
//----------------------------------------------------------------------------
|
||||||
//! Specialization of SharedPtr for TWrapper
|
//! Specialization of SharedPtr for TWrapper
|
||||||
template<>
|
template<>
|
||||||
class MEDWRAPPER_EXPORT SharedPtr<TWrapper>: public boost::shared_ptr<TWrapper>
|
class MEDWRAPPER_EXPORT SharedPtr<TWrapper>: public std::shared_ptr<TWrapper>
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
SharedPtr() {}
|
SharedPtr() {}
|
||||||
|
|
||||||
SharedPtr(TWrapper* p):
|
SharedPtr(TWrapper* p):
|
||||||
boost::shared_ptr<TWrapper>(p)
|
std::shared_ptr<TWrapper>(p)
|
||||||
{}
|
{}
|
||||||
|
|
||||||
template<class Y>
|
template<class Y>
|
||||||
explicit SharedPtr(Y* p):
|
explicit SharedPtr(Y* p):
|
||||||
boost::shared_ptr<TWrapper>(p)
|
std::shared_ptr<TWrapper>(p)
|
||||||
{}
|
{}
|
||||||
|
|
||||||
template<class Y>
|
template<class Y>
|
||||||
SharedPtr(const SharedPtr<Y>& r):
|
SharedPtr(const SharedPtr<Y>& r):
|
||||||
boost::shared_ptr<TWrapper>(boost::dynamic_pointer_cast<TWrapper,Y>(r))
|
std::shared_ptr<TWrapper>(boost::dynamic_pointer_cast<TWrapper,Y>(r))
|
||||||
{}
|
{}
|
||||||
|
|
||||||
template<class Y>
|
template<class Y>
|
||||||
@ -1021,7 +1021,7 @@ namespace MED
|
|||||||
TWrapper*
|
TWrapper*
|
||||||
get() const // never throws
|
get() const // never throws
|
||||||
{
|
{
|
||||||
return boost::shared_ptr<TWrapper>::get();
|
return std::shared_ptr<TWrapper>::get();
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user