summaryrefslogtreecommitdiff
path: root/libs
diff options
context:
space:
mode:
Diffstat (limited to 'libs')
m---------libs/array0
-rw-r--r--libs/compiler_status.htm57
m---------libs/compose0
m---------libs/config0
m---------libs/conversion0
-rw-r--r--libs/cs-linux2.html99
-rw-r--r--libs/cs-win32.html150
m---------libs/functional0
m---------libs/integer0
m---------libs/iterator0
m---------libs/random0
m---------libs/rational0
-rw-r--r--libs/regrtest.py212
m---------libs/smart_ptr0
m---------libs/timer0
m---------libs/type_traits0
m---------libs/utility0
17 files changed, 518 insertions, 0 deletions
diff --git a/libs/array b/libs/array
new file mode 160000
+Subproject 2a876cf76e77735d28fdd6ad29227f8ea632a7c
diff --git a/libs/compiler_status.htm b/libs/compiler_status.htm
new file mode 100644
index 0000000000..744ae72ca2
--- /dev/null
+++ b/libs/compiler_status.htm
@@ -0,0 +1,57 @@
+<html>
+
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
+<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
+<meta name="ProgId" content="FrontPage.Editor.Document">
+<title>Compiler Status Report</title>
+</head>
+
+<body bgcolor="#FFFFFF" text="#000000">
+
+<table border="1" bgcolor="#007F7F" cellpadding="2">
+ <tr>
+ <td bgcolor="#FFFFFF"><img src="../c++boost.gif" alt="c++boost.gif (8819 bytes)" width="277" height="86"></td>
+ <td><a href="../index.htm"><font face="Arial" color="#FFFFFF"><big>Home</big></font></a></td>
+ <td><a href="../libraries.htm"><font face="Arial" color="#FFFFFF"><big>Libraries</big></font></a></td>
+ <td><a href="../people.htm"><font face="Arial" color="#FFFFFF"><big>People</big></font></a></td>
+ <td><a href="../more/faq.htm"><font face="Arial" color="#FFFFFF"><big>FAQ</big></font></a></td>
+ <td><a href="../more/index.htm"><font face="Arial" color="#FFFFFF"><big>More</big></font></a></td>
+ </tr>
+</table>
+<h1>Compiler Status</h1>
+<p>Will all boost libraries work with your compiler?&nbsp; Unfortunately, the
+answer is &quot;it depends.&quot;.</p>
+<p>Boost libraries rely on modern C++ features such as templates and the C++
+Standard Library.&nbsp; But even today, years after the adoption of the C++
+Standard, some compilers still don't support important features like partial
+template specialization.</p>
+<p>Boost library authors often expend a great deal of effort trying to work
+around compiler deficiencies.&nbsp; Nevertheless, some libraries will not
+compile at all with certain compilers or may have crippled functionality.&nbsp;
+Even if the current release of a compiler supports a boost library, older
+version of the compiler may not work properly.</p>
+<h2>Compiler Status Tables</h2>
+<ul>
+ <li><a href="cs-linux2.html">Linux/x86</a> Contributed by Jens Maurer</li>
+ <li><a href="cs-win32.html">Windows NT / Windows 2000</a> Contributed by Beman
+ Dawes</li>
+</ul>
+<p>Boost releases are run through a regression test which automatically
+generates the above tables. Unless otherwise indicated, the C++ Standard Library
+implementation is the one shipped with the compiler.</p>
+<p><b>Warning:</b> These tables are not a good indication of a particular
+compiler's compliance with the C++ Standard.&nbsp; The boost libraries often
+contain workarounds which mask compiler deficiencies.</p>
+<p><b>Warning: </b>The regression test is under development and cannot yet be
+relied upon.&nbsp; The current version is a compile only test; the programs are
+not executed or otherwise tested.&nbsp; Even the compilation results may be
+spurious; many negative results stem from problems with the immature test suite
+rather that with the library or compiler.&nbsp; Furthermore, some library tests
+have not yet been included.</p>
+<hr>
+<p>Revised <!--webbot bot="Timestamp" s-type="EDITED" s-format="%d %B %Y" startspan -->03 August 2000<!--webbot bot="Timestamp" endspan i-checksum="31242" --></p>
+
+</body>
+
+</html>
diff --git a/libs/compose b/libs/compose
new file mode 160000
+Subproject 37a6c2a159861851baafadee4da3e6eab1648bb
diff --git a/libs/config b/libs/config
new file mode 160000
+Subproject 1036984586fdca215ca5963fe9bc2f2a8b18f12
diff --git a/libs/conversion b/libs/conversion
new file mode 160000
+Subproject 66834ebe526b30900ea54c18559ef49b1879e40
diff --git a/libs/cs-linux2.html b/libs/cs-linux2.html
new file mode 100644
index 0000000000..85fe77262e
--- /dev/null
+++ b/libs/cs-linux2.html
@@ -0,0 +1,99 @@
+<html>
+<head>
+<title>
+Compiler Status: Linux/x86
+</title>
+</head><body bgcolor="#FFFFFF" text="#000000">
+<h1><img border="0" src="../c++boost.gif" width="277" height="86"></h1>
+<h1>Compiler Status: Linux/x86</h1>
+<p><b>Run Date:</b> 04 Sep 2000 GMT</p>
+<p>
+<table border="1" cellspacing="0" cellpadding="5">
+<tr>
+<td>Program</td>
+<td>GNU<br>GCC<br>2.95.2</td>
+<td>GNU<br>GCC<br>2.95.2<br>STLport<br>4.0 beta 8</td>
+</tr>
+<tr>
+<td><a href="config/config_test.cpp">config/config_test.cpp</a></td>
+<td>yes</td>
+<td>yes</td>
+</tr>
+<tr>
+<td><a href="array/array1.cpp">array/array1.cpp</a></td>
+<td>no</td>
+<td>yes</td>
+</tr>
+<tr>
+<td><a href="functional/function_test.cpp">functional/function_test.cpp</a></td>
+<td>yes</td>
+<td>yes</td>
+</tr>
+<tr>
+<td><a href="integer/cstdint_test.cpp">integer/cstdint_test.cpp</a></td>
+<td>yes</td>
+<td>yes</td>
+</tr>
+<tr>
+<td><a href="integer/integer_test.cpp">integer/integer_test.cpp</a></td>
+<td>yes</td>
+<td>yes</td>
+</tr>
+<tr>
+<td><a href="integer/integer_traits_test.cpp">integer/integer_traits_test.cpp</a></td>
+<td>yes</td>
+<td>yes</td>
+</tr>
+<tr>
+<td><a href="rational/rational_example.cpp">rational/rational_example.cpp</a></td>
+<td>yes</td>
+<td>yes</td>
+</tr>
+<tr>
+<td><a href="random/random_test.cpp">random/random_test.cpp</a></td>
+<td>yes</td>
+<td>yes</td>
+</tr>
+<tr>
+<td><a href="random/random_demo.cpp">random/random_demo.cpp</a></td>
+<td>yes</td>
+<td>yes</td>
+</tr>
+<tr>
+<td><a href="smart_ptr/smart_ptr_test.cpp">smart_ptr/smart_ptr_test.cpp</a></td>
+<td>yes</td>
+<td>yes</td>
+</tr>
+<tr>
+<td><a href="utility/call_traits_test.cpp">utility/call_traits_test.cpp</a></td>
+<td>yes</td>
+<td>yes</td>
+</tr>
+<tr>
+<td><a href="utility/cast_test.cpp">utility/cast_test.cpp</a></td>
+<td>yes</td>
+<td>yes</td>
+</tr>
+<tr>
+<td><a href="utility/compressed_pair_test.cpp">utility/compressed_pair_test.cpp</a></td>
+<td>yes</td>
+<td>yes</td>
+</tr>
+<tr>
+<td><a href="utility/iterators_test.cpp">utility/iterators_test.cpp</a></td>
+<td>yes</td>
+<td>yes</td>
+</tr>
+<tr>
+<td><a href="utility/operators_test.cpp">utility/operators_test.cpp</a></td>
+<td>yes</td>
+<td>yes</td>
+</tr>
+<tr>
+<td><a href="utility/type_traits_test.cpp">utility/type_traits_test.cpp</a></td>
+<td>yes</td>
+<td>yes</td>
+</tr>
+</table>
+</body>
+</html>
diff --git a/libs/cs-win32.html b/libs/cs-win32.html
new file mode 100644
index 0000000000..9ece1bd96a
--- /dev/null
+++ b/libs/cs-win32.html
@@ -0,0 +1,150 @@
+<html>
+<head>
+<title>
+Compiler Status: Windows NT / Windows 2000
+</title>
+</head><body bgcolor="#FFFFFF" text="#000000">
+<h1><img border="0" src="../c++boost.gif" width="277" height="86"></h1>
+<h1>Compiler Status: Windows NT / Windows 2000</h1>
+<p><b>Run Date:</b> 03 Aug 2000 GMT</p>
+<p>
+<table border="1" cellspacing="0" cellpadding="5">
+<tr>
+<td>Program</td>
+<td>Borland<br>BCC<br>5.4</td>
+<td>Borland<br>BCC<br>5.5</td>
+<td>Metrowerks<br>CodeWarrior<br>5.3</td>
+<td>Microsoft<br>VC++<br>6.0 SP3</td>
+<td>Microsoft<br>VC++<br>6.0 SP3<br>STLport<br>3.2.1</td>
+</tr>
+<tr>
+<td><a href="config/config_test.cpp">config/config_test.cpp</a></td>
+<td>yes</td>
+<td>yes</td>
+<td>yes</td>
+<td>yes</td>
+<td>yes</td>
+</tr>
+<tr>
+<td><a href="array/array1.cpp">array/array1.cpp</a></td>
+<td>yes</td>
+<td>yes</td>
+<td>yes</td>
+<td>no</td>
+<td>no</td>
+</tr>
+<tr>
+<td><a href="functional/function_test.cpp">functional/function_test.cpp</a></td>
+<td>yes</td>
+<td>yes</td>
+<td>no</td>
+<td>yes</td>
+<td>no</td>
+</tr>
+<tr>
+<td><a href="integer/cstdint_test.cpp">integer/cstdint_test.cpp</a></td>
+<td>yes</td>
+<td>yes</td>
+<td>yes</td>
+<td>yes</td>
+<td>yes</td>
+</tr>
+<tr>
+<td><a href="integer/integer_test.cpp">integer/integer_test.cpp</a></td>
+<td>yes</td>
+<td>yes</td>
+<td>yes</td>
+<td>yes</td>
+<td>no</td>
+</tr>
+<tr>
+<td><a href="integer/integer_traits_test.cpp">integer/integer_traits_test.cpp</a></td>
+<td>yes</td>
+<td>yes</td>
+<td>yes</td>
+<td>yes</td>
+<td>yes</td>
+</tr>
+<tr>
+<td><a href="rational/rational_example.cpp">rational/rational_example.cpp</a></td>
+<td>yes</td>
+<td>yes</td>
+<td>yes</td>
+<td>yes</td>
+<td>yes</td>
+</tr>
+<tr>
+<td><a href="random/random_test.cpp">random/random_test.cpp</a></td>
+<td>no</td>
+<td>yes</td>
+<td>no</td>
+<td>yes</td>
+<td>yes</td>
+</tr>
+<tr>
+<td><a href="random/random_demo.cpp">random/random_demo.cpp</a></td>
+<td>yes</td>
+<td>yes</td>
+<td>no</td>
+<td>yes</td>
+<td>yes</td>
+</tr>
+<tr>
+<td><a href="smart_ptr/smart_ptr_test.cpp">smart_ptr/smart_ptr_test.cpp</a></td>
+<td>yes</td>
+<td>yes</td>
+<td>yes</td>
+<td>yes</td>
+<td>yes</td>
+</tr>
+<tr>
+<td><a href="utility/call_traits_test.cpp">utility/call_traits_test.cpp</a></td>
+<td>yes</td>
+<td>yes</td>
+<td>no</td>
+<td>yes</td>
+<td>yes</td>
+</tr>
+<tr>
+<td><a href="utility/cast_test.cpp">utility/cast_test.cpp</a></td>
+<td>yes</td>
+<td>yes</td>
+<td>yes</td>
+<td>yes</td>
+<td>yes</td>
+</tr>
+<tr>
+<td><a href="utility/compressed_pair_test.cpp">utility/compressed_pair_test.cpp</a></td>
+<td>yes</td>
+<td>yes</td>
+<td>no</td>
+<td>yes</td>
+<td>yes</td>
+</tr>
+<tr>
+<td><a href="utility/iterators_test.cpp">utility/iterators_test.cpp</a></td>
+<td>yes</td>
+<td>yes</td>
+<td>yes</td>
+<td>yes</td>
+<td>yes</td>
+</tr>
+<tr>
+<td><a href="utility/operators_test.cpp">utility/operators_test.cpp</a></td>
+<td>yes</td>
+<td>yes</td>
+<td>yes</td>
+<td>yes</td>
+<td>yes</td>
+</tr>
+<tr>
+<td><a href="utility/type_traits_test.cpp">utility/type_traits_test.cpp</a></td>
+<td>yes</td>
+<td>yes</td>
+<td>no</td>
+<td>yes</td>
+<td>yes</td>
+</tr>
+</table>
+</body>
+</html>
diff --git a/libs/functional b/libs/functional
new file mode 160000
+Subproject 2fea553297e9f4fb8657ae88672652ae821dc69
diff --git a/libs/integer b/libs/integer
new file mode 160000
+Subproject 0101ecf6efce51c6bc917af2d43999ebd54d8bd
diff --git a/libs/iterator b/libs/iterator
new file mode 160000
+Subproject 65ad89dd5845bac8108092a75327e6ca7b29157
diff --git a/libs/random b/libs/random
new file mode 160000
+Subproject 2ec49b3e5a2c262d2f8af051d003b44bb2f7c08
diff --git a/libs/rational b/libs/rational
new file mode 160000
+Subproject 815153068b62c5839c8fb07ae475ad060b16f6a
diff --git a/libs/regrtest.py b/libs/regrtest.py
new file mode 100644
index 0000000000..d4b1286c91
--- /dev/null
+++ b/libs/regrtest.py
@@ -0,0 +1,212 @@
+#!/usr/bin/python
+
+# boost compilation regression test
+
+# Usage: regrtest [*|compiler] [*|library/program]
+#
+# Default: regrtest * *
+#
+# Compilers: bcc54 = Borland 5.4
+# bcc55 = Borland 5.5
+# cw = Metrowerks CodeWarrior
+# gcc = GNU GCC/egcs
+# vc = Microsoft Visual C++
+# vcstlport = Microsoft Visual C++ with STLport library
+#
+# Examples: regrtest
+# regrtest
+# regrtest gcc
+# regrtest * smart_ptr/smart_ptr_test.cpp
+# regrtest gcc smart_ptr/smart_ptr_test.cpp
+#
+# Note: use the following command line syntax if output is to be redirected:
+# python regrtest.py [*|compiler] [*|library/program] >log 2>&1
+
+# Revision history:
+# 21 Jun 00 Redesign to allow specifying compiler and program (Beman Dawes)
+# 18 Jun 00 Initial Version (Beman Dawes)
+
+# The Metrowerks and Microsoft compilers require various environment variables be set.
+# See mwcc -help
+# See http://msdn.microsoft.com/library/devprods/vs6/visualc/vccore/_core_building_on_the_command_line.3a_.overview.htm
+# Others:
+# See bcb4.hlp. Don't bother with bcb4tools.hlp; it has a bad link to the command line options
+
+import sys
+import os
+import time
+
+#------------------------------------------------------------------------------#
+
+def invoke( desc, command ):
+
+ print " ", desc
+ f.write( "<td>" )
+ print " ", command #script debugging aid
+ sys.stdout.flush()
+ rs=os.system( command )
+ print " return status: ", rs
+ if rs==0:
+ f.write( "yes" )
+ else:
+ f.write( "no" )
+ f.write( "</td>\n" )
+
+#------------------------------------------------------------------------------#
+
+def compile( program ):
+
+ fullpath= path + "/libs/" + program
+
+ print
+ print "*****", program, "*****"
+
+ f.write( "<tr>\n" )
+ f.write( "<td><a href=\"" + program + "\">" + program + "</a></td>\n" )
+
+ if sys.platform == "linux2":
+ if compiler_arg == "*" or compiler_arg == "gcc":
+ invoke( "GCC 2.95.2", 'g++ -ftemplate-depth-30 -I' + path + ' ' + fullpath )
+ if compiler_arg == "*" or compiler_arg == "gcc-stlport":
+ invoke( "GCC 2.95.2 STLport 4.0b8", 'g++ -V 2.95.2-stlport -ftemplate-depth-30 -I' + path + ' ' + fullpath )
+# if compiler_arg == "*" or compiler_arg == "gcc-exp":
+# invoke( "GCC pre-2.96 experimental", '/opt/exp/gcc/bin/g++ -ftemplate-depth-30 -I' + path + ' ' + fullpath )
+ else:
+ if compiler_arg=="*" or compiler_arg=="bcc54":
+ bcc54_path=os.environ["BOOST_BCC54_PATH"]
+ invoke( "Borland C++ 5.4", "\"" + bcc54_path + "/bcc32\" -I" + path + " -j10 -q " + fullpath )
+ if compiler_arg=="*" or compiler_arg=="bcc55":
+ bcc55_path=os.environ["BOOST_BCC55_PATH"]
+ invoke( "Borland C++ 5.5", "\"" + bcc55_path + "/bcc32\" -I" + path + " -j10 -q " + fullpath )
+
+ # GCC 2.95.2 is looping on some tests, so only invoke if asked for by name
+ #if compiler_arg=="*" or compiler_arg=="gcc":
+ if compiler_arg=="gcc":
+ # TODO: fix the absolute STLport paths
+ invoke( "GNU GCC", "c++ -ftemplate-depth-30 -I" + path + " -IC:/stl/STLport-4.0b8/stlport " + fullpath + " c:/stl/STLport-4.0b8/lib/libstlport_gcc.a" )
+
+ if compiler_arg=="*" or compiler_arg=="cw":
+ invoke( "Metrowerks CodeWarrior", "mwcc -maxerrors 10 -I- -I" + path + " " + fullpath )
+
+#John Maddock says use /Zm400 switch; it increases compiler memory
+ if compiler_arg=="*" or compiler_arg=="vc":
+ invoke( "VC++ with MS library", 'cl /nologo /Zm400 /MDd /W3 /GR /GX /Zi /Od /GZ /I "' + path + '" /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_CONSOLE" ' + fullpath )
+ if compiler_arg=="*" or compiler_arg=="vcstlport":
+ stl=os.environ["BOOST_STLPORT_PATH"]
+ invoke( "VC++ with STLport library", 'cl /nologo /Zm400 /MDd /W3 /GR /GX /Zi /Od /GZ /I "' + stl + '" /I "' + path + '" /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_CONSOLE" ' + fullpath )
+
+
+ f.write( "</tr>\n" )
+
+#------------------------------------------------------------------------------#
+
+def library():
+
+ print
+ print "***** Boost Library *****"
+
+ f.write( "<tr>\n" )
+ f.write( "<td>Boost library build</td>\n" )
+
+ #if compiler_arg=="*" or compiler_arg=="bcc32":
+ #if compiler_arg=="*" or compiler_arg=="gcc":
+ #if compiler_arg=="*" or compiler_arg=="cw":
+
+ #if compiler_arg=="*" or compiler_arg=="vc":
+ # command='cl /nologo /MDd /W3 /GR /GX /Zi /Od /GZ /I "' + path + '" /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB /c"'
+ # command=command + " " + path + "/libs/" + ...
+ # invoke( "VC++ with MS library", command )
+
+# invoke( "MS Lib with MS library", 'lib /nologo /out:"boost_vc.lib" boost_timer_vc.obj boost_prg_timer_vc.obj boost_prg_display_vc.obj' )
+
+ #if compiler_arg=="*" or compiler_arg=="vcstlport":
+
+ f.write( "</tr>\n" )
+
+#---------------------------------- main ------------------------------------#
+
+# set up environment variables
+
+path=os.environ["BOOST_PATH"]
+
+compiler_arg="*"
+if len(sys.argv)>1:
+ compiler_arg=sys.argv[1]
+
+program_arg="*"
+if len(sys.argv)>2:
+ program_arg=sys.argv[2]
+
+if sys.platform == "linux2":
+ platform = "Linux/x86"
+elif sys.platform == "win32":
+ platform = "Windows"
+ if os.name == "nt":
+ platform = platform + " NT / Windows 2000"
+else:
+ print "**** Error: unknown platform ****"
+ sys.exit(1)
+
+f=open( "cs-" + sys.platform + ".html", "w" )
+
+f.write( "<html>\n<head>\n<title>\nCompiler Status: " + platform + "\n</title>\n</head>" )
+f.write( "<body bgcolor=\"#FFFFFF\" text=\"#000000\">\n" )
+f.write( "<h1><img border=\"0\" src=\"../c++boost.gif\" width=\"277\" height=\"86\"></h1>\n" )
+f.write( "<h1>Compiler Status: " + platform + "</h1>\n" )
+f.write( "<p><b>Run Date:</b> " + time.strftime("%d %b %Y GMT", time.gmtime(time.time())) + "</p>\n" )
+f.write( "<p>\n" )
+f.write( "<table border=\"1\" cellspacing=\"0\" cellpadding=\"5\">\n" )
+f.write( "<tr>\n" )
+f.write( "<td>Program</td>\n" )
+
+if sys.platform == "linux2":
+ if compiler_arg == "*" or compiler_arg == "gcc":
+ f.write( "<td>GNU<br>GCC<br>2.95.2</td>\n" )
+ if compiler_arg == "*" or compiler_arg == "gcc-stlport":
+ f.write( "<td>GNU<br>GCC<br>2.95.2<br>STLport<br>4.0 beta 8</td>\n" )
+# if compiler_arg == "*" or compiler_arg == "gcc-exp":
+# f.write( "<td>GNU<br>GCC<br>pre-2.96 experimental</td>\n" )
+else:
+ if compiler_arg=="*" or compiler_arg=="bcc54":
+ f.write( "<td>Borland<br>BCC<br>5.4</td>\n" )
+ if compiler_arg=="*" or compiler_arg=="bcc55":
+ f.write( "<td>Borland<br>BCC<br>5.5</td>\n" )
+
+ # GCC 2.95.2 is looping on some tests, so only invoke if asked for by name
+ #if compiler_arg=="*" or compiler_arg=="gcc":
+ if compiler_arg=="gcc":
+ f.write( "<td>GNU<br>GCC<br>2.95.2<br>STLport<br>4.0 beta 8</td>\n" )
+ if compiler_arg=="*" or compiler_arg=="cw":
+ f.write( "<td>Metrowerks<br>CodeWarrior<br>5.3</td>\n" )
+ if compiler_arg=="*" or compiler_arg=="vc":
+ f.write( "<td>Microsoft<br>VC++<br>6.0 SP3</td>\n" )
+ if compiler_arg=="*" or compiler_arg=="vcstlport":
+ f.write( "<td>Microsoft<br>VC++<br>6.0 SP3<br>STLport<br>3.2.1</td>\n" )
+
+f.write( "</tr>\n" )
+
+if program_arg=="*":
+ compile( "config/config_test.cpp" )
+ compile( "array/array1.cpp" )
+# compile( "compose/compose1.cpp" )
+ compile( "functional/function_test.cpp" )
+ compile( "integer/cstdint_test.cpp" )
+ compile( "integer/integer_test.cpp" )
+ compile( "integer/integer_traits_test.cpp" )
+ compile( "rational/rational_example.cpp" )
+ compile( "random/random_test.cpp" )
+ compile( "random/random_demo.cpp" )
+ compile( "smart_ptr/smart_ptr_test.cpp" )
+# compile( "utility/algo_opt_examples.cpp" )
+ compile( "utility/call_traits_test.cpp" )
+ compile( "utility/cast_test.cpp" )
+ compile( "utility/compressed_pair_test.cpp" )
+ compile( "utility/iterators_test.cpp" )
+ compile( "utility/operators_test.cpp" )
+ compile( "utility/type_traits_test.cpp" )
+else:
+ compile( program_arg )
+
+f.write( "</table>\n</body>\n</html>\n" )
+
+# end
diff --git a/libs/smart_ptr b/libs/smart_ptr
-Subproject c47f309991b83794f0f037a320dc223939d65b0
+Subproject cfece50d17566a12660f1c1f0037698163419ac
diff --git a/libs/timer b/libs/timer
new file mode 160000
+Subproject afa8614e39f476fe14c8b8ddb57ff52c29b41a1
diff --git a/libs/type_traits b/libs/type_traits
new file mode 160000
+Subproject f729d1b593836bfd1470bb24bd5d2be14988df3
diff --git a/libs/utility b/libs/utility
new file mode 160000
+Subproject be4b817c83a879c2ae1493bde837b0e78e59112