title: Blue Mountains (New South Wales)

text: The "Blue Mountains Range" comprises a range of mountains, plateau escarpments extending off the Great Dividing Range about northwest of Wolgan Gap in a generally southeasterly direction for about , terminating at . For about two-thirds of its length it is traversed by the Great Western Highway, the Main Western railway line and the soon to be completed, Blue Mountains tunnel. Several established towns are situated on its heights, including Katoomba, Blackheath, , and . The range forms the watershed between Coxs River to the south and the Grose and Wolgan rivers to the north. The range contains the Explorer Range and the Bell Range.


title: Blue Mountains (New South Wales)

text: The Blue Mountains area includes the local government area of the City of Blue Mountains. Since the early 2010s, the region's biodiversity and infrastructure has been severely affected by massive bushfires of unprecedented size and impact. In 2018 8.4 million people visited the Blue Mountains. The Blue Mountains and Southern Highlands Basalt Forests is a prominent forest community within the ecoregion.


title: Blue Mountains (New South Wales)

text: Following European settlement of the Sydney area, the area was named the "Carmarthen and Lansdowne Hills" by Arthur Phillip in 1788. The Carmarthen Hills were in the north of the region and the Lansdowne Hills were in the south. The name "Blue Mountains", however, was preferred and is derived from the blue tinge the range takes on when viewed from a distance. The tinge is believed to be caused by Mie scattering which occurs when incoming light with shorter wavelengths is preferentially scattered by particles within the atmosphere imparting a blue-greyish colour to any distant objects, including mountains and clouds. Volatile terpenoids emitted in large quantities by the abundant eucalyptus trees in the Blue Mountains may cause Mie scattering and thus the blue haze for which the mountains were named.


title: Blue Mountains (New South Wales)

text: A sandstone plateau dominated by a landscape of endless eucalyptus forests, the Blue Mountains are located at the top of a 470-million-year-old quartzite. In the Permian period, a shallow sea covered the region, when rivers brought shales, siltstones and mudstones. Then during the Mesozoic period, rivers dumped vast amounts of sand, burying the other sedimentary rocks. By about 1 million years ago during the Pliocene era, the Blue Mountains began to form, carving out deep valleys and steep cliffs, with an elevation of 3,900 feet. Its main distinctive natural feature are the Three Sisters, a formation of triple sandstone peaks scoured by erosion, whose rocks are lit by the glimpse of light at the time of day.


title: Blue Mountains (New South Wales)

text: The Blue Mountains have been inhabited for millennia by the Gundungurra people, now represented by the Gundungurra Tribal Council Aboriginal Corporation based in Katoomba, and, in the lower Blue Mountains, by the Darug people, now represented by the Darug Tribal Aboriginal Corporation.


title: Blue Mountains (New South Wales)

text: The Gundungurra creation story of the Blue Mountains tells that Dreaming creatures Mirigan and Garangatch, half fish and half reptile, fought an epic battle which scarred the landscape into the Jamison Valley.


title: Blue Mountains (New South Wales)

text: The Gundungurra Tribal Council is a nonprofit organisation representing the Gundungurra traditional owners, promoting heritage and culture and providing a support for Gundungurra people connecting back to Country.


title: Blue Mountains (New South Wales)

text: Gundungurra Tribal Council Aboriginal Corporation has a registered Native Title Claim since 1995 over their traditional lands, which include the Blue Mountains and surrounding areas.


title: Blue Mountains (New South Wales)

text: Examples of Aboriginal habitation can be found in many places. In the Red Hands Cave, a rock shelter near Glenbrook, the walls contain hand stencils from adults and children. On the southern side of Queen Elizabeth Drive, at Wentworth Falls, a rocky knoll has a large number of grinding grooves created by rubbing stone implements on the rock to shape and sharpen them. There are also carved images of animal tracks and an occupation cave. The site is known as Kings Tableland Aboriginal Place and dates back 22,000 years.


title: Blue Mountains (New South Wales)

text: Arthur Phillip, the first governor of New South Wales, first glimpsed the extent of the Blue Mountains from a ridge at the site of today's Oakhill College, Castle Hill. He named them the Carmarthen Hills, "some forty to sixty miles distant..." and he reckoned that the ground was "most suitable for government stock". This is the location where Gidley King in 1799 established a prison town for political prisoners from Ireland and Scotland.


title: Blue Mountains (New South Wales)

text: The first documented use of the name "Blue Mountains" appears in Captain John Hunter's account of Phillip's 1789 expedition up the Hawkesbury River. Describing the events of about 5 July, Hunter wrote: "We frequently, in some of the reaches which we passed through this day, saw very near us the hills, which we suppose as seen from Port Jackson, and called by the governor the Blue Mountains." During the nineteenth century the name was commonly applied to the portion of the Great Dividing Range from about Goulburn in the south to the Hunter Valley in the north, but in time it came to be associated with a more limited area.


title: Blue Mountains (New South Wales)

text: The native Aborigines knew two routes across the mountains: Bilpin Ridge, which is now the location of Bells Line of Road between Richmond and Bell, and the Coxs River, a tributary of the Nepean River. It could be followed upstream to the open plains of the Kanimbla Valley, the type of country that farmers prize.


title: Blue Mountains (New South Wales)

text: British settlers initially considered that fertile lands lay beyond the mountains; while in the belief of many convicts China lay beyond. However, there was little fear that the mountains might provide a means of escape since they were considered impassable. This idea was, to some extent, convenient for local authorities. An "insurmountable" barrier would deter convicts from trying to escape in that direction.


title: Blue Mountains (New South Wales)

text: A former convict, John Wilson, may have been the first colonist to cross the Blue Mountains. It is also believed that Mathew Everingham, 1795, may have also been partly successful based on letters he wrote at the time which came to light in the late 1980s. Wilson arrived with the First Fleet in 1788 and was freed in 1792. He settled in the bush, living with the Aborigines and even functioning as an intermediary between them and the settlers. In 1797 he returned to Sydney, claiming to have explored up to a hundred miles in all directions around Sydney, including across the mountains. His descriptions and observations were generally accurate, and it is possible that he had crossed the mountains via the southern aspect at the Coxs River corridor, guided by the Aborigines.


title: Blue Mountains (New South Wales)

text: Governor Hunter was impressed by Wilson's skills and sent him on an expedition with John Price and others in January 1798. The party crossed the Nepean River and moved southwest towards the present site of Mittagong. There they turned west and found a route along the ridge where today the Wombeyan Caves Road is located. In the process they found a way to go west of the mountains, by going around them instead of across them. In March of the same year, Wilson and Price ventured to the Camden area, and then continued further south until they encountered Thirlmere Lakes, finally almost reaching the present site of Goulburn.


title: Blue Mountains (New South Wales)

text: It is possible that the accomplishments of this expedition were suppressed by Hunter, who may not have wanted convicts to know that there was a relatively easy way out of Sydney. Wilson was killed by Aborigines after abducting an Aboriginal woman "for his personal use", but he had accomplished much as an explorer. He was never recognised as the first person to cross the mountains, possibly because his Coxs River journey could not be verified, while his route west of Mittagong may have been the "long way around" for a colony that had its eyes fixed on the sandstone fortress west of the Nepean.


title: Blue Mountains (New South Wales)

text: Between 1798 and 1813, many people explored various parts of the mountains, from the Bilpin Ridge to the southern regions, today the site of the Kanangra-Boyd National Park. Still, they did not find a definite route across the mountains.


title: Blue Mountains (New South Wales)

text: The 1813 crossing of the Blue Mountains by Gregory Blaxland, William Lawson and William Charles Wentworth is officially credited as the first successful European crossing. Blaxland set out with Lawson and Wentworth on 11 May 1813 and succeeded in crossing the mountains by 31 May. They ventured as far as to what is now Mount Blaxland, just west of Coxs River.


title: Blue Mountains (New South Wales)

text: In November 1813, Macquarie sent the surveyor George Evans on an expedition to confirm the apparent discoveries made by Blaxland and his party. He was also told to see if there existed enough arable land to justify settlement. The issue had become more urgent because the colony was in the grips of a drought.


title: Blue Mountains (New South Wales)

text: Evans and his party reached the Fish and Macquarie rivers, and the site of Bathurst. On 7 July 1814, construction of a road across the mountains was begun by William Cox. The work was at the behest of Governor Macquarie. 30 convict labourers and 8 guards completed the road on 14 January 1815 after 27 weeks of hard work.


title: Blue Mountains (New South Wales)

text: Since the Blue Mountains are rich in coal and shale, mining for these resources began in Hartley Vale in 1865. J.B. North ran a shale mine in the Jamison Valley in the 19th century, and other operations were set up in several places. Locations for mining activities included the Jamison Valley, the upper Grose Valley, Newnes, Glen Davis and the Asgard Swamp area outside Mount Victoria. Shale mining failed in the long run because it was not profitable.


title: Blue Mountains (New South Wales)

text: The climate varies with elevation. At Katoomba, () the summer average maximum temperature is around 22 °C with a few days extending into the 30s (80s–90s °F) although it is quite common to see maximum temperatures stay in the teens when east coast troughs persist. Night-time temperatures are usually in the teens but can drop to single figures at times.


title: Blue Mountains (New South Wales)

text: During winter, the temperature is typically around 10 to 11 °C in the daytime with −1 °C or so on clear nights and 3 to 4 °C on cloudy nights. Very occasionally it will get down to −3 °C or slightly lower but usually the coldest air drains into the valleys during calm, clear nights. However, the passing of cold fronts can significantly lower the average temperature during the night and the day. The Blue Mountains is not known for particularly cold mornings compared to other areas on the Central Tablelands, such as Oberon, Bathurst and Orange. There are two to three snowfalls per year.


title: Blue Mountains (New South Wales)

