È stato portato alla mia attenzione per tentativi ed errori che esistono Certian C++ 11 caratteristiche che dipendono da una sorta di compilatore magico (TM). Ho lavorato con l'implementazione del mio standard conforme allo standard stdlib. So che ci sono implementazioni prontamente disponibili dello stdlib, ma questo è più della mia versione personale per le piccole applicazioni.Funzionalità della libreria C++ 11 dipendenti dal proxy specifico del compilatore
Ieri sera ho implementato std::initializer_list
in base alle specifiche, e mi stava avendo problemi a farlo funzionare, ho cercato di alta e bassa per anwers solo per essere lasciati con le dichiarazioni che era impossibile, e che richiederebbe modifiche del compilatore stesso . Bene, ho deciso di dare un'occhiata all'attuale implementazione dello libstdc++
, e la mia implementazione è stata esattamente la stessa nel design, solo leggermente diversa ai bordi, ho sprecato ore inutili a capire perché l'implementazione non funzionava, quando era esattamente lo stesso nel design di quello in libstdc++
. Non è stato fino a sei ore prima che mi rendessi conto che doveva essere nello spazio dei nomi std. Risulta che l'implementazione è merley un proxy per il compilatore che rende possibile il initializer_list
e il compilatore stesso cerca la classe initializer_list
in namespace std
.
La mia domanda è ci sono altre funzionalità di libreria che dovrei sapere che richiedono una sorta di magia del compilatore speciale per funzionare, più connessioni proxy nascoste, o secrete compilazioni per il compilatore per le nuove funzionalità della libreria C++ 11 ? Mi piacerebbe conoscerli in anticipo così posso essere preparato per quando implemento altre funzionalità che dipendono dal compiler magic, invece di sprecare un giorno intero a comprenderlo per tentativi ed errori; che può diventare noioso e piuttosto fastidioso.
Grazie.
Probabilmente molta magia ... –