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>
как раз определяет нужный.