Вопросы по теме 'c++14'

ограничение глубины constexpr с помощью clang (fconstexpr-depth, похоже, не работает)
Есть ли способ настроить глубину создания экземпляра constexpr? Я использую -fconstexpr-depth = 4096 (используя clang / XCode). Но по-прежнему не удается скомпилировать этот код с ошибкой: переменная Constexpr fib_1 должна быть инициализирована...
3271 просмотров
schedule 13.10.2021

Можно ли прочитать файл во время компиляции?
Мне интересно, возможно ли в C ++ 11/14 действительно читать файлы во время компиляции. Например, следующий код будет компилироваться только в том случае, если он сможет успешно прочитать файл. constexpr std::string shader_source =...
12622 просмотров
schedule 22.10.2021

Юридические определения main () в C ++ 14
Последний черновик C ++ 14, который мне удалось найти, говорит относительно main() [3.6.1]: Реализация не должна предопределять основную функцию. Эта функция не должна быть перегружена. Он должен иметь тип возвращаемого значения типа int, но в...
1731 просмотров
schedule 05.09.2021

Подчиненные константы C ++
У меня есть фиксированный набор категорий для конкретных доменов. Каждая категория идентифицируется соответствующим постоянным значением (полезным само по себе) перечислимого типа. Кроме того, каждая категория имеет фиксированный набор подкатегорий....
212 просмотров
schedule 12.09.2021

Почему нельзя использовать параметры constexpr?
Было бы полезно иметь параметры constexpr, чтобы различать значения, известные компилятору, и таким образом иметь возможность обнаруживать ошибки во время компиляции. Примеры: int do_something(constexpr int x) { static_assert(x > 0, "x must...
1931 просмотров
schedule 08.09.2021

Почему не удается сформировать ссылку на decltype (auto)
int main(){ decltype(auto)&& a = 100; } Приведенный выше код, ошибка в GCC и Clang. int main(){ decltype(int)&& a = 100; } Этот код правильный. In N4296, В § 8.3.2 / 6 Если typedef (7.1.3), параметр...
426 просмотров
schedule 13.10.2021

Вставить / удалить тип в список вариативных шаблонов (пакет параметров)
Как лучше всего реализовать вставку и удаление типа на основе индекса в списке типов вариативного шаблона (пакет параметров)? Желаемый код / ​​поведение: template<typename...> struct List { /* ... */ }; static_assert(is_same <...
2046 просмотров

Есть ли причина помещать оператор s в std :: literals :: string_literals?
Я очень удивлен, обнаружив, что этот код не компилируется (при условии, что мы используем компилятор C ++ 14): std::cout << "hello world!\n"s; Ошибка, показанная ideone, является следующей : невозможно найти строковый литерал...
91 просмотров

for_each в reverse_iterator настраиваемого двунаправленного итератора требует OutputIterator
Я создал простой неизменяемый двунаправленный итератор: #include <iostream> #include <memory> #include <iterator> #include <vector> #include <algorithm> class my_iterator : public...
513 просмотров
schedule 08.10.2021

Компилятор Intel C ++: какая самая высокая совместимость с версией GCC?
Я использую последнюю версию компилятора Intel C ++, icpc 15.0.1 (2014-10-23). Параметр компилятора -gxx-name указывает icpc, какие библиотеки gcc и языковую совместимость желает разработчик. Однако в документации не указан максимальный номер...
1000 просмотров
schedule 19.10.2021

Какой самый чистый способ передать имя типа в лямбду?
Я заинтересован в написании лямбда-функции, которая, помимо прочего, будет вызывать std::make_unique . Для вызова std::make_unique мне нужно имя типа, но может показаться, что для того, чтобы напрямую передать имя типа в лямбда-функцию, мне...
354 просмотров
schedule 13.10.2021

Распечатать ключи и значения std :: multimap в алфавитном порядке
Мне нужно распечатать std::multimap в алфавитном порядке, как имена авторов, так и их работы. #include <string> #include <map> int main() { std::multimap<std::string, std::string> authors = {{"Captain", "Nothing"},...
253 просмотров
schedule 06.11.2021

Нужно ли std :: string хранить свой символ в непрерывной части памяти?
Я знаю, что в C ++ 98 ни std::basic_string<> , ни std::vector<> не требовалось использовать непрерывное хранилище. Это было воспринято как недосмотр для std::vector<> , как только на это указали, и, если я правильно помню, было...
4139 просмотров
schedule 18.10.2021

Преобразование кода в constexpr
Каковы общие советы по преобразованию кода в constexpr ? Скажем, есть алгоритм некоторой геометрической трансформации (входной) геометрической фигуры. Ввод и вывод различаются по природе и размеру и нетривиально зависят друг от друга. В настоящее...
869 просмотров
schedule 22.11.2021

Когда мы должны использовать синтаксис скобок () или инициализатора {} для инициализации объектов в C ++ 11?
Обновлено Я просмотрел ссылки (например, Когда использовать инициализатор, заключенный в фигурные скобки? ) о том, когда следует использовать инициализацию {} скобок, но не дается информация о том, когда следует использовать синтаксис ( )...
6249 просмотров
schedule 08.09.2021

Общий лямбда-аргумент для std :: pair
Я пытаюсь понять, возможно ли это в общей лямбде C ++ 14, но я не могу найти правильный способ выразить это (или, возможно, это невозможно). Упрощенный пример: auto confirmOperation = [](auto pr){ assert(pr.second); }; Идея состоит в том,...
793 просмотров
schedule 28.09.2021

Как сохранить и получить ранее рассчитанное значение
Я новичок в C ++. У меня есть код для вычисления значения, но я не уверен, как получить ранее рассчитанное значение, которое он рассчитал при последнем вызове. Насколько я понимаю, способ сделать это - сохранить значения в массиве, но я не уверен в...
602 просмотров
schedule 10.11.2021

Заполните std :: array типом, не являющимся конструктивным по умолчанию (без вариативных шаблонов)
Предположим, у меня есть тип A без конструктора по умолчанию: struct A { int x; A(int x) : x(x) {} }; Я хочу сделать std::array из A . Я могу легко сделать это с помощью списка инициализаторов: std::array<A, 5> arr = { 0,...
388 просмотров
schedule 22.09.2021

Создание пар индекса и типа из пакета параметров
Я пытаюсь создать кортеж или пары индекса и пакета параметров. Вот пример того, чего хочет достичь код: { using Indices = std::tuple< IndexTypePair< 0, int >, IndexTypePair< 1, int >, IndexTypePair< 2, float >...
473 просмотров
schedule 23.11.2021

Шаблоны аргументов не соответствуют всем требованиям
Это возможно: struct A { //void f(); < not declared in struct A }; template<typename T> struct Wrapper { T t; void call_f() { t.f(); } }; int main() { Wrapper<A> w; } Это компилируется нормально, пока...
78 просмотров
schedule 15.10.2021