Каково типичное использование повышения какая-либо библиотека?

В соответствии с поддерживаемыми типами экземпляров для EMR. https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-supported-instance-types.html , может быть два фактора. влияет на выбор типа экземпляра, который вы видите.

Одним из факторов является выпуск EMR. Другим фактором является регион, в котором вы находитесь. В документации указано, что некоторые мгновенные типы могут быть доступны не во всех регионах. Также есть сноска, касающаяся выпусков, в которой указано, что определенные типы экземпляров поколения доступны только для данного выпуска EMR.

Также обратите внимание, согласно Джону Р. ниже:

us-east-2 (Ohio) и, по крайней мере, некоторые другие регионы имеют более новые типы экземпляров. us-east-1 (Северная Вирджиния), кажется, не имеет их

blockquote>

Дважды проверьте эти факторы в соответствии с текущей средой, чтобы подтвердить доступность типа экземпляра.

20
задан Konstantin 23 April 2009 в 09:41
поделиться

5 ответов

Я считаю, что вариант Boost.Variant всегда должен быть предпочтительным, поскольку он не навязчив и все еще требует очень структурированного программирования.

Но я думаю, что основная идея boost.any - предоставить эквивалент типов объектов java и c #. Это способ сказать "да, мы можем"! : -)

8
ответ дан 29 November 2019 в 23:52
поделиться

boost :: any будет с радостью хранить целые числа и числа с плавающей запятой, типы, которые явно не имеют базовых классов. Пример из реальной жизни, где вы можете использовать его, - это виртуальная машина для интерпретируемого языка высокого уровня. Вашим «функциональным» объектам понадобится массив аргументов. Это легко реализовать с помощью std :: list за кулисами.

23
ответ дан 29 November 2019 в 23:52
поделиться

Мы использовали его в свойстве map, ( std :: map ), для динамического хранения множества вещей в простом плоском пространстве данных.

В основном мы либо храним smart-ptr -to-scriptable-объекты или строки, но некоторые записи, в которых есть другие типы (плавающие, vec3f, матрицы и другие нестандартные объекты).

Это очень хорошо работает для добавления дополнительных динамических возможностей в c ++ или где угодно стирание типа, чтобы просто добавить любой тип данных к объекту.

4
ответ дан 29 November 2019 в 23:52
поделиться

Почему такая же функциональность не может быть достигнута при наличии некоторого универсального типа в корне иерархии объекта и создании контейнеров с этим базовым типом?

Это вызывает иерархию объектов - конструкцию Вы искусственно вводите в проект решение периферийной проблемы. Кроме того, такую ​​конструкцию легко ошибиться, а неправильная реализация может нанести ущерб. Boost.Any является проверенной сообществом безопасной, хорошо протестированной альтернативой.

Не могли бы вы привести примеры из реальной жизни?

TinyJSON использует boost.Any .

Каковы преимущества использования библиотеки boost.any?

Я ссылаюсь на вводную документацию .

3
ответ дан 29 November 2019 в 23:52
поделиться

Мы используем boost.any в качестве типа носителя для контейнера с тегами variadic, безопасного для типов. Вот что это значит:

У нас есть «плот» объект, который проходит через набор фильтров. Когда фильтр хочет добавить данные в плот, он может сделать что-то вроде этого:

raft.addTaggedData<ETag1>(3.0);
raft.addTaggedData<ETag2>("a string")`;
std::string str = raft.getTaggedData<ETag2>();
int a = raft.getTaggedData<ETag1>(); // <-- Compile error

Где ETag1 и ETag2 являются членами перечисления, и мы используем шаблон признаков для сопоставить теги с типами.

Класс плота использует список из пары в качестве бэк-магазина. Boost.any избавил нас от необходимости управлять необработанными буферами для различных типов.

2
ответ дан 29 November 2019 в 23:52
поделиться
Другие вопросы по тегам:

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