Files
microsoft-krabsetw/tests/krabstests/test_symbol_clash.cpp
T
Zac Brown c81c3c41f6 - Make projects for Managed and Native example code. (#3)
* - Make projects for Managed and Native example code.
- Create a 'tests' directory.
- Remove SampleCSharpKrabsExe as it is redundant with respect to the example code.

Signed-off-by: Zac Brown (ODSP SECURITY) <zbrown@microsoft.com>

* - Add note about TYPEASSERT and NDEBUG compilation flags to README.md.
- Add /W4 /WX compiler flags to NativeExample project.
- vcxproj.filters updates based on VS magic.

Signed-off-by: Zac Brown (ODSP SECURITY) <zbrown@microsoft.com>
2016-11-28 14:06:40 -08:00

17 lines
873 B
C++

// Copyright (c) Microsoft. All rights reserved.
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
#include <krabs.hpp>
// This file exists solely to cause a double-inclusion of krabs code into the same binary.
// The reason we're doing this is that we want to make sure we've correctly inlined or
// templated every function in krabs.
//
// Because krabs is a header-only library, multiple inclusion of krabs can cause symbols to
// be defined multiple times in the compiled executable. This results in a compiler error.
// It is hard to check for this manually, so we force the issue.
//
// NOTE: Making sure the files are all #pragma once'd is a good first step, but that does
// not prevent symbol errors. We need to make sure all functions are inlined or
// templated in order to fix linker errors.