# # # rename "specialized_lexical_cast.hh" # to "lexical_cast.hh" # # patch "Makefile.am" # from [21c268b576044d1a95fc266e5ac44a079a2bfd24] # to [744f13784390967521794d7a989d504103a89f2b] # # patch "cert.cc" # from [a709e1d88c567067dd47f7e4cc0c89e8323a6e84] # to [034d63fdfa5faab80bfde1adc8a5c42d152b325a] # # patch "commands.cc" # from [66871a867361d99c48ed1e5c51ef9aa9b7960101] # to [b8565eb8a7d0acb72a64ba561e959df66469120d] # # patch "database.cc" # from [f2aa5bc4559676a6c6d313ba17dcd72657115b6c] # to [8fc87fee1363699af5621f703b85ae288b499491] # # patch "diff_patch.cc" # from [2d14a3da45b28431211e62f617620b1af02ab381] # to [965f22af1e86ee242cb4a578e19d0f9bf3675852] # # patch "graph.cc" # from [986d52f599f774e88c0943af5322d972eff31542] # to [fe7d75cef96fe2f2fa3fcc10d3a863a2b384ff0e] # # patch "lexical_cast.hh" # from [ca247b704ab5bab202aa0ca87ac213371f1f7458] # to [5c433b309da53278749b284173e71306e732ca72] # # patch "netcmd.cc" # from [d397060be17a91e9232b83454d59ae0e0ae76146] # to [a29ffe66940d6ee0d176339e6c7b85cf8bdee159] # # patch "netsync.cc" # from [b162d327e4854e204ec02ef5f3fd0e0be2c42596] # to [90d845d5e17b5e303e43573dd1274196f589ee47] # # patch "option.hh" # from [f2b79ebaeeffec218059a2682e5fb5273c3ab12a] # to [5a85259c5bc4da778c3a5555ab236f4e6aac5a70] # # patch "packet.cc" # from [98bc3698868eba6ee9e1a5fbe65b56f38cf4e6cd] # to [df0fa7f0af5b79f300c3bdc63940be1940af92e2] # # patch "parallel_iter.hh" # from [1ac6c8432e07ab93d59a72a66cd7df7d0c00c7fd] # to [ba07dec38610a667e9320188f0f80d064f41612c] # # patch "pch.hh" # from [5fa0fdc79f9e2c622c339174fc988d1b513da028] # to [2a3308e0b1e6dfd29f426a7198c6d68ea7818942] # # patch "randomfile.hh" # from [9e41df0b59cbb001d11989965d7b2ae949123c6e] # to [22836a0c103b43d0a388706e7b36bfc9398c098c] # # patch "rcs_import.cc" # from [c4343f5f7eb1a9c2952b9c31ec3c8b88ece5b4b5] # to [f77665e03e8ca727897dd9f35c644f09e0c460a0] # # patch "revision.cc" # from [fbc92e485f3d52c4fdce11cfd0d4fa2d1ab61052] # to [df17f8e950d6c5167382fcdedddb5ce5cab87b5c] # # patch "roster.cc" # from [15adfd583f65d20b920933966f24fee2861406e0] # to [2d66e04b7ca82b71b11f9aa3d8263ff0a193c013] # # patch "roster_delta.cc" # from [23a29080ca95c48aaed1492f2bd9b00340e86d9a] # to [97bbe4959ff58789934e4e9a9bb7add980772738] # # patch "sanity.cc" # from [2e1cac507650ded2b20b3e057232e2ed531aa316] # to [95ceb279d0048f096cbf59e66f0143eb2038df84] # # patch "schema_migration.cc" # from [16307957747ed7458f56319fefb71049a5c637c9] # to [f3c0a9dabc833154a3f07795f243d561b23d985c] # # patch "specialized_lexical_cast.cc" # from [68bbce15ba5547d5fd3864106540e374b2dc7029] # to [1b0e3823a5e110c00a139a889b71d93e5546058d] # # patch "ui.cc" # from [ed513609cf04a1dc4cb2df7e93090b8b250eef95] # to [f4704e07c8544b0c01a45d476c3d61c0b98deb45] # # patch "update.cc" # from [e5fa61130ca338a4a9f4aff804b50e0e23e748f2] # to [4fbfba5e989b8174915ae52e22a808b9a80eff83] # # patch "work.cc" # from [776774635a7ac315d0f22c8386145569e5813cdb] # to [66159e9dae0264bfc4b066b87f8cf6888900cfb5] # # patch "work_migration.cc" # from [ac0a022585fe14bec858290283b217bd7097b9ab] # to [54b77de811bcb46ab2e6ea7101f260abb6b0b23d] # ============================================================ --- Makefile.am 21c268b576044d1a95fc266e5ac44a079a2bfd24 +++ Makefile.am 744f13784390967521794d7a989d504103a89f2b @@ -83,8 +83,8 @@ MOST_SOURCES = \ package_revision.c package_revision.h \ package_full_revision.c package_full_revision.h \ option.cc option.hh options.cc options.hh options_list.hh \ - specialized_lexical_cast.cc specialized_lexical_cast.hh \ - i18n.h parallel_iter.hh safe_map.hh pch.hh + specialized_lexical_cast.cc lexical_cast.hh \ + i18n.h parallel_iter.hh safe_map.hh pch.hh current_exception.hh NETXX_SOURCES = \ netxx/accept.cxx netxx/accept.h netxx/address.cxx \ ============================================================ --- cert.cc a709e1d88c567067dd47f7e4cc0c89e8323a6e84 +++ cert.cc 034d63fdfa5faab80bfde1adc8a5c42d152b325a @@ -12,11 +12,11 @@ #include #include -#include #include #include #include +#include "lexical_cast.hh" #include "app_state.hh" #include "cert.hh" #include "constants.hh" ============================================================ --- commands.cc 66871a867361d99c48ed1e5c51ef9aa9b7960101 +++ commands.cc b8565eb8a7d0acb72a64ba561e959df66469120d @@ -25,7 +25,7 @@ #include "app_state.hh" #ifndef _WIN32 -#include +#include "lexical_cast.hh" #include #endif ============================================================ --- database.cc f2aa5bc4559676a6c6d313ba17dcd72657115b6c +++ database.cc 8fc87fee1363699af5621f703b85ae288b499491 @@ -19,7 +19,7 @@ #include #include -#include +#include "lexical_cast.hh" #include ============================================================ --- diff_patch.cc 2d14a3da45b28431211e62f617620b1af02ab381 +++ diff_patch.cc 965f22af1e86ee242cb4a578e19d0f9bf3675852 @@ -1352,7 +1352,7 @@ make_diff(string const & filename1, #ifdef BUILD_UNIT_TESTS #include "unit_tests.hh" #include "transforms.hh" -#include +#include "lexical_cast.hh" #include "randomfile.hh" using std::cerr; ============================================================ --- graph.cc 986d52f599f774e88c0943af5322d972eff31542 +++ graph.cc fe7d75cef96fe2f2fa3fcc10d3a863a2b384ff0e @@ -136,7 +136,7 @@ get_reconstruction_path(std::string cons #include "unit_tests.hh" #include "randomizer.hh" -#include +#include "lexical_cast.hh" using boost::lexical_cast; using std::pair; ============================================================ --- specialized_lexical_cast.hh ca247b704ab5bab202aa0ca87ac213371f1f7458 +++ lexical_cast.hh 5c433b309da53278749b284173e71306e732ca72 @@ -1,7 +1,6 @@ -#ifndef __SPECIALIZED_LEXICAL_CAST_HH__ -#define __SPECIALIZED_LEXICAL_CAST_HH__ +#ifndef __LEXICAL_CAST_HH__ +#define __LEXICAL_CAST_HH__ - // Copyright (C) 2007 Timothy Brownawell // // This program is made available under the GNU GPL version 2.0 or @@ -16,6 +15,11 @@ // Generic lexical_cast can be a bit slow sometimes. If a particular // version shows up in profiles, consider writing a specialization. +// Note: because we do this, every file that uses boost::lexical_cast +// _must_ include this file instead of , or we +// risk violating the One Definition Rule (if some file instantiates +// the generic template for the types we specialize here). This is not +// a theoretical problem; the Windows linker will fail. namespace boost { template<> ============================================================ --- netcmd.cc d397060be17a91e9232b83454d59ae0e0ae76146 +++ netcmd.cc a29ffe66940d6ee0d176339e6c7b85cf8bdee159 @@ -554,7 +554,7 @@ netcmd::write_usher_reply_cmd(utf8 const #include "unit_tests.hh" #include "transforms.hh" -#include +#include "lexical_cast.hh" UNIT_TEST(netcmd, mac) { ============================================================ --- netsync.cc b162d327e4854e204ec02ef5f3fd0e0be2c42596 +++ netsync.cc 90d845d5e17b5e303e43573dd1274196f589ee47 @@ -17,7 +17,7 @@ #include -#include +#include "lexical_cast.hh" #include #include #include ============================================================ --- option.hh f2b79ebaeeffec218059a2682e5fb5273c3ab12a +++ option.hh 5a85259c5bc4da778c3a5555ab236f4e6aac5a70 @@ -8,7 +8,7 @@ #include #include -#include +#include "lexical_cast.hh" #include "sanity.hh" #include "vocab.hh" ============================================================ --- packet.cc 98bc3698868eba6ee9e1a5fbe65b56f38cf4e6cd +++ packet.cc df0fa7f0af5b79f300c3bdc63940be1940af92e2 @@ -10,7 +10,7 @@ #include #include -#include +#include "lexical_cast.hh" #include "app_state.hh" #include "cset.hh" ============================================================ --- parallel_iter.hh 1ac6c8432e07ab93d59a72a66cd7df7d0c00c7fd +++ parallel_iter.hh ba07dec38610a667e9320188f0f80d064f41612c @@ -37,7 +37,7 @@ #include -#include +#include "lexical_cast.hh" #include "sanity.hh" ============================================================ --- pch.hh 5fa0fdc79f9e2c622c339174fc988d1b513da028 +++ pch.hh 2a3308e0b1e6dfd29f426a7198c6d68ea7818942 @@ -25,7 +25,7 @@ #include // We have a local version of this to work around a bug in the MSVC debug checking. #include -#include +#include "lexical_cast.hh" #include #include #include ============================================================ --- randomfile.hh 9e41df0b59cbb001d11989965d7b2ae949123c6e +++ randomfile.hh 22836a0c103b43d0a388706e7b36bfc9398c098c @@ -12,7 +12,7 @@ #include #include -#include +#include "lexical_cast.hh" #include "randomizer.hh" ============================================================ --- rcs_import.cc c4343f5f7eb1a9c2952b9c31ec3c8b88ece5b4b5 +++ rcs_import.cc f77665e03e8ca727897dd9f35c644f09e0c460a0 @@ -22,7 +22,7 @@ #include #include -#include +#include "lexical_cast.hh" #include #include "app_state.hh" ============================================================ --- revision.cc fbc92e485f3d52c4fdce11cfd0d4fa2d1ab61052 +++ revision.cc df17f8e950d6c5167382fcdedddb5ce5cab87b5c @@ -19,7 +19,7 @@ #include #include -#include +#include "lexical_cast.hh" #include #include ============================================================ --- roster.cc 15adfd583f65d20b920933966f24fee2861406e0 +++ roster.cc 2d66e04b7ca82b71b11f9aa3d8263ff0a193c013 @@ -23,7 +23,7 @@ #include "vocab.hh" #include "transforms.hh" #include "simplestring_xform.hh" -#include "specialized_lexical_cast.hh" +#include "lexical_cast.hh" #include "file_io.hh" #include "parallel_iter.hh" #include "restrictions.hh" ============================================================ --- roster_delta.cc 23a29080ca95c48aaed1492f2bd9b00340e86d9a +++ roster_delta.cc 97bbe4959ff58789934e4e9a9bb7add980772738 @@ -13,7 +13,7 @@ #include #include -#include "specialized_lexical_cast.hh" +#include "lexical_cast.hh" #include "safe_map.hh" #include "parallel_iter.hh" ============================================================ --- sanity.cc 2e1cac507650ded2b20b3e057232e2ed531aa316 +++ sanity.cc 95ceb279d0048f096cbf59e66f0143eb2038df84 @@ -16,7 +16,7 @@ #include #include -#include +#include "lexical_cast.hh" #include "constants.hh" #include "platform.hh" ============================================================ --- schema_migration.cc 16307957747ed7458f56319fefb71049a5c637c9 +++ schema_migration.cc f3c0a9dabc833154a3f07795f243d561b23d985c @@ -8,7 +8,7 @@ // PURPOSE. #include -#include +#include "lexical_cast.hh" #include #include ============================================================ --- specialized_lexical_cast.cc 68bbce15ba5547d5fd3864106540e374b2dc7029 +++ specialized_lexical_cast.cc 1b0e3823a5e110c00a139a889b71d93e5546058d @@ -8,7 +8,7 @@ // PURPOSE. -#include "specialized_lexical_cast.hh" +#include "lexical_cast.hh" template<> std::string boost::lexical_cast(unsigned int const & _i) ============================================================ --- ui.cc ed513609cf04a1dc4cb2df7e93090b8b250eef95 +++ ui.cc f4704e07c8544b0c01a45d476c3d61c0b98deb45 @@ -24,7 +24,7 @@ #include #include #include -#include +#include "lexical_cast.hh" #include ============================================================ --- update.cc e5fa61130ca338a4a9f4aff804b50e0e23e748f2 +++ update.cc 4fbfba5e989b8174915ae52e22a808b9a80eff83 @@ -10,7 +10,7 @@ #include #include #include -#include +#include "lexical_cast.hh" #include "app_state.hh" #include "database.hh" ============================================================ --- work.cc 776774635a7ac315d0f22c8386145569e5813cdb +++ work.cc 66159e9dae0264bfc4b066b87f8cf6888900cfb5 @@ -12,7 +12,7 @@ #include #include -#include +#include "lexical_cast.hh" #include "work.hh" #include "basic_io.hh" ============================================================ --- work_migration.cc ac0a022585fe14bec858290283b217bd7097b9ab +++ work_migration.cc 54b77de811bcb46ab2e6ea7101f260abb6b0b23d @@ -14,7 +14,7 @@ #include "file_io.hh" #include "work.hh" -#include +#include "lexical_cast.hh" #include using std::string;