Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • Home
  • SEARCH
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 8376593
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: June 9, 20262026-06-09T15:27:58+00:00 2026-06-09T15:27:58+00:00

Assume I’m developing a typical Mac or iOS application using Apple’s latest Xcode tools.

  • 0

Assume I’m developing a typical Mac or iOS application using Apple’s latest Xcode tools. Further assume that I am primarily developing this application using Objective-C and leveraging all of the relevant APIs from Apple’s Cocoa or Cocoa Touch frameworks.

Let’s say that I don’t currently have any plans to use C++ or Objective-C++ in my code base, but I suspect that some time in the future I might want to sprinkle in a little Objective-C++ here an there.

So I’m considering naming all of my .m files as .mm instead, just in case. (This will have the desireable effect of a cleaner history in my SCM system, as I won’t have to rename files later.)

Is this a bad idea? Is there any reason why using .mm files is definitely or significantly worse than using .m when the file doesn’t actually contain any Objective-C++?

Presumably this file extension flips some switch in the compiler which will then have to parse the source code for not only ObjC, but also C++. Does this have a significant negative effect on build times for moderate-to-large code bases?

Does it have any other negative (or positive) effects that I should keep in mind?

NOTE: please do not respond with any comments about whether ObjC or C++ is better. That is not what this question is about.

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-06-09T15:28:00+00:00Added an answer on June 9, 2026 at 3:28 pm

    It’s not the worst idea, but it’s not really a good idea, either.

    The main purpose of Objective-C++ is to act as a bridge for Objective-C code that needs to use a C++ library. Thus, in most projects, almost all of the code is plain old Objective-C, with maybe a few .mm files to create a “wrapper” object to talk to the C++ library.

    Therefore, it is extremely unlikely that you will need to change significant parts of your code over from Objective-C to Objective-C++. You shouldn’t have a lot of file renames in your SCM history.

    The main problem with using Objective-C++ everywhere is that you will be following “the road less traveled”: 99% of the tutorials you read and open-source code you use and learn from will all be written to be compiled by the Obj-C compiler. Using the Obj-C++ compiler will be mostly the same, and probably won’t make a difference most of the time, but you will eventually run into some problem that is due to Obj-C++ being compiled slightly differently, but when you find the bug it won’t be obvious, and you’ll spend a lot of time trying to diagnose it before you realize that it is because you are using a less well-tested compiler setup.

    If you have a lot of C++ experience and find yourself “needing” features from C++ in your code, you probably don’t really need them, you probably need to spend a little more time figuring out how to do the equivalent in Objective-C. When in Rome, do as the Romans do.

    In general, “just in case” is not a good reason to stray from standard practice. You often wind up spending a lot of effort on something you aren’t going to need.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

Assume that we have N erlang nodes, running same application. I want to share
Assume that we have two sets: A=(a_1,a_2,...,a_m) and B=(b_1,b_2,...,a_n) (Not necessarily of same size).
Assume you have 3 given tasks. You can run them either using process or
Assume I have 2 controllers that handle 2 parts of the page - header
Assume that the database connection is good, the table name and column name are
Assume that I have a var std::string sourceCode; where I have loaded a cpp
Assume the following is a 2d array that we are operating on a b
Assume that you start running the script. What happens when you change that file
Assume there are potentially expensive operations to be performed in setup or teardown that
Assume I had these tables in my database that is queried by a web

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.