text: The predominant natural vegetation of the higher ridges is eucalyptus forest. Heath-like vegetation is present on plateau edges above cliffs. The sheltered gorges often contain temperate rainforests. There are also many hanging swamps with button grass reeds and thick, deep black soil. "Wollemia nobilis", the "Wollemi pine", a relict of earlier vegetation of Gondwana, is found in remote and isolated valleys of the Wollemi National Park.


title: Blue Mountains (New South Wales)

text: The Blue Mountains Range contains smaller mountain ranges: the Bell Range near The Bells Line of Road and north of the Grose River; the Explorer Range, south of the Grose River extending west towards Mount Victoria; the Caley Range, Erskine Range, Mount Hay Range, Paterson Range, and the Woodford Range. The major recorded peaks are:


title: Blue Mountains (New South Wales)

text: The Blue Mountains are a dissected plateau carved in sandstone bedrock. They are now a series of ridge lines separated by gorges up to deep. The highest point in the Blue Mountains, as it is now defined, is an unnamed point with an elevation of , located north-east of . However, the highest point in the broader region that was once considered to be the Blue Mountains is Mount Bindo, with an elevation .


title: Blue Mountains (New South Wales)

text: A large part of the Blue Mountains is incorporated into the Greater Blue Mountains Area World Heritage Site, consisting of seven national park areas and a conservation reserve.


title: Blue Mountains (New South Wales)

text: The Blue Mountains area is a distinct physiographic section of the larger Hunter-Hawkesbury Sunkland province. This is in turn a part of the larger East Australian Cordillera physiographic division.


title: Blue Mountains (New South Wales)

text: The main natural disasters to afflict the area are bushfires and severe storms. In recent years the lower mountains have been subjected to a series of bushfires which have caused great loss of property but relatively little loss of life. The upper mountains had not had a major fire for some decades until December 2002 (the Blackheath Glen Fire) and November 2006 when an extensive blaze in the Grose Valley threatened several communities including Bell and Blackheath (the Lawsons Long Alley Fire). This latest fire burned for almost a month but was extinguished, mainly due to a change in the weather, without loss of human life or property. A program of winter burning seemed to have been successful in reducing fires in the upper mountains.


title: Blue Mountains (New South Wales)

text: In recent years, the bushfires have become far more destructive and expansive than before. The region was severely damaged in the 2013 New South Wales bushfires. However, even this was dwarfed by the 2019–20 Australian bushfire season, during which the entire mountain range was devastated at a scale never seen before. According to preliminary reports, up to 80% of the World Heritage Area has burned as of January 2020, many of these being areas that had never burned in any previously observed bushfires. These destructive blazes have been linked to accelerating climate change. There have been fears that the blazes may severely reduce the biodiversity of the area and even wipe out some of the threatened species in the area, such as the regent honeyeater.


title: Blue Mountains (New South Wales)

text: The Greater Blue Mountains Area was unanimously listed as a World Heritage Area by UNESCO on 29 November 2000, becoming the fourth area in New South Wales to be listed. The area totals roughly , including the Blue Mountains, Kanangra-Boyd, Wollemi, Gardens of Stone, Yengo, Nattai and Thirlmere Lakes National Parks, plus the Jenolan Caves Karst Conservation Reserve.


title: Blue Mountains (New South Wales)

text: The Greater Blue Mountains Area is inhabited by over 400 different forms of animals. Among them are rare mammal species like spotted-tailed quoll, the koala, the yellow-bellied glider, and long-nosed potoroo. There are also some rare reptiles, like the Blue Mountain water skink. There are also some dingoes in the area, which form the top predators and hunt for grey kangaroos.


title: Blue Mountains (New South Wales)

text: The Blue Mountains are a popular destination for rock climbers, mountain bikers and hikers as well as canyoning and other adventure sports. These sports are well catered for by guiding companies and equipment stores located mainly in Katoomba.


title: Blue Mountains (New South Wales)

text: Popular climbing destinations include the Centennial Glen cliffs near Blackheath and Mount Piddington near the town of Mount Victoria. Climbing is currently banned on The Three Sisters.


title: Blue Mountains (New South Wales)

text: Mountain biking takes place mainly on the many fire trails that branch away from the main spine of the Great Western Highway, such as Narrow Neck, Anderson's Fire Trail and others.


title: Blue Mountains (New South Wales)

text: Likewise many of the fire trails are popular with day hikers, though many dedicated walking trails exist away from the fire roads.


title: Blue Mountains (New South Wales)

text: Canyoning in the Blue Mountains is a popular sport and caters for various skill levels. It carries inherent dangers, yet for those with the appropriate skills or those looking to take a guided trip there are many great opportunities to experience a different view of the Blue Mountains.


title: Blue Mountains (New South Wales)

text: There are numerous abseiling options available in the Blue Mountains including single and multipitch routes. There are some restrictions though with certain areas being closed for abseiling.


title: Blue Mountains (New South Wales)

text: Cricket is a popular sport in the Blue Mountains, with the Blue Mountains Cattle Dogs representing the district in the Western Zone Premier League, Country Plate and Presidents Cup competitions.


title: Blue Mountains (New South Wales)

text: At 4am on the 28th of January 1931 a cliff face known as "the Dog Face Rock" collapsed into the Jamison Valley in the Blue Mountains. A second collapse from the same cliff face occurred on the 2nd of May 1931 and it was estimated that millions of tons of rock fell several hundred feet into the valley below.


title: Blue Mountains (New South Wales)

text: It was reported that "More than 450 incidents resulting in greater than 200 deaths between 1875 and 2021..." have occurred. Every year there are up to 200 people who are lost or injured in the Blue mountains.


title: Blue Mountains (New South Wales)

text: In 2022 two people died and two were injured when they were on a walking track in Wentworth Falls and a landslide occurred and debris collided with them.


title: Yamaha FZ6

text: The Yamaha FZ6, also known as the FZ6 FAZER is a "" motorcycle that was introduced by Yamaha in 2004 as a middleweight street bike built around the 2003 YZF-R6 engine. The engine is retuned for more usable midrange power. As a multi-purpose motorcycle it can handle sport riding, touring, and commuting. In 2010, the FZ6 was replaced by the fully faired FZ6R in North America, and the XJ6 Diversion, XJ6 N and XJ6 Diversion F in Europe. The FZ6 styling was continued in 2011 with the Yamaha FZ8 and FAZER8.


title: Yamaha FZ6

text: This bike is a popular choice for its half-fairing, upright seating position, and underseat exhaust. These features position it between a full supersport and a naked streetfighter (although in Europe and Australia, there is an available naked FZ6N option).


title: Yamaha FZ6

text: The FZ6 in 2006 has a revised engine, frame, subframe, grabhandle, rear swingarm and wheels are painted in black. It had a metal honeycomb type catalytic converter satisfies EU2 and CARB emissions standards, and optimized fuel injection (FI) system mapping to increase torque at lower engine speeds.


title: Yamaha FZ6

text: The FZ6 received optimized fuel injection (FI) system mapping, redesigned fairing and windscreen, new instrument cluster with analog tachometer and digital speedometer (similar to the FZ1), new four-piston monoblock brake calipers for the front brake, alumite-finished front forks with revised damping, a three-way catalytic converter, a new seat design, a new rear swingarm, and new passenger footpegs.


title: Yamaha FZ6

text: The 2008 model is technically unchanged from 2007. The only difference is in appearance of front cowling around the headlights, which is now black regardless of motorcycle color. The European model 'FZ6 Fazer S2 ABS' has ABS and electronic immobilizer as standard.


title: Yamaha FZ6

text: The 2009 model (introduced on September 8, 2008) is technically unchanged from 2008/2007, besides the optional more comfortable seat becoming standard.


title: Yamaha FZ6

text: For the 2010 model year, Yamaha continued to sell the FZ6 Fazer S2 (half-faired) and FZ6 S2 (naked) in Europe. Both have full power (98 PS) and ABS.


title: Yamaha FZ6

text: Reduced power models have been discontinued and replaced with the XJ6 with optional ABS. In North America, the fully faired XJ6 Diversion F, having no ABS and electronic immobilizer, is known as FZ6R and replaces the FZ6 in its second season on the market.


title: Yamaha FZ6

text: The FZ6N is virtually identical to the standard FZ6 Fazer model with the exception of not having the half-fairing fitted


title: Funcom

text: Funcom Oslo AS (, formerly Funcom Productions AS) is a Norwegian video game developer that specializes in online games. It is best known for the massively multiplayer online role-playing game (MMORPG) titles "Conan Exiles", "Age of Conan", "Anarchy Online", "The Secret World" – and "The Longest Journey" series of adventure games. The company has offices in Oslo, Norway; North Carolina, US; Lisbon, Portugal; Bucharest, Romania; and Stockholm, Sweden. It also had offices in Beijing, Dublin, and Montreal previously. It is now owned by the Chinese media conglomerate Tencent.


title: Funcom

text: Founded in 1993 by Erik Gloersen, Tyr Neilsen, Andre Backen, Gaute Godager and Olav Mørkrid, the company started as an independent game developer and publisher. It focuses mainly on PC games but have also released games on other platforms, including mobile phones and tablets. Funcom's console releases includes titles on Sega Mega Drive/Genesis, Super NES, Sega Saturn, Xbox, Xbox One and PS4.


title: Funcom

text: In 1994 Funcom Dublin was set up to concentrate on console games. It originally had 20 employees. By July 2000 this had grown to 25. With the parent company choosing to focus on a massive multiplayer online title, Anarchy Online, the decision was made to close this subsidiary in August 2001.


title: Funcom

text: In late 2000s, Funcom opened a new office in North Carolina, increasing its staff to handle the final stages of releasing its sci-fi online RPG, Anarchy Online. The new location was also chosen so that it could offer effective customer service to North American players.


title: Funcom

