Intel® C++ Compiler Classic Developer Guide and Reference

ID 767249
Date 12/16/2022
Public

A newer version of this document is available. Customers should click here to go to the newest version.

Document Table of Contents

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