Patchwork [c++-concepts] Enable C++11 and concepts by default

login
register
mail settings
Submitter Gabriel Dos Reis
Date March 1, 2013, 2:51 p.m.
Message ID <87sj4fcgwq.fsf@euclid.axiomatics.org>
Download mbox | patch
Permalink /patch/224382/
State New
Headers show

Comments

Gabriel Dos Reis - March 1, 2013, 2:51 p.m.
This patch enables C++11 and concepts support by default on the
c++-concepts branch.

-- Gaby

2013-03-01  Gabriel Dos Reis  <gdr@integrable-solutions.net>

	* gcc/c-family/c-common.c (cxx_dialect): Set C++11 as default.
	* gcc/c-family/c.opt(flag_concepts): Add.
	* gcc/cp/lex.c (flag_concepts): New.  Enabled concept support by
	default.

Patch

Index: gcc/c-family/c-common.c
===================================================================
--- gcc/c-family/c-common.c	(revision 196383)
+++ gcc/c-family/c-common.c	(working copy)
@@ -238,9 +238,9 @@ 
 
 int flag_use_repository;
 
-/* The C++ dialect being used. C++98 is the default.  */
+/* The C++ dialect being used. C++11 is the default.  */
 
-enum cxx_dialect cxx_dialect = cxx98;
+enum cxx_dialect cxx_dialect = cxx11;
 
 /* Maximum template instantiation depth.  This limit exists to limit the
    time it takes to notice excessively recursive template instantiations.
Index: gcc/c-family/c.opt
===================================================================
--- gcc/c-family/c.opt	(revision 196383)
+++ gcc/c-family/c.opt	(working copy)
@@ -21,6 +21,10 @@ 
 
 ; Please try to keep this file in ASCII collating order.
 
+; Activate C++ concepts support.
+Variable
+bool flag_concepts
+
 Language
 C
 
@@ -843,6 +847,10 @@ 
 C ObjC C++ ObjC++
 Where shorter, use canonicalized paths to systems headers.
 
+fconcepts
+C++ ObjC++ Var(flag_concepts, true)
+Activate support for C++ concepts
+
 fcheck-new
 C++ ObjC++ Var(flag_check_new)
 Check the return value of new
Index: gcc/cp/lex.c
===================================================================
--- gcc/cp/lex.c	(revision 196383)
+++ gcc/cp/lex.c	(working copy)
@@ -51,6 +51,9 @@ 
 /* A constraint that can be tested at compile time.  */
 #define CONSTRAINT(name, expr) extern int constraint_##name [(expr) ? 1 : -1]
 
+/* True if C++ concepts are enabled. */
+bool flag_concepts = true;
+
 /* Functions and data structures for #pragma interface.
 
    `#pragma implementation' means that the main file being compiled