]> SALOME platform Git repositories - tools/medcoupling.git/commitdiff
Salome HOME
One method
authorAnthony Geay <anthony.geay@edf.fr>
Tue, 18 Dec 2018 15:46:10 +0000 (16:46 +0100)
committerAnthony Geay <anthony.geay@edf.fr>
Tue, 18 Dec 2018 15:46:10 +0000 (16:46 +0100)
src/MEDCoupling/MEDCouplingMemArray.cxx
src/MEDCoupling/MEDCouplingMemArray.hxx
src/MEDCoupling/MEDCouplingMemArray.txx

index aaa55d3bc068c4ccd9b6d04bc1a4e5a6e25e404e..cbf0576d3d941170968466ac4b4a0c0ba22db753 100644 (file)
@@ -3678,15 +3678,6 @@ DataArrayDouble *DataArrayDoubleTuple::buildDADouble(int nbOfTuples, int nbOfCom
   return this->buildDA(nbOfTuples,nbOfCompo);
 }
 
-/*!
- * Returns a new instance of DataArrayInt. The caller is to delete this array
- * using decrRef() as it is no more needed.
- */
-DataArrayInt *DataArrayInt::New()
-{
-  return new DataArrayInt;
-}
-
 /*!
  * Returns the only one value in \a this, if and only if number of elements
  * (nb of tuples * nb of components) is equal to 1, and that \a this is allocated.
index 3887de6298f60ba3ef6aa4de752194f2f5357edb..0f42721e5002f37a3dcc68d3e10ef0268f2916eb 100644 (file)
@@ -528,6 +528,7 @@ namespace MEDCoupling
   class DataArrayDiscrete : public DataArrayTemplateClassic<T>
   {
   public:
+    MEDCOUPLING_EXPORT static typename Traits<T>::ArrayType *New();
     MEDCOUPLING_EXPORT bool isEqual(const DataArrayDiscrete<T>& other) const;
     MEDCOUPLING_EXPORT bool isEqualIfNotWhy(const DataArrayDiscrete<T>& other, std::string& reason) const;
     MEDCOUPLING_EXPORT bool isEqualWithoutConsideringStr(const DataArrayDiscrete<T>& other) const;
@@ -560,8 +561,8 @@ namespace MEDCoupling
 
   class DataArrayInt32 : public DataArrayDiscreteSigned<Int32>
   {
+    friend class DataArrayDiscrete<Int32>;
   public:
-    MEDCOUPLING_EXPORT static DataArrayInt32 *New();
     MEDCOUPLING_EXPORT int intValue() const;
     MEDCOUPLING_EXPORT int getHashCode() const;
     MEDCOUPLING_EXPORT DataArrayInt32 *deepCopy() const;//ok
@@ -574,7 +575,7 @@ namespace MEDCoupling
     MEDCOUPLING_EXPORT void reprQuickOverviewData(std::ostream& stream, std::size_t maxNbOfByteInRepr) const;
     MEDCOUPLING_EXPORT void transformWithIndArr(const int *indArrBg, const int *indArrEnd);
     MEDCOUPLING_EXPORT void transformWithIndArr(const MapKeyVal<int>& m);
-    MEDCOUPLING_EXPORT DataArrayInt32 *transformWithIndArrR(const int *indArrBg, const int *indArrEnd) const;
+    MEDCOUPLING_EXPORT DataArrayInt32 *transformWithIndArrR(const int *indArr2Bg, const int *indArrEnd) const;
     MEDCOUPLING_EXPORT void splitByValueRange(const int *arrBg, const int *arrEnd,
                                               DataArrayInt32 *& castArr, DataArrayInt32 *& rankInsideCast, DataArrayInt32 *& castsPresent) const;
     MEDCOUPLING_EXPORT bool isRange(int& strt, int& sttoopp, int& stteepp) const;
@@ -678,6 +679,10 @@ namespace MEDCoupling
 
   class DataArrayInt64 : public DataArrayDiscrete<Int64>
   {
+    friend class DataArrayDiscrete<Int64>;
+  private:
+    ~DataArrayInt64() { }
+    DataArrayInt64() { }
   };
   
   template<class T>
index f2c2f4690fdd8500e4fa65f6b3ce44b8c98d19bb..a9d0a697ac1161a02723f61f0f163bc95f956f55 100644 (file)
@@ -3438,7 +3438,17 @@ struct NotInRange
     std::string tmp;
     return isEqualIfNotWhy(other,tmp);
   }
-
+  
+  /*!
+   * Returns a new instance of DataArrayInt. The caller is to delete this array
+   * using decrRef() as it is no more needed.
+   */
+  template<class T>
+  typename Traits<T>::ArrayType *DataArrayDiscrete<T>::New()
+  {
+    return new typename Traits<T>::ArrayType;
+  }
+  
   /*!
    * Checks if values of \a this and another DataArrayInt are equal. For more info see
    * \ref MEDCouplingArrayBasicsCompare.