Вопросы по теме 'user-defined-literals'
Есть ли причина помещать оператор s в std :: literals :: string_literals?
Я очень удивлен, обнаружив, что этот код не компилируется (при условии, что мы используем компилятор C ++ 14):
std::cout << "hello world!\n"s;
Ошибка, показанная ideone, является следующей :
невозможно найти строковый литерал...
91 просмотров
schedule
28.09.2021
Нестроковые литералы - это prvalues?
Я не уверен, что мне что-то не хватает, но определяемые пользователем литералы, которые вызывают определяемые пользователем функции, которые могут возвращать что угодно, также являются своего рода литералами.
Стандарт говорит, что литерал всегда...
151 просмотров
schedule
30.03.2022
C++0x, определяемые пользователем литералы с оператором друга ()
Будет ли возможно и/или полезно определить operator "" (...) как функцию друга?
class Puzzle {
friend Puzzle operator "" _puzzle(const char*, size_t);
...
};
void solve(Puzzle);
int main() {
solve("oxo,xox"_puzzle);
};
Я думаю о...
885 просмотров
schedule
23.04.2022
Как сделать [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 просмотров
schedule
04.05.2022
Ошибка компиляции при использовании члена пользовательского литерала
При компиляции этого кода (без заголовка)
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 просмотров
schedule
22.06.2022
Можно ли строго типизировать строковые пользовательские литералы?
Новая концепция пользовательских литералов в C ++ предлагает несколько очень интересных вариантов использования строковых литералов, например:
"Goodbye %s world"_fmt("cruel");
"Goodbye %s world"_fmt(123); // Error: arg 1 must be convertible to...
1192 просмотров
schedule
15.06.2023
Рекурсивная лямбда-функция С++ 11 в операторе constexpr
изучая тему функций constexpr/operator в С++ 11, я наткнулся на эту статью: http://www.codeproject.com/Articles/447922/Application-of-Cplusplus11-User-Defined-Literals-t
Он цитирует пример того, как будет выглядеть код, обеспечивающий...
395 просмотров
schedule
18.05.2023
Почему нет стандартного литерального суффикса для std::string?
Быстрый вопрос: почему С++ 11 не предлагает литерал, определенный пользователем (на самом деле, стандартная библиотека) для создания std::string , например
auto str = "hello world"s; // str is a std::string
Как и C++, Objective-C...
1259 просмотров
schedule
15.03.2023
Целочисленная последовательность символов из пользовательского литерала, принимающая строки в качестве параметров
В настоящее время только двойники могут создавать шаблон символов в пользовательском литерале:
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 просмотров
schedule
14.03.2023
хронолитералы в VS2015
Следующий код дает мне ошибку времени компиляции:
#include <chrono>
int main() {
auto day = 24h;
return 0;
}
Ошибка C3688: недопустимый литеральный суффикс «h»; литеральный оператор или шаблон литерального оператора «оператор...
1215 просмотров
schedule
12.11.2022
Могу ли я шаблонировать определяемые пользователем литералы?
Предположим, у меня есть класс:
template <typename T>
class Foo {
const T* x_;
public:
Foo(const T* str) : x_{str} {}
};
и я предоставляю некоторые определяемые пользователем литералы, которые создают объект Foo :...
2985 просмотров
schedule
22.04.2023
Использование UDL в заголовке вне области действия функции
Если мы хотим использовать какой-либо UDL, нам нужно использовать соответствующее пространство имен:
auto foo()
{
using namespace std::literals::chrono_literals;
std::chrono::milliseconds interval = 1s;
}
что хорошо, потому что...
138 просмотров
schedule
11.04.2023
Использование макросов в функции 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 просмотров
schedule
09.11.2023
С++ 11 пользовательских литералов для единиц физических свойств
Я пытаюсь научиться использовать пользовательские литералы С++ 11 для единиц физических свойств. Вопрос в том, как мне избежать смешения этих единиц. Так что (8.0_kg + 8.0_km) --> дает ошибку. есть идеи, ребята? Я новичок в С++, будьте добры....
421 просмотров
schedule
20.12.2023
Когда и как использовать литеральный оператор шаблона?
В cppreference есть упоминание о том, что можно использовать шаблон для пользователя. литеральные операторы с некоторыми ограничениями:
Если литеральный оператор является шаблоном, он должен иметь пустой список параметров и может иметь...
5899 просмотров
schedule
31.01.2024
Может ли пользовательский литеральный оператор С++ когда-либо передавать нулевой указатель?
Может ли пользовательский литеральный оператор С++ когда-либо передавать нулевой указатель?
Это действительно происходит с экспериментальной версией g++ (версия gcc 4.7.0 20111114 (экспериментальная) [версия магистрали 181364] (Debian 20111114-1))...
402 просмотров
schedule
04.03.2024