Size: a a a

2020 September 24

I

Ioann_V in pro.cxx
PRoSToC0der
если не подходит C++20, то у gcc есть экстеншен для template string UDL (template <typename CharT, CharT... Chars>)
вот, не накинешь его?
источник

P

PRoSToC0der in pro.cxx
Ioann_V
вот, не накинешь его?
ща соображу)
источник

P

PRoSToC0der in pro.cxx
Ioann_V
вот, не накинешь его?
а тебе под какой стандарт?
источник

I

Ioann_V in pro.cxx
PRoSToC0der
а тебе под какой стандарт?
На самом деле, у меня вовсе чистый С(11), но я думаю, бые способы пойдут, сейчас.
источник

YB

Yarique Belgorodsky in pro.cxx
Yarique Belgorodsky
просто на thread san кажется что изменения от вызова callable из call_once афектят пассивный поток
pthread_once и clang 9 thread sanitizer совеместно не ведут себя странно ? ))
источник

P

PRoSToC0der in pro.cxx
Ioann_V
На самом деле, у меня вовсе чистый С(11), но я думаю, бые способы пойдут, сейчас.
источник

I

Ioann_V in pro.cxx
не, я глянул код - это не то. Ну фиг с ним, буду делать как Алекс советовал.
источник

P

PRoSToC0der in pro.cxx
всегда хотел узнать — почему для корутин использовать свой аллокатор можно, а у std::function с аллокаторами большие проблемы? (в частности смотрел пропозал для any_invocable и там о кастомизации аллокатором ни слова)
источник

АМ

Айсая Марат... in pro.cxx
#include <iostream>
#include <cmath>
using namespace std;
int main() {
 double n, b=0;
 cin>>n;
 for (double i=0; i<n; i++){
   b=sqrt(2+b);
}
cout<<b<<endl;
} Могли бы вы объяснить что значит тут b=0 и как считает b=sqrt(2+b)
источник

S

Stas in pro.cxx
Айсая Марат
#include <iostream>
#include <cmath>
using namespace std;
int main() {
 double n, b=0;
 cin>>n;
 for (double i=0; i<n; i++){
   b=sqrt(2+b);
}
cout<<b<<endl;
} Могли бы вы объяснить что значит тут b=0 и как считает b=sqrt(2+b)
источник

MZ

Max Ziua in pro.cxx
https://www.boost.org/doc/libs/1_74_0/doc/html/boost_asio/example/cpp03/fork/daemon.cpp

Подскажите, это штучный пример и на самом деле я мог бы дважды форкнуться и потом уже создать сервер, без всяких fork_prepare?
источник

s8

sm 86 in pro.cxx
привет всем, вопрос, гайд-лайны рекомендуют:
E.5: Let a constructor establish an invariant, and throw if it cannot

но тот же std::string не выбрасывает искл. в случае nullptr аргумента, это типа можно отсупать от правил ради перфа?
источник

s8

sm 86 in pro.cxx
или это какое-то недаразумение, и в будущем строка будет бросать?
источник

P

PRoSToC0der in pro.cxx
sm 86
привет всем, вопрос, гайд-лайны рекомендуют:
E.5: Let a constructor establish an invariant, and throw if it cannot

но тот же std::string не выбрасывает искл. в случае nullptr аргумента, это типа можно отсупать от правил ради перфа?
UB тоже можно, но не рекомендуется
источник

s8

sm 86 in pro.cxx
PRoSToC0der
UB тоже можно, но не рекомендуется
в стандарте пишут (в 17-ом):

24.3.2.2 basic_string constructors and assignment operators
basic_string(const charT* s, const Allocator& a = Allocator());
Requires: s points to an array of at least traits::length(s) + 1 elements of charT.
источник

s8

sm 86 in pro.cxx
т.е. есть требование что 1+ элемент, а где описание поискать того, что будет если требование не соблюсти?)
источник

s8

sm 86 in pro.cxx
я так полагаю это и будет UB
источник

s8

sm 86 in pro.cxx
но у меня больше вопрос, почему так,
источник

s8

sm 86 in pro.cxx
т.е. я в ревью пишу человеку: E.5: Let a constructor establish an invariant, and throw if it cannot
источник

P

PRoSToC0der in pro.cxx
sm 86
т.е. есть требование что 1+ элемент, а где описание поискать того, что будет если требование не соблюсти?)
на cppreference написано так:
The behavior is undefined if [s, s + Traits::length(s)) is not a valid range (for example, if s is a null pointer).
источник