M
Я с помощью bind определяю, какой порт сейчас свободен.
Но после closesocket почему-то целых две минуты проходит, пока на этот порт можно будет прибиндится. Вот это странное поведение
Size: a a a
M
CC
ES
#include <iosfwd>Вот clang и libc++ считают, что компилироваться — да, а линковаться — нет: https://wandbox.org/permlink/0V1jdpPbUFS2tR6I
#include <string>
void foo(std::ostream &os, const std::string &s) {
os << s;
}
<iostream>, то компилируется и линкуется.<iosfwd> никаких operator<< не определяет, а вот <string> как раз определяет нужный.M
CC
M
CC
TS
#include <iosfwd>Вот clang и libc++ считают, что компилироваться — да, а линковаться — нет: https://wandbox.org/permlink/0V1jdpPbUFS2tR6I
#include <string>
void foo(std::ostream &os, const std::string &s) {
os << s;
}
<iostream>, то компилируется и линкуется.<iosfwd> никаких operator<< не определяет, а вот <string> как раз определяет нужный.ES
operator<<(ostream&, const string&), причём на этапе линковки. Вообще выглядит как баг toolchain, но, может, я чего-то не понимаю.TS
operator<<(ostream&, const string&), причём на этапе линковки. Вообще выглядит как баг toolchain, но, может, я чего-то не понимаю.ES
<iosfwd>TS
<iosfwd>ES
operator<<, который определён в <string>.TS
operator<<, который определён в <string>.os << s; // это что?!ES
std::operator<<(os, s)os.TS
std::operator<<(os, s)os.ES
<iostream>, в этой единице трансляции её нет. Зачем мне реализация ostream?struct A;
struct B;
void bar(A&, B&);
void foo(A& a, B& b) { bar(a, b); }
bar из foo.IL
<string> как раз декларация, а реализация в <iostream>, видимоIL
TS
#include <iosfwd>Вот clang и libc++ считают, что компилироваться — да, а линковаться — нет: https://wandbox.org/permlink/0V1jdpPbUFS2tR6I
#include <string>
void foo(std::ostream &os, const std::string &s) {
os << s;
}
<iostream>, то компилируется и линкуется.<iosfwd> никаких operator<< не определяет, а вот <string> как раз определяет нужный.