Welcome, Guest. Please login or register. Did you miss your activation email?

Author Topic: No member named 'make_unique' in namespace 'std' on Xcode  (Read 4981 times)

0 Members and 1 Guest are viewing this topic.

coffeeNeeded

  • Newbie
  • *
  • Posts: 1
    • View Profile
    • Email
No member named 'make_unique' in namespace 'std' on Xcode
« on: October 21, 2021, 04:12:07 am »
Hi! I'm using SFML, is cool but I have this weird problem.
When I create a new project using default SFML template I'm not able to use "make_unuque" because it's not a member of "std".

But on an other project (inside an other folder but stil on my Mac, with Xcode) I can use it so I think that SFML template changes something on compiler version used by Xcode.

Before you ask me, yes I'm including memory as file header.

I also tried to add -std=c++14 to arguments passed on launch but it still doesn't work, also tried with including libraries like libstdc++ and libc++ maybe? I don't remember their names but should be these.

By the way this is the code :
#include <SFML/Graphics.hpp>
#include <iostream>
#include <memory>
// Here is a small helper for you! Have a look.
using namespace sf;

int main(int, char const**)
{
    // Create the main window
    RenderWindow window(VideoMode(503, 504), "8QueensPuzzle");
   
    std::unique_ptr<int> ptr =std::make_unique<int>(); //error here
    while (window.isOpen())
    {
        // Process events
        Event event;
        while (window.pollEvent(event))
        {
            // Close window: exit
            if (event.type == Event::Closed) {
                window.close();
            }

            // Escape pressed: exit
            if (event.type == Event::KeyPressed && event.key.code == sf::Keyboard::Escape) {
                window.close();
            }
        }

        // Clear screen
        window.clear();
        window.display();
    }

    return EXIT_SUCCESS;
}

I'm running Xcode 13.0 on MacOS 11.6

eXpl0it3r

  • SFML Team
  • Hero Member
  • *****
  • Posts: 10815
    • View Profile
    • development blog
    • Email
Re: No member named 'make_unique' in namespace 'std' on Xcode
« Reply #1 on: October 21, 2021, 08:49:18 am »
std::make_unique is a C++14 feature, as such you need to make sure that the compiler is set to C++14.

Googling for "XCode enable C++14" I came across this: https://stackoverflow.com/questions/45002007/how-to-use-c14-with-xcode/45007594
Official FAQ: https://www.sfml-dev.org/faq.php
Official Discord Server: https://discord.gg/nr4X7Fh
——————————————————————
Dev Blog: https://duerrenberger.dev/blog/