text: In December 2005, Funcom NV., the Dutch parent company of Funcom Oslo, was listed on the Oslo Stock Exchange.


title: Funcom

text: On March 14, 2007, the company abandoned traditional physical product distribution (e.g., on optical discs) in favor of digital distribution completely. The main reason for this decision was claimed to be the financial losses due to software piracy.


title: Funcom

text: On August 21, 2008, Funcom laid off half of its customer service department located in Durham, North Carolina. On November 22, 2008, third parties reported that Funcom fired an additional 70% of the staff in their US workforce, possibly endangering future releases.


title: Funcom

text: On September 17, 2008, Gaute Godager left Funcom, stating he was dissatisfied with certain elements of "Age of Conan", which he directed. Craig Morrison took over the direction of "Age of Conan".


title: Funcom

text: On February 23, 2009, Funcom reported financial losses of approximately $23 million in the fourth quarter of 2008. The unsuccessful launch of "Age of Conan" was cited as the reason for such a steep decline. The chief analyst of DnB NOR, Fredrik Thoresen, estimated that 100,000 subscribers played the game at the time of the report, far below the publisher's expectations, though these numbers were not confirmed by Funcom itself.


title: Funcom

text: On September 1, 2009, Funcom announced the establishment of a new development studio in Montreal, Quebec, Canada. The new studio has worked on Funcom's two MMORPG projects: "The Secret World" and the "Age of Conan" expansion pack "".


title: Funcom

text: On September 29, 2009, Funcom announced a reduction of 20% of its staff, resulting in a "significant delay" for the release of "The Secret World".


title: Funcom

text: All the perceived actions were reflected in the 2010 Annual Financial Report. The current number of employees is 282 (a 19% reduction to 2009). As the result of the new strategy, the operating results came close to a positive value — in 2010 it reached — US$593 thousand compared to — US$10 798 thousand in 2009.


title: Funcom

text: On July 2, 2012, Funcom announced Ole Schreiner as the new CEO of Funcom and as a new member of the management board of Funcom. Ole Schreiner comes from the position of COO of the company, a role he has held for several years. Ole Schreiner is one of Funcom's longest-serving employees and he has been working directly with titles such as "Anarchy Online", "Age of Conan" and "The Secret World" in several capacities. Trond Arne Aas, long-term CEO of Funcom, took on a new role as Strategic Advisor to the Board and Chief Strategy Officer,


title: Funcom

text: On August 22, 2012, Funcom announced that it laid off half of the company as a cost-adjustment initiative due to the poor performance of their MMORPG "The Secret World". Some of the lay-offs were temporary. They blamed this poor performance on the Metacritic score of the game and the launch of competing titles like "Diablo III".


title: Funcom

text: On January 10, 2013, Funcom announced that they had initiated a process of restructuring the company around its core products and technology. The restructuring involved, among other things, that some of the company's offices would be closed or consolidated with others. Thus, Funcom hoped to create a stronger and more effective organization.


title: Funcom

text: The company announced on January 17, 2013, that it would lay off some of its staff of their Montreal branch as a part of the restructuring process.


title: Funcom

text: On January 29, 2014, Norwegian economic crime unit Økokrim launched an investigation into suspected infringement of the provisions of the Securities Trading Act connected to the 2012 launch of "The Secret World". In October 2015, the case against Funcom was closed after the company paid a fine.


title: Funcom

text: On April 24, 2014, the company reported securing NOK 9.7 million (US$1.6 million) additional equity. The additional cash boost helped the company to fully prepare for the launch of the LEGO Minifigures MMO in summer 2014.


title: Funcom

text: In October 2015, the company launched "The Park", a single-player horror experience based on "The Secret World" intellectual property.


title: Funcom

text: In December 2015, the company announced that it had entered into a partnership agreement with Conan Properties International LLC, making it the preferred partner for PC and console games based on the Conan the Barbarian brand.


title: Funcom

text: In January 2016, the company announced it was working on "Conan Exiles", an open-world survival game based on the Conan the Barbarian brand. The game released on Steam PC Early Access on January 31, 2017, and launched on the Xbox One as part of the Game Preview program in August 2017.


title: Funcom

text: In March 2017, the company announced it would relaunch "The Secret World" as "Secret World Legends", the free-to-play reboot of the original 2012 MMORPG. It launched June 2017, and was made available on Steam in July 2017. There have been no substantial updates to the game since October 2018.


title: Funcom

text: In August 2017, the company revealed a new logo and branding alongside a positioning that openly acknowledges low points in the company's history.


title: Funcom

text: On 8 January 2019, it was announced that Funcom had acquired 50.1% of the Lisbon, Portugal-based company Zona Paradoxal, Lda ("ZPX") with whom it has had a working relationship since 2017.


title: Funcom

text: On 26 February 2019, Funcom announced that it was entering into an exclusive partnership with Legendary Entertainment to develop games related to the upcoming "Dune" films.


title: Funcom

text: Tencent Holdings acquired a 29% minority stake in Funcom in September 2019, making it the largest shareholder in the company. Tencent announced in January 2020 its intent to fully acquire Funcom through purchasing all outstanding shares of the company in February 2020 valued at .


title: Funcom

text: In June 2021, Funcom acquired Swedish video game developer The Outsiders, while the company also announced plans to open a new studio in Romania.


title: Funcom

text: Funcom acquired Cabinet Group, which owns the intellectual property rights of "Conan", "Mutant", and Solomon Kane and other works based on the writings of Robert E. Howard, in September 2021. Funcom stated that with this acquisition, that alongside a new game, they planned to merge these into a new studio Heroic Signatures and release a new game based on these properties. On December 2, 2021, it was announced that they signed an agreement with NUKKLEAR for assistance on Funcom's upcoming "Dune" survival video game.


title: Funcom

text: "The Longest Journey" was produced by Ragnar Tørnquist and was very well-received both by critics and users. The game was published in 9 languages: English, Norwegian, French, Dutch, Swedish, Italian, Polish, Russian and Spanish. The game was also released in other countries, but mainly in English-speaking ones.


title: Funcom

text: "Anarchy Online" is a critically acclaimed online game, more specifically a massively multiplayer online role-playing game (MMORPG), with 20 international awards. Funcom issued several expansions: "The Notum Wars", "Shadowlands", "Alien Invasion", "Lost Eden" and "Legacy of The Xan". Founder Gaute Godager was the first Game Director, before Marius Enge released "Alien Invasion" and took over at the release of "Shadowlands". However, shortly after the release of "Alien Invasion", Morten Byom took over. Later, near the release of the "Lost Eden" expansion, Byom moved on to the "Age of Conan" team, and was succeeded as Game Director by Craig Morrison, also known as "Silirrion". Following the game, a book about the prehistory of the planet and a CD with music from the game were released.


title: Funcom

text: In the spring of 2006, the company released the sequel to "The Longest Journey" for the Xbox and PC, entitled "Dreamfall".


title: Funcom

text: Funcom has also developed an online action role-playing video game for PC and console entitled "Age of Conan: Hyborian Adventures". This product utilizes the Conan the Cimmerian franchise license. The PC version of this game was released on May 20, 2008, and the Xbox 360 version was cancelled. As of 2011, the subscription model of the game has been altered to a hybrid game is marketed as "Age of Conan: Unchained". Funcom released an expansion pack for the game called "".


title: Funcom

text: The development of their MMO "The Secret World" was announced on May 11, 2007, and the game was released on July 3, 2012.


title: Funcom

text: Funcom earned a license from the Lego Company to develop a new MMO game, titled Lego Minifigures Online. The game is child friendly and was originally intended to be free-to-play, but released with a buy-to-play model on June 29, 2015.


title: Funcom

text: On October 27, 2015, Funcom released a single-player horror title, "The Park", set in the same universe setting as their MMO, "The Secret World".


title: Funcom

text: On October 25, 2016, Funcom released the one vs. one multiplayer game, Hide and Shriek, set in the same universe as their MMO "The Secret World".


title: Funcom

text: On January 31, 2017, Funcom released an online survival sandbox game "Conan Exiles", set in the Conan the Cimmerian franchise, as an Early Access title on PC. It would later be released on the Xbox One as part of the Game Preview program on August 16, 2017.


title: Funcom

text: On June 26, 2017, Funcom re-launched "The Secret World" as "Secret World Legends", a free-to-play rebuild of the original 2012 MMORPG. It would become available on Steam July 31, 2017.


title: C++11

text: C++11 is a version of the ISO/IEC 14882 standard for the C++ programming language. C++11 replaced the prior version of the C++ standard, called C++03, and was later replaced by C++14. The name follows the tradition of naming language versions by the publication year of the specification, though it was formerly named "C++0x" because it was expected to be published before 2010.


title: C++11

text: Although one of the design goals was to prefer changes to the libraries over changes to the core language, C++11 does make several additions to the core language. Areas of the core language that were significantly improved include multithreading support, generic programming support, uniform initialization, and performance. Significant changes were also made to the C++ Standard Library, incorporating most of the C++ Technical Report 1 (TR1) libraries, except the library of mathematical special functions.


title: C++11

text: C++11 was published as "ISO/IEC 14882:2011" in September 2011 and is available for a fee. The working draft most similar to the published C++11 standard is N3337, dated 16 January 2012; it has only editorial corrections from the C++11 standard.


title: C++11

text: Attention to beginners is considered important, because most computer programmers will always be such, and because many beginners never widen their knowledge, limiting themselves to work in aspects of the language in which they specialize.


title: C++11

text: One function of the C++ committee is the development of the language core. Areas of the core language that were significantly improved include multithreading support, generic programming support, uniform initialization, and performance.


title: C++11

text: These language features primarily exist to provide some kind of performance benefit, either of memory or of computational speed.


title: C++11

