Как обработать конфликт имени класса при портировании старого кода?

Сначала отсортируйте только нечетные числа и поместите их в массив oddSorted. Затем выполните map через каждый элемент в исходном массиве и проверьте, является ли текущий элемент нечетным , если нечетным замените его на соответствующий отсортированный номер из массива oddSorted. [116 ]

function sortOddElements(arr){
   var oddSorted = arr.filter(ele => ele %2 != 0).sort((a, b) => a - b);
   var evenNotSorted = arr.map((ele, idx) => {
       if(ele % 2 != 0){
           return oddSorted.shift(); 
       }
       return ele;
     });
   return evenNotSorted;
}
var arr = [5, 3, 2, 8, 1, 4];
console.log(sortOddElements(arr));
arr = [5, 3, 2, 8, 1, 4, 11 ];
console.log(sortOddElements(arr));

5
задан Logomachist 10 October 2008 в 02:32
поделиться

5 ответов

Можно сделать как предложенный Dib с небольшой модификацией:

// In a wrapper header, eg: include_oldlib.h...

namespace oldlib
{
   #include "oldlib.h"
};

#ifndef DONT_AUTO_INCLUDE_OLD_NAMESPACE
using namespace oldlib;
#endif

Это позволяет Вам #define исключение только в файлах, где Вы получаете конфликты и используете все символы в качестве глобальных символов иначе.

3
ответ дан 15 December 2019 в 01:15
поделиться

Вы могли сделать обертку для всех старых функций и упаковать их в DLL или статическую библиотеку.

1
ответ дан 15 December 2019 в 01:15
поделиться

Если Вы имеете источник к библиотеке, возможно, включаете заголовочный файл наверху каждого источника, где тот заголовочный файл имеет только:

#define TObject TMadeUpNameObject
0
ответ дан 15 December 2019 в 01:15
поделиться

Попробуйте это:

namespace oldlib
{
   #inclcude "oldlib.h"
};
0
ответ дан 15 December 2019 в 01:15
поделиться

Я использовал следующее в прошлом при инкапсуляции стороннего заголовочного файла, содержащего классы, сталкивающиеся с кодом:

#ifdef Symbol
#undef Symbol
#define Symbol ThirdPartySymbol
#endif
#include <third_party_header.h>
#undef Symbol

Таким образом, "Символ" в заголовке был снабжен префиксом ThirdParty, и это не сталкивалось с моим кодом.

0
ответ дан 15 December 2019 в 01:15
поделиться
Другие вопросы по тегам:

Похожие вопросы: