1 /* 2 * copyright (c) 2006 Michael Niedermayer <michaelni@gmx.at> 3 * 4 * This file is part of FFmpeg. 5 * 6 * FFmpeg is free software; you can redistribute it and/or 7 * modify it under the terms of the GNU Lesser General Public 8 * License as published by the Free Software Foundation; either 9 * version 2.1 of the License, or (at your option) any later version. 10 * 11 * FFmpeg is distributed in the hope that it will be useful, 12 * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 * Lesser General Public License for more details. 15 * 16 * You should have received a copy of the GNU Lesser General Public 17 * License along with FFmpeg; if not, write to the Free Software 18 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 19 */ 20 21 /** 22 * @file 23 * Macro definitions for various function/variable attributes 24 */ 25 26 module ffmpeg.libavutil.attributes; 27 28 extern (C): 29 import ffmpeg; @nogc nothrow: 30 31 extern (D) auto AV_GCC_VERSION_AT_LEAST(T0, T1)(auto ref T0 x, auto ref T1 y) 32 { 33 return __GNUC__ > x || __GNUC__ == x && __GNUC_MINOR__ >= y; 34 } 35 36 extern (D) auto AV_GCC_VERSION_AT_MOST(T0, T1)(auto ref T0 x, auto ref T1 y) 37 { 38 return __GNUC__ < x || __GNUC__ == x && __GNUC_MINOR__ <= y; 39 } 40 41 /** 42 * Disable warnings about deprecated features 43 * This is useful for sections of code kept for backward compatibility and 44 * scheduled for removal. 45 */ 46 47 extern (D) auto AV_NOWARN_DEPRECATED(T)(auto ref T code) 48 { 49 return code; 50 } 51 52 /** 53 * Mark a variable as used and prevent the compiler from optimizing it 54 * away. This is useful for variables accessed only from inline 55 * assembler without the compiler being aware. 56 */ 57 58 59 /* AVUTIL_ATTRIBUTES_H */