2014年5月10日土曜日

開発環境

C++実践プログラミング (スティーブ オウアルライン (著)、Steve Oualline (原著)、Steve Oualline(原著)、望月 康司(翻訳)、クイープ(翻訳) 、オライリー・ジャパン)のⅤ部(言語のその他の機能)の24章(テンプレート)、24.10(プログラミング実習)、実習 24-1.を解いてみる。

その他参考書籍

実習 24-1.

コード(BBEdit, Emacs)

test_min.cpp

#include <iostream>
#include <cstring>

template<typename kind>
kind min(kind d1, kind d2)
{
  if (d1 < d2)
    return (d1);
  return (d2);
}

const char *const min(const char *const d1, const char *const d2)
{
  if (std::strcmp(d1, d2) < 0)
    return (d1);
  return (d2);
}

int main(int argc, char *argv[])
{
  std::cout << "min(1, 2) " << min(1, 2) << std::endl;
  std::cout << "min(2, 1) " << min(2, 1) << std::endl;

  std::cout << "max(\"able\", \"baker\") " << min("able", "baker") << std::endl;
  std::cout << "max(\"baker\", \"able\") " << min("baker", "able") << std::endl;
  return (0);
}

Makefile

CC=g++
CFLAGS=-g -Wall
SRC=test_min.cpp
OBJ=test_min.o

all: test_min

test_min: $(OBJ)
 ${CC} ${CFLAGS} -o test_min $(OBJ)

test_min.o: min.h test_min.cpp
 ${CC} $(CFLAGS) -c test_min.cpp

clean:
 rm test_min test_min.o

入出力結果(Terminal)

$ make
g++ -g -Wall -c test_min.cpp
g++ -g -Wall -o test_min test_min.o
bash-4.3$ ./test_min 
min(1, 2) 1
min(2, 1) 1
max("able", "baker") able
max("baker", "able") able
$

0 コメント:

コメントを投稿