Toward Opaque Typedefs for C++1Y
Although this paper is self-contained, it logically follows our discussion, begun several years ago in N1706 and continued in N1891, of a feature oft-requested for C++: an opaque typedef , sometimes termed a strong typedef . The earlier of those works was presented to WG21 on 2004-10-20 during the Redmond meeting, and the later work was presented during the Berlin meeting on 2005-04-06. Both presentations resulted in very strong encouragement to continue development of such a language feature.1 Alas, the press of other obligations has until recently not permitted us to resume our explorations.
The Role of Implicit Conversions in Erroneous Function Argument Swapping in C++
Argument selection defects, in which the programmer has chosen the wrong argument to a function call is a widely investigated problem. The compiler can detect such misuse of arguments based on the argument and parameter type in case of statically typed programming languages. When adjacent parameters have the same type, or they can be converted between one another, the potential error will not be diagnosed. Related research is usually confined to exact type equivalence, often ignoring potential implicit or explicit conversions. However, in current mainstream languages, like C++, built-in conversions between numerics and user-defined conversions may significantly increase the number of mistakes to go unnoticed. We investigated the situation for C and C++ languages where functions are defined with multiple adjacent parameters that allow arguments to pass in the wrong order. When implicit conversions are taken into account, the number of mistake-prone function declarations significantly increases compared to strict type equivalence. We analysed the outcome and categorised the offending parameter types. The empirical results should further encourage the language and library development community to emphasise the importance of strong typing and the restriction of implicit conversion.
The Inca Occupation of the South Coast of Peru
like the others, however; it forks into several nearly parallel ravines of which the largest are Huayuri, Rio Grande-Palpa, Ingenio (called Collao in ancient times), Nasca proper (the ancient Caxamarca), Taruga, and Poroma. Due to peculiarities of the local topography, the irrigated areas in Ica and the ravines of Nasca are located inland, at the foot of the mountains, rather than at the mouths of the rivers as is more usual in Peruvian coastal valleys. No sharp natural or cultural boundary separates the valley of Chincha from the valleys of Cafiete (ancient Huarco and Runahuana), Asia, and Mala, the next valleys going up the coast to the northwest. At the other end of the area we are considering, however, there is a sharp break; beyond Yauca the Andean foothills reach out to the sea, natural conditions are quite different, and there are important differences in the archaeological picture as well. The historical sources which mention the south coast are not particularly helpful, except in so far as they provide us with a few dates. To begin with, no chronicler gives an explicit account of the political organization of the south coast at the time it came into contact with the Incas. It can, perhaps, be inferred from Cabello Balboa's statements about common policy toward the Inca invaders that there was some sort of political connection between the valleys of Mala, Cafiete, and Chincha, but the connection need have been no more than a temporary military alliance. Cabello makes no mention at all of Pisco. The valleys of Ica, Nasca, and 125