Это зависит от того, что вы подразумеваете под «работой для всех культур». Вы хотите, чтобы «i» и «I» были равны даже в Турции?
Вы могли бы использовать:
bool equal = char.ToUpperInvariant(x) == char.ToUpperInvariant(y);
... но я не уверен, работает "в соответствии со всеми культурами по вашему пониманию« работ ».
Конечно, вы можете преобразовать оба символа в строки и затем выполнить любое сравнение, которое вы хотите по строкам. Несколько менее эффективный, но он дает вам весь диапазон сравнений, доступных в рамках:
bool equal = x.ToString().Equals(y.ToString(),
StringComparison.InvariantCultureIgnoreCase);
Для суррогатных пар, Comparer<char>
не будет осуществимым в любом случае, t имеет один char
. Однако вы можете создать Comparer<int>
.
Я ничего не знаю об API машинного обучения, но C ++ / WinRT - это библиотека только для заголовков, которую вы можете легко включить и собрать из командной строки разработчика. Вот простой пример:
C:\ml>type sample.cpp
#pragma comment(lib, "windowsapp")
#include <winrt/Windows.AI.MachineLearning.h>
#include <stdio.h>
using namespace winrt;
using namespace Windows::AI::MachineLearning;
int main()
{
init_apartment();
puts("Sample");
}
C:\ml>cl /EHsc /std:c++17 /nologo sample.cpp
sample.cpp
C:\ml>sample.exe
Sample
Для реального примера использования API машинного обучения я бы предложил вам начать здесь:
https://docs.microsoft.com/ en-us / windows / ai / get-start-desktop
Но, опять же, вы можете следовать и заменить Visual Studio командной строкой и использовать cmake или любую другую систему сборки, если это необходимо .