text: In C++03 (and before), temporaries (termed "rvalues", as they often lie on the right side of an assignment) were intended to never be modifiable — just as in C — and were considered to be indistinguishable from codice_1 types; nevertheless, in some cases, temporaries could have been modified, a behavior that was even considered to be a useful loophole. C++11 adds a new non-const reference type called an , identified by codice_2. This refers to temporaries that are permitted to be modified after they are initialized, for the purpose of allowing "move semantics".


title: C++11

text: A chronic performance problem with C++03 is the costly and unneeded deep copies that can happen implicitly when objects are passed by value. To illustrate the issue, consider that an codice_3 is, internally, a wrapper around a C-style array with a defined size. If an codice_3 temporary is created or returned from a function, it can be stored only by creating a new codice_3 and copying all the rvalue's data into it. Then the temporary and all its memory is destroyed. (For simplicity, this discussion neglects the return value optimization.)


title: C++11

text: In C++11, a of codice_3 that takes an rvalue reference to an codice_3 can copy the pointer to the internal C-style array out of the rvalue into the new codice_3, then set the pointer inside the rvalue to null. Since the temporary will never again be used, no code will try to access the null pointer, and because the pointer is null, its memory is not deleted when it goes out of scope. Hence, the operation not only forgoes the expense of a deep copy, but is safe and invisible.


title: C++11

text: Rvalue references can provide performance benefits to existing code without needing to make any changes outside the standard library. The type of the returned value of a function returning an codice_3 temporary does not need to be changed explicitly to codice_10 to invoke the move constructor, as temporaries are considered rvalues automatically. (However, if codice_3 is a C++03 version without a move constructor, then the copy constructor will be invoked with an codice_12, incurring a significant memory allocation.)


title: C++11

text: For safety reasons, some restrictions are imposed. A named variable will never be considered to be an rvalue even if it is declared as such. To get an rvalue, the function template codice_13 should be used. Rvalue references can also be modified only under certain circumstances, being intended to be used primarily with move constructors.


title: C++11

text: Due to the nature of the wording of rvalue references, and to some modification to the wording for lvalue references (regular references), rvalue references allow developers to provide perfect function forwarding. When combined with variadic templates, this ability allows for function templates that can perfectly forward arguments to another function that takes those particular arguments. This is most useful for forwarding constructor parameters, to create factory functions that will automatically call the correct constructor for those particular arguments. This is seen in the emplace_back set of the C++ standard library methods.


title: C++11

text: C++ has always had the concept of constant expressions. These are expressions such as codice_14 that will always yield the same results, at compile time and at run time. Constant expressions are optimization opportunities for compilers, and compilers frequently execute them at compile time and hardcode the results in the program. Also, in several places, the C++ specification requires using constant expressions. Defining an array requires a constant expression, and enumerator values must be constant expressions.


title: C++11

text: However, a constant expression has never been allowed to contain a function call or object constructor. So a piece of code as simple as this is invalid:


title: C++11

text: This was not valid in C++03, because codice_15 is not a constant expression. A C++03 compiler has no way of knowing if codice_16 actually is constant at runtime. In theory, this function could affect a global variable, call other non-runtime constant functions, etc.


title: C++11

text: C++11 introduced the keyword codice_17, which allows the user to guarantee that a function or object constructor is a compile-time constant. The above example can be rewritten as follows:


title: C++11

text: Using codice_17 on a function imposes some limits on what that function can do. First, the function must have a non-void return type. Second, the function body cannot declare variables or define new types. Third, the body may contain only declarations, null statements and a single return statement. There must exist argument values such that, after argument substitution, the expression in the return statement produces a constant expression.


title: C++11

text: Before C++11, the values of variables could be used in constant expressions only if the variables are declared const, have an initializer which is a constant expression, and are of integral or enumeration type. C++11 removes the restriction that the variables must be of integral or enumeration type if they are defined with the codice_17 keyword:


title: C++11

text: Such data variables are implicitly const, and must have an initializer which must be a constant expression.


title: C++11

text: To construct constant expression data values from user-defined types, constructors can also be declared with codice_17. A codice_17 constructor's function body can contain only declarations and null statements, and cannot declare variables or define types, as with a codice_17 function. There must exist argument values such that, after argument substitution, it initializes the class's members with constant expressions. The destructors for such types must be trivial.


title: C++11

text: The copy constructor for a type with any codice_17 constructors should usually also be defined as a codice_17 constructor, to allow objects of the type to be returned by value from a constexpr function. Any member function of a class, such as copy constructors, operator overloads, etc., can be declared as codice_17, so long as they meet the requirements for constexpr functions. This allows the compiler to copy objects at compile time, perform operations on them, etc.


title: C++11

text: If a constexpr function or constructor is called with arguments which aren't constant expressions, the call behaves as if the function were not constexpr, and the resulting value is not a constant expression. Likewise, if the expression in the return statement of a constexpr function does not evaluate to a constant expression for a given invocation, the result is not a constant expression.


title: C++11

text: codice_17 differs from codice_28, introduced in C++20, in that the latter must always produce a compile time constant, while codice_17 does not have this restriction.


title: C++11

text: In C++03, a class or struct must follow a number of rules for it to be considered a plain old data (POD) type. Types that fit this definition produce object layouts that are compatible with C, and they could also be initialized statically. The C++03 standard has restrictions on what types are compatible with C or can be statically initialized despite there being no technical reason a compiler couldn't accept the program; if someone were to create a C++03 POD type and add a non-virtual member function, this type would no longer be a POD type, could not be statically initialized, and would be incompatible with C despite no change to the memory layout.


title: C++11

text: C++11 relaxed several of the POD rules, by dividing the POD concept into two separate concepts: "trivial" and "standard-layout".


title: C++11

text: A type that is "trivial" can be statically initialized. It also means that it is valid to copy data around via codice_30, rather than having to use a copy constructor. The lifetime of a "trivial" type begins when its storage is defined, not when a constructor completes.


title: C++11

text: Constructors are trivial only if there are no virtual member functions of the class and no virtual base classes. Copy/move operations also require all non-static data members to be trivial.


title: C++11

text: A type that is "standard-layout" means that it orders and packs its members in a way that is compatible with C. A class or struct is standard-layout, by definition, provided:


title: C++11

text: A class/struct/union is considered POD if it is trivial, standard-layout, and all of its non-static data members and base classes are PODs.


title: C++11

text: By separating these concepts, it becomes possible to give up one without losing the other. A class with complex move and copy constructors may not be trivial, but it could be standard-layout and thus interoperate with C. Similarly, a class with public and private non-static data members would not be standard-layout, but it could be trivial and thus codice_30-able.


title: C++11

text: In C++03, the compiler must instantiate a template whenever a fully specified template is encountered in a translation unit. If the template is instantiated with the same types in many translation units, this can dramatically increase compile times. There is no way to prevent this in C++03, so C++11 introduced extern template declarations, analogous to extern data declarations.


title: C++11

text: These features exist for the primary purpose of making the language easier to use. These can improve type safety, minimize code repetition, make erroneous code less likely, etc.


title: C++11

text: C++03 inherited the initializer-list feature from C. A struct or array is given a list of arguments in braces, in the order of the members' definitions in the struct. These initializer-lists are recursive, so an array of structs or struct containing other structs can use them.


title: C++11

text: This is very useful for static lists, or initializing a struct to some value. C++ also provides constructors to initialize an object, but they are often not as convenient as the initializer list. However, C++03 allows initializer-lists only on structs and classes that conform to the Plain Old Data (POD) definition; C++11 extends initializer-lists, so they can be used for all classes including standard containers like codice_33.


title: C++11

text: C++11 binds the concept to a template, called codice_34. This allows constructors and other functions to take initializer-lists as parameters. For example:


title: C++11

text: This constructor is a special kind of constructor, called an initializer-list-constructor. Classes with such a constructor are treated specially during uniform initialization (see below)


title: C++11

text: The template class codice_36 is a first-class C++11 standard library type. They can be constructed statically by the C++11 compiler via use of the codice_37 syntax without a type name in contexts where such braces will deduce to an codice_34, or by explicitly specifying the type like codice_39 (and so on for other varieties of construction syntax).


title: C++11

text: The list can be copied once constructed, which is cheap and will act as a copy-by-reference (the class is typically implemented as a pair of begin/end pointers). An codice_34 is constant: its members cannot be changed once it is created, and nor can the data in those members be changed (which rules out moving from them, requiring copies into class members, etc.).


title: C++11

text: Although its construction is specially treated by the compiler, an codice_34 is a real type, and so it can be used in other places besides class constructors. Regular functions can take typed codice_34s as arguments. For example:


title: C++11

text: Examples of this in the standard library include the codice_43 and codice_44 templates taking codice_34s of numeric type.


title: C++11

text: C++03 has a number of problems with initializing types. Several ways to do this exist, and some produce different results when interchanged. The traditional constructor syntax, for example, can look like a function declaration, and steps must be taken to ensure that the compiler's most vexing parse rule will not mistake it for such. Only aggregates and POD types can be initialized with aggregate initializers (using codice_46).


title: C++11

text: C++11 provides a syntax that allows for fully uniform type initialization that works on any object. It expands on the initializer list syntax:


title: C++11

text: The initialization of codice_47 behaves exactly as though it were aggregate-initialization. That is, each data member of an object, in turn, will be copy-initialized with the corresponding value from the initializer-list. Implicit type conversion will be used where needed. If no conversion exists, or only a narrowing conversion exists, the program is ill-formed. The initialization of codice_48 invokes the constructor.


title: C++11

text: Uniform initialization does not replace constructor syntax, which is still needed at times. If a class has an initializer list constructor (codice_49), then it takes priority over other forms of construction, provided that the initializer list conforms to the sequence constructor's type. The C++11 version of codice_33 has an initializer list constructor for its template type. Thus this code:


title: C++11

