Click here to Skip to main content
15,892,537 members
Articles / Programming Languages / C++

Fast C++ Delegate: Boost.Function 'drop-in' replacement and multicast

Rate me:
Please Sign up or sign in to vote.
4.86/5 (51 votes)
1 Jun 200733 min read 292.4K   1.9K   110  
An article on the implementation of a fast C++ delegate with many advanced features.
Microsoft Visual Studio Solution File, Format Version 9.00
# Visual Studio 2005
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "allocator_test", "allocator_test.vcproj", "{F066CB11-69CA-4092-9879-146759206DEE}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "contains_test", "contains_test.vcproj", "{7B199EE8-8B4A-4B0C-9B4A-2B03734C5DBC}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "delegate_30", "delegate_30.vcproj", "{4A9483AB-9C97-4987-BEC9-64F698C0FA4C}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "lambda_test", "lambda_test.vcproj", "{53192DFC-1949-4DF6-8686-478A23F4ACD5}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "contains2_test", "contains2_test.vcproj", "{52864BB0-7C62-4ACF-A0E7-2C455A7C0E7F}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "delegate_arith_cxx98", "delegate_arith_cxx98.vcproj", "{F99E800D-8CF7-4AB5-9DF0-8A71B1311266}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "delegate_arith_portable", "delegate_arith_portable.vcproj", "{D18F0366-B2EF-46C6-AADD-C0DCE8995FA3}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "delegate_n_test", "delegate_n_test.vcproj", "{2661CF30-2B26-4DDB-A8D4-31B6B6085F78}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "delegate_ref_cxx98", "delegate_ref_cxx98.vcproj", "{E8CF7EE2-CFE9-4EF9-A04B-94F15F9718BE}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "delegate_ref_portable", "delegate_ref_portable.vcproj", "{B69FE77F-7C56-445F-BE5D-D29F744E254D}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "delegate_test", "delegate_test.vcproj", "{B830CC03-2840-445E-9CC4-EA519CCA13BE}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "delegate_test_fail1", "delegate_test_fail1.vcproj", "{FF5E2579-84E2-4135-AD46-03189B584D39}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "delegate_test_fail2", "delegate_test_fail2.vcproj", "{4B8B740F-9B36-45C6-886E-6D272797463A}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mem_fun_cxx98", "mem_fun_cxx98.vcproj", "{B59C9B23-7788-4DA2-992F-342C87330DA3}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mem_fun_portable", "mem_fun_portable.vcproj", "{5A123AE4-A88B-4593-A2DB-CF7605CBA503}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "stateless_test", "stateless_test.vcproj", "{95722328-64E6-46DE-AEE8-2E2E23982D1E}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "std_bind_cxx98", "std_bind_cxx98.vcproj", "{3A93C2B9-2107-402D-AFEA-88575A44709E}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "std_bind_portable", "std_bind_portable.vcproj", "{EAC13A40-D3F7-4400-9283-FE16CB446A2E}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "sum_avg_cxx98", "sum_avg_cxx98.vcproj", "{E7AEC26F-3B53-43E8-BC71-B0FBAAB051E2}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "sum_avg_portable", "sum_avg_portable.vcproj", "{242D78AD-0F58-45F2-B7E1-FA18FB740B0E}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "signal_n_test", "signal_n_test.vcproj", "{68796C1B-A714-4FF5-AAD9-270830954D03}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "signal_test", "signal_test.vcproj", "{733F9FCF-8F38-42CD-9148-6910CE56D4DB}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "deletion_test", "deletion_test.vcproj", "{FB65E3D6-370D-4E2E-950F-ADED6F51A07D}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "function", "function", "{69D36877-6F17-4C42-8D66-615B802021FA}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "signals", "signals", "{821B3827-8929-44F6-A819-F8EE7DE4290D}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "bind", "bind", "{333C78A2-4CA1-4BD6-81EF-706BB27DE97A}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "bind_cdecl_mf_test", "bind_cdecl_mf_test.vcproj", "{E42AE9D0-3AB1-45C4-BFC4-CE83253E630C}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "bind_fastcall_mf_test", "bind_fastcall_mf_test.vcproj", "{FC721168-CF93-4C0F-BEA2-C57A8E70B2D5}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "bind_function_test", "bind_function_test.vcproj", "{6F14A699-BE47-4E47-BF00-A989577DD798}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "bind_stdcall_mf_test", "bind_stdcall_mf_test.vcproj", "{E54D15C2-AD58-4B83-B074-2CF27EE8A255}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mem_fn_cdecl_test", "mem_fn_cdecl_test.vcproj", "{654E90EA-9B56-4933-BB54-D432A674452A}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mem_fn_derived_test", "mem_fn_derived_test.vcproj", "{5D02D248-4480-426A-BF5C-9217E566CA44}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mem_fn_fastcall_test", "mem_fn_fastcall_test.vcproj", "{BC95A772-AD41-4B4A-A83A-7E2E3FE0AF1B}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mem_fn_stdcall_test", "mem_fn_stdcall_test.vcproj", "{3D033804-38ED-4294-A236-9CCBDE164E60}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mem_fn_test", "mem_fn_test.vcproj", "{84C5F4D5-01A5-4AC1-AD34-062D5153295F}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mem_fn_void_test", "mem_fn_void_test.vcproj", "{B9E95F33-9FDD-4554-9957-886B272083FE}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "get_pointer", "get_pointer.vcproj", "{26E848A1-97A3-49B8-82A6-958C11A7B8D0}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "resolution_select_cxx98", "resolution_select_cxx98.vcproj", "{08E08C01-9170-408E-A671-585868FA18CD}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "resolution_select_portable", "resolution_select_portable.vcproj", "{BD1E31F2-09B6-4C66-8B7D-EEF4E0850E52}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "type_info", "type_info.vcproj", "{749C48CA-8130-4C1C-8B90-25CCCE01D76D}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "empty_delegate", "empty_delegate.vcproj", "{CFE62E29-C442-42E7-A4FB-181B87417BA3}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "function_type", "function_type.vcproj", "{96E6DB1B-930D-4926-ADCA-E8683A26A125}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "multicast_and_empty", "multicast_and_empty.vcproj", "{762DA95F-6836-4FAC-8864-B54683113AFD}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mem_fn_eq_test", "mem_fn_eq_test.vcproj", "{36692C56-1311-4AC7-8C94-63968AF998F8}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "bind_eq_test", "bind_eq_test.vcproj", "{81055D36-4575-4E26-AC32-1B3BE96EE097}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "multicast_call_iterator", "multicast_call_iterator.vcproj", "{70727A02-43D8-494E-B918-503DD5C17DBB}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "multiple_inheritance", "multiple_inheritance.vcproj", "{4AB01309-DBFF-4EB3-A01D-D063CEF318EB}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "virtual_inheritance", "virtual_inheritance.vcproj", "{40D7A205-767F-4C2B-A1FD-5C7C68F50359}"
EndProject
Global
	GlobalSection(SolutionConfigurationPlatforms) = preSolution
		Debug|Win32 = Debug|Win32
		Release|Win32 = Release|Win32
	EndGlobalSection
	GlobalSection(ProjectConfigurationPlatforms) = postSolution
		{F066CB11-69CA-4092-9879-146759206DEE}.Debug|Win32.ActiveCfg = Debug|Win32
		{F066CB11-69CA-4092-9879-146759206DEE}.Debug|Win32.Build.0 = Debug|Win32
		{F066CB11-69CA-4092-9879-146759206DEE}.Release|Win32.ActiveCfg = Release|Win32
		{F066CB11-69CA-4092-9879-146759206DEE}.Release|Win32.Build.0 = Release|Win32
		{7B199EE8-8B4A-4B0C-9B4A-2B03734C5DBC}.Debug|Win32.ActiveCfg = Debug|Win32
		{7B199EE8-8B4A-4B0C-9B4A-2B03734C5DBC}.Debug|Win32.Build.0 = Debug|Win32
		{7B199EE8-8B4A-4B0C-9B4A-2B03734C5DBC}.Release|Win32.ActiveCfg = Release|Win32
		{7B199EE8-8B4A-4B0C-9B4A-2B03734C5DBC}.Release|Win32.Build.0 = Release|Win32
		{4A9483AB-9C97-4987-BEC9-64F698C0FA4C}.Debug|Win32.ActiveCfg = Debug|Win32
		{4A9483AB-9C97-4987-BEC9-64F698C0FA4C}.Debug|Win32.Build.0 = Debug|Win32
		{4A9483AB-9C97-4987-BEC9-64F698C0FA4C}.Release|Win32.ActiveCfg = Release|Win32
		{4A9483AB-9C97-4987-BEC9-64F698C0FA4C}.Release|Win32.Build.0 = Release|Win32
		{53192DFC-1949-4DF6-8686-478A23F4ACD5}.Debug|Win32.ActiveCfg = Debug|Win32
		{53192DFC-1949-4DF6-8686-478A23F4ACD5}.Debug|Win32.Build.0 = Debug|Win32
		{53192DFC-1949-4DF6-8686-478A23F4ACD5}.Release|Win32.ActiveCfg = Release|Win32
		{53192DFC-1949-4DF6-8686-478A23F4ACD5}.Release|Win32.Build.0 = Release|Win32
		{52864BB0-7C62-4ACF-A0E7-2C455A7C0E7F}.Debug|Win32.ActiveCfg = Debug|Win32
		{52864BB0-7C62-4ACF-A0E7-2C455A7C0E7F}.Debug|Win32.Build.0 = Debug|Win32
		{52864BB0-7C62-4ACF-A0E7-2C455A7C0E7F}.Release|Win32.ActiveCfg = Release|Win32
		{52864BB0-7C62-4ACF-A0E7-2C455A7C0E7F}.Release|Win32.Build.0 = Release|Win32
		{F99E800D-8CF7-4AB5-9DF0-8A71B1311266}.Debug|Win32.ActiveCfg = Debug|Win32
		{F99E800D-8CF7-4AB5-9DF0-8A71B1311266}.Debug|Win32.Build.0 = Debug|Win32
		{F99E800D-8CF7-4AB5-9DF0-8A71B1311266}.Release|Win32.ActiveCfg = Release|Win32
		{F99E800D-8CF7-4AB5-9DF0-8A71B1311266}.Release|Win32.Build.0 = Release|Win32
		{D18F0366-B2EF-46C6-AADD-C0DCE8995FA3}.Debug|Win32.ActiveCfg = Debug|Win32
		{D18F0366-B2EF-46C6-AADD-C0DCE8995FA3}.Debug|Win32.Build.0 = Debug|Win32
		{D18F0366-B2EF-46C6-AADD-C0DCE8995FA3}.Release|Win32.ActiveCfg = Release|Win32
		{D18F0366-B2EF-46C6-AADD-C0DCE8995FA3}.Release|Win32.Build.0 = Release|Win32
		{2661CF30-2B26-4DDB-A8D4-31B6B6085F78}.Debug|Win32.ActiveCfg = Debug|Win32
		{2661CF30-2B26-4DDB-A8D4-31B6B6085F78}.Debug|Win32.Build.0 = Debug|Win32
		{2661CF30-2B26-4DDB-A8D4-31B6B6085F78}.Release|Win32.ActiveCfg = Release|Win32
		{2661CF30-2B26-4DDB-A8D4-31B6B6085F78}.Release|Win32.Build.0 = Release|Win32
		{E8CF7EE2-CFE9-4EF9-A04B-94F15F9718BE}.Debug|Win32.ActiveCfg = Debug|Win32
		{E8CF7EE2-CFE9-4EF9-A04B-94F15F9718BE}.Debug|Win32.Build.0 = Debug|Win32
		{E8CF7EE2-CFE9-4EF9-A04B-94F15F9718BE}.Release|Win32.ActiveCfg = Release|Win32
		{E8CF7EE2-CFE9-4EF9-A04B-94F15F9718BE}.Release|Win32.Build.0 = Release|Win32
		{B69FE77F-7C56-445F-BE5D-D29F744E254D}.Debug|Win32.ActiveCfg = Debug|Win32
		{B69FE77F-7C56-445F-BE5D-D29F744E254D}.Debug|Win32.Build.0 = Debug|Win32
		{B69FE77F-7C56-445F-BE5D-D29F744E254D}.Release|Win32.ActiveCfg = Release|Win32
		{B69FE77F-7C56-445F-BE5D-D29F744E254D}.Release|Win32.Build.0 = Release|Win32
		{B830CC03-2840-445E-9CC4-EA519CCA13BE}.Debug|Win32.ActiveCfg = Debug|Win32
		{B830CC03-2840-445E-9CC4-EA519CCA13BE}.Debug|Win32.Build.0 = Debug|Win32
		{B830CC03-2840-445E-9CC4-EA519CCA13BE}.Release|Win32.ActiveCfg = Release|Win32
		{B830CC03-2840-445E-9CC4-EA519CCA13BE}.Release|Win32.Build.0 = Release|Win32
		{FF5E2579-84E2-4135-AD46-03189B584D39}.Debug|Win32.ActiveCfg = Debug|Win32
		{FF5E2579-84E2-4135-AD46-03189B584D39}.Debug|Win32.Build.0 = Debug|Win32
		{FF5E2579-84E2-4135-AD46-03189B584D39}.Release|Win32.ActiveCfg = Release|Win32
		{FF5E2579-84E2-4135-AD46-03189B584D39}.Release|Win32.Build.0 = Release|Win32
		{4B8B740F-9B36-45C6-886E-6D272797463A}.Debug|Win32.ActiveCfg = Debug|Win32
		{4B8B740F-9B36-45C6-886E-6D272797463A}.Debug|Win32.Build.0 = Debug|Win32
		{4B8B740F-9B36-45C6-886E-6D272797463A}.Release|Win32.ActiveCfg = Release|Win32
		{4B8B740F-9B36-45C6-886E-6D272797463A}.Release|Win32.Build.0 = Release|Win32
		{B59C9B23-7788-4DA2-992F-342C87330DA3}.Debug|Win32.ActiveCfg = Debug|Win32
		{B59C9B23-7788-4DA2-992F-342C87330DA3}.Debug|Win32.Build.0 = Debug|Win32
		{B59C9B23-7788-4DA2-992F-342C87330DA3}.Release|Win32.ActiveCfg = Release|Win32
		{B59C9B23-7788-4DA2-992F-342C87330DA3}.Release|Win32.Build.0 = Release|Win32
		{5A123AE4-A88B-4593-A2DB-CF7605CBA503}.Debug|Win32.ActiveCfg = Debug|Win32
		{5A123AE4-A88B-4593-A2DB-CF7605CBA503}.Debug|Win32.Build.0 = Debug|Win32
		{5A123AE4-A88B-4593-A2DB-CF7605CBA503}.Release|Win32.ActiveCfg = Release|Win32
		{5A123AE4-A88B-4593-A2DB-CF7605CBA503}.Release|Win32.Build.0 = Release|Win32
		{95722328-64E6-46DE-AEE8-2E2E23982D1E}.Debug|Win32.ActiveCfg = Debug|Win32
		{95722328-64E6-46DE-AEE8-2E2E23982D1E}.Debug|Win32.Build.0 = Debug|Win32
		{95722328-64E6-46DE-AEE8-2E2E23982D1E}.Release|Win32.ActiveCfg = Release|Win32
		{95722328-64E6-46DE-AEE8-2E2E23982D1E}.Release|Win32.Build.0 = Release|Win32
		{3A93C2B9-2107-402D-AFEA-88575A44709E}.Debug|Win32.ActiveCfg = Debug|Win32
		{3A93C2B9-2107-402D-AFEA-88575A44709E}.Debug|Win32.Build.0 = Debug|Win32
		{3A93C2B9-2107-402D-AFEA-88575A44709E}.Release|Win32.ActiveCfg = Release|Win32
		{3A93C2B9-2107-402D-AFEA-88575A44709E}.Release|Win32.Build.0 = Release|Win32
		{EAC13A40-D3F7-4400-9283-FE16CB446A2E}.Debug|Win32.ActiveCfg = Debug|Win32
		{EAC13A40-D3F7-4400-9283-FE16CB446A2E}.Debug|Win32.Build.0 = Debug|Win32
		{EAC13A40-D3F7-4400-9283-FE16CB446A2E}.Release|Win32.ActiveCfg = Release|Win32
		{EAC13A40-D3F7-4400-9283-FE16CB446A2E}.Release|Win32.Build.0 = Release|Win32
		{E7AEC26F-3B53-43E8-BC71-B0FBAAB051E2}.Debug|Win32.ActiveCfg = Debug|Win32
		{E7AEC26F-3B53-43E8-BC71-B0FBAAB051E2}.Debug|Win32.Build.0 = Debug|Win32
		{E7AEC26F-3B53-43E8-BC71-B0FBAAB051E2}.Release|Win32.ActiveCfg = Release|Win32
		{E7AEC26F-3B53-43E8-BC71-B0FBAAB051E2}.Release|Win32.Build.0 = Release|Win32
		{242D78AD-0F58-45F2-B7E1-FA18FB740B0E}.Debug|Win32.ActiveCfg = Debug|Win32
		{242D78AD-0F58-45F2-B7E1-FA18FB740B0E}.Debug|Win32.Build.0 = Debug|Win32
		{242D78AD-0F58-45F2-B7E1-FA18FB740B0E}.Release|Win32.ActiveCfg = Release|Win32
		{242D78AD-0F58-45F2-B7E1-FA18FB740B0E}.Release|Win32.Build.0 = Release|Win32
		{68796C1B-A714-4FF5-AAD9-270830954D03}.Debug|Win32.ActiveCfg = Debug|Win32
		{68796C1B-A714-4FF5-AAD9-270830954D03}.Debug|Win32.Build.0 = Debug|Win32
		{68796C1B-A714-4FF5-AAD9-270830954D03}.Release|Win32.ActiveCfg = Release|Win32
		{68796C1B-A714-4FF5-AAD9-270830954D03}.Release|Win32.Build.0 = Release|Win32
		{733F9FCF-8F38-42CD-9148-6910CE56D4DB}.Debug|Win32.ActiveCfg = Debug|Win32
		{733F9FCF-8F38-42CD-9148-6910CE56D4DB}.Debug|Win32.Build.0 = Debug|Win32
		{733F9FCF-8F38-42CD-9148-6910CE56D4DB}.Release|Win32.ActiveCfg = Release|Win32
		{733F9FCF-8F38-42CD-9148-6910CE56D4DB}.Release|Win32.Build.0 = Release|Win32
		{FB65E3D6-370D-4E2E-950F-ADED6F51A07D}.Debug|Win32.ActiveCfg = Debug|Win32
		{FB65E3D6-370D-4E2E-950F-ADED6F51A07D}.Debug|Win32.Build.0 = Debug|Win32
		{FB65E3D6-370D-4E2E-950F-ADED6F51A07D}.Release|Win32.ActiveCfg = Release|Win32
		{FB65E3D6-370D-4E2E-950F-ADED6F51A07D}.Release|Win32.Build.0 = Release|Win32
		{E42AE9D0-3AB1-45C4-BFC4-CE83253E630C}.Debug|Win32.ActiveCfg = Debug|Win32
		{E42AE9D0-3AB1-45C4-BFC4-CE83253E630C}.Debug|Win32.Build.0 = Debug|Win32
		{E42AE9D0-3AB1-45C4-BFC4-CE83253E630C}.Release|Win32.ActiveCfg = Release|Win32
		{E42AE9D0-3AB1-45C4-BFC4-CE83253E630C}.Release|Win32.Build.0 = Release|Win32
		{FC721168-CF93-4C0F-BEA2-C57A8E70B2D5}.Debug|Win32.ActiveCfg = Debug|Win32
		{FC721168-CF93-4C0F-BEA2-C57A8E70B2D5}.Debug|Win32.Build.0 = Debug|Win32
		{FC721168-CF93-4C0F-BEA2-C57A8E70B2D5}.Release|Win32.ActiveCfg = Release|Win32
		{FC721168-CF93-4C0F-BEA2-C57A8E70B2D5}.Release|Win32.Build.0 = Release|Win32
		{6F14A699-BE47-4E47-BF00-A989577DD798}.Debug|Win32.ActiveCfg = Debug|Win32
		{6F14A699-BE47-4E47-BF00-A989577DD798}.Debug|Win32.Build.0 = Debug|Win32
		{6F14A699-BE47-4E47-BF00-A989577DD798}.Release|Win32.ActiveCfg = Release|Win32
		{6F14A699-BE47-4E47-BF00-A989577DD798}.Release|Win32.Build.0 = Release|Win32
		{E54D15C2-AD58-4B83-B074-2CF27EE8A255}.Debug|Win32.ActiveCfg = Debug|Win32
		{E54D15C2-AD58-4B83-B074-2CF27EE8A255}.Debug|Win32.Build.0 = Debug|Win32
		{E54D15C2-AD58-4B83-B074-2CF27EE8A255}.Release|Win32.ActiveCfg = Release|Win32
		{E54D15C2-AD58-4B83-B074-2CF27EE8A255}.Release|Win32.Build.0 = Release|Win32
		{654E90EA-9B56-4933-BB54-D432A674452A}.Debug|Win32.ActiveCfg = Debug|Win32
		{654E90EA-9B56-4933-BB54-D432A674452A}.Debug|Win32.Build.0 = Debug|Win32
		{654E90EA-9B56-4933-BB54-D432A674452A}.Release|Win32.ActiveCfg = Release|Win32
		{654E90EA-9B56-4933-BB54-D432A674452A}.Release|Win32.Build.0 = Release|Win32
		{5D02D248-4480-426A-BF5C-9217E566CA44}.Debug|Win32.ActiveCfg = Debug|Win32
		{5D02D248-4480-426A-BF5C-9217E566CA44}.Debug|Win32.Build.0 = Debug|Win32
		{5D02D248-4480-426A-BF5C-9217E566CA44}.Release|Win32.ActiveCfg = Release|Win32
		{5D02D248-4480-426A-BF5C-9217E566CA44}.Release|Win32.Build.0 = Release|Win32
		{BC95A772-AD41-4B4A-A83A-7E2E3FE0AF1B}.Debug|Win32.ActiveCfg = Debug|Win32
		{BC95A772-AD41-4B4A-A83A-7E2E3FE0AF1B}.Debug|Win32.Build.0 = Debug|Win32
		{BC95A772-AD41-4B4A-A83A-7E2E3FE0AF1B}.Release|Win32.ActiveCfg = Release|Win32
		{BC95A772-AD41-4B4A-A83A-7E2E3FE0AF1B}.Release|Win32.Build.0 = Release|Win32
		{3D033804-38ED-4294-A236-9CCBDE164E60}.Debug|Win32.ActiveCfg = Debug|Win32
		{3D033804-38ED-4294-A236-9CCBDE164E60}.Debug|Win32.Build.0 = Debug|Win32
		{3D033804-38ED-4294-A236-9CCBDE164E60}.Release|Win32.ActiveCfg = Release|Win32
		{3D033804-38ED-4294-A236-9CCBDE164E60}.Release|Win32.Build.0 = Release|Win32
		{84C5F4D5-01A5-4AC1-AD34-062D5153295F}.Debug|Win32.ActiveCfg = Debug|Win32
		{84C5F4D5-01A5-4AC1-AD34-062D5153295F}.Debug|Win32.Build.0 = Debug|Win32
		{84C5F4D5-01A5-4AC1-AD34-062D5153295F}.Release|Win32.ActiveCfg = Release|Win32
		{84C5F4D5-01A5-4AC1-AD34-062D5153295F}.Release|Win32.Build.0 = Release|Win32
		{B9E95F33-9FDD-4554-9957-886B272083FE}.Debug|Win32.ActiveCfg = Debug|Win32
		{B9E95F33-9FDD-4554-9957-886B272083FE}.Debug|Win32.Build.0 = Debug|Win32
		{B9E95F33-9FDD-4554-9957-886B272083FE}.Release|Win32.ActiveCfg = Release|Win32
		{B9E95F33-9FDD-4554-9957-886B272083FE}.Release|Win32.Build.0 = Release|Win32
		{26E848A1-97A3-49B8-82A6-958C11A7B8D0}.Debug|Win32.ActiveCfg = Debug|Win32
		{26E848A1-97A3-49B8-82A6-958C11A7B8D0}.Debug|Win32.Build.0 = Debug|Win32
		{26E848A1-97A3-49B8-82A6-958C11A7B8D0}.Release|Win32.ActiveCfg = Release|Win32
		{26E848A1-97A3-49B8-82A6-958C11A7B8D0}.Release|Win32.Build.0 = Release|Win32
		{08E08C01-9170-408E-A671-585868FA18CD}.Debug|Win32.ActiveCfg = Debug|Win32
		{08E08C01-9170-408E-A671-585868FA18CD}.Debug|Win32.Build.0 = Debug|Win32
		{08E08C01-9170-408E-A671-585868FA18CD}.Release|Win32.ActiveCfg = Release|Win32
		{08E08C01-9170-408E-A671-585868FA18CD}.Release|Win32.Build.0 = Release|Win32
		{BD1E31F2-09B6-4C66-8B7D-EEF4E0850E52}.Debug|Win32.ActiveCfg = Debug|Win32
		{BD1E31F2-09B6-4C66-8B7D-EEF4E0850E52}.Debug|Win32.Build.0 = Debug|Win32
		{BD1E31F2-09B6-4C66-8B7D-EEF4E0850E52}.Release|Win32.ActiveCfg = Release|Win32
		{BD1E31F2-09B6-4C66-8B7D-EEF4E0850E52}.Release|Win32.Build.0 = Release|Win32
		{749C48CA-8130-4C1C-8B90-25CCCE01D76D}.Debug|Win32.ActiveCfg = Debug|Win32
		{749C48CA-8130-4C1C-8B90-25CCCE01D76D}.Debug|Win32.Build.0 = Debug|Win32
		{749C48CA-8130-4C1C-8B90-25CCCE01D76D}.Release|Win32.ActiveCfg = Release|Win32
		{749C48CA-8130-4C1C-8B90-25CCCE01D76D}.Release|Win32.Build.0 = Release|Win32
		{CFE62E29-C442-42E7-A4FB-181B87417BA3}.Debug|Win32.ActiveCfg = Debug|Win32
		{CFE62E29-C442-42E7-A4FB-181B87417BA3}.Debug|Win32.Build.0 = Debug|Win32
		{CFE62E29-C442-42E7-A4FB-181B87417BA3}.Release|Win32.ActiveCfg = Release|Win32
		{CFE62E29-C442-42E7-A4FB-181B87417BA3}.Release|Win32.Build.0 = Release|Win32
		{96E6DB1B-930D-4926-ADCA-E8683A26A125}.Debug|Win32.ActiveCfg = Debug|Win32
		{96E6DB1B-930D-4926-ADCA-E8683A26A125}.Debug|Win32.Build.0 = Debug|Win32
		{96E6DB1B-930D-4926-ADCA-E8683A26A125}.Release|Win32.ActiveCfg = Release|Win32
		{96E6DB1B-930D-4926-ADCA-E8683A26A125}.Release|Win32.Build.0 = Release|Win32
		{762DA95F-6836-4FAC-8864-B54683113AFD}.Debug|Win32.ActiveCfg = Debug|Win32
		{762DA95F-6836-4FAC-8864-B54683113AFD}.Debug|Win32.Build.0 = Debug|Win32
		{762DA95F-6836-4FAC-8864-B54683113AFD}.Release|Win32.ActiveCfg = Release|Win32
		{762DA95F-6836-4FAC-8864-B54683113AFD}.Release|Win32.Build.0 = Release|Win32
		{36692C56-1311-4AC7-8C94-63968AF998F8}.Debug|Win32.ActiveCfg = Debug|Win32
		{36692C56-1311-4AC7-8C94-63968AF998F8}.Debug|Win32.Build.0 = Debug|Win32
		{36692C56-1311-4AC7-8C94-63968AF998F8}.Release|Win32.ActiveCfg = Release|Win32
		{36692C56-1311-4AC7-8C94-63968AF998F8}.Release|Win32.Build.0 = Release|Win32
		{81055D36-4575-4E26-AC32-1B3BE96EE097}.Debug|Win32.ActiveCfg = Debug|Win32
		{81055D36-4575-4E26-AC32-1B3BE96EE097}.Debug|Win32.Build.0 = Debug|Win32
		{81055D36-4575-4E26-AC32-1B3BE96EE097}.Release|Win32.ActiveCfg = Release|Win32
		{81055D36-4575-4E26-AC32-1B3BE96EE097}.Release|Win32.Build.0 = Release|Win32
		{70727A02-43D8-494E-B918-503DD5C17DBB}.Debug|Win32.ActiveCfg = Debug|Win32
		{70727A02-43D8-494E-B918-503DD5C17DBB}.Debug|Win32.Build.0 = Debug|Win32
		{70727A02-43D8-494E-B918-503DD5C17DBB}.Release|Win32.ActiveCfg = Release|Win32
		{70727A02-43D8-494E-B918-503DD5C17DBB}.Release|Win32.Build.0 = Release|Win32
		{4AB01309-DBFF-4EB3-A01D-D063CEF318EB}.Debug|Win32.ActiveCfg = Debug|Win32
		{4AB01309-DBFF-4EB3-A01D-D063CEF318EB}.Debug|Win32.Build.0 = Debug|Win32
		{4AB01309-DBFF-4EB3-A01D-D063CEF318EB}.Release|Win32.ActiveCfg = Release|Win32
		{4AB01309-DBFF-4EB3-A01D-D063CEF318EB}.Release|Win32.Build.0 = Release|Win32
		{40D7A205-767F-4C2B-A1FD-5C7C68F50359}.Debug|Win32.ActiveCfg = Debug|Win32
		{40D7A205-767F-4C2B-A1FD-5C7C68F50359}.Debug|Win32.Build.0 = Debug|Win32
		{40D7A205-767F-4C2B-A1FD-5C7C68F50359}.Release|Win32.ActiveCfg = Release|Win32
		{40D7A205-767F-4C2B-A1FD-5C7C68F50359}.Release|Win32.Build.0 = Release|Win32
	EndGlobalSection
	GlobalSection(SolutionProperties) = preSolution
		HideSolutionNode = FALSE
	EndGlobalSection
	GlobalSection(NestedProjects) = preSolution
		{7B199EE8-8B4A-4B0C-9B4A-2B03734C5DBC} = {69D36877-6F17-4C42-8D66-615B802021FA}
		{4A9483AB-9C97-4987-BEC9-64F698C0FA4C} = {69D36877-6F17-4C42-8D66-615B802021FA}
		{53192DFC-1949-4DF6-8686-478A23F4ACD5} = {69D36877-6F17-4C42-8D66-615B802021FA}
		{52864BB0-7C62-4ACF-A0E7-2C455A7C0E7F} = {69D36877-6F17-4C42-8D66-615B802021FA}
		{F99E800D-8CF7-4AB5-9DF0-8A71B1311266} = {69D36877-6F17-4C42-8D66-615B802021FA}
		{D18F0366-B2EF-46C6-AADD-C0DCE8995FA3} = {69D36877-6F17-4C42-8D66-615B802021FA}
		{2661CF30-2B26-4DDB-A8D4-31B6B6085F78} = {69D36877-6F17-4C42-8D66-615B802021FA}
		{E8CF7EE2-CFE9-4EF9-A04B-94F15F9718BE} = {69D36877-6F17-4C42-8D66-615B802021FA}
		{B69FE77F-7C56-445F-BE5D-D29F744E254D} = {69D36877-6F17-4C42-8D66-615B802021FA}
		{B830CC03-2840-445E-9CC4-EA519CCA13BE} = {69D36877-6F17-4C42-8D66-615B802021FA}
		{FF5E2579-84E2-4135-AD46-03189B584D39} = {69D36877-6F17-4C42-8D66-615B802021FA}
		{4B8B740F-9B36-45C6-886E-6D272797463A} = {69D36877-6F17-4C42-8D66-615B802021FA}
		{B59C9B23-7788-4DA2-992F-342C87330DA3} = {69D36877-6F17-4C42-8D66-615B802021FA}
		{5A123AE4-A88B-4593-A2DB-CF7605CBA503} = {69D36877-6F17-4C42-8D66-615B802021FA}
		{95722328-64E6-46DE-AEE8-2E2E23982D1E} = {69D36877-6F17-4C42-8D66-615B802021FA}
		{3A93C2B9-2107-402D-AFEA-88575A44709E} = {69D36877-6F17-4C42-8D66-615B802021FA}
		{EAC13A40-D3F7-4400-9283-FE16CB446A2E} = {69D36877-6F17-4C42-8D66-615B802021FA}
		{E7AEC26F-3B53-43E8-BC71-B0FBAAB051E2} = {69D36877-6F17-4C42-8D66-615B802021FA}
		{242D78AD-0F58-45F2-B7E1-FA18FB740B0E} = {69D36877-6F17-4C42-8D66-615B802021FA}
		{F066CB11-69CA-4092-9879-146759206DEE} = {69D36877-6F17-4C42-8D66-615B802021FA}
		{733F9FCF-8F38-42CD-9148-6910CE56D4DB} = {821B3827-8929-44F6-A819-F8EE7DE4290D}
		{FB65E3D6-370D-4E2E-950F-ADED6F51A07D} = {821B3827-8929-44F6-A819-F8EE7DE4290D}
		{68796C1B-A714-4FF5-AAD9-270830954D03} = {821B3827-8929-44F6-A819-F8EE7DE4290D}
		{E42AE9D0-3AB1-45C4-BFC4-CE83253E630C} = {333C78A2-4CA1-4BD6-81EF-706BB27DE97A}
		{FC721168-CF93-4C0F-BEA2-C57A8E70B2D5} = {333C78A2-4CA1-4BD6-81EF-706BB27DE97A}
		{6F14A699-BE47-4E47-BF00-A989577DD798} = {333C78A2-4CA1-4BD6-81EF-706BB27DE97A}
		{E54D15C2-AD58-4B83-B074-2CF27EE8A255} = {333C78A2-4CA1-4BD6-81EF-706BB27DE97A}
		{654E90EA-9B56-4933-BB54-D432A674452A} = {333C78A2-4CA1-4BD6-81EF-706BB27DE97A}
		{5D02D248-4480-426A-BF5C-9217E566CA44} = {333C78A2-4CA1-4BD6-81EF-706BB27DE97A}
		{BC95A772-AD41-4B4A-A83A-7E2E3FE0AF1B} = {333C78A2-4CA1-4BD6-81EF-706BB27DE97A}
		{3D033804-38ED-4294-A236-9CCBDE164E60} = {333C78A2-4CA1-4BD6-81EF-706BB27DE97A}
		{84C5F4D5-01A5-4AC1-AD34-062D5153295F} = {333C78A2-4CA1-4BD6-81EF-706BB27DE97A}
		{B9E95F33-9FDD-4554-9957-886B272083FE} = {333C78A2-4CA1-4BD6-81EF-706BB27DE97A}
		{36692C56-1311-4AC7-8C94-63968AF998F8} = {333C78A2-4CA1-4BD6-81EF-706BB27DE97A}
		{81055D36-4575-4E26-AC32-1B3BE96EE097} = {333C78A2-4CA1-4BD6-81EF-706BB27DE97A}
	EndGlobalSection
EndGlobal

By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.

If a file you wish to view isn't highlighted, and is a text file (not binary), please let us know and we'll add colourisation support for it.

License

This article has no explicit license attached to it but may contain usage terms in the article text or the download files themselves. If in doubt please contact the author via the discussion board below.

A list of licenses authors might use can be found here


Written By
Other
Canada Canada
This member has not yet provided a Biography. Assume it's interesting and varied, and probably something to do with programming.

Comments and Discussions