# Weffc++, Qeffc++

Enables warnings based on certain C++ programming guidelines.

## Syntax

Linux: | -Weffc++

macOS: | -Weffc++

Windows: | /Qeffc++

## Arguments

None

## Default

OFF | Diagnostics are not enabled.

## Description

This option enables warnings based on certain programming guidelines developed by Scott Meyers in his books on effective C++ programming. With this option, the compiler emits warnings for these guidelines:

- Use const and inline rather than #define. Note that you will only get this in user code, not system header code.

- Use <iostream> rather than <stdio.h>.

- Use new and delete rather than malloc and free.

- Use C++ style comments in preference to C style comments. C comments in system headers are not diagnosed.

- Use delete on pointer members in destructors. The compiler diagnoses any pointer that does not have a delete.

- Make sure you have a user copy constructor and assignment operator in classes containing pointers.

- Use initialization rather than assignment to members in constructors.

- Make sure the initialization list ordering matches the declartion list ordering in constructors.

- Make sure base classes have virtual destructors.

- Make sure operator= returns *this.

- Make sure prefix forms of increment and decrement return a const object.

- Never overload operators &&, ||, and ,.

### Note

The warnings generated by this compiler option are based on the following books from Scott Meyers:

- Effective C++ Second Edition - 50 Specific Ways to Improve Your Programs and Designs

- More Effective C++ - 35 New Ways to Improve Your Programs and Designs

## IDE Equivalent

Visual Studio: None

Eclipse: Compilation Diagnostics > Enable Warnings for Style Guideline Violations

Xcode: Diagnostics > Report Effective C++ Violations

## Alternate Options

None

Parent topic: Compiler Diagnostic Options