text: will call the initializer list constructor, not the constructor of codice_33 that takes a single size parameter and creates the vector with that size. To access the latter constructor, the user will need to use the standard constructor syntax directly.


title: C++11

text: In C++03 (and C), to use a variable, its type must be specified explicitly. However, with the advent of template types and template metaprogramming techniques, the type of something, particularly the well-defined return value of a function, may not be easily expressed. Thus, storing intermediates in variables is difficult, possibly needing knowledge of the internals of a given metaprogramming library.


title: C++11

text: C++11 allows this to be mitigated in two ways. First, the definition of a variable with an explicit initialization can use the codice_52 keyword. This creates a variable of the specific type of the initializer:


title: C++11

text: The type of codice_53 is simply whatever the particular template function override of codice_54 returns for those particular arguments. This type is easily determined procedurally by the compiler as part of its semantic analysis duties, but is not easy for the user to determine upon inspection.


title: C++11

text: The type of codice_55 is also well-defined, but it is easier for the user to determine. It is an codice_56, which is the same type as the integer literal.


title: C++11

text: This use of the keyword codice_52 in C++ re-purposes the semantics of this keyword, which was originally used in the typeless predecessor language B in a related role of denoting an untyped automatic variable definition.


title: C++11

text: Further, the keyword codice_58 can be used to determine the type of expression at compile-time. For example:


title: C++11

text: This is more useful in conjunction with codice_52, since the type of auto variable is known only to the compiler. However, codice_58 can also be very useful for expressions in code that makes heavy use of operator overloading and specialized types.


title: C++11

text: This difference grows as the programmer begins to nest containers, though in such cases codice_62s are a good way to decrease the amount of code.


title: C++11

text: C++11 extends the syntax of the codice_65 statement to allow for easy iteration over a range of elements:


title: C++11

text: This form of codice_65, called the “range-based for”, will iterate over each element in the list. It will work for C-style arrays, initializer lists, and any type that has codice_67 and codice_68 functions defined for it that return iterators. All the standard library containers that have begin/end pairs will work with the range-based for statement.


title: C++11

text: The return type (codice_69 in this example) can be omitted as long as all codice_70 expressions return the same type.


title: C++11

text: Standard C function declaration syntax was perfectly adequate for the feature set of the C language. As C++ evolved from C, it kept the basic syntax and extended it where needed. However, as C++ grew more complex, it exposed several limits, especially regarding template function declarations. For example, in C++03 this is invalid:


title: C++11

text: The type codice_71 is whatever the addition of types codice_72 and codice_73 will produce. Even with the aforementioned C++11 functionality of codice_58, this is not possible:


title: C++11

text: This is not valid C++ because codice_75 and codice_76 have not yet been defined; they will not be valid identifiers until after the parser has parsed the rest of the function prototype.


title: C++11

text: To work around this, C++11 introduced a new function declaration syntax, with a "trailing-return-type":


title: C++11

text: The use of the “auto” keyword in this case is just part of the syntax and does not perform automatic type deduction in C++11. However, starting with C++14, the trailing return type can be removed entirely and the compiler will deduce the return type automatically.


title: C++11

text: In C++03, constructors of a class are not allowed to call other constructors in an initializer list of that class. Each constructor must construct all of its class members itself or call a common member function, as follows:


title: C++11

text: Constructors for base classes cannot be directly exposed to derived classes; each derived class must implement constructors even if a base class constructor would be appropriate. Non-constant data members of classes cannot be initialized at the site of the declaration of those members. They can be initialized only in a constructor.


title: C++11

text: C++11 allows constructors to call other peer constructors (termed delegation). This allows constructors to utilize another constructor's behavior with a minimum of added code. Delegation has been used in other languages e.g., Java and Objective-C.


title: C++11

text: Notice that, in this case, the same effect could have been achieved by making codice_77 a default parameter. The new syntax, however, allows the default value (42) to be expressed in the implementation rather than the interface — a benefit to maintainers of library code since default values for function parameters are “baked in” to call sites, whereas constructor delegation allows the value to be changed without recompilation of the code using the library.


title: C++11

text: This comes with a caveat: C++03 considers an object to be constructed when its constructor finishes executing, but C++11 considers an object constructed once "any" constructor finishes execution. Since multiple constructors will be allowed to execute, this will mean that each delegating constructor will be executing on a fully constructed object of its own type. Derived class constructors will execute after all delegation in their base classes is complete.


title: C++11

text: For base-class constructors, C++11 allows a class to specify that base class constructors will be inherited. Thus, the C++11 compiler will generate code to perform the inheritance and the forwarding of the derived class to the base class. This is an all-or-nothing feature: either all of that base class's constructors are forwarded or none of them are. Also, an inherited constructor will be shadowed if it matches the signature of a constructor of the derived class, and restrictions exist for multiple inheritance: class constructors cannot be inherited from two classes that use constructors with the same signature.


title: C++11

text: Any constructor of the class will initialize codice_78 with 5, if the constructor does not override the initialization with its own. So the above empty constructor will initialize codice_78 as the class definition states, but the constructor that takes an int will initialize it to the given parameter.


title: C++11

text: It can also use constructor or uniform initialization, instead of the assignment initialization shown above.


title: C++11

text: In C++03, it is possible to accidentally create a new virtual function, when one intended to override a base class function. For example:


title: C++11

text: Suppose the codice_80 is intended to replace the base class version. But instead, because it has a different signature, it creates a second virtual function. This is a common problem, particularly when a user goes to modify the base class.


title: C++11

text: The codice_81 special identifier means that the compiler will check the base class(es) to see if there is a virtual function with this exact signature. And if there is not, the compiler will indicate an error.


title: C++11

text: C++11 also adds the ability to prevent inheriting from classes or simply preventing overriding methods in derived classes. This is done with the special identifier codice_82. For example:


title: C++11

text: In this example, the codice_83 statement declares a new virtual function, but it also prevents derived classes from overriding it. It also has the effect of preventing derived classes from using that particular function name and parameter combination.


title: C++11

text: Note that neither codice_81 nor codice_82 are language keywords. They are technically identifiers for declarator attributes:


title: C++11

text: For the purposes of this section and this section alone, every occurrence of “codice_86” is meant as “a constant expression which evaluates to codice_86, which is of type int”. In reality, the constant expression can be of any integral type.


title: C++11

text: Since the dawn of C in 1972, the constant codice_86 has had the double role of constant integer and null pointer constant. The ambiguity inherent in the double meaning of codice_86 was dealt with in C by using the preprocessor macro codice_90, which commonly expands to either codice_91 or codice_86. C++ forbids implicit conversion from codice_93 to other pointer types, thus removing the benefit of casting codice_86 to codice_93. As a consequence, only codice_86 is allowed as a null pointer constant. This interacts poorly with function overloading:


title: C++11

text: If codice_90 is defined as codice_86 (which is usually the case in C++), the statement codice_99 will call codice_100, which is almost certainly not what the programmer intended, and not what a superficial reading of the code suggests.


title: C++11

text: C++11 corrects this by introducing a new keyword to serve as a distinguished null pointer constant: codice_101. It is of type codice_102, which is implicitly convertible and comparable to any pointer type or pointer-to-member type. It is not implicitly convertible or comparable to integral types, except for codice_103. While the original proposal specified that an rvalue of type codice_102 should not be convertible to codice_103, the core language working group decided that such a conversion would be desirable, for consistency with regular pointer types. The proposed wording changes were unanimously voted into the Working Paper in June 2008. A similar proposal is also brought to the C standard working group.


title: C++11

text: In C++03, enumerations are not type-safe. They are effectively integers, even when the enumeration types are distinct. This allows the comparison between two enum values of different enumeration types. The only safety that C++03 provides is that an integer or a value of one enum type does not convert implicitly to another enum type. Further, the underlying integral type is implementation-defined; code that depends on the size of the enumeration is thus non-portable. Lastly, enumeration values are scoped to the enclosing scope. Thus, it is not possible for two separate enumerations in the same scope to have matching member names.


title: C++11

text: C++11 allows a special classification of enumeration that has none of these issues. This is expressed using the codice_107 (codice_108 is also accepted as a synonym) declaration:


title: C++11

text: This enumeration is type-safe. Enum class values are not implicitly converted to integers. Thus, they cannot be compared to integers either (the expression codice_109 gives a compile error).


title: C++11

text: The underlying type of enum classes is always known. The default type is codice_56; this can be overridden to a different integral type as can be seen in this example:


title: C++11

text: With old-style enumerations the values are placed in the outer scope. With new-style enumerations they are placed within the scope of the enum class name. So in the above example, codice_111 is undefined, but codice_112 is defined.


title: C++11

text: There is also a transitional syntax to allow old-style enumerations to provide explicit scoping, and the definition of the underlying type:


title: C++11

text: In this case the enumerator names are defined in the enumeration's scope (codice_113), but for backwards compatibility they are also placed in the enclosing scope.


title: C++11

text: Forward-declaring enums is also possible in C++11. Formerly, enum types could not be forward-declared because the size of the enumeration depends on the definition of its members. As long as the size of the enumeration is specified either implicitly or explicitly, it can be forward-declared:


title: C++11

text: enum Enum2 : unsigned short; // Invalid in C++11, because Enum2 was formerly declared with a different underlying type.


title: C++11

text: C++03's parser defines “codice_114” as the right shift operator or stream extraction operator in all cases. However, with nested template declarations, there is a tendency for the programmer to neglect to place a space between the two right angle brackets, thus causing a compiler syntax error.


title: C++11

text: C++11 improves the specification of the parser so that multiple right angle brackets will be interpreted as closing the template argument list where it is reasonable. This can be overridden by using parentheses around parameter expressions using the “codice_115”, “codice_116” or “codice_114” binary operators:


title: C++11

