C++ Logo

SG10

Advanced search

Subject: Re: [isocpp-core] Feature-test macro for ADL calls with template arguments?
From: Gabriel Dos Reis (gdr_at_[hidden])
Date: 2020-06-15 11:47:32


| -----Original Message-----
| From: Ville Voutilainen <ville.voutilainen_at_[hidden]>
| Sent: Monday, June 15, 2020 7:58 AM
| To: Gabriel Dos Reis <gdr_at_[hidden]>
| Cc: core_at_[hidden]; Barry Revzin <barry.revzin_at_[hidden]>; Marek
| Polacek <polacek_at_[hidden]>; sg10_at_[hidden]
| Subject: Re: [isocpp-core] [SG10] Feature-test macro for ADL calls with
| template arguments?
|
| On Mon, 15 Jun 2020 at 17:48, Gabriel Dos Reis <gdr_at_[hidden]>
| wrote:
| >
| > These protracted debate over feature test macros always remind me of the
| sage words of the inventor of macros for C, Doug McIlroy (and the inventor
| of the field of Software Engineering):
| >
| >
| >
| > Ø Most #ifdef's and #if's memorialize failures of imagination
| >
| > Ø or care, often in the name of "portability". Code is
| >
| > Ø NOT portable if it has to be rewritten according to the
| >
| > Ø conventions of each environment. Ifdef expresses just such
| >
| > Ø rewriting, and in an egregious style: it inverts the
| >
| > Ø logical structure of a program, bringing the tweaks to
| >
| > Ø the top while fragmenting the real architecture.
| >
| >
| >
| > Source:
| https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fww
| w.mail-archive.com%2Fhugs-
| users%40haskell.org%2Fmsg00795.html&amp;data=02%7C01%7Cgdr%40mi
| crosoft.com%7Cee9dd2b23a324774abfe08d8113c8185%7C72f988bf86f141
| af91ab2d7cd011db47%7C1%7C0%7C637278298848862642&amp;sdata=mK
| 3dcx8abeLYvrcFaaXQJPnPvBIJ%2F7rZ%2FZqry5%2BEImA%3D&amp;reserved
| =0
|
| I don't have a shade of illusion of portability here; it's all about
| selectively enabling superior
| functionality when it's available, and it's not yet available
| ubiquitously. Early adopters can adopt
| early, without waiting for everything to synchronize into a brave new world.

As a user depending on that superior functionality, how do I use it in practice when I am compiling with two different compilers with differing levels of support? Or, I am not supposed to see any difference?

-- Gaby


SG10 list run by sg10-owner@lists.isocpp.org