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