Описание тега stdany
Класс any - это типобезопасный контейнер для отдельных значений любого типа.
1
ответ
`std::any_cast` возвращает копию
Я читал документацию для std::any_cast и я нахожу странным, что в API есть приведение, которое либо возвращает значение удерживаемому объекту, либо указатель на него. Почему бы не вернуть ссылку? Копия должна выполняться каждый раз, когда функция вы…
28 янв '17 в 02:50
3
ответа
Как я могу спроектировать хранилище, которое соответствует реализации стандарта std::any?
В стандартном рабочем проекте (n4582, 20.6.3, p.552) изложено следующее предложение для реализации std::any: Реализации должны избегать использования динамически выделяемой памяти для небольшого ограниченного объекта. [Пример: где построенный объект…
07 май '16 в 23:30
1
ответ
Стирание типа C++ с чертами
Я хотел знать, что это возможно, чтобы сделать стертый тип, который соответствует такой черте, как эта: template<class T> using read_t = std::conditional_t<true, decltype(std::declval<T>().Read(uint16_t{})), std::integral_constant<…
18 дек '17 в 10:42
1
ответ
Почему std::any_cast переданного std:: any внутри функции dlopen'd вызывает ошибку
Я играю с C++17 и плагинами, и я столкнулся с ошибкой, которую не могу обойти. В следующем MWE я могу вызвать локальную функцию, которая принимает std::anyи все работает как положено, когда я пытаюсь прочитать содержимое. Когда я загружаю эту же фун…
10 июн '17 в 02:17
4
ответа
Стандарт C++11 обеспечивает что-то вроде boost::any?
Например boost::function почти полностью std::functionто же самое с boost::shared_ptr Но я не могу найти std::any? Был ли он переименован или вообще не был помещен в новый стандарт по какой-либо причине?
08 фев '12 в 14:19
1
ответ
Почему для s td:: any нет unsafe_any_cast?
Моя локальная версия заголовков Boost (1.56.0) имеет следующие функции, определенные в boost/any.hppКопия дословно: // Note: The "unsafe" versions of any_cast are not part of the // public interface and may be removed at any time. They are // requir…
17 янв '18 в 13:32
2
ответа
any_cast с std::any's и std:: необязательный
Если я поставлю T в std::anyЯ могу получить это с any_cast<T>(my_any), Но включает ли стандарт (= C++17, на этапе голосования в данный момент) такую функцию any_cast<T>(optional<any> oa) который возвращается nullopt если оа nullo…
06 окт '16 в 14:48
2
ответа
Получить размер std::any
Есть ли способ получить размер (в байтах) данных, хранящихся std::any? Единственный обходной путь, который я нашел, - это запрос типа его значения std::any::type и сравнивая результат со списком известных типов, таких как my_any.type() == typeid(T)т…
09 апр '18 в 10:24
2
ответа
Тип стирающий, тип стирающий, `любые` вопросы?
Итак, предположим, что я хочу набрать стирание, используя стирание типа. Я могу создать псевдо-методы для вариантов, которые включают естественный: pseudo_method print = [](auto&& self, auto&& os){ os << self; }; std::variant&l…
08 авг '16 в 18:04
4
ответа
Использование C++17 'any' с Xcode 8.1
Я использую C++ в версии Xcode 8.1. Мне нужно использовать функциональность boost::any но я категорически против включения любой части Boost в наш проект (давайте не будем это обсуждать, пожалуйста). я вижу это std::any "слился в C++17" здесь. Я хоч…
11 дек '16 в 20:21
1
ответ
Удастся ли сравнить две произвольные функции с std::any в C++17?
Я думаю, что большим ограничением того, как C++ обрабатывает указатели на функции и std::function, является невозможность элегантного сравнения двух произвольных функций разного типа. Теперь мне интересно, если C++17 изменит это с введением std::any…
13 апр '17 в 10:43
1
ответ
Поддерживается ли std::any в MSVC 2017?
Я пытаюсь скомпилировать кусок кода с: cl /c /std:c++latest /Gm- /sdl /Zc:inline /RTC1 /Oy /MDd /FA /EHs main.cxx но я получаю эту ошибку: error C2039: 'any': is not a member of 'std' и мне интересно, как (если это возможно) я могу получить эту функ…
12 апр '18 в 05:55
4
ответа
Когда я должен использовать std::any
Начиная с C++17 std::any вводится. Теперь можно написать код, подобный этому #include <iostream> #include <any> #include <string> int main () { const double d = 1.2; std::any var = d; const std::string str = "Hello World"; var = st…
09 окт '18 в 07:10
1
ответ
std::any - почему так мало операторов?
Я смотрю на использование std::any для стирания типов как части интерфейса, который я создаю, и мне остается удивляться, почему в нем так мало операторов, как "+", "==". Я возился с Coliru здесь, где я расширил std::any для суммирования и печати в o…
06 дек '18 в 12:36
2
ответа
Хранение нескольких типов в контейнере члена класса
Я читал это Q/A здесь, и так как мой вопрос похож, но отличается, я хотел бы знать, как сделать следующее: Допустим, у меня есть базовый не наследуемый не шаблонный класс Storage, class Storage {}; Я хотел бы, чтобы в этом классе был один контейнер …
08 мар '18 в 01:46
1
ответ
Невозможно переместить std::any
Следующий код using vptr = std::vector<std::unique_ptr<int>>; auto m = std::unordered_map<int, std::any>{}; m.try_emplace(0, move(vptr{})); Не компилируется, жалуется на использование конструктора удаленных копий unique_ptr, После …
29 май '19 в 22:12
5
ответов
Найти элемент в std::vector из std::any
Я хочу проверить, существует ли элемент в векторе или нет. Я знаю, что следующий фрагмент кода проверит это. #include <algorithm> if ( std::find(vector.begin(), vector.end(), item) != vector.end() ) std::cout << "found"; else std::cout &…
08 мар '19 в 06:37
1
ответ
Используя 'auto' в std::map
Я анализирую файл JSON, значения могут состоять из целого числа, строки или числа с плавающей запятой. Обычно у меня есть карта, определенная так: std::map<std::string, std::string> myMap; Проблема в том, что я не понимаю, как использовать кар…
09 апр '19 в 12:42
1
ответ
Как вернуть другой тип на основе аргумента enum
У меня есть две функции, которые требуют следующего: Функция 1: Требуется адрес переменной для установки значения. (Знает о правильном типе) Функция 2: перегруженная функция, которая требует значения типа. Мне нужен способ вернуть разные типы на осн…
27 июн '19 в 21:10
0
ответов
Использование std::any с gmock приводит к другому поведению на gcc 7 и 9
Я пытался смоделировать шаблонную функцию в классе и найти хороший пример в этом вопросе Поэтому я попытался использовать std::any с googlemock, и ниже код подходит. #include <any> #include <gmock/gmock.h> #include <gtest/gtest.h> …
07 авг '19 в 08:02