text: C++98 added the codice_118 keyword as a modifier on constructors to prevent single-argument constructors from being used as implicit type conversion operators. However, this does nothing for actual conversion operators. For example, a smart pointer class may have an codice_119 to allow it to act more like a primitive pointer: if it includes this conversion, it can be tested with codice_120 (which would be true if the pointer was non-null and false otherwise). However, this allows other, unintended conversions as well. Because C++ codice_103 is defined as an arithmetic type, it can be implicitly converted to integral or even floating-point types, which allows for mathematical operations that are not intended by the user.


title: C++11

text: In C++11, the codice_118 keyword can now be applied to conversion operators. As with constructors, it prevents using those conversion functions in implicit conversions. However, language contexts that specifically need a boolean value (the conditions of if-statements and loops, and operands to the logical operators) count as explicit conversions and can thus use a bool conversion operator.


title: C++11

text: In C++03, it is possible to define a typedef only as a synonym for another type, including a synonym for a template specialization with all actual template arguments specified. It is not possible to create a typedef template. For example:


title: C++11

text: In C++03, there are restrictions on what types of objects can be members of a codice_124. For example, unions cannot contain any objects that define a non-trivial constructor or destructor. C++11 lifts some of these restrictions.


title: C++11

text: If a codice_124 member has a non trivial special member function, the compiler will not generate the equivalent member function for the codice_124 and it must be manually defined.


title: C++11

text: These features allow the language to do things that were formerly impossible, exceedingly verbose, or needed non-portable libraries.


title: C++11

text: In C++11, templates can take variable numbers of template parameters. This also allows the definition of type-safe variadic functions.


title: C++11

text: C++03 offers two kinds of string literals. The first kind, contained within double quotes, produces a null-terminated array of type codice_127. The second kind, defined as codice_128, produces a null-terminated array of type codice_129, where codice_130 is a wide-character of undefined size and semantics. Neither literal type offers support for string literals with UTF-8, UTF-16, or any other kind of Unicode encodings.


title: C++11

text: C++11 supports three Unicode encodings: UTF-8, UTF-16, and UTF-32. The definition of the type codice_131 has been modified to explicitly express that it is at least the size needed to store an eight-bit coding of UTF-8, and large enough to contain any member of the compiler's basic execution character set. It was formerly defined as only the latter in the C++ standard itself, then relying on the C standard to guarantee at least 8 bits. Furthermore, C++11 adds two new character types: codice_132 and codice_133. These are designed to store UTF-16 and UTF-32 respectively.


title: C++11

text: The type of the first string is the usual codice_134. The type of the second string is codice_135 (note lower case 'u' prefix). The type of the third string is codice_136 (upper case 'U' prefix).


title: C++11

text: When building Unicode string literals, it is often useful to insert Unicode code points directly into the string. To do this, C++11 allows this syntax:


title: C++11

text: The number after the codice_137 is a hexadecimal number; it does not need the usual codice_138 prefix. The identifier codice_137 represents a 16-bit Unicode code point; to enter a 32-bit code point, use codice_140 and a 32-bit hexadecimal number. Only valid Unicode code points can be entered. For example, code points on the range U+D800–U+DFFF are forbidden, as they are reserved for surrogate pairs in UTF-16 encodings.


title: C++11

text: It is also sometimes useful to avoid escaping strings manually, particularly for using literals of XML files, scripting languages, or regular expressions. C++11 provides a raw string literal:


title: C++11

text: In the first case, everything between the codice_141 and the codice_142 is part of the string. The codice_143 and codice_144 characters do not need to be escaped. In the second case, the codice_145 starts the string, and it ends only when codice_146 is reached. The string codice_147 can be any string up to 16 characters in length, including the empty string. This string cannot contain spaces, control characters, codice_148, codice_149, or the codice_144 character. Using this delimiter string, the user can have codice_149 characters within raw string literals. For example, codice_152 is equivalent to codice_153.


title: C++11

text: C++03 provides a number of literals. The characters codice_154 are a literal that is resolved by the compiler as a type codice_155 with the value of 12.5. However, the addition of the suffix codice_156, as in codice_157, creates a value of type codice_158 that contains the value 12.5. The suffix modifiers for literals are fixed by the C++ specification, and C++03 code cannot create new literal modifiers.


title: C++11

text: By contrast, C++11 enables the user to define new kinds of literal modifiers that will construct objects based on the string of characters that the literal modifies.


title: C++11

text: Transformation of literals is redefined into two distinct phases: raw and cooked. A raw literal is a sequence of characters of some specific type, while the cooked literal is of a separate type. The C++ literal codice_159, as a raw literal, is this sequence of characters codice_160, codice_161, codice_162, codice_163. As a cooked literal, it is the integer 1234. The C++ literal codice_164 in raw form is codice_165, codice_166, codice_167, while in cooked form it is the integer 10.


title: C++11

text: Literals can be extended in both raw and cooked forms, with the exception of string literals, which can be processed only in cooked form. This exception is due to the fact that strings have prefixes that affect the specific meaning and type of the characters in question.


title: C++11

text: All user-defined literals are suffixes; defining prefix literals is not possible. All suffixes starting with any character except underscore (codice_168) are reserved by the standard. Thus, all user-defined literals must have suffixes starting with an underscore (codice_168).


title: C++11

text: User-defined literals processing the raw form of the literal are defined via a literal operator, which is written as codice_170. An example follows:


title: C++11

text: The assignment statement codice_171 executes the code defined by the user-defined literal function. This function is passed codice_172 as a C-style string, so it has a null terminator.


title: C++11

text: An alternative mechanism for processing integer and floating point raw literals is via a variadic template:


title: C++11

text: This instantiates the literal processing function as codice_173. In this form, there is no null character terminating the string. The main purpose for doing this is to use C++11's codice_17 keyword to ensure that the compiler will transform the literal entirely at compile time, assuming codice_175 is a constexpr-constructible and copyable type, and the literal processing function is a codice_17 function.


title: C++11

text: For numeric literals, the type of the cooked literal is either codice_177 for integral literals or codice_178 for floating point literals. (Note: There is no need for signed integral types because a sign-prefixed literal is parsed as an expression containing the sign as a unary prefix operator and the unsigned number.) There is no alternative template form:


title: C++11

text: There are two parts involved: a memory model which allows multiple threads to co-exist in a program and library support for interaction between threads. (See this article's section on threading facilities.)


title: C++11

text: The memory model defines when multiple threads may access the same memory location, and specifies when updates by one thread become visible to other threads.


title: C++11

text: In a multi-threaded environment, it is common for every thread to have some unique variables. This already happens for the local variables of a function, but it does not happen for global and static variables.


title: C++11

text: A new "thread-local" storage duration (in addition to the existing "static", "dynamic" and "automatic") is indicated by the storage specifier codice_179.


title: C++11

text: Any object which could have static storage duration (i.e., lifetime spanning the entire execution of the program) may be given thread-local duration instead. The intent is that like any other static-duration variable, a thread-local object can be initialized using a constructor and destroyed using a destructor.


title: C++11

text: In C++03, the compiler provides, for classes that do not provide them for themselves, a default constructor, a copy constructor, a copy assignment operator (codice_180), and a destructor. The programmer can override these defaults by defining custom versions. C++ also defines several global operators (such as codice_181) that work on all classes, which the programmer can override.


title: C++11

text: However, there is very little control over creating these defaults. Making a class inherently non-copyable, for example, may be done by declaring a private copy constructor and copy assignment operator and not defining them. Attempting to use these functions is a violation of the One Definition Rule (ODR). While a diagnostic message is not required,<ref name="C++03 3.2/3">ISO/IEC (2003). "ISO/IEC 14882:2003(E): Programming Languages – C++ §3.2 One definition rule [basic.def.odr]" para. 3</ref> violations may result in a linker error.


title: C++11

text: In the case of the default constructor, the compiler will not generate a default constructor if a class is defined with "any" constructors. This is useful in many cases, but it is also useful to be able to have both specialized constructors and the compiler-generated default.


title: C++11

text: C++11 allows the explicit defaulting and deleting of these special member functions. For example, this class explicitly declares that a default constructor can be used:


title: C++11

text: The codice_182 specifier can be used to prohibit calling a function with particular parameter types. For example:


title: C++11

text: An attempt to call codice_183 with an codice_56 parameter will be rejected by the compiler, instead of performing a silent conversion to codice_155. Calling codice_183 with a codice_158 still works.


title: C++11

text: It is possible to prohibit calling the function with any type other than codice_155 by using a template:


title: C++11

text: Class member functions and constructors can also be deleted. For example, it is possible to prevent copying class objects by deleting the copy constructor and codice_191:


title: C++11

text: In C++03, the largest integer type is codice_193. It is guaranteed to have at least as many usable bits as codice_56. This resulted in codice_193 having size of 64 bits on some popular implementations and 32 bits on others. C++11 adds a new integer type codice_192 to address this issue. It is guaranteed to be at least as large as a codice_193, and have no fewer than 64 bits. The type was originally introduced by C99 to the standard C, and most C++ compilers supported it as an extension already.


title: C++11

text: C++03 provides two methods to test assertions: the macro codice_198 and the preprocessor directive codice_199. However, neither is appropriate for use in templates: the macro tests the assertion at execution-time, while the preprocessor directive tests the assertion during preprocessing, which happens before instantiation of templates. Neither is appropriate for testing properties that are dependent on template parameters.


title: C++11

text: The new utility introduces a new way to test assertions at compile-time, using the new keyword codice_200.


title: C++11

text: When the constant expression is codice_202 the compiler produces an error message. The first example is similar to the preprocessor directive codice_199, although the preprocessor does only support integral types. In contrast, in the second example the assertion is checked at every instantiation of the template class codice_204.


title: C++11

text: Static assertions are useful outside of templates also. For instance, a given implementation of an algorithm might depend on the size of a codice_205 being larger than an codice_56, something the standard does not guarantee. Such an assumption is valid on most systems and compilers, but not all.


title: C++11

text: In C++03, the codice_207 operator can be used on types and objects. But it cannot be used to do this:


title: C++11

text: This should return the size of codice_209. C++03 disallows this, so it is a compile error. C++11 allows it. It is also allowed for the codice_210 operator introduced in C++11.


title: C++11

text: The codice_210 operator takes the type and returns the power of 2 byte boundary on which the type instances must be allocated (as a codice_214). When given a reference type codice_210 returns the referenced type's alignment; for arrays it returns the element type's alignment.


title: C++11

text: The codice_212 specifier controls the memory alignment for a variable. The specifier takes a constant or a type; when supplied a type codice_217 is shorthand for codice_218. For example, to specify that a char array should be properly aligned to hold a float:


title: C++11

text: Prior C++ standards provided for programmer-driven garbage collection via codice_219, but gave no definition of object reachability for the purpose of automatic garbage collection. C++11 defines conditions under which pointer values are "safely derived" from other values. An implementation may specify that it operates under "strict pointer safety", in which case pointers that are not derived according to these rules can become invalid.


title: C++11

text: C++11 provides a standardized syntax for compiler/tool extensions to the language. Such extensions were traditionally specified using codice_220 directive or vendor-specific keywords (like codice_221 for GNU and codice_222 for Microsoft). With the new syntax, added information can be specified in a form of an attribute enclosed in double square brackets. An attribute can be applied to various elements of source code:


title: C++11

text: In the example above, attribute codice_223 applies to the type of variable codice_224, codice_225 and codice_226 apply to the variable itself, codice_227 applies to the codice_228 statement and codice_229 applies to the return statement. In general (but with some exceptions), an attribute specified for a named entity is placed after the name, and before the entity otherwise, as shown above, several attributes may be listed inside one pair of double square brackets, added arguments may be provided for an attribute, and attributes may be scoped by vendor-specific attribute namespaces.


title: C++11

text: It is recommended that attributes have no language semantic meaning and do not change the sense of a program when ignored. Attributes can be useful for providing information that, for example, helps the compiler to issue better diagnostics or optimize the generated code.


title: C++11

text: C++11 provides two standard attributes itself: codice_230 to specify that a function does not return, and codice_231 to help optimizing multi-threaded code by indicating that function arguments or return value carry a dependency.


title: C++11

text: A number of new features were introduced in the C++11 standard library. Many of these could have been implemented under the old standard, but some rely (to a greater or lesser extent) on new C++11 core features.


title: C++11

text: A large part of the new libraries was defined in the document "C++ Standards Committee's Library Technical Report" (called TR1), which was published in 2005. Various full and partial implementations of TR1 are currently available using the namespace codice_232. For C++11 they were moved to namespace codice_233. However, as TR1 features were brought into the C++11 standard library, they were upgraded where appropriate with C++11 language features that were not available in the initial TR1 version. Also, they may have been enhanced with features that were possible under C++03, but were not part of the original TR1 specification.


title: C++11

text: C++11 offers a number of new language features that the currently existing standard library components can benefit from. For example, most standard library containers can benefit from Rvalue reference based move constructor support, both for quickly moving heavy containers around and for moving the contents of those containers to new memory locations. The standard library components were upgraded with new C++11 language features where appropriate. These include, but are not necessarily limited to:


title: C++11

text: Further, much time has passed since the prior C++ standard. Much code using the standard library has been written. This has revealed parts of the standard libraries that could use some improving. Among the many areas of improvement considered were standard library allocators. A new scope-based model of allocators was included in C++11 to supplement the prior model.


title: C++11

text: While the C++03 language provides a memory model that supports threading, the primary support for actually using threading comes with the C++11 standard library.


title: C++11

text: A thread class (codice_236) is provided, which takes a function object (and an optional series of arguments to pass to it) to run in the new thread. It is possible to cause a thread to halt until another executing thread completes, providing thread joining support via the codice_237 member function. Access is provided, where feasible, to the underlying native thread object(s) for platform-specific operations by the codice_238 member function.


title: C++11

text: For synchronization between threads, appropriate mutexes (codice_239, codice_240, etc.) and condition variables (codice_241 and codice_242) are added to the library. These are accessible via Resource Acquisition Is Initialization (RAII) locks (codice_243 and codice_244) and locking algorithms for easy use.


title: C++11

text: For high-performance, low-level work, communicating between threads is sometimes needed without the overhead of mutexes. This is done using atomic operations on memory locations. These can optionally specify the minimum memory visibility constraints needed for an operation. Explicit memory barriers may also be used for this purpose.


title: C++11

text: The C++11 thread library also includes futures and promises for passing asynchronous results between threads, and codice_245 for wrapping up a function call that can generate such an asynchronous result. The futures proposal was criticized because it lacks a way to combine futures and check for the completion of one promise inside a set of promises.


title: C++11

text: Further high-level threading facilities such as thread pools have been remanded to a future C++ technical report. They are not part of C++11, but their eventual implementation is expected to be built entirely on top of the thread library features.


title: C++11

text: The new codice_246 facility provides a convenient method of running tasks and tying them to a codice_247. The user can choose whether the task is to be run asynchronously on a separate thread or synchronously on a thread that waits for the value. By default, the implementation can choose, which provides an easy way to take advantage of hardware concurrency without oversubscription, and provides some of the advantages of a thread pool for simple usages.


title: C++11

text: Tuples are collections composed of heterogeneous objects of pre-arranged dimensions. A tuple can be considered a generalization of a struct's member variables.


title: C++11

text: The C++11 version of the TR1 tuple type benefited from C++11 features like variadic templates. To implement reasonably, the TR1 version required an implementation-defined maximum number of contained types, and substantial macro trickery. By contrast, the implementation of the C++11 version requires no explicit implementation-defined maximum number of types. Though compilers will have an internal maximum recursion depth for template instantiation (which is normal), the C++11 version of tuples will not expose this value to the user.


title: C++11

text: It's possible to create the tuple codice_248 without defining its contents, but only if the tuple elements' types possess default constructors. Moreover, it's possible to assign a tuple to another tuple: if the two tuples’ types are the same, each element type must possess a copy constructor; otherwise, each element type of the right-side tuple must be convertible to that of the corresponding element type of the left-side tuple or that the corresponding element type of the left-side tuple has a suitable constructor.


title: C++11

text: Just like codice_249 for codice_250, there exists codice_251 to automatically create codice_252s using type deduction and codice_52 helps to declare such a tuple. codice_254 creates tuples of lvalue references to help unpack tuples. codice_255 also helps here. See the example:


title: C++11

text: Relational operators are available (among tuples with the same number of elements), and two expressions are available to check a tuple's characteristics (only during compilation):


title: C++11

text: Including hash tables (unordered associative containers) in the C++ standard library is one of the most recurring requests. It was not adopted in C++03 due to time constraints only. Although hash tables are less efficient than a balanced tree in the worst case (in the presence of many collisions), they perform better in many real applications.


title: C++11

text: Collisions are managed only via "linear chaining" because the committee didn't consider it to be opportune to standardize solutions of "open addressing" that introduce quite a lot of intrinsic problems (above all when erasure of elements is admitted). To avoid name clashes with non-standard libraries that developed their own hash table implementations, the prefix “unordered” was used instead of “hash”.


title: C++11

text: The new library has four types of hash tables, differentiated by whether or not they accept elements with the same key (unique keys or equivalent keys), and whether they map each key to an associated value. They correspond to the four existing binary search tree based associative containers, with an prefix.


title: C++11

text: The new classes fulfill all the requirements of a container class, and have all the methods needed to access elements: codice_261, codice_262, codice_263, codice_264.


title: C++11

text: This new feature didn't need any C++ language core extensions (though implementations will take advantage of various C++11 language features), only a small extension of the header codice_265 and the introduction of headers codice_266 and codice_267. No other changes to any existing standard classes were needed, and it doesn't depend on any other extensions of the standard library.


title: C++11

text: The function codice_271 is used for searching, while for ‘search and replace’ the function codice_272 is used which returns a new string.


title: C++11

text: The library codice_268 requires neither alteration of any existing header (though it will use them where appropriate) nor an extension of the core language. In POSIX C, regular expressions are also available via the C POSIX library#regex.h.


title: C++11

text: The C standard library provides the ability to generate pseudorandom numbers via the function codice_275. However, the algorithm is delegated entirely to the library vendor. C++ inherited this functionality with no changes, but C++11 provides a new method for generating pseudorandom numbers.


title: C++11

text: C++11's random number functionality is split into two parts: a generator engine that contains the random number generator's state and produces the pseudorandom numbers; and a distribution, which determines the range and mathematical distribution of the outcome. These two are combined to form a random number generator object.


title: C++11

text: Unlike the C standard codice_275, the C++11 mechanism will come with three base generator engine algorithms:


title: C++11

text: int random2 = distribution(engine); // Generate another sample directly using the distribution and the engine objects.


title: C++11

text: A wrapper reference is obtained from an instance of the template class codice_300. Wrapper references are similar to normal references (‘codice_301’) of the C++ language. To obtain a wrapper reference from any object the function template codice_302 is used (for a constant reference codice_303 is used).


title: C++11

text: Wrapper references are useful above all for function templates, where references to parameters rather than copies are needed:


title: C++11

text: This new utility was added to the existing codice_304 header and didn't need further extensions of the C++ language.


title: C++11

text: Polymorphic wrappers for function objects are similar to function pointers in semantics and syntax, but are less tightly bound and can indiscriminately refer to anything which can be called (function pointers, member function pointers, or functors) whose arguments are compatible with those of the wrapper.


title: C++11

text: The template class codice_305 was defined inside the header codice_265, without needing any change to the C++ language.


title: C++11

text: Metaprogramming consists of creating a program that creates or modifies another program (or itself). This can happen during compilation or during execution. The C++ Standards Committee has decided to introduce a library for metaprogramming during compiling via templates.


title: C++11

text: Here is an example of a meta-program using the C++03 standard: a recursion of template instances for calculating integer exponents:


title: C++11

text: Many algorithms can operate on different types of data; C++'s templates support generic programming and make code more compact and useful. Nevertheless, it is common for algorithms to need information on the data types being used. This information can be extracted during instantiation of a template class using "type traits".


title: C++11

text: "Type traits" can identify the category of an object and all the characteristics of a class (or of a struct). They are defined in the new header codice_307.


title: C++11

text: In the next example there is the template function ‘elaborate’ which, depending on the given data types, will instantiate one of the two proposed algorithms (codice_308).


title: C++11

text: Via "type traits", defined in header codice_307, it's also possible to create type transformation operations (codice_310 and codice_311 are insufficient inside a template).


title: C++11

text: This type of programming produces elegant and concise code; however, the weak point of these techniques is the debugging: it's uncomfortable during compilation and very difficult during program execution.


title: C++11

text: Determining the return type of a template function object at compile-time is not intuitive, particularly if the return value depends on the parameters of the function. As an example:


title: C++11

text: Instantiating the class template codice_312, the function object of codice_313 will have always the same return type as the function object of codice_314. However, given class codice_315 below:


title: C++11

text: Attempting to instantiate codice_316 will cause the return type of codice_317 to not be the same as that of class codice_315. The compiler may generate warnings about the conversion from codice_56 to codice_155 and vice versa.


title: C++11

text: TR1 introduces, and C++11 adopts, the template class codice_321 that allows one to determine and use the return type of a function object for every declaration. The object codice_322 uses the codice_321 object to derive the return type of the function object:


title: C++11

text: In this way in instances of function object of codice_324 there are no conversions, warnings, or errors.


title: C++11

text: The only change from the TR1 version of codice_321 is that the TR1 version allowed an implementation to fail to be able to determine the result type of a function call. Due to changes to C++ for supporting codice_58, the C++11 version of codice_321 no longer needs these special cases; implementations are required to compute a type in all cases.


title: C++11

text: The term sequence point was removed, being replaced by specifying that either one operation is sequenced before another, or that two operations are unsequenced.


title: C++11

text: The former use of the keyword codice_338 was removed. The keyword itself remains, being reserved for potential future use.


title: C++11

text: Dynamic exception specifications are deprecated. Compile-time specification of non-exception-throwing functions is available with the codice_339 keyword, which is useful for optimization.


title: C++11

text: Function object base classes (codice_342, codice_343), adapters to pointers to functions and adapters to pointers to members, and binder classes are all deprecated.


title: Personal pronoun

text: Personal pronouns are pronouns that are associated primarily with a particular grammatical person – first person (as "I"), second person (as "you"), or third person (as "he", "she", "it", "they"). Personal pronouns may also take different forms depending on number (usually singular or plural), grammatical or natural gender, case, and formality. The term "personal" is used here purely to signify the grammatical sense; personal pronouns are not limited to people and can also refer to animals and objects (as the English personal pronoun "it" usually does).


title: Personal pronoun

text: The re-use in some languages of one personal pronoun to indicate a second personal pronoun with formality or social distance – commonly a second person plural to signify second person singular formal – is known as the T–V distinction, from the Latin pronouns and . Examples are the majestic plural in English and the use of in place of in French.


title: Personal pronoun

text: For specific details of the personal pronouns used in the English language, see English personal pronouns.


title: Personal pronoun

text: Pronoun is a category of words. A pro-form is a type of function word or expression that stands in for (expresses the same content as) another word, phrase, clause or sentence where the meaning is recoverable from the context. Pronouns mostly function as pro-forms, but there are pronouns that are not pro-forms and pro-forms that are not pronouns.


title: Personal pronoun

text: In [1], the pronoun "it" "stands in" for whatever was mentioned and is a good idea. In [2], the pronoun "it" doesn't stand in for anything. No other word can function there with the same meaning; we don't say "the sky is raining" or "the weather is raining". So, "it" is a pronoun but not a pro-form. Finally, in [3], "did so" is a verb phrase, not a pronoun, but it is a pro-form standing for "help".


title: Personal pronoun

text: As noted above, within each person there are often different forms for different grammatical numbers, especially singular and plural. Languages which have other numbers, such as dual (e.g. Slovene), may also have distinct pronouns for these.


title: Personal pronoun

text: Some languages distinguish between "inclusive" and "exclusive" first-person plural pronouns – those that do and do not include their audience. For example, Tok Pisin has seven first-person pronouns according to number (singular, dual, trial, plural) and clusivity, such as "mitripela" ("they two and I") and "yumitripela" ("you two and I").


title: Personal pronoun

text: Some languages do not have third-person personal pronouns, instead using demonstratives (e.g. Macedonian) or full noun phrases. Latin used demonstratives rather than third-person pronouns (in fact the third-person pronouns in the Romance languages are descended from the Latin demonstratives).


title: Personal pronoun

text: In some cases personal pronouns can be used in place of indefinite pronouns, referring to someone unspecified or to people generally. In English and other languages the second-person pronoun can be used in this way: instead of the formal "one should hold one's oar in both hands" (using the indefinite pronoun "one"), it is more common to say "you should hold your oar in both hands".


title: Personal pronoun

text: Personal pronouns, particularly those of the third person, may differ depending on the grammatical gender or natural gender of their antecedent or referent. This occurs in English with the third-person singular pronouns, where (simply put) "he" is used when referring to a man, "she" to a woman, singular "they" to a person whose gender is unknown or unspecified at the time that the pronoun is being used, and "it" to something inanimate or an animal of unspecific sex. This is an example of pronoun selection based on natural gender; many languages also have selection based on grammatical gender (as in French, where the pronouns "il" and "elle" are used with masculine and feminine antecedents respectively, as are the plurals "ils" and "elles"). Sometimes natural and grammatical gender do not coincide, as with the German noun "Mädchen" ("girl"), which is grammatically neuter but naturally feminine. (See for more details.)


title: Personal pronoun

text: Issues may arise when the referent is someone of unspecified or unknown gender. In a language such as English, it is derogatory to use the inanimate pronoun "it" to refer to a person (except in some cases to a small child), and although it is traditional to use the masculine "he" to refer to a person of unspecified gender, the movement towards gender-neutral language requires that another method be found, such as saying "he or she". A common solution, particularly in informal language, is to use singular "they". For more details see Gender in English.


title: Personal pronoun

text: Similar issues arise in some languages when referring to a group of mixed gender; these are dealt with according to the conventions of the language in question (in French, for example, the masculine "ils" "they" is used for a group containing both men and women or antecedents of both masculine and feminine gender).


title: Personal pronoun

text: A pronoun can still carry gender even if it does not inflect for it; for example, in the French sentence "je suis petit" ("I am small") the speaker is male and so the pronoun "je" is masculine, whereas in "je suis petite" the speaker is female and the pronoun is treated as feminine, the feminine ending "-e" consequently being added to the predicate adjective.


title: Personal pronoun

text: Some of these languages started to distinguish gender in the third person pronoun due to influence from European languages.


title: Personal pronoun

text: Mandarin, for example, introduced, in the early 20th century a different character for "she" (她), which is pronounced identically as "he" (他) and thus is still indistinguishable in speech (tā).


title: Personal pronoun

text: Korean "geunyeo" (그녀) is found in writing to translate "she" from European languages. In the spoken language it still sounds awkward and rather unnatural, as it literally translates to "that female".


title: Personal pronoun

text: Many languages have different pronouns, particularly in the second person, depending on the degree of formality or familiarity. It is common for different pronouns to be used when addressing friends, family, children and animals than when addressing superiors and adults with whom the speaker is less familiar. Examples of such languages include French, where the singular "tu" is used only for familiars, the plural "vous" being used as a singular in other cases (Russian follows a similar pattern); German, where the third-person plural "sie" (capitalized as "Sie") is used as both singular and plural in the second person in non-familiar uses; and Polish, where the noun "pan" ("gentleman") and its feminine and plural equivalents are used as polite second-person pronouns. For more details, see T–V distinction.


title: Personal pronoun

text: Some languages, such as Japanese, Korean and many Southeast Asian languages like Vietnamese, Thai, and Indonesian, have pronouns that reflect deep-seated societal categories. In these languages there is generally a small set of nouns that refer to the discourse participants, but these referential nouns are not usually used (pronoun avoidance), with proper nouns, deictics, and titles being used instead (and once the topic is understood, usually no explicit reference is made at all). A speaker chooses which word to use depending on the rank, job, age, gender, etc. of the speaker and the addressee. For instance, in Japanese, in formal situations, adults usually refer to themselves as "watashi" or the even more polite "watakushi", while young men may use the student-like "boku" and police officers may use "honkan" ("this officer"). In informal situations, women may use the colloquial "atashi", and men may use the rougher "ore".


title: Personal pronoun

text: Pronouns also often take different forms based on their syntactic function, and in particular on their grammatical case. English distinguishes the nominative form ("I", "you", "he", "she", "it", "we", "they"), used principally as the subject of a verb, from the oblique form ("me", "you", "him", "her", "it", "us", "them"), used principally as the object of a verb or preposition. Languages whose nouns inflect for case often inflect their pronouns according to the same case system; for example, German personal pronouns have distinct nominative, genitive, dative and accusative forms ("ich", "meiner", "mir", "mich"; etc.). Pronouns often retain more case distinctions than nouns – this is true of both German and English, and also of the Romance languages, which (with the exception of Romanian) have lost the Latin grammatical case for nouns, but preserve certain distinctions in the personal pronouns.