@@ -91,9 +91,9 @@ guidance below to help you know what to expect.
91
91
92
92
Each toolchain provides a good reference for what it accepts:
93
93
94
- * Clang: http ://clang.llvm.org/cxx_status.html
95
- * GCC: http ://gcc.gnu.org/projects/cxx0x .html
96
- * MSVC: http ://msdn.microsoft.com/en-us/library/hh567368.aspx
94
+ * Clang: https ://clang.llvm.org/cxx_status.html
95
+ * GCC: https ://gcc.gnu.org/projects/cxx-status .html#cxx11
96
+ * MSVC: https ://msdn.microsoft.com/en-us/library/hh567368.aspx
97
97
98
98
In most cases, the MSVC list will be the dominating factor. Here is a summary
99
99
of the features that are expected to work. Features not on this list are
@@ -184,7 +184,7 @@ you hit a type trait which doesn't work we can then add support to LLVM's
184
184
traits header to emulate it.
185
185
186
186
.. _the libstdc++ manual :
187
- http ://gcc.gnu.org/onlinedocs/gcc-4.8.0/libstdc++/manual/manual/status.html#status.iso.2011
187
+ https ://gcc.gnu.org/onlinedocs/gcc-4.8.0/libstdc++/manual/manual/status.html#status.iso.2011
188
188
189
189
Other Languages
190
190
---------------
@@ -591,7 +591,7 @@ understood for formatting nested function calls. Examples:
591
591
This formatting scheme also makes it particularly easy to get predictable,
592
592
consistent, and automatic formatting with tools like `Clang Format `_.
593
593
594
- .. _Clang Format : http ://clang.llvm.org/docs/ClangFormat.html
594
+ .. _Clang Format : https ://clang.llvm.org/docs/ClangFormat.html
595
595
596
596
Language and Compiler Issues
597
597
----------------------------
@@ -667,14 +667,14 @@ Do not use Static Constructors
667
667
Static constructors and destructors (e.g. global variables whose types have a
668
668
constructor or destructor) should not be added to the code base, and should be
669
669
removed wherever possible. Besides `well known problems
670
- <http ://yosefk.com/c++fqa/ctors.html#fqa-10.12> `_ where the order of
670
+ <https ://yosefk.com/c++fqa/ctors.html#fqa-10.12> `_ where the order of
671
671
initialization is undefined between globals in different source files, the
672
672
entire concept of static constructors is at odds with the common use case of
673
673
LLVM as a library linked into a larger application.
674
674
675
675
Consider the use of LLVM as a JIT linked into another application (perhaps for
676
- `OpenGL, custom languages <http ://llvm.org/Users.html >`_, `shaders in movies
677
- <http ://llvm.org/devmtg/2010-11/Gritz-OpenShadingLang.pdf> `_, etc). Due to the
676
+ `OpenGL, custom languages <https ://llvm.org/Users.html >`_, `shaders in movies
677
+ <https ://llvm.org/devmtg/2010-11/Gritz-OpenShadingLang.pdf> `_, etc). Due to the
678
678
design of static constructors, they must be executed at startup time of the
679
679
entire application, regardless of whether or how LLVM is used in that larger
680
680
application. There are two problems with this:
@@ -692,7 +692,7 @@ target or other library into an application, but static constructors violate
692
692
this goal.
693
693
694
694
That said, LLVM unfortunately does contain static constructors. It would be a
695
- `great project <http ://llvm.org/PR11944 >`_ for someone to purge all static
695
+ `great project <https ://llvm.org/PR11944 >`_ for someone to purge all static
696
696
constructors from LLVM, and then enable the ``-Wglobal-constructors `` warning
697
697
flag (when building with Clang) to ensure we do not regress in the future.
698
698
@@ -1697,12 +1697,12 @@ A lot of these comments and recommendations have been culled from other sources.
1697
1697
Two particularly important books for our work are:
1698
1698
1699
1699
#. `Effective C++
1700
- <http ://www.amazon.com/Effective-Specific-Addison-Wesley-Professional-Computing/dp/0321334876> `_
1700
+ <https ://www.amazon.com/Effective-Specific-Addison-Wesley-Professional-Computing/dp/0321334876> `_
1701
1701
by Scott Meyers. Also interesting and useful are "More Effective C++" and
1702
1702
"Effective STL" by the same author.
1703
1703
1704
1704
#. `Large-Scale C++ Software Design
1705
- <http ://www.amazon.com/Large-Scale-Software-Design-John-Lakos/dp/0201633620/ref=sr_1_1 > `_
1705
+ <https ://www.amazon.com/Large-Scale-Software-Design-John-Lakos/dp/0201633620> `_
1706
1706
by John Lakos
1707
1707
1708
1708
If you get some free time, and you haven't read them: do so, you might learn
0 commit comments