Вопросы по теме 'user-defined-literals'

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

Нестроковые литералы - это prvalues?
Я не уверен, что мне что-то не хватает, но определяемые пользователем литералы, которые вызывают определяемые пользователем функции, которые могут возвращать что угодно, также являются своего рода литералами. Стандарт говорит, что литерал всегда...
151 просмотров

C++0x, определяемые пользователем литералы с оператором друга ()
Будет ли возможно и/или полезно определить operator "" (...) как функцию друга? class Puzzle { friend Puzzle operator "" _puzzle(const char*, size_t); ... }; void solve(Puzzle); int main() { solve("oxo,xox"_puzzle); }; Я думаю о...
885 просмотров

Как сделать [std::operators] видимым в пространстве имен?
#include <chrono> namespace X { using namespace std; struct A { std::chrono::seconds d = 0s; // ok }; } namespace Y { struct B { std::chrono::seconds d = 0s; // error }; } Сообщение об ошибке: ошибка: нет подходящего...
3383 просмотров

Ошибка компиляции при использовании члена пользовательского литерала
При компиляции этого кода (без заголовка) template <typename T> struct Temperature { T temp; explicit Temperature(T t) : temp(t) {} }; Temperature<long double> operator "" _f (long double t) { return...
276 просмотров
schedule 06.06.2022

Использование пользовательского литерала C ++ для инициализации массива
У меня есть набор тестовых векторов, представленных в виде шестнадцатеричных строк: MSG: 6BC1BEE22E409F96E93D7E117393172A MAC: 070A16B46B4D4144F79BDD9DD04A287C MSG: 6BC1BEE22E409F96E93D7E117393172AAE2D8A57 MAC: 7D85449EA6EA19C823A7BF78837DFADE...
1199 просмотров

Можно ли строго типизировать строковые пользовательские литералы?
Новая концепция пользовательских литералов в C ++ предлагает несколько очень интересных вариантов использования строковых литералов, например: "Goodbye %s world"_fmt("cruel"); "Goodbye %s world"_fmt(123); // Error: arg 1 must be convertible to...
1192 просмотров

Рекурсивная лямбда-функция С++ 11 в операторе constexpr
изучая тему функций constexpr/operator в С++ 11, я наткнулся на эту статью: http://www.codeproject.com/Articles/447922/Application-of-Cplusplus11-User-Defined-Literals-t Он цитирует пример того, как будет выглядеть код, обеспечивающий...
395 просмотров

Почему нет стандартного литерального суффикса для std::string?
Быстрый вопрос: почему С++ 11 не предлагает литерал, определенный пользователем (на самом деле, стандартная библиотека) для создания std::string , например auto str = "hello world"s; // str is a std::string Как и C++, Objective-C...
1259 просмотров

Целочисленная последовательность символов из пользовательского литерала, принимающая строки в качестве параметров
В настоящее время только двойники могут создавать шаблон символов в пользовательском литерале: template <char...> double operator "" _x(); // Later 1.3_x; // OK "1.3"_y; // C++14 does not allow a _y user- // defined operator to...
519 просмотров

хронолитералы в VS2015
Следующий код дает мне ошибку времени компиляции: #include <chrono> int main() { auto day = 24h; return 0; } Ошибка C3688: недопустимый литеральный суффикс «h»; литеральный оператор или шаблон литерального оператора «оператор...
1215 просмотров

Могу ли я шаблонировать определяемые пользователем литералы?
Предположим, у меня есть класс: template <typename T> class Foo { const T* x_; public: Foo(const T* str) : x_{str} {} }; и я предоставляю некоторые определяемые пользователем литералы, которые создают объект Foo :...
2985 просмотров

Использование UDL в заголовке вне области действия функции
Если мы хотим использовать какой-либо UDL, нам нужно использовать соответствующее пространство имен: auto foo() { using namespace std::literals::chrono_literals; std::chrono::milliseconds interval = 1s; } что хорошо, потому что...
138 просмотров

Использование макросов в функции printf в VS2013 и VS2017
Я определил этот макрос в своем исходном коде #define UINT_08X_FORMAT "%08X" Мне нужно использовать приведенное выше в printf следующим образом: printf("Test - "UINT_08X_FORMAT"", 50); Он компилируется и отлично работает в VS2013,...
345 просмотров
schedule 28.12.2022

Разрешает ли С++ 17 использовать не-ascii-символ в качестве идентификатора?
На cppref я нахожу странный код C++, в котором используется не-ASCII-символ в исходном коде следующим образом: template <char...> double operator "" _π(); // OK Однако приведенный выше код нельзя скомпилировать с помощью clang 6.0....
982 просмотров

С++ 11 пользовательских литералов для единиц физических свойств
Я пытаюсь научиться использовать пользовательские литералы С++ 11 для единиц физических свойств. Вопрос в том, как мне избежать смешения этих единиц. Так что (8.0_kg + 8.0_km) --> дает ошибку. есть идеи, ребята? Я новичок в С++, будьте добры....
421 просмотров
schedule 20.12.2023

Когда и как использовать литеральный оператор шаблона?
В cppreference есть упоминание о том, что можно использовать шаблон для пользователя. литеральные операторы с некоторыми ограничениями: Если литеральный оператор является шаблоном, он должен иметь пустой список параметров и может иметь...
5899 просмотров

Может ли пользовательский литеральный оператор С++ когда-либо передавать нулевой указатель?
Может ли пользовательский литеральный оператор С++ когда-либо передавать нулевой указатель? Это действительно происходит с экспериментальной версией g++ (версия gcc 4.7.0 20111114 (экспериментальная) [версия магистрали 181364] (Debian 20111114-1))...
402 просмотров
schedule 04.03.2024