- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
// https://quuxplusone.github.io/blog/2021/01/13/conversion-operator-lookup/
struct A {
using T = T1;
using U = U1;
operator U1 T1::*();
operator U1 T2::*();
operator U2 T1::*();
operator U2 T2::*();
};
inline auto which(U1 T1::*) { return "gcc"; }
inline auto which(U1 T2::*) { return "icc"; }
inline auto which(U2 T1::*) { return "msvc"; }
inline auto which(U2 T2::*) { return "clang"; }
int main() {
A a;
using T = T2;
using U = U2;
puts(which(a.operator U T::*()));
}
> As of this writing (but perhaps not for very much longer!) the four mainstream compilers on Godbolt Compiler Explorer give four different answers for this simple C++ program:
> According to the current draft standard, it sounds like the conforming answer is “they should both be looked up in the scope of A”; i.e., GCC’s answer is correct and the others are wrong in three different ways.
Какой багор )))
JloJle4Ka 22.01.2021 04:28 # 0
Desktop 22.01.2021 12:03 # +2
guest6 22.01.2021 12:24 # +1
Драконий покер впервые встречается нам в ''Мифических историях'' у Роберта Асприна. Позже автор пишет:
«Наиболее сложная карточная игра для всех измерений. По существу - покер с шестью картами на руках, отличается лишь тем, что в игре применяется так называемый "условный модификатор", который меняет значение карт в зависимости от числа игроков, дня недели, ориентации игроков по сторонам света, цвета стен помещения, в котором идет игра, высшей карты, которая принесла выигрыш в предпоследней сдаче, и так далее. Словом, вы все усекли».
zhigolo 23.01.2021 18:39 # 0
Прочёл, как 'others are wrong in three different gays.
CBuHOKYP 29.01.2021 19:53 # 0