test_static_warning.cpp
来自「Boost provides free peer-reviewed portab」· C++ 代码 · 共 66 行
CPP
66 行
// (C) Copyright Jonathan Turkanis 2004.// Use, modification and distribution are subject to the// Boost Software License, Version 1.0. (See accompanying file// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)// See http://www.boost.org for most recent version including documentation.// note: this is a compile only test.#include <boost/config.hpp> // BOOST_STATIC_CONST#include <boost/serialization/static_warning.hpp>#include <boost/type_traits/is_polymorphic.hpp>#pragma warning(disable:4094)typedef char a1[2];typedef char a2[3];class polymorphic { virtual ~polymorphic();};class non_polymorphic {};class test_class {};template <class T>int f(){ BOOST_STATIC_WARNING(T::value); return 0;} struct A { BOOST_STATIC_CONSTANT(bool, value = 0);};/////////////////////////////////////////////////////////////////////////// compilation of this program should show a total of 10 warning messages// should show NO warning messageBOOST_STATIC_WARNING(true);// the following should show 5 warning messageint x = f<A>(); BOOST_STATIC_WARNING(sizeof(a1) == sizeof(a2)); // Warn.BOOST_STATIC_WARNING(sizeof(a1) != sizeof(a1)); // Warn.BOOST_STATIC_WARNING(! boost::is_polymorphic<polymorphic>::value); // Warn.BOOST_STATIC_WARNING(boost::is_polymorphic<non_polymorphic>::value); // Warn.int main(int /* argc */, char * /* argv */[]){ // should show NO warning message BOOST_STATIC_WARNING(true); // the following should show 5 warning message f<A>(); BOOST_STATIC_WARNING(sizeof(a1) == sizeof(a2)); // Warn. BOOST_STATIC_WARNING(sizeof(a1) != sizeof(a1)); // Warn. BOOST_STATIC_WARNING(! boost::is_polymorphic<polymorphic>::value); // Warn. BOOST_STATIC_WARNING(boost::is_polymorphic<non_polymorphic>::value); // Warn. return 